Webhookで状況をリアルタイムに連携する

本記事では、Webhook通知機能の設定方法を解説します。これを導入することで、イベントが発生した瞬間にシステムが通知を受け取り、即座にデータ連携を行うことが可能になります。

目的

メッセージ送信後、「相手に届いたのか」「読まれたのか」「返信が来たのか」を把握することは、顧客コミュニケーションにおいて非常に重要です。しかし、APIを何度も呼び出してステータスを確認(ポーリング)する方法は、サーバーへの負荷が高く、リアルタイム性にも欠けます。

一方、Webhook通知はNTTCPaaSからお客様サーバーへ即座に通知する方式で、リアルタイム性と効率性に優れています。顧客からの返信(Inbound Message)に即座に反応したり、送信失敗(Delivery Failure)を検知して別ルート(SMS等)で再送したりする場合、Webhookの「即時性」の点で優れており、最適です。

※Webサイト上のユーザー行動をリアルタイムに追跡したい場合は、WebSDKの活用方法も併せてご確認ください。今回のWebhookは、メッセージングイベントに特化したサーバー間連携のための機能です。


サービス
NTT CPaaS NTT CPaaS

▶ アカウントをお持ちでない方へ|60日間無料トライアルを開始

チュートリアルの内容は、トライアル環境ですぐにお試しいただけます。クレジットカード情報の登録は不要、自動で課金されることもありません。送信テストや動作確認に、ぜひ無料トライアルをご活用ください。

実践シナリオ

本シナリオでは、SMSチャネルを使用して、以下のイベントを自動通知するシステムを構築します。

  1. DELIVERY: メッセージが端末に届いた
  2. CLICK: エンドユーザーがクリックした
  3. INBOUND_MESSAGE: エンドユーザーがSMS送信した ※こちらは双方向専用の電話番号の購入が必要です。

【事前準備】 (ステップ0): NTTCPaaS管理画面での設定

APIを呼び出す前に、ポータルサイトで以下の準備を完了させてください。

1. APIキーの発行:

  • 管理画面の「API Key」セクションから作成します。
  • SMSを使用する場合、sms:message:send などの適切なスコープを付与してください。

2. 電話番号の購入・準備:

  • SMS送信に使用する電話番号をマイページより購入します。

3. エンドポイントの公開:

  • 通知を受け取るための公開URL(例: https://your-app.com/webhook)が必要です。開発中は ngrok 等のツールを使用してローカル環境を公開すると便利です。

ステップ1: サブスクリプションの作成

どのイベントをどのURLに送るかを定義する「サブスクリプション」を作成します。

リクエスト (cURL):

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機能に即日アクセス / 有料プランと同一環境
・国内開発者向けに最適化された日本語ガイド

無料トライアル

目次
  1. 目的
  2. 実践シナリオ
    1. 【事前準備】 (ステップ0): NTTCPaaS管理画面での設定
    2. ステップ1: サブスクリプションの作成
    3. ステップ2: 各アクティビティの待機
  3. まとめ

2026.05.10