スタッフのアクティビティログとは?
チャネルに参加しているスタッフのアクティビティログを記録して、管理することができます。
ログはリアルタイムで表示されません。(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を表します。
◦
◦
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
복사