チャット プラットフォームの API エンドポイント

チャット プラットフォームの API エンドポイントは、チャット オブジェクトへのアクセスを提供します。Contact Center AI プラットフォーム(CCAI プラットフォーム)との間でやり取りされるすべてのチャットに対して、チャット オブジェクトが作成されます。

チャット プラットフォームの API エンドポイントは次のとおりです。

Chat オブジェクト

CCAI Platform のモバイル チャット セッションとウェブ チャット セッションごとにチャット オブジェクトが作成されます。チャット オブジェクトは次のとおりです。

{
    "id": "integer",
    "status": "string",
    "status_text": "string",
    "features": [
        "string",
        "string"
    ],
    "created_at": "string",
    "ends_at": "string",
    "timeout_at": "string",
    "agent": {
        "id": "integer",
        "name": "string",
        "first_name": "string",
        "avatar_url": "string",
        "status": "string"
    },
    "virtual_agent": {
        "id": "integer",
        "name": "string",
        "avatar_url": "string",
        "status": "string"
    },
    "all_agents": [
        {
            "id": "integer",
            "name": "string",
            "first_name": "string",
            "avatar_url": "string",
            "status": "string"
        },
        {
            "id": "integer",
            "name": "string",
            "first_name": "string",
            "avatar_url": "string",
            "status": "string"
        }
    ],
    "all_virtual_agents": [
        {
            "id": "integer",
            "name": "string",
            "avatar_url": "string",
            "status": "string"
        },
        {
            "id": "integer",
            "name": "string",
            "avatar_url": "string",
            "status": "string"
        }
    ],
    "lang": "string",
    "menus": [
        {
            "id": "integer",
            "name": "string"
        },
        {
            "id": "integer",
            "name": "string"
        }
    ],
    "end_user": {
        "id": "integer",
        "identifier": "string"
    }
}

チャットを更新する

パラメータ 必須 データ型 定義
id TRUE Integer 更新するチャット ID

エンドポイント:

Method: PATCH
Type: RAW
URL: https://{subdomain}.​{domain}​/apps/api/v1/chats/:id

ヘッダー:

キー 説明
Content-Type application/json
同意する application/json

本文:

{
    "finished_by_user_id": "integer",
    "chat": {
        "deflection_channel": "string",
        "status": "string",
        "escalation_id": "integer"
    }
}

リクエストとレスポンスの例

以降のセクションでは、エンドポイントに対するリクエストの例を示します。

チャットを更新する

この例は、既存のチャットの更新が成功したことを示しています。

リクエスト

ヘッダー:

キー 説明
Content-Type application/json
同意する application/json

クエリ:

キー 説明
id Integer (必須)

本文:

{
    "finished_by_user_id": "integer",
    "chat": {
        "deflection_channel": "string",
        "status": "finished",
        "escalation_id": "integer"
    }
}
レスポンス
{
    "id": "integer",
    "status": "string",
    "status_text": "string",
    "features": [
        "string",
        "string"
    ],
    "created_at": "string",
    "ends_at": "string",
    "timeout_at": "string",
    "agent": {
        "id": "integer",
        "name": "string",
        "first_name": "string",
        "avatar_url": "string",
        "status": "string"
    },
    "virtual_agent": {
        "id": "integer",
        "name": "string",
        "avatar_url": "string",
        "status": "string"
    },
    "all_agents": [
        {
            "id": "integer",
            "name": "string",
            "first_name": "string",
            "avatar_url": "string",
            "status": "string"
        },
        {
            "id": "integer",
            "name": "string",
            "first_name": "string",
            "avatar_url": "string",
            "status": "string"
        }
    ],
    "all_virtual_agents": [
        {
            "id": "integer",
            "name": "string",
            "avatar_url": "string",
            "status": "string"
        },
        {
            "id": "integer",
            "name": "string",
            "avatar_url": "string",
            "status": "string"
        }
    ],
    "lang": "string",
    "menus": [
        {
            "id": "integer",
            "name": "string"
        },
        {
            "id": "integer",
            "name": "string"
        }
    ],
    "end_user": {
        "id": "integer",
        "identifier": "string"
    }
}

