送信メッセージとテンプレート

エージェントからWhatsAppの会話と通話を開始します

概要

エージェントが自由形式のWhatsAppメッセージを送信できるのは、アクティブな会話内のみです。通知、再エンゲージメント、予定された通話などで先にユーザーへ連絡するには、Metaが承認したメッセージテンプレートを送信します。このページでは、テンプレートの作成、アウトバウンドメッセージと通話の送信、そして大規模な運用について説明します。

WhatsApp Managerでテンプレートを作成する

テンプレートの作成と承認はElevenLabsではなく、WhatsApp Managerで行います。

テンプレートを作成する際は、以下を行ってください。

  • カテゴリを選択します。取引メッセージにはUtility、プロモーションメッセージにはMarketing、認証コードにはAuthenticationを選択します。Metaではカテゴリごとに料金とレート制限が異なります。詳しくはWhatsAppの料金を確認してください。
  • パラメータ形式を選択します。位置指定({{1}}、{{2}})または名前付き({{customer_name}})です。名前付きパラメータでは、送信する各値にparameter_nameが必要です。
  • 承認を申請します。通常、承認には数分から数時間かかります。保留中または却下されたテンプレートは送信できません。APIはリクエストを受け付けますが、Metaはメッセージを配信しません。

Metaは、1人のユーザーが一定期間内に受信できるマーケティングテンプレート の数を制限しています。マーケティングテンプレートが通知なく配信されない場合、この制限がよくある原因です(Metaエラー131049)。

アウトバウンドメッセージを送信する

テンプレートメッセージを送信すると、新しい会話が開始されます。ユーザーが返信するまでエージェントは応答しません。テンプレート自体が最初のメッセージであり、ユーザーが応答するまで会話タイマーは開始されません。

WhatsAppページに移動し、アカウントを選択して、Outbound -> Messageボタンをクリックします。エージェントを選択し、WhatsAppユーザーIDを入力して、メッセージテンプレートとそのパラメータを選択します。

WhatsAppのアウトバウンドメッセージダイアログ

完全なリクエストスキーマについては、APIリファレンスを確認してください。

AIアシスタントは、これらの例をテンプレートに合わせて調整できます。ElevenLabsドキュメントの llms.txt(またはより詳細なllms-full.txt)を参照させ、WhatsApp Managerの テンプレート定義を貼り付けてリクエストを求めてください。テンプレートに適したtemplate_paramsを含むcURL コマンドまたはSDK呼び出しが生成されます。

テンプレートパラメータ

template_paramsは、パラメータを持つテンプレートコンポーネントごとに1つずつ含む、コンポーネントオブジェクトのリストです。

  • 本文プレースホルダーには{"type": "body", "parameters": [...]}
  • パラメータ化されたヘッダー(テキスト、画像、ドキュメント、位置情報)には{"type": "header", "parameters": [...]}
  • ボタンパラメータには{"type": "button", "sub_type": ..., "index": ..., "parameters": [...]}

parametersの各エントリは、{"type": "text", "text": "Daniele"}のような値オブジェクトです。名前付きパラメータを使用するテンプレートでは、各値にparameter_nameを含めてください。たとえば{"type": "text", ...}をtemplate_paramsに直接渡すなど、コンポーネントラッパーを省略すると拒否されます。

受信者番号の形式

whatsapp_user_idには、国番号に続けて数字のみを含める必要があります。+、スペース、ハイフンは使用できません。たとえば、+1 (415) 555-2671ではなく14155552671です。

国によっては、WhatsAppが人物に使用するIDが、その人のダイヤル番号と異なります。たとえばメキシコの番号では国番号の後に追加の1が付き(521...)、ブラジルの番号では9桁目を含む場合と含まない場合があります。ユーザーから以前にメッセージを受け取っている場合は、会話履歴からコピーできる、その以前の会話のwhatsapp_user_idを使用してください。

動的変数、ブランチ、環境

conversation_initiation_client_dataフィールドでは、会話の動的変数を設定し、特定のエージェントブランチと環境に固定できます。

{
"dynamic_variables": { "customer_name": "Daniele" },
"branch_id": "agtbrch_8721kwarbs83e233mg1fzkaf9pg0",
"environment": "staging"
}

これらの設定は会話中維持されます。ユーザーが返信すると、エージェントは指定されたブランチと環境で再開します。ブランチと環境は最初に検証され、どちらかが存在しない場合、リクエストはエラーになりメッセージは送信されません。

このリクエストフィールドにより、アウトバウンド会話に動的変数を渡します。インバウンド会話では、代わりに会話開始Webhookから受け取ります。詳しくは初期化コンテキストを参照してください。

テンプレートパラメータはテンプレートテキストにのみ値を挿入し、エージェントには公開されません。エージェントがテンプレート内の値(顧客名など)を必要とする場合は、dynamic_variablesでもう一度渡してください。

送信後

リクエストが成功するとconversation_idが返され、レンダリングされたテンプレートが最初のメッセージとして会話履歴に表示されます。ユーザーが返信するまでエージェントは実行されません。テンプレートの送信では、最大継続時間タイマーも非アクティブタイマーも開始されません。どちらも会話の再開後に開始します。200レスポンスはElevenLabsがリクエストを受け付けたことを意味しますが、その後Metaが配信を拒否する可能性はあります。メッセージが届かない場合は、トラブルシューティングを確認してください。

アウトバウンド通話をスケジュールする

アウトバウンドWhatsApp通話にはユーザーの許可が必要です。詳しくはユーザー通話の許可を参照してください。WhatsApp Managerで、通話許可リクエストコンポーネントを含むメッセージテンプレートを作成します。通話をスケジュールすると、ElevenLabsは許可状態を確認します。

  • すでに許可されている場合:すぐに通話を発信します。
  • まだ許可をリクエストしていない場合:許可リクエストテンプレートを送信し、ユーザーが承認するとすぐに通話を発信します。
  • 許可が拒否された場合:会話はUser declined the call permission request.という理由で失敗として記録されます。

WhatsAppページに移動し、アカウントを選択して、Outbound -> Callボタンをクリックします。エージェントを選択し、WhatsAppユーザーIDを入力して、通話許可リクエストテンプレートを選択します。

WhatsAppのアウトバウンド通話ダイアログ

完全なリクエストスキーマについては、APIリファレンスを確認してください。アウトバウンドメッセージと同様に、conversation_initiation_client_dataで動的変数を設定し、会話をブランチと環境に固定します。不明なブランチまたは環境は、通話をスケジュールする前に拒否されます。

Metaは、アウトバウンド通話、およびカスタマーサービスウィンドウ 外で送信された通話許可リクエストに料金を請求します。通話をスケジュールする前に、WhatsApp Managerで支払い方法を追加してください。

キャンペーンとバッチ処理

多数のユーザーに通話するには、whatsapp_paramsを使用したバッチ通話を利用します。電話番号IDと通話許可リクエストテンプレートを一度指定し、受信者ごとにwhatsapp_user_idを指定します。

現在、アウトバウンドメッセージ用のネイティブなバッチエンドポイントはありません。テンプレートキャンペーンでは、受信者ごとにアウトバウンドメッセージエンドポイントを呼び出し、番号に対するMetaのメッセージング制限を守ってください。詳しくはメッセージング制限を参照してください。