WhatsApp/SMS Business Messaging × Agent
記事状態: 公開 · 最終確認: 2026-10-05
要点
「エージェントはWhatsApp/SMS送信を実行できるが、送信APIの成功は配送・閲覧・業務成果を保証しない。会話window、template eligibility、同意・停止、重複防止、provider-side identifier、非同期状態、reconciliationを独立した制御として実装し、チャネル・契約・地域固有の条件を実環境で確認する。」
現在の判断
「エージェントはWhatsApp/SMS送信を実行できるが、送信APIの成功は配送・閲覧・業務成果を保証しない。会話window、template eligibility、同意・停止、重複防止、provider-side identifier、非同期状態、reconciliationを独立した制御として実装し、チャネル・契約・地域固有の条件を実環境で確認する。」
どこまで当てはまるか
WhatsApp/SMS Business Messaging × Agent
詳しく理解する
要点と前提
CANDIDATE_ID: ORPHAN-RESCUE-EA229-20261019-C1
要旨
企業がAIエージェントからWhatsAppやSMSを送る場合、LLMが文章を生成できることと、メッセージ送信が業務上成立することは別問題である。実運用では、チャネルごとの送信資格、会話ウィンドウやテンプレート制約、同意・オプトアウト、宛先と顧客IDの対応、重複送信防止、配送状態の非同期追跡、失敗時の再試行と照合、監査ログを、エージェントの推論から分離した制御面として持つ必要がある。エージェントには「送信を決める」権限と「任意の宛先へ自由に送る」能力を同一視させない。
主要記述・判断
Twilio Programmable Messagingでは、APIがメッセージを受理した時点の状態と、その後のsent / delivered / undelivered / read等の状態は区別される。WhatsAppやRCSではread 処理結果の受領記録が利用できる場合があるが、readは端末側設定やチャネル対応に依存する。したがって、API呼び出し成功を「相手に届いた」「相手が読んだ」と扱ってはならない。送信時にMessage SID等のprovider-side identifierを保存し、状態 callbackと後続照合を使って状態を追跡する設計が必要である。
WhatsAppでは、直近の利用者メッセージから24時間のcustomer service window内ではfree-form messageを送れる一方、window外のbusiness-initiated messageには承認済みtemplateが必要になる。Twilioの現行エラー文書では、2025-04-01以降、window外でtemplateを本文として送る方式ではなくContentSid/ContentVariablesを使う必要があると明記されている。したがってエージェントは、自然言語生成結果をそのまま任意時点でWhatsAppへ送るのではなく、conversation window判定とtemplate eligibilityを送信前policyとして適用すべきである。
状態 callbackは非同期Webhookであり、ネットワーク条件によって到着順が送信順と一致する保証がない。callbackのparameter setもchannel/イベントにより異なり、追加され得る。よって状態機械はcallback arrival orderだけに依存せず、Message SIDを主キーに、状態遷移の単調性・timestamp・提供元 fetchによるreconciliationを考慮する必要がある。Twilio自身も、一定時間状態が更新されない場合のpollingと、少なくとも日次のreconciliationを推奨している。
実装・運用
- 送信前に、組織の利用環境、sender、recipient、channel、consent/opt-out、conversation window、template eligibility、目的・分類、送信上限をpolicy engineで判定する。LLM出力だけで送信可否を決めない。
- send intentに内部重複実行を防ぐ性質 keyまたは業務操作IDを割り当て、提供元 Message SIDと対応付ける。処理待ち時間の上限や曖昧応答時に「失敗したはず」と推測して即時再送せず、provider-side recordを照合してから再試行する。
- accepted/queued/sent/delivered/read/failed/undeliveredを別状態として保持し、業務フローが要求する到達条件を明示する。例えば「API accepted」を顧客通知完了の証拠にしない。
- callback endpointではTwilio署名検証をSDK等の推奨手段で行い、未知parameterを拒絶する硬直データ形式の定義ではなく、既知必須項目を検証しつつ拡張に耐える実装とする。
- callback欠落や順序逆転を前提に、polling/reconciliation jobを持つ。監査ログには内部send intent、提供元 SID、宛先の安全な参照、template/content バージョン、policy decision、各状態 イベント、error code、reconciliation結果を残す。
- opt-outや配信停止、宛先誤り、番号再割当て、地域・契約・carrier/提供元制約はLLMでは解決できないため、送信基盤側のhard 確認・承認の条件として扱う。
適用境界
本candidateはTwilio Programmable Messagingを主要な実装例としてWhatsApp/SMS agent messagingの運用境界を整理する。Meta WhatsApp Business Platform直結、他SMS aggregator、各国の通信・広告規制、個別carrier DLR semantics、特定組織の利用環境の契約・料金・sender registration状態を一律に保証するものではない。提供元/channel/region/account 契約プランごとの差分は導入時に再確認する。
出典 / 出典・来歴 資料内の該当箇所
- 正式な EA 主体の識別: Enterprise AI運用辞典_発展拡張_統合管理台帳_EA001-1004 / EA_MASTER / EA-229; exact topic「WhatsApp/SMS Business Messaging × Agent」.
- Existing 改訂版 根拠: EA_REVISION_LEDGER / EA-229-FIRST-20261005; Twilio WhatsApp API/セッション/状態/duplicate/undelivered 根拠; independent research 監査 PASS recorded 2026-10-11, with live-send/Meta-direct/exactly-once 限界 retained.
- Twilio, “Overview of the WhatsApp Business Platform with Twilio” — https://www.twilio.com/docs/whatsapp/api — 24-hour customer service window and approved-template 適用限界. 参照日 2026-10-18.
- Twilio, “63016: Outside messaging window. For WhatsApp, use a Message Template instead” — https://www.twilio.com/docs/api/errors/63016 — out-of-session template requirement and ContentSid/ContentVariables behavior. 参照日 2026-10-18.
- Twilio, “Outbound Message 状態 in 状態 Callbacks” — https://www.twilio.com/docs/messaging/guides/outbound-message-status-in-status-callbacks — accepted/queued/sent/delivered/undelivered/read 状態 distinctions. 参照日 2026-10-18.
- Twilio, “Track the Message 状態 of Outbound Messages” — https://www.twilio.com/docs/messaging/guides/track-outbound-message-status — callback variability, signature-validation guidance, out-of-order warning. 参照日 2026-10-18.
- Twilio, “Best Practices for Messaging Delivery 状態 Logging” — https://www.twilio.com/docs/messaging/guides/outbound-message-logging — persist SID/状態, poll 要再確認 states, daily reconciliation. 参照日 2026-10-18.
AUDIT_HANDOFF: Review this exact saved candidate against EA-229 正式な topic and the cited 出典・来歴. Do not treat READY/AUDIT_PASS/GIT_INTEGRATED/ACCEPTED as 提供側 assertions.
よくある失敗・反証
API 2xx/Message SID取得後でもdeliveryは失敗し得る。状態 callbackは欠落・遅延・順序逆転し得るため、callback単独を完全な監査台帳とみなせない。WhatsAppでは24時間window外のfree-form送信が拒否され、template/content typeにもbusiness-initiated messageとして利用できないものがある。read 処理結果の受領記録は利用者設定やchannel 利用可能な機能に依存し、「readが来ない」ことから未読を断定できない。SMSのdeliveredも最終的な人間の閲覧・理解を保証しない。提供元 状態は配送経路の観測であり、業務成果そのものではない。
read 状態が存在するチャネルでも、利用者側のread receipts設定等に依存するため、readイベントは完全な閲覧証明ではない。状態 callbackは有用だが、Twilio自身が未着時のpollingと定期reconciliationを推奨しており、Webhookだけで完全性を保証する設計は不適切である。WhatsAppの24時間windowとtemplate要件は現行Twilio仕様として確認できるが、Meta側ポリシーやTwilio製品仕様は変更され得るため、固定不変の一般則としてコードへ焼き込まない。
まだ確認できていないこと
- EA-229-UNKNOWN-01
特定企業・国・番号種別で必要となる法的同意要件、sender registration、quiet hours、carrier filtering、料金、単位時間あたりの処理量、保持期間・保持方針は本candidateでは確定しない。Meta直結APIとTwilio経由の全状態遷移差分、全地域のDLR品質、read 処理結果の受領記録の実利用率、特定組織の利用環境での再試行/dedup挙動も未検証である。これらは導入対象提供元/account/regionの契約・仕様・実測で確認する必要がある。
根拠資料
- 研究資料研究資料
Twilio, “Overview of the WhatsApp Business Platform with Twilio” —
確認上の限界
元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
- 研究資料研究資料
Twilio, “63016: Outside messaging window. For WhatsApp, use a Message Template instead” —
確認上の限界
元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
- 研究資料研究資料
Twilio, “Outbound Message 状態 in 状態 Callbacks” —
確認上の限界
元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
- 研究資料研究資料
Twilio, “Track the Message 状態 of Outbound Messages” —
確認上の限界
元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
- 研究資料研究資料
Twilio, “Best Practices for Messaging Delivery 状態 Logging” —
確認上の限界
元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
更新履歴
EA-229-FIRST-20261005: 正式な 監査/publication 対応付け
出典ID・検証情報・機械可読データ
根拠の種類と情報の鮮度は、ラベルとアイコンで確認できます。
- 記事ID
- EA-229
- 最終確認日
- 2026-10-05
- 提供元・モデル・プラン・利用環境
- —
- 対象地域
- —
元資料の全文と収録照合記録
要点と前提
CANDIDATE_ID: ORPHAN-RESCUE-EA229-20261019-C1
要旨
企業がAIエージェントからWhatsAppやSMSを送る場合、LLMが文章を生成できることと、メッセージ送信が業務上成立することは別問題である。実運用では、チャネルごとの送信資格、会話ウィンドウやテンプレート制約、同意・オプトアウト、宛先と顧客IDの対応、重複送信防止、配送状態の非同期追跡、失敗時の再試行と照合、監査ログを、エージェントの推論から分離した制御面として持つ必要がある。エージェントには「送信を決める」権限と「任意の宛先へ自由に送る」能力を同一視させない。
主要claim
Twilio Programmable Messagingでは、APIがメッセージを受理した時点の状態と、その後のsent / delivered / undelivered / read等の状態は区別される。WhatsAppやRCSではread receiptが利用できる場合があるが、readは端末側設定やチャネル対応に依存する。したがって、API呼び出し成功を「相手に届いた」「相手が読んだ」と扱ってはならない。送信時にMessage SID等のprovider-side identifierを保存し、status callbackと後続照合を使って状態を追跡する設計が必要である。
WhatsAppでは、直近の利用者メッセージから24時間のcustomer service window内ではfree-form messageを送れる一方、window外のbusiness-initiated messageには承認済みtemplateが必要になる。Twilioの現行エラー文書では、2025-04-01以降、window外でtemplateをBodyとして送る方式ではなくContentSid/ContentVariablesを使う必要があると明記されている。したがってエージェントは、自然言語生成結果をそのまま任意時点でWhatsAppへ送るのではなく、conversation window判定とtemplate eligibilityを送信前policyとして適用すべきである。
status callbackは非同期Webhookであり、ネットワーク条件によって到着順が送信順と一致する保証がない。callbackのparameter setもchannel/eventにより異なり、追加され得る。よって状態機械はcallback arrival orderだけに依存せず、Message SIDを主キーに、状態遷移の単調性・timestamp・provider fetchによるreconciliationを考慮する必要がある。Twilio自身も、一定時間statusが更新されない場合のpollingと、少なくとも日次のreconciliationを推奨している。
Agent運用上のcontrol / implementation implication
- 送信前に、tenant、sender、recipient、channel、consent/opt-out、conversation window、template eligibility、目的・分類、送信上限をpolicy engineで判定する。LLM出力だけで送信可否を決めない。
- send intentに内部idempotency keyまたは業務操作IDを割り当て、provider Message SIDと対応付ける。timeoutや曖昧応答時に「失敗したはず」と推測して即時再送せず、provider-side recordを照合してから再試行する。
- accepted/queued/sent/delivered/read/failed/undeliveredを別状態として保持し、業務フローが要求する到達条件を明示する。例えば「API accepted」を顧客通知完了の証拠にしない。
- callback endpointではTwilio署名検証をSDK等の推奨手段で行い、未知parameterを拒絶する硬直schemaではなく、既知必須項目を検証しつつ拡張に耐える実装とする。
- callback欠落や順序逆転を前提に、polling/reconciliation jobを持つ。監査ログには内部send intent、provider SID、宛先の安全な参照、template/content version、policy decision、各status event、error code、reconciliation結果を残す。
- opt-outや配信停止、宛先誤り、番号再割当て、地域・契約・carrier/provider制約はLLMでは解決できないため、送信基盤側のhard gateとして扱う。
Failure envelope
API 2xx/Message SID取得後でもdeliveryは失敗し得る。status callbackは欠落・遅延・順序逆転し得るため、callback単独を完全な監査台帳とみなせない。WhatsAppでは24時間window外のfree-form送信が拒否され、template/content typeにもbusiness-initiated messageとして利用できないものがある。read receiptは利用者設定やchannel capabilityに依存し、「readが来ない」ことから未読を断定できない。SMSのdeliveredも最終的な人間の閲覧・理解を保証しない。provider statusは配送経路の観測であり、業務成果そのものではない。
適用境界
本candidateはTwilio Programmable Messagingを主要な実装例としてWhatsApp/SMS agent messagingの運用境界を整理する。Meta WhatsApp Business Platform直結、他SMS aggregator、各国の通信・広告規制、個別carrier DLR semantics、特定tenantの契約・料金・sender registration状態を一律に保証するものではない。provider/channel/region/account planごとの差分は導入時に再確認する。
Counterevidence / limitations
read statusが存在するチャネルでも、利用者側のread receipts設定等に依存するため、readイベントは完全な閲覧証明ではない。status callbackは有用だが、Twilio自身が未着時のpollingと定期reconciliationを推奨しており、Webhookだけで完全性を保証する設計は不適切である。WhatsAppの24時間windowとtemplate要件は現行Twilio仕様として確認できるが、Meta側ポリシーやTwilio製品仕様は変更され得るため、固定不変の一般則としてコードへ焼き込まない。
OPEN_UNKNOWN
特定企業・国・番号種別で必要となる法的同意要件、sender registration、quiet hours、carrier filtering、料金、throughput、retentionは本candidateでは確定しない。Meta直結APIとTwilio経由の全状態遷移差分、全地域のDLR品質、read receiptの実利用率、特定tenantでのretry/dedup挙動も未検証である。これらは導入対象provider/account/regionの契約・仕様・実測で確認する必要がある。
SAFE_WORDING
「エージェントはWhatsApp/SMS送信を実行できるが、送信APIの成功は配送・閲覧・業務成果を保証しない。会話window、template eligibility、同意・停止、重複防止、provider-side identifier、非同期status、reconciliationを独立した制御として実装し、チャネル・契約・地域固有の条件を実環境で確認する。」
Source / provenance locator
- Canonical EA identity: Enterprise AI運用辞典_発展拡張_統合管理台帳_EA001-1004 / EA_MASTER / EA-229; exact topic「WhatsApp/SMS Business Messaging × Agent」.
- Existing revision evidence: EA_REVISION_LEDGER / EA-229-FIRST-20261005; Twilio WhatsApp API/session/status/duplicate/undelivered evidence; independent research audit PASS recorded 2026-10-11, with live-send/Meta-direct/exactly-once limitations retained.
- Twilio, “Overview of the WhatsApp Business Platform with Twilio” — https://www.twilio.com/docs/whatsapp/api — 24-hour customer service window and approved-template boundary. Accessed 2026-10-18.
- Twilio, “63016: Outside messaging window. For WhatsApp, use a Message Template instead” — https://www.twilio.com/docs/api/errors/63016 — out-of-session template requirement and ContentSid/ContentVariables behavior. Accessed 2026-10-18.
- Twilio, “Outbound Message Status in Status Callbacks” — https://www.twilio.com/docs/messaging/guides/outbound-message-status-in-status-callbacks — accepted/queued/sent/delivered/undelivered/read state distinctions. Accessed 2026-10-18.
- Twilio, “Track the Message Status of Outbound Messages” — https://www.twilio.com/docs/messaging/guides/track-outbound-message-status — callback variability, signature-validation guidance, out-of-order warning. Accessed 2026-10-18.
- Twilio, “Best Practices for Messaging Delivery Status Logging” — https://www.twilio.com/docs/messaging/guides/outbound-message-logging — persist SID/status, poll stale states, daily reconciliation. Accessed 2026-10-18.
AUDIT_HANDOFF: Review this exact saved candidate against EA-229 canonical topic and the cited provenance. Do not treat READY/AUDIT_PASS/GIT_INTEGRATED/ACCEPTED as producer assertions.
EVD-EA-229-URL-C47447C69E67研究資料研究資料根拠の出所: SOURCE_PACKET_REFERENCETwilio, “Overview of the WhatsApp Business Platform with Twilio” —
- 裏付ける内容
- —
- 確認日
- —
- 出典・実験ID
- SRC-EA-229-URL-C47447C69E67
- 検証箇所
- Source / provenance locator · - Twilio, “Overview of the WhatsApp Business Platform with Twilio” — https://www.twilio.com/docs/whatsapp/api
- 適用範囲
- Source / provenance locator
- 出典・来歴
- SOURCE_PACKET_REFERENCE_PROJECTED
- 限界
- 元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
EVD-EA-229-URL-47B18771B865研究資料研究資料根拠の出所: SOURCE_PACKET_REFERENCETwilio, “63016: Outside messaging window. For WhatsApp, use a Message Template instead” —
- 裏付ける内容
- —
- 確認日
- —
- 出典・実験ID
- SRC-EA-229-URL-47B18771B865
- 検証箇所
- Source / provenance locator · - Twilio, “63016: Outside messaging window. For WhatsApp, use a Message Template instead” — https://www.twilio.com/docs/api/errors/63016
- 適用範囲
- Source / provenance locator
- 出典・来歴
- SOURCE_PACKET_REFERENCE_PROJECTED
- 限界
- 元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
EVD-EA-229-URL-D548625AEBD2研究資料研究資料根拠の出所: SOURCE_PACKET_REFERENCETwilio, “Outbound Message Status in Status Callbacks” —
- 裏付ける内容
- —
- 確認日
- —
- 出典・実験ID
- SRC-EA-229-URL-D548625AEBD2
- 検証箇所
- Source / provenance locator · - Twilio, “Outbound Message Status in Status Callbacks” — https://www.twilio.com/docs/messaging/guides/outbound-message-status-in-status-callbacks
- 適用範囲
- Source / provenance locator
- 出典・来歴
- SOURCE_PACKET_REFERENCE_PROJECTED
- 限界
- 元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
EVD-EA-229-URL-03F6BC128AE9研究資料研究資料根拠の出所: SOURCE_PACKET_REFERENCETwilio, “Track the Message Status of Outbound Messages” —
- 裏付ける内容
- —
- 確認日
- —
- 出典・実験ID
- SRC-EA-229-URL-03F6BC128AE9
- 検証箇所
- Source / provenance locator · - Twilio, “Track the Message Status of Outbound Messages” — https://www.twilio.com/docs/messaging/guides/track-outbound-message-status
- 適用範囲
- Source / provenance locator
- 出典・来歴
- SOURCE_PACKET_REFERENCE_PROJECTED
- 限界
- 元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
EVD-EA-229-URL-6A8348145CE0研究資料研究資料根拠の出所: SOURCE_PACKET_REFERENCETwilio, “Best Practices for Messaging Delivery Status Logging” —
- 裏付ける内容
- —
- 確認日
- —
- 出典・実験ID
- SRC-EA-229-URL-6A8348145CE0
- 検証箇所
- Source / provenance locator · - Twilio, “Best Practices for Messaging Delivery Status Logging” — https://www.twilio.com/docs/messaging/guides/outbound-message-logging
- 適用範囲
- Source / provenance locator
- 出典・来歴
- SOURCE_PACKET_REFERENCE_PROJECTED
- 限界
- 元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
EA-229-CURRENT-APPROVAL研究資料研究資料根拠の出所: AUDITED_CANONICAL_RESEARCH_PACKET現行本文の監査・revision対応
- 裏付ける内容
- 現行台帳のAUDIT_PASSと候補・revision・本文ハッシュの対応を確認しています。
- 確認日
- —
- 出典・実験ID
- ORPHAN-RESCUE-EA229-20261019-C1
- 検証箇所
- 1KqhJtiSb2S84rWmeYVwKcT_76dBwZ_B0ZZuAWQqH0rQ/EA_REVISION_LEDGER#ea_id=EA-229&revision_id=EA-229-FIRST-20261005&candidate_id=ORPHAN-RESCUE-EA229-20261019-C1 · EA-229-FIRST-20261005
- 適用範囲
- —
- 出典・来歴
- CURRENT_CANONICAL_APPROVAL_READBACK
- 限界
- 監査状態と来歴の記録です。外部根拠の最新性や本文の全主張を追加保証しません。
EA-229-CURRENT-BODY-READBACK実装資料実装資料根拠の出所: IMPLEMENTATION_READBACK現行本文の収録照合
- 裏付ける内容
- 公開生成入力の本文SHA-256が、監査済み候補に結び付いたハッシュと一致しています。
- 確認日
- 2026-10-19
- 出典・実験ID
- BODY-SHA256:c1d19620c2df72f712ba45b74c02c2dbbb60aa626a2d0dc0e50dc551bce53edc
- 検証箇所
- content/staging/EA-229.md · c1d19620c2df72f712ba45b74c02c2dbbb60aa626a2d0dc0e50dc551bce53edc · EA-229-FIRST-20261005
- 適用範囲
- —
- 出典・来歴
- CURRENT_APPROVED_BODY_HASH_MATCH
- 限界
- 本文の同一性の検査です。外部システムの挙動や全主張の真偽を実証したものではありません。
- 出典ID
- ORPHAN-RESCUE-EA229-20261019-C1, SRC-EA-229-URL-C47447C69E67, SRC-EA-229-URL-47B18771B865, SRC-EA-229-URL-D548625AEBD2, SRC-EA-229-URL-03F6BC128AE9, SRC-EA-229-URL-6A8348145CE0, BODY-SHA256:c1d19620c2df72f712ba45b74c02c2dbbb60aa626a2d0dc0e50dc551bce53edc
- 追跡中のUNKNOWN ID
- EA-229-UNKNOWN-01
- 再確認のきっかけ
- 正式な 改訂版/publication 状態 change · 本文 成果物 hash change · 出典 現行性 change · new contradiction or 実装 結果の照合
機械検査: 通過 — 機械検査の結果です。情報の正確性や実行の承認を保証するものではありません。
同じ記事IDの機械可読データです。