ステータス コード: 200

チャットでメッセージを送信する

このメソッドは、既存のチャット セッションでメッセージを送信する機能を提供します。

パラメータ 必須 データ型 定義
id TRUE Integer メッセージを送信するチャット ID。

エンドポイント:

Method: POST
Type: RAW
URL: https://{subdomain}.​{domain}​/apps/api/v1/chats/:id/message

ヘッダー:

キー 説明
Content-Type application/json

本文:

{
    "from_user_id": integer,
    "message": {
            "type": "string",
            "content": "string"
            }
    }
}

リクエストとレスポンスの例

以降のセクションでは、エンドポイントに対するリクエストの例を示します。

メッセージの送信に成功しました

この例は、既存のチャット セッションへのメッセージの送信が成功した場合を示しています。

リクエスト

ヘッダー:

キー 説明
Content-Type application/json
同意する application/json

クエリ:

キー 説明
id Integer (必須)

本文:

{
    "from_user_id": integer,
    "message": {
            "type": "string",
            "content": : "string"
            }
    }
}
レスポンス
{
}

ステータス コード: 200

仮想エージェントのチャットをエスカレーションする

仮想エージェントから人間のエージェントにチャットをエスカレーションします。

パラメータ 必須 データ型 定義
chat_id TRUE Integer エスカレーションに必要なチャット ID。

エンドポイント:

Method: POST
Type: RAW
URL: https://{subdomain}.​{domain}​/apps/api/v1/chats/:chat_id/escalations

ヘッダー:

キー 説明
Content-Type application/json
同意する application/json

本文:

{
    "reason": "string",
    "force_escalate": "boolean"
}

リクエストとレスポンスの例

以降のセクションでは、エンドポイントに対するリクエストの例を示します。

チャットのエスカレーションに成功

この例は、既存のチャットを人間のエージェントにエスカレーションするリクエストを示しています。

リクエスト

ヘッダー:

キー 説明
Content-Type application/json
同意する application/json

クエリ:

キー 説明
chat_id Integer (必須)

本文:

{
    "reason": "by_end_user_ask",
    "force_escalate": true
}
レスポンス
{
    "id": "integer",
    "chat_id": "integer",
    "status": "string"
}

ステータス コード: 200

エスカレーションを更新する

偏向チャネルの選択にのみ使用されます。

パラメータ 必須 データ型 定義
chat_id TRUE Integer 偏向メニュー ID を更新するために必要なチャット ID。
id TRUE Integer 必須のメニュー ID。

エンドポイント:

Method: PATCH
Type: RAW
URL: https://{subdomain}.​{domain}​/apps/api/v1/chats/:chat_id/escalations/:id

ヘッダー:

キー 説明
Content-Type application/json

本文:

{
    "deflection_channel": "string"
}

リクエストとレスポンスの例

以降のセクションでは、エンドポイントに対するリクエストの例を示します。

エスカレーションの更新が成功しました

この例は、エスカレーション チャネルの更新が成功した場合を示しています。

リクエスト

ヘッダー:

キー 説明
Content-Type application/json
同意する application/json

クエリ:

キー 説明
chat_id Integer (必須)
id Integer (必須)

本文:

{
    "deflection_channel": "string"
}
レスポンス
{
    "id": "integer",
    "chat_id": "integer",
    "status": "string"
}

ステータス コード: 200

アップロードした写真をチャットに追加する

メディア ストレージにアップロードされた写真をチャットに追加する

パラメータ 必須 データ型 定義
chat_id TRUE Integer 写真を追加するのに必要なチャット ID。

エンドポイント:

Method: POST
Type: RAW
URL: https://{subdomain}.​{domain}/apps/api/v1/chats/:chat_id/photos

ヘッダー:

