このドキュメントでは、一括メールのステータス エンドポイント POST
/apps/api/v1/email/update_status について説明します。このエンドポイントを使用すると、最大 100 件のメール セッションのステータスを指定したステータスに変更できます。指定したメール セッションごとに、更新されたかどうか、変更が必要なかったかどうか、更新できなかったかどうかと、その理由がレポートされます。つまり、統合で部分的な成功を処理し、注意が必要なセッションを特定できます。
一括メールのステータス エンドポイントは、次のユースケースをサポートしています。
大量のメールキューを管理しており、多くのセッションを一度に一時停止、解決、終了する必要がある。
ビジネスルールに基づいてメール セッションを移行する外部ワークフローを実行します(たとえば、営業時間外にセッションのバッチを一時停止するなど)。
各メール セッションの結果をレポートする単一のオペレーションが必要です。これにより、統合で新しいステータスに移行しなかったセッションを再試行または調整できます。
認証
認証については、基本認証をご覧ください。
エンドポイントの使用方法
一括メール ステータス エンドポイントを呼び出すには、ターゲット ステータスと、ステータスを更新するメール セッションのセッション ID のリストを指定します。リクエストごとに指定できるターゲット ステータスは 1 つだけです。セッションのステータスを更新するには、別のリクエストを送信します。
セッションのステータスを更新できるのは、API トークンを所有するインスタンス内のメール セッションのみです。インスタンスにないメール セッションのセッション ID は、"result": "failure" と "reason": "not_found" でマークされます。
セッションを closed に移行すると、それらのセッションに対して構成された CRM 同期がトリガーされる可能性があります。
更新するメール セッションのセッション ID を取得する方法については、メール セッションとメッセージを取得するをご覧ください。
有効なステータス遷移
ターゲット ステータスを指定すると、有効なソース ステータスからターゲット ステータスにのみ移行できます。現在のステータスがターゲットの有効なソースではないセッションは、ステータスが変更されず、"reason":
"invalid_transition" でマークされます。
次の表に、指定できるターゲット ステータスと、各ターゲットの有効なソース ステータスを示します。
| ターゲット ステータス | 有効なソースのステータス |
|---|---|
active |
unopened、reopened、paused |
paused |
active |
resolved |
active |
closed |
paused、resolved |
メール セッションのステータスを更新する
メール セッションのステータスを更新するには、次のエンドポイントに POST リクエストを送信します。
https://YOUR_CCAAS_HOST/apps/api/v1/email/update_status
次の構造のリクエスト本文を含めます。
{
"session_ids": [
"SESSION_ID"
],
"new_email_status": "NEW_EMAIL_STATUS"
}
次のように置き換えます。
YOUR_CCAAS_HOST: CCAI プラットフォーム ホスト。SESSION_ID: 最大 100 個のメール セッション ID の文字列配列(例:["123", "456", "789"])。空の値は拒否されます。NEW_EMAIL_STATUS: リクエスト内のすべてのセッションに適用されるターゲット ステータス。有効な値:active、paused、resolved、closed。
省略可: 最後に読み取った後に変更されたメール セッションのセッション ステータスの更新を防ぐには、リクエスト本文に次のフィールドを含めます。
{
"existing_email_status": "EXISTING_EMAIL_STATUS"
}
EXISTING_EMAIL_STATUS は、unopened、active、paused、resolved、closed、reopened のいずれかのステータスに置き換えます。existing_email_status を含めて、セッションがこのステータスでない場合、理由 stale_state で失敗します。
出力は次のようになります。
{
"results": [
{ "session_id": "123", "from_status": "active", "to_status": "paused", "result": "success" },
{ "session_id": "456", "result": "failure", "reason": "invalid_transition", "current_status": "closed" },
{ "session_id": "789", "result": "noop", "current_status": "paused" }
]
}
レスポンスのフィールド
results 配列には次のフィールドが含まれます。
session_id: リクエストのターゲットとなるセッションの ID。from_status: 更新前のセッションのステータス。to_status: 更新後のセッションのステータス。result: 更新の結果。値は次のいずれかです。success: セッションのステータスが更新されました。結果にはfrom_statusとto_statusが含まれます。failure: セッションのステータスが更新されませんでした。結果にはreasonとcurrent_statusが含まれます。noop: セッションはすでにターゲット ステータスにあるため、更新は必要ありませんでした。結果にはcurrent_statusが含まれます。
reason: ステータスの更新が失敗した理由。値は次のいずれかです。not_found: インスタンス内のメール セッションが、指定されたセッション ID と一致しません。再試行しても成功しません。invalid_transition: セッションの現在のステータスが、指定されたターゲット ステータスの有効なソース ステータスではありません。stale_state:existing_email_statusが含まれており、セッションの現在のステータスが一致しませんでした。internal_error: 予期しないエラーが発生しました。リクエストを再試行できます。
current_status: リクエストが処理されたときのセッションのステータス。
エラー メッセージ
一括メール ステータス エンドポイントは、次のエラー メッセージを返します。
400 Bad Request: リクエスト本文の形式が正しくない、session_idsがないか空である、session_idsが 100 個の要素を超えている、new_email_statusがないか受け入れ可能なステータスではない、existing_email_statusが有効なステータスではない。401 Unauthorized: 認証に失敗したか、認証情報がApiUserトークンではありません。404 Not Found: エンドポイントがインスタンスで使用できません。
次のステップ
- メール セッションとメッセージを取得する: メール インタラクション レコードをクエリして、更新するセッションを見つけます。