提供: Bright Pattern Documentation
移動先: 案内検索
• English

onValidateAssociatedRecords

このコールバックを使用すると、アクティビティレコードと関連付けられるインタラクションに関連するCRMレコードの検証手順を指定できます。インタラクションが完了しようとする際、Communicator Widgetはこのイベントを送信し、そのインタラクションに関連付けられた一連のCRMレコードを検証します(エージェントは、アクティビティ用のウィジェットUI上で、訪問済みのレコードを任意に選択できます)。 統合において、アクティビティ履歴として有効となるレコードのセットに特定のルールが必要な場合は、このコールバックハンドラーにそのロジックを実装してください。このイベントに対するハンドラーを指定しない場合、どのCRMレコードのセットも有効として承認されます。

ハンドラーは RecordsValidationResult オブジェクトを返す必要があります。「valid」true の場合、レコードのセットは承認され、インタラクション完了の処理が継続されます。「valid」false の場合、処理は中止され、エージェントに選択の変更が求められます。

リクエスト

構文

on('ON_VALIDATE_ASSOCIATED_RECORDS', handler: OnValidateAssociatedRecordsHandler): void



type OnValidateAssociatedRecordsHandler = (interactionId: string, records: InteractionAssociatedObjectsData) => SyncAsyncResult<RECORDSVALIDATIONRESULT>

type InteractionAssociatedObjectsData = {

list: InteractionAssociatedObject[]

選択済: string[]

}

type InteractionAssociatedObject = {

id: string

type: string

displayName: string

displayType: string

customFields: Record<STRING, string>

}

type RecordsValidationResult = {

valid: boolean

メッセージ?: string

}


パラメータ

パラメータ パラメータ値 データ型 オプション/必須 説明
interactionId 文字列 必須 これらのレコードが関連付けられているインタラクションのidです。
records
オブジェクト 必須 アクセスおよび選択済CRMレコードに関するデータ
リスト オブジェクト[] 必須 インタラクション中にアクセスされたすべてのCRMレコードのリスト
選択済 文字列[] 必須 エージェントがアクティビティ履歴レコードに関連付けとして選択したCRMレコードid(上記のリストから選択済のもの)のリストです。これは、検証が必要なレコードのセットです。
InteractionAssociatedObject
オブジェクト オプション そのインタラクションに関連付けられた 1 つのオブジェクトに関するデータ
id 文字列 必須 レコードの一意のid
入力 文字列 必須 レコードの種類(連絡先、ケース、タスクなど)
displayName 文字列 必須 レコードの表示名
displayType 文字列 必須 レコードの表示タイプ
customFields オブジェクト 必須 レコードに関する追加情報

リクエスト例

// 有効な選択条件が「1件のケース+1件の連絡先」または「何も選択済でない」というルールに基づく検証例。
adApi.on("ON_VALIDATE_ASSOCIATED_RECORDS", (interactionId, records) => {

// 何も選択されていない場合は有効です
if (!records.selected.length) {

return { valid: true }

}

// 2件のレコードが選択されていない場合 - 無効です
if (records.selected.length !== 2) {

return { valid: false, message: "ケースを1件、連絡先を1件、正確に1つずつ選択してください。" }

}

const firstRecord = records.list.find(record => {

return record.id === records.選択済[0]

})

const secondRecord = records.list.find(record => {

return record.id === records.選択済[1]

})

// 型安全性の確認のみ
if (!firstRecord || !secondRecord) {

return { valid: false, message: "選択されたレコードが見つかりませんでした。" }

}

// 最終確認:1つのレコードが「ケース」、もう1つのレコードが「連絡先」である必要があります
if (
(firstRecord.type === "ケース" && secondRecord.type === "連絡先") ||
(firstRecord.type === "連絡先" && secondRecord.type === "ケース")
) {

return { valid: true }

} else {

return { valid: false, message: "ケースと連絡先をそれぞれ1件ずつ選択してください。" }

}

})

戻り値

オブジェクト オブジェクトの値 データ型 オプションですか?(はい/いいえ) 値の説明
RecordsValidationResult
オブジェクト 検証結果
有効 ブール値 検証処理の結果を示します
メッセージ 文字列 Y 検証に失敗した場合、ウィジェットの UI に表示される説明メッセージを指定できます
< 前へ | 次へ >