キー 説明
Content-Type application/json
同意する application/json

本文:

{
    "photo": [
        {
            "s3_path": "string",
            "photo_type": "string"
        },
        {
            "s3_path": "string",
            "photo_type": "string"
        }
    ]
}

リクエストとレスポンスの例

以降のセクションでは、エンドポイントに対するリクエストの例を示します。

チャットに写真を追加しました

次の例は、メディア ストレージにアップロードされた写真を既存のチャット会話に追加する方法を示しています。

リクエスト

ヘッダー:

キー 説明
Content-Type application/json
同意する application/json

クエリ:

キー 説明
chat_id Integer (必須)

本文:

{
    "photo": [
        {
            "s3_path": "string",
            "photo_type": "string"
        },
        {
            "s3_path": "string",
            "photo_type": "string"
        }
    ]
}
レスポンス
{
    "url": "string",
    "media_id": "integer"
}

ステータス コード: 200

チャットからすべての写真を取得する

チャットに添付されているすべての写真のメディア ID とストレージ URL を取得します。

パラメータ 必須 データ型 定義
chat_id TRUE Integer メディア情報を取得するために必要なチャット ID。

エンドポイント:

Method: GET
Type:
URL: https://{subdomain}.​{domain}​/apps/api/v1/chats/:chat_id/photos

ヘッダー:

キー 説明
同意する application/json

リクエストとレスポンスの例

以降のセクションでは、エンドポイントに対するリクエストの例を示します。

チャットのチャット写真情報の取得に成功しました

この例は、既存のチャット セッションの写真情報を取得するための API 呼び出しが成功した場合を示しています。

リクエスト

ヘッダー:

キー 説明
同意する application/json

クエリ:

キー 説明
chat_id Integer (必須)
レスポンス
[
    {
        "url": "string",
        "media_id": "integer"
    },
    {
        "url": "string",
        "media_id": "integer"
    }
]

ステータス コード: 200

署名付きの写真アップロード URL を取得する

写真の事前署名付きアップロード URL を取得するために使用されます。

パラメータ 必須 データ型 定義
chat_id TRUE Integer 事前署名付き写真 URL に関連付けられる必須のチャット ID。

エンドポイント:

Method: POST
Type: RAW
URL: https://{subdomain}.​{domain}​/apps/api/v1/chats/:chat_id/photos/upload

ヘッダー:

キー 説明
Content-Type application/json
同意する application/json

リクエストとレスポンスの例

以降のセクションでは、エンドポイントに対するリクエストの例を示します。

アップロード用の署名付き URL の取得に成功しました

次の例は、写真のアップロード用の署名付き URL の取得に成功したリクエストの例です。

リクエスト

ヘッダー:

キー 説明
同意する application/json

クエリ:

キー 説明
chat_id Integer (必須)
レスポンス
{
    "url": "string",
    "fields": {
        "key": "string",
        "success_action_status": "string",
        "Content-Type": "string",
        "Cache-Control": "string",
        "acl": "string",
        "policy": "string",
        "x-amz-credential": "string",
        "x-amz-algorithm": "string",
        "x-amz-date": "string",
        "x-amz-security-token": "string",
        "x-amz-signature": "string",
        "x-goog-algorithm": "string",
        "x-goog-credential": "string",
        "x-goog-date": "string",
        "x-goog-signature": "string"
    }
}

ステータス コード: 200

アップロードした動画をチャットに追加する

メディア ストレージにアップロードした動画をチャットに追加します。

パラメータ 必須 データ型 定義
chat_id TRUE Integer 動画を関連付ける必要がある必須のチャット ID。

エンドポイント:

Method: POST
Type: RAW
URL: https://{subdomain}.​{domain}​/apps/api/v1/chats/:chat_id/videos

ヘッダー:

キー 説明
Content-Type application/json
同意する application/json

本文:

{
    "video": {
        "s3_path": "string",
        "gcs_path": "string"
    }
}

リクエストとレスポンスの例

