送信メッセージとテンプレート
送信メッセージとテンプレート
エージェントから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)。
アウトバウンドメッセージを送信する
テンプレートメッセージを送信すると、新しい会話が開始されます。ユーザーが返信するまでエージェントは応答しません。テンプレート自体が最初のメッセージであり、ユーザーが応答するまで会話タイマーは開始されません。
ダッシュボード
Python
TypeScript
cURL
WhatsAppページに移動し、アカウントを選択して、Outbound -> Messageボタンをクリックします。エージェントを選択し、WhatsAppユーザーIDを入力して、メッセージテンプレートとそのパラメータを選択します。

完全なリクエストスキーマについては、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フィールドでは、会話の動的変数を設定し、特定のエージェントブランチと環境に固定できます。
これらの設定は会話中維持されます。ユーザーが返信すると、エージェントは指定されたブランチと環境で再開します。ブランチと環境は最初に検証され、どちらかが存在しない場合、リクエストはエラーになりメッセージは送信されません。
このリクエストフィールドにより、アウトバウンド会話に動的変数を渡します。インバウンド会話では、代わりに会話開始Webhookから受け取ります。詳しくは初期化コンテキストを参照してください。
テンプレートパラメータはテンプレートテキストにのみ値を挿入し、エージェントには公開されません。エージェントがテンプレート内の値(顧客名など)を必要とする場合は、dynamic_variablesでもう一度渡してください。
送信後
リクエストが成功するとconversation_idが返され、レンダリングされたテンプレートが最初のメッセージとして会話履歴に表示されます。ユーザーが返信するまでエージェントは実行されません。テンプレートの送信では、最大継続時間タイマーも非アクティブタイマーも開始されません。どちらも会話の再開後に開始します。200レスポンスはElevenLabsがリクエストを受け付けたことを意味しますが、その後Metaが配信を拒否する可能性はあります。メッセージが届かない場合は、トラブルシューティングを確認してください。
アウトバウンド通話をスケジュールする
アウトバウンドWhatsApp通話にはユーザーの許可が必要です。詳しくはユーザー通話の許可を参照してください。WhatsApp Managerで、通話許可リクエストコンポーネントを含むメッセージテンプレートを作成します。通話をスケジュールすると、ElevenLabsは許可状態を確認します。
- すでに許可されている場合:すぐに通話を発信します。
- まだ許可をリクエストしていない場合:許可リクエストテンプレートを送信し、ユーザーが承認するとすぐに通話を発信します。
- 許可が拒否された場合:会話は
User declined the call permission request.という理由で失敗として記録されます。
ダッシュボード
Python
TypeScript
cURL
WhatsAppページに移動し、アカウントを選択して、Outbound -> Callボタンをクリックします。エージェントを選択し、WhatsAppユーザーIDを入力して、通話許可リクエストテンプレートを選択します。

完全なリクエストスキーマについては、APIリファレンスを確認してください。アウトバウンドメッセージと同様に、conversation_initiation_client_dataで動的変数を設定し、会話をブランチと環境に固定します。不明なブランチまたは環境は、通話をスケジュールする前に拒否されます。
Metaは、アウトバウンド通話、およびカスタマーサービスウィンドウ 外で送信された通話許可リクエストに料金を請求します。通話をスケジュールする前に、WhatsApp Managerで支払い方法を追加してください。
キャンペーンとバッチ処理
多数のユーザーに通話するには、whatsapp_paramsを使用したバッチ通話を利用します。電話番号IDと通話許可リクエストテンプレートを一度指定し、受信者ごとにwhatsapp_user_idを指定します。
現在、アウトバウンドメッセージ用のネイティブなバッチエンドポイントはありません。テンプレートキャンペーンでは、受信者ごとにアウトバウンドメッセージエンドポイントを呼び出し、番号に対するMetaのメッセージング制限を守ってください。詳しくはメッセージング制限を参照してください。