対象の音声通話レコード (レコード ID: 0LQ0k0000010WQ5GAM) に関連付けられた Conversation レコードと ConversationParticipants レコードを取得します。
以下にサンプルの SOQL クエリとその結果を記載します。
SELECT Id, ConversationIdentifier,StartTime, EndTime, (SELECT Id, AppType, ParticipantRole, ParticipantKey FROM ConversationParticipants) FROM Conversation WHERE Id IN (SELECT ConversationId FROM VoiceCall WHERE Id='0LQ0k0000010WQ5GAM')
このクエリにより以下の Conversation レコードと ConversationParticipant レコードが取得できたとします。
| Id | ConversationIdentifier | StartTime | EndTime |
|---|---|---|---|
| 0dw0k000000q5QNAAY | 14f0f77b-f4b5-4f0a-947d-fb04c0e13f79 | 2023-05-02T13:40:26.000Z | 2023-05-02T13:40:45.000Z |
| Id | AppType | ParticipantRole | ParticipantKey |
|---|---|---|---|
| 0ec0k000001H2ZMAA0 | telephony_integration | Supervisor | 14f0f77b-f4b5-4f0a-947d-fb04c0e13f79SUPERVISOR |
| 0ec0k000001H2ZNAA0 | telephony_integration | Agent | 14f0f77b-f4b5-4f0a-947d-fb04c0e13f79VIRTUAL_AGENT |
| 0ec0k000001H2ZbAAK | agent | Agent | 0050k000005Kjed |
| 0ec0k000001H2ZOAA0 | telephony_integration | EndUser | 14f0f77b-f4b5-4f0a-947d-fb04c0e13f79END_USER |
| 0ec0k000001H2ZPAA0 | conversation | System | 0052x000002qU7E |
文字起こしはテレフォニーシステムで実行されるため、テレフォニーシステム側で当該データを保持している場合があります。
たとえば、Amazon Connect をテレフォニーシステムに使用し、当該システムの Contact Lens サービスを用いて文字起こしをしている場合には Amazon S3 に文字起こしファイルが出力されています。
Contact Lens で分析済みファイルを出力する場所
テレフォニーシステム側で文字起こしデータを保持しているかや格納場所が不明な場合、使用しているテレフォニーシステムに問い合わせてください。
「2-2. テレフォニーシステム側で文字起こしデータを確認」でテレフォニーシステムより取得した文字起こしデータを、 ConversationEntry にレコードに登録します。文字起こしデータを含んだファイルを所定の URL にアップロードを行うことによりこの登録を行います。
当該ファイルは以下具体例のとおり、Json 形式で記載する必要が必要があります。
{"type": "conversation", "payload": {"conversationId": "14f0f77b-f4b5-4f0a-947d-fb04c0e13f79 "}}
{"type": "conversationEntry", "payload": {"conversationId": "14f0f77b-f4b5-4f0a-947d-fb04c0e13f79", "id": "01", "clientSentTimestamp": 1683034827000, "clientDuration": 1, "messageText":"こんにちは。","sender": {"appType": "AGENT", "subject": "0050k000005Kjed","role": "AGENT"}}}
{"type": "conversationEntry", "payload": {"conversationId": "14f0f77b-f4b5-4f0a-947d-fb04c0e13f79", "id": "02", "clientSentTimestamp": 1683034827000, "clientDuration": 1, "messageText":"こんにちは。どうされましたか?","sender": {"appType": "TELEPHONY_INTEGRATION", "subject": "14f0f77b-f4b5-4f0a-947d-fb04c0e13f79END_USER","role": "END_USER"}}}
1 行目には親の Conversation レコードの情報を記載します。Conversation レコードの識別子として、「2-1. 会話関連の必要な情報をあらかじめ取得」で取得した Conversation レコードの ”ConversationIdentifier” の値を使用します。
2 行目以降に会話本文 (ConversationEntry) を記載します。ここで注意すべきことは以下の 2 点です。
① clientSentTimestamp の値について
関連付けたConversationレコードのStartTimeとEndTimeの間の時間を指定する必要があります。また、このファイル内ではUnix時間(ms)で時間を指定する必要があります。
② sender について
sender で「誰が」この発言をしたかを指定します。
appType、role、subject は ConversationParticipant の情報と整合性を取る必要があります。
具体的な対応付けは以下のとおりです。
| アップロードファイル | ConversationParticipant レコード |
|---|---|
| payload.sender.appType | ConversationParticipant.appType |
| payload.sender.role | ConversationParticipant.role |
| payload.sender.subject | ConversationParticipant.ParticipantKey |
ただし、appType と role については、ConversationParticipant レコードの値をそのまま転記するのではなく、Upload or Update Transcripts with Connect REST API に記載のマッピングに従い、値を変換する必要があります。
以下のとおりリクエストヘッダ・リクエストボディ部を設定し POST メソッドでリクエストを送信することにより、API を使用したファイルのアップロードを行います。
Authorization ヘッダにはアクセストークンを設定する必要があります。
アクセストークンの取得方法は Step Three: Connect to Connect REST API Using OAuth を確認してください。
curl -XPOST \ -H 'Authorization:Bearer 00D0k000000XXXX!AQQAQIDLjZYcaJ2ZpOVdN65TSlbOlpcvAFZDR2dA3prDoTMelGGDL58_25wjSw6LR2Tzm8CIPAVvIUgAf1VoMY0PzjZwCHe1' \ -H 'Content-Type: multipart/form-data' \ -H 'Accept: application/json' \ -F 14f0f77b-f4b5-4f0a-947d-fb04c0e13f79=@/Users/localpath/upload.json \ 'https://yourDomain.my.salesforce.com/services/data/v57.0/connect/conversations/upload'
ファイルのアップロードに成功すると以下のようなレスポンスがステータスコード 201 で返却されます。
{
"conversationBulkUploadsResults": [
{
"conversationIdentifier": "14f0f77b-f4b5-4f0a-947d-fb04c0e13f79",
"errorDetail": null,
"status": "SUCCESS",
"uploadId": "cfb8dfa7-f6d8-3cbe-b7eb-60400d512260"
}
]
}
この API は非同期処理であり、アップロードした文字起こしデータが即座に Salesforce に登録されるとは限りません。
現在の処理状況を確認するため、以下のとおり Get リクエストを送信します。
このときリクエストパラメータの uploadIds では、ファイルアップロード時に返却された uploadId を指定する必要がある点に注意してください。
curl \ -H 'Authorization:Bearer 00D0k000000XXXX!AQQAQIDLjZYcaJ2ZpOVdN65TSlbOlpcvAFZDR2dA3prDoTMelGGDL58_25wjSw6LR2Tzm8CIPAVvIUgAf1VoMY0PzjZwCHe1' \ 'https://yourDomain.sandbox.my.salesforce.com/services/data/v57.0/connect/conversations/upload?uploadIds=cfb8dfa7-f6d8-3cbe-b7eb-60400d512260‘
このとき以下のように status が “COMPLETED” のレスポンスがステータスコード 200 で返却されれば、文字起こしデータの登録が完了したことを意味します。
{
"conversationBulkUploadStatuses": [
{
"conversationId": "14f0f77b-f4b5-4f0a-947d-fb04c0e13f79",
"errorDetail": "",
"failedEntryCount": 0,
"failedEntryIds": [],
"lastUpdatedTimestamp": 1684329799224,
"status": "COMPLETED",
"successEntryCount": 2,
"uploadId": "cfb8dfa7-f6d8-3cbe-b7eb-60400d512260"
}
]
}
音声通話レコード画面上の音声通話レコードの会話コンポーネントに、登録した文字起こしデータが表示されることを確認します。
アップロードファイル内の記載順序のとおり、会話コンポーネント上でも文字起こしは表示され、この表示順序をデータ登録後に入れ替えることはできません。
このため、順序を入れ替える必要がある場合、ConversationEntry レコードを削除した上で、再登録を行う必要があります。
なお、ConversationEntry レコードは Apex などにより削除することが可能です。
000395383

We use three kinds of cookies on our websites: required, functional, and advertising. You can choose whether functional and advertising cookies apply. Click on the different cookie categories to find out more about each category and to change the default settings.
Privacy Statement
Required cookies are necessary for basic website functionality. Some examples include: session cookies needed to transmit the website, authentication cookies, and security cookies.
Functional cookies enhance functions, performance, and services on the website. Some examples include: cookies used to analyze site traffic, cookies used for market research, and cookies used to display advertising that is not directed to a particular individual.
Advertising cookies track activity across websites in order to understand a viewer’s interests, and direct them specific marketing. Some examples include: cookies used for remarketing, or interest-based advertising.