以降のセクションでは、エンドポイントに対するリクエストの例を示します。

チャット セッションへの動画のアップロードが成功した

この例は、チャット セッションへの動画のアップロードが成功したことを示しています。

リクエスト

ヘッダー:

キー 説明
同意する application/json

クエリ:

キー 説明
chat_id Integer (必須)

本文:

{
    "photo": [
        {
            "s3_path": "string",
            "photo_type": "string"
        },
        {
            "s3_path": "string",
            "photo_type": "string"
        }
    ]
}
レスポンス
Body
{
    "url": "string",
    "media_id": "integer"
}

ステータス コード: 200

チャットからすべての動画を取得する

チャットに添付されているすべての動画のメディア ID とストレージ URL を取得します。

パラメータ 必須 データ型 定義
chat_id TRUE Integer 動画 URL を取得するのに必要なチャット ID。

エンドポイント:

Method: GET
Type:
URL: https://{subdomain}.​{domain}​/apps/api/v1/chats/:chat_id/videos

ヘッダー:

キー 説明
Content-Type application/json
同意する application/json

リクエストとレスポンスの例

以降のセクションでは、エンドポイントに対するリクエストの例を示します。

チャットのすべての動画 URL を取得する

この例は、既存のチャットのすべての動画 URL を取得する方法を示しています。

リクエスト

ヘッダー:

キー 説明
同意する application/json

クエリ:

キー 説明
chat_id Integer (必須)
レスポンス
[
    {
        "url": "string",
        "media_id": "integer"
    },
    {
        "url": "string",
        "media_id": "integer"
    }
]

ステータス コード: 200

事前署名付き動画アップロード URL を取得する

動画の事前署名付きアップロード URL を取得するために使用されます。

パラメータ 必須 データ型 定義
chat_id TRUE Integer 事前署名付き動画 URL に関連付けられる必須のチャット ID。

エンドポイント:

Method: POST
Type: RAW
URL: https://{subdomain}.​{domain}​/apps/api/v1/chats/:chat_id/videos/upload

ヘッダー:

キー 説明
Content-Type application/json
同意する application/json

リクエストとレスポンスの例

以降のセクションでは、エンドポイントに対するリクエストの例を示します。

動画アップロード用の署名付き URL の取得に成功しました

以下は、動画アップロード用の署名付き URL の取得を含むリクエストが成功した場合の例です。

リクエスト

ヘッダー:

キー 説明
同意する application/json

クエリ:

キー 説明
chat_id Integer (必須)
レスポンス
{
    "url": "string",
    "fields": {
        "key": "string",
        "success_action_status": "string",
        "Content-Type": "string",
        "Cache-Control": "string",
        "acl": "string",
        "policy": "string",
        "x-amz-credential": "string",
        "x-amz-algorithm": "string",
        "x-amz-date": "string",
        "x-amz-security-token": "string",
        "x-amz-signature": "string",
        "x-goog-algorithm": "string",
        "x-goog-credential": "string",
        "x-goog-date": "string",
        "x-goog-signature": "string"
    }
}

ステータス コード: 200

チャットを作成する

新しいチャット セッションを開始します。

リクエストの例

メソッド: POST

URL: https://{subdomain}.{domain}/apps/api/v1/chats

ヘッダー

キー 説明
Content-Type application/json
同意する application/json

本文

{
    "chat": {
        "menu_id": "integer",
        "end_user_id": "integer",
        "lang": "string",
        "email": "string",
        "context": "object",
        "transcript": "object"
    },
    "end_user": {
        "phone": "string"
    }
}

Context:(コンテキスト:)

context オブジェクトには value オブジェクトが含まれており、このオブジェクトがチャットの会話にメタデータを渡します。context オブジェクトを符号なしデータ パラメータとして仮想エージェントに渡すことができます。次の例をご覧ください。

{
    "context": {
        {"value":
            {"foo": "bar",
             "key": "value"}
        }
    }
}

