Webhookで状況をリアルタイムに連携する
本記事では、Webhook通知機能の設定方法を解説します。これを導入することで、イベントが発生した瞬間にシステムが通知を受け取り、即座にデータ連携を行うことが可能になります。
2026/05/10
目的
メッセージ送信後、「相手に届いたのか」「読まれたのか」「返信が来たのか」を把握することは、顧客コミュニケーションにおいて非常に重要です。しかし、APIを何度も呼び出してステータスを確認(ポーリング)する方法は、サーバーへの負荷が高く、リアルタイム性にも欠けます。
一方、Webhook通知はNTTCPaaSからお客様サーバーへ即座に通知する方式で、リアルタイム性と効率性に優れています。顧客からの返信(Inbound Message)に即座に反応したり、送信失敗(Delivery Failure)を検知して別ルート(SMS等)で再送したりする場合、Webhookの「即時性」の点で優れており、最適です。
※Webサイト上のユーザー行動をリアルタイムに追跡したい場合は、WebSDKの活用方法も併せてご確認ください。今回のWebhookは、メッセージングイベントに特化したサーバー間連携のための機能です。
サービス
▶ アカウントをお持ちでない方へ|60日間無料トライアルを開始
チュートリアルの内容は、トライアル環境ですぐにお試しいただけます。クレジットカード情報の登録は不要、自動で課金されることもありません。送信テストや動作確認に、ぜひ無料トライアルをご活用ください。
実践シナリオ
本シナリオでは、SMSチャネルを使用して、以下のイベントを自動通知するシステムを構築します。
- DELIVERY: メッセージが端末に届いた
- CLICK: エンドユーザーがクリックした
- INBOUND_MESSAGE: エンドユーザーがSMS送信した ※こちらは双方向専用の電話番号の購入が必要です。
【事前準備】 (ステップ0): NTTCPaaS管理画面での設定
APIを呼び出す前に、ポータルサイトで以下の準備を完了させてください。
1. APIキーの発行:
- 管理画面の「API Key」セクションから作成します。
- SMSを使用する場合、sms:message:send などの適切なスコープを付与してください。
2. 電話番号の購入・準備:
- SMS送信に使用する電話番号をマイページより購入します。
3. エンドポイントの公開:
- 通知を受け取るための公開URL(例: https://your-app.com/webhook)が必要です。開発中は ngrok 等のツールを使用してローカル環境を公開すると便利です。
curl -X POST "https://{YOUR_BASE_URL}/subscriptions/1/subscription/SMS" \
-H "Authorization: App {YOUR_API_KEY}" \
-H "Content-Type: application/json" \
-d @- <<EOF
{
"subscriptionId": "SMS_Notification_Service",
"name": "SMS Webhook",
"events": [
"DELIVERY",
"CLICK",
"INBOUND_MESSAGE"
],
"resources": [
"TR_IB00000"
],
"profile": {
"profileId": "NOTIF-SMS_DLR",
"webhook": {
"notifyUrl": "https://your-app.com/webhook"
},
"security": {
"authId": "NEWAUTH-9291",
"type": "BASIC",
"credentials": {
"username": "admin",
"password": "p@ss"
}
}
}
}
EOF
events: 監視するイベントの種類を指定します。各チャネルによって、指定できるアクションは変わります。詳細:イベント一覧
security: Webhookの安全性を確保するため、BASIC認証などを設定することを強く推奨します。また、IP制限などもあるとよりセキュアに運用することが可能です。詳細:IPアドレス制限
インバウンドメッセージの構成: インバウンドメッセージを構成する場合、こちらを参照ください。
成功すると下記のようなレスポンスが来ます。
{"subscriptionId":"SMS_Notification_Service2","profile":{"profileId":"NOTIF-SMS_DLR2","security":{"authId":"NEWAUTH-9291"}}}ステップ2: 各アクティビティの待機
以降監視対象のアクティビティが実行されたときに、そのメッセージに関するレポートが送信されます。設定したエンドポイントには、以下のようなJSONデータ(ペイロード)が届きます。
例: 顧客のクリック (CLICK)
{"notificationType":"CLICKED","recipient":"81XXXXXXXXXX","url":"https://ib.nttcpaas.com/docs","sendDateTime":1774827537086,"messageId":"177458938837907951407635","bulkId":"177458938837907951407634","recipientInfo":{"deviceType":"Phone","os":"Android","deviceName":"Android Mobile"},"geoLocationInfo":{"countryName":"Japan","city":"Tokyo"}}システム側では、この text 内容を解析し、自動応答エンジン(チャットボット)に渡すことで、24時間365日の顧客対応が可能になります。
ちなみに作成したサブスクリプションはAPIのほかポータルでも確認が可能です。

まとめ
Webhook通知を設定することで、メッセージ送信の成否だけでなく、顧客のリアクションをトリガーとした動的なビジネスロジックを構築できるようになります。
次のステップ:
- 送信失敗(REJECTED や UNDELIVERABLE)を検知した際に、自動でSMSを送信する「フェイルオーバー」の設定
- CLICKやINBOUND_MESSAGEなど反応がない顧客に対して、数日後にリマインドを送る自動フローの構築
これらの自動化を組み合わせることで、顧客満足度の向上と業務効率化の両立を実現しましょう。
NTT CPaaSを、
60日間無料でお試しください
・SMS・Voice・メールを本番同様に無料で検証
・全API機能に即日アクセス / 有料プランと同一環境
・国内開発者向けに最適化された日本語ガイド
2026.05.10