Search
Duplicate
📚

スタッフのアクティビティログ

スタッフのアクティビティログとは?

チャネルに参加しているスタッフのアクティビティログを記録して、管理することができます。
ログはリアルタイムで表示されません。(30分に1回ログが残る)
オーナー権限のスタッフのみ、 アクティビティログを最大で1年まで確認できます。
スタッフのログイン、メンバー情報の修正履歴、顧客情報を含む全てのデータのダウンロード履歴が確認可能です。
ダウンロード申請の履歴を通して、アクティビティログをダウンロードした履歴を確認できます。
データをダウンロードすると、[自分だけのチャットルーム] にメッセージが送信されます。

アクティビティログ

# ファイル構成 # {channel_id}_{YYYY-MM-DD}_{log_type}_{random char}.zip # 圧縮を解除するとGMT基準で YYYYMMDDHHmm_{}-{}_{}.gz ファイルリストを出力 . ├── 202306150000_0_0c38b538-5a6f-4185-a78d-6a8dbabcf8be_2.gz ├── 202306150000_0_503e59fa-e0a9-4d00-96fa-773c008f696a_3.gz .... └── 202306211630_0_7a252459-f0fb-4fd6-815e-7faf35f08589_3.gz 上記のgzファイルの圧縮を解除すると実際のログファイルを受け取れます。
Bash
복사

定義

Account
ユーザーのログインアカウントを意味し、1つのアカウントは複数のManagerにマッピングできます。
Manager
チャネル別のアイデンティティです。
所属するチャネルごとに1つのスタッフを保有し、チャネルごとにプロフィールを持っているのでお互いに区分できます。
managerIdからmanager情報を照会する方法
requestInfo
サーバー側に要請したRaw情報が表示されます。
Downloadの場合、内部から別途requestInfoがありません。 (Asyncに動作しているため、該当の情報が保存されません。)
以下のようなフォーマットで存在し、実際のdevice、ブラウザごとに以下のField内容が異なる場合があります。
主なフィールドはip、userAgentの部分をご覧ください。
"requestInfo": { "ip": "x.x.x.x", // 該当の作業を実行したIP "userAgent": { // Agent情報, userAgentStringを除いては無視しても問題ないです "headers": { "User-Agent": "Dalvik/2.1.0 (Linux; U; Android 13; SM-A716S Build/TP1A.220624.014)" }, ... "userAgentString": "Dalvik/2.1.0 (Linux; U; Android 13; SM-A716S Build/TP1A.220624.014)" }, "desk": { // チャネルappを使っている場合は該当のフィールドが存在 "name": "android", // platform "version": "8.1.0" // desk app version }, "device": "Samsung SM-A716S", // device name "os": "Android 13", // os "osname": "Android", // os name "browser": "Unknown ??", "browserName": "Unknown", "robot": false // robot認知の有無 },
JSON
복사
logType
ログの形式を表します。
signInLog:スタッフログインlog
entityChangeLog:スタッフ情報修正log
downloadLog:顧客連絡先および接客チャットダウンロードログ
createdAt
該当eventが発生した時点、unix timestampの形で表す
channelId
該当eventが発生したチャネル

スタッフのログイン

メンバーのログイン履歴を残す(セッションが更新されるたびにwriteされるため、より多くの履歴がログに残る場合があります。)
以下の内容を分析してみると、1番チャンネルに2023/07/21-9:00:56.139(1687305656139)にtest@test.com でログインを試み、ログインに成功した
{ "requestInfo": { ... // 上記の内容を参考 }, "channelId": "1", "createdAt": 1687305656139, "accountId": "12345678", // account의 ID, "email": "test@test.com", // ログインを試みたemail "result": true, // ログイン結果 "logType": "signInLog" }
JSON
복사

スタッフの情報を修正

diffで主に見ると良いfieldlist
mobileNumber
email
roleId
name
{ "requestInfo": { ... // 上記の内容を参考 }, "channelId": "1", "sourceType": "manager", // 変更を行なったオブジェクト "sourceId": "183991", // 変更を行なったオブジェクトid "createdAt": 1685577817098, "entityType": "manager", // 変更が行われたオブジェクト "entityId": "183991", // 変更が行われたオブジェクトid "action": "update", // create (生成), delete (削除), update (修正) "diff": { // 変更された内容、該当部分は変更事項によって異なる場合があり、内部構造体に近い内容である "statusText": [ "在宅勤務中", "移動中" ], "statusEmoji": [ "derelict_house_building", "car" ] }, "logType": "entityChangeLog" }
JSON
복사

連絡先管理および接客チャットのダウンロード

sensitiveInformationが重要です。実際にダウンロードされた個人情報IDを表します。
userIds
内部顧客のid
userに対する詳細情報の取得方法
managerIds
ダウンロードをしたmanagerのid
{ "channelId": "1", "sourceType": "manager", // ダウンロードを行なったオブジェクト "sourceId": "25901", // ダウンロードを行なったオブジェクトのid "createdAt": 1687279487808, "sensitiveInformation": { // 実際にダウンロードが行われたオブジェクトのID List "managerIds": [ "1234" "userIds": [ // DownloadされたuserのId, 以下の値は任意の値で実際のidと長さおよびデータが異なります。 "5a5d142ada25280", "5c5fd2198487689", ... "648ff23c1231a71", "6490160b85d3b2b" ] }, "reason": "顧客把握のため", // ダウンロード理由 "logType": "downloadLog" }
JSON
복사