この例では、受信フィールドの符号なしデータ パラメータ値は context で、宛先フィールドは context に設定できます。これにより、$session.params.context.foo または $session.params.context.key を使用できるようになります。

レスポンスの例

{
    "id": "integer",
    "status": "string",
    "status_text": "string",
    "features": [
        "string",
        "string"
    ],
    "created_at": "string",
    "ends_at": "string",
    "timeout_at": "string",
    "agent": {
        "id": "integer",
        "name": "string",
        "first_name": "string",
        "avatar_url": "string",
        "status": "string"
    },
    "virtual_agent": {
        "id": "integer",
        "name": "string",
        "avatar_url": "string",
        "status": "string"
    },
    "all_agents": [
        {
            "id": "integer",
            "name": "string",
            "first_name": "string",
            "avatar_url": "string",
            "status": "string"
        },
        {
            "id": "integer",
            "name": "string",
            "first_name": "string",
            "avatar_url": "string",
            "status": "string"
        }
    ],
    "all_virtual_agents": [
        {
            "id": "integer",
            "name": "string",
            "avatar_url": "string",
            "status": "string"
        },
        {
            "id": "integer",
            "name": "string",
            "avatar_url": "string",
            "status": "string"
        }
    ],
    "lang": "string",
    "menus": [
        {
            "id": "integer",
            "name": "string"
        },
        {
            "id": "integer",
            "name": "string"
        }
    ],
    "end_user": {
        "id": "integer",
        "identifier": "string"
    }
}

ID でチャットを返します

このメソッドは、指定されたチャット ID のチャット オブジェクトを返します。

エンドポイント:

Method: GET
Type:
URL: https://{subdomain}.​{domain}/apps/api/v1/chats/:id

ヘッダー:

キー 説明
Content-Type application/json
同意する application/json

クエリ:

キー 説明
chat_id Integer (必須)

リクエストとレスポンスの例

以降のセクションでは、エンドポイントに対するリクエストの例を示します。

チャットを正常に取得する

次の例は、既存のチャット ID のリクエストが成功した場合を示しています。

リクエスト

ヘッダー:

キー 説明
Content-type application/json
同意する application/json

クエリ:

キー 説明
chat_id Integer (必須)
レスポンス
{
    "id": "integer",
    "status": "string",
    "status_text": "string",
    "features": [
        "string",
        "string"
    ],
    "created_at": "string",
    "ends_at": "string",
    "timeout_at": "string",
    "agent": {
        "id": "integer",
        "name": "string",
        "first_name": "string",
        "avatar_url": "string",
        "status": "string"
    },
    "virtual_agent": {
        "id": "integer",
        "name": "string",
        "avatar_url": "string",
        "status": "string"
    },
    "all_agents": [
        {
            "id": "integer",
            "name": "string",
            "first_name": "string",
            "avatar_url": "string",
            "status": "string"
        },
        {
            "id": "integer",
            "name": "string",
            "first_name": "string",
            "avatar_url": "string",
            "status": "string"
        }
    ],
    "all_virtual_agents": [
        {
            "id": "integer",
            "name": "string",
            "avatar_url": "string",
            "status": "string"
        },
        {
            "id": "integer",
            "name": "string",
            "avatar_url": "string",
            "status": "string"
        }
    ],
    "lang": "string",
    "menus": [
        {
            "id": "integer",
            "name": "string"
        },
        {
            "id": "integer",
            "name": "string"
        }
    ],
    "end_user": {
        "id": "integer",
        "identifier": "string"
    }
}

ステータス コード: 200

チャット中に予約済みデータ属性を取得する

エンドポイント

Method: GET
Type: RAW
URL: https://{subdomain}.{domain}/apps/api/v1/chats/:id/customer_flag

リクエストとレスポンスの例

このセクションでは、エンドポイントのリクエストとレスポンスの例を示します。

成功

この例は、呼び出しが成功した場合を示しています。

リクエスト

ヘッダー

キー 説明
同意する application/json

URL 変数

キー 説明
id integer (必須)
レスポンス
{
    "verified_customer": "boolean",
    "bad_actor": "boolean",
    "repeat_customer": "boolean"
}

ステータス コード 0

チャット中に予約済みデータ属性を更新する

エンドポイント

Method: POST
Type: RAW
URL: https://{subdomain}.{domain}/apps/api/v1/chats/:id/customer_flag

URL 変数

キー 説明
id integer (必須)

本文

{
    "verified_customer": "boolean",
    "bad_actor": "boolean",
    "repeat_customers": "boolean"
}

チャットでカスタムデータを送信する

チャットでカスタムデータを送信します。

リクエストの例

メソッド: POST

URL: https//{subdomain}.{domain}/apps/api/v1/chats/:id/custom_data

ヘッダー

キー 説明
Content-Type application/json

URL 変数

キー 説明
id (必須)

レスポンスの例

// Use unsecured parameter
{
"signed": false,
"data": {
// Start customer_flag fields
"reserved_verified_customer": {
"label": "LABEL 1",
"value": true
},
"reserved_bad_actor": {
"label": "LABEL 2",
"value": false
},
"reserved_repeat_customer": {
"label": "LABEL 3",
"value": true
},
// End customer_flag fields
"field1": {
"label": "LABEL 4",
"value": "dummy1"
},
"field2": {
"label": "LABEL 5",
"value": "dummy2"
}
}
}
// Use secured parameter
// {
// "signed": true,
// "signed_data": "eyJhbGciOiJIUzI1NiJ9.eyJjdXN0b21fZGF0YSI6eyJyZXNlcnZlZF92ZXJpZmllZF9jdXN0b21lciI6eyJ2YWx1ZSI6ZmFsc2V9LCJyZXNlcnZlZF9iYWRfYWN0b3IiOnsidmFsdWUiOnRydWV9LCJyZXNlcnZlZF9yZXBlYXRfY3VzdG9tZXIiOnsidmFsdWUiOmZhbHNlfSwiZmllbGQxIjp7InZhbHVlIjoiZHVtbXkxMTEifSwiZmllbGQyIjp7InZhbHVlIjoiZHVtbXkyMjIifX0sImV4cCI6MTcyOTY4MzU5MywiaWF0IjoxNzI5Njc5OTkzfQ.BMskgKTM3DbgrMLWjI46ZJ1K73H25JRd16SgHK0A1Ts"
// }
// ======================= How to create <signed_data> =======================
// payload = {
// "custom_data": {
// // Start customer_flag fields
// "reserved_verified_customer": {
// "label": "LABEL 1",
// "value": true
// },
// "reserved_bad_actor": {
// "label": "LABEL 2",
// "value": false
// },
// "reserved_repeat_customer": {
// "label": "LABEL 3",
// "value": true
// },
// // End customer_flag fields
// "field1": {
// "label": "LABEL 4",
// "value": "dummy1"
// },
// "field2": {
// "label": "LABEL 5",
// "value": "dummy2"
// }
// },
// "exp": 1734567890, // expiration timestamp
// "iat": 1734560000 // issue timestamp
// }
// signed_data = JWT.encode(payload, 'Company secret', 'HS256')
// ======================= End how to create <signed_data> =======================

進行中のチャット セッション中にエンドユーザーに最新情報を伝える

現在のアクティブなチャット セッションに関連付けられているエンドユーザーを更新します。また、CRM チケットにリンクされている連絡先情報も更新します。_Identifier は必須ですが、nameemailphone は省略可能です。

リクエストの例

メソッド: POST

URL: https//{subdomain}.{domain}/apps/api/v1/chats/:chat_id/end-user

ヘッダー

キー 説明
Content-Type application/json

URL 変数

キー 説明
chat_id

本文

{
    "identifier": "string",
    "name": "string",
    "email": "string",
    "phone": "string"
}

レスポンスの例

{
    "message": "accepted"
}