TG-Staff 团队 avatar TG-Staff 团队

TG-Staff Webhook イベント統合ガイド:セッション、メッセージ、運用プロセスの自動化

tg-staff webhook API 自動化

TG-Staff Webhook イベント統合ガイド:会話、メッセージ、運用フローの自動化

Telegram Botのカスタマーサポートチームを運営する際、最も頭を悩ませる問題の一つがデータの断片化です。カスタマーサービスでの会話はTG-Staff内に、顧客情報はCRMに、チケットは別のシステムにあります。毎回手動でコピー&ペーストしたり、TG-StaffのAPIをポーリングするスクリプトを書いてデータを取得する必要がありますが、非効率でエラーが発生しやすくなっています。

TG-Staffの Webhookイベント はまさにこの問題を解決するためのものです。手動でトリガーする「エクスポートボタン」ではなく、リアルタイムのデータブリッジです。プラットフォーム内で重要なイベント(ユーザーからの新規メッセージ、エージェントへの会話割り当て、会話のクローズなど)が発生すると、TG-Staffがイベントデータを指定されたURLに能動的にプッシュします。サーバーがPOSTリクエストを受信すると、自動的にチケットを作成したり、ユーザータグを更新したり、満足度調査をトリガーしたりできます。真の「イベント駆動型」の自動運用を実現します。

本記事では、TG-Staff Webhookイベントの設定方法、購読可能なイベントタイプ、そしてすぐに実践できる3つの統合シナリオについて詳しく解説します。Telegramのカスタマーサポートデータを自社システムと連携する方法を探しているなら、このガイドは保存必至です。


TG-Staff Webhookイベントとは?——受動的な対応から能動的な統合へ

簡単に言えば、Webhookは「逆API」です。通常はAPIを能動的に呼び出してデータを確認する必要があります(例えば5秒ごとに新規メッセージがないか確認する)。一方、Webhookはイベント発生時にTG-Staffがデータを能動的にサーバーにプッシュします。

その中核的な価値は リアルタイム性とポーリングの排除 にあります。想像してみてください:

  • Webhookなし:10秒ごとにTG-Staffの「未読会話を取得」エンドポイントを呼び出す定期タスクを書き、大量の重複データを処理し、サーバーに負荷がかかり、遅延も発生します。
  • Webhookあり:ユーザーが初めてBotにメッセージを送信すると、TG-Staffが即座にあなたのURLに conversation.created イベントを送信します。すぐに「新規顧客が来た」とわかり、CRMに自動的にリードを作成できます。

B2B SaaSチーム、越境Eコマースカスタマーサポート、Web3プロジェクトにとって、これはTelegramのカスタマーサポートデータを既存のチケットシステム(Zendesk、Freshdeskなど)、データ分析プラットフォーム(Mixpanelなど)、さらには社内SlackやDingTalk通知にシームレスに統合できることを意味します。


購読可能なイベントタイプ一覧

TG-Staffは現在、以下のWebhookイベントをサポートしています(最新のリストは公式ドキュメントを参照)。各イベントには固定の event_type 文字列が対応しており、ターゲットサーバーでそれに基づいてロジックを振り分けることができます。

イベント名event_typeトリガー条件典型的な用途
新規会話作成conversation.createdユーザーが初めてBotに連絡する、またはクローズ済みの会話を再開するCRMリードの自動作成、ウェルカム通知の送信
新規メッセージmessage.receivedユーザーまたはエージェントがメッセージ(テキスト、画像などのテキストコンテンツを含む)を送信するメッセージの品質管理システムやナレッジベースへのリアルタイム同期
会話ステータス変更conversation.status_changed会話が「待機中」→「割り当て済み」→「処理中」→「クローズ済み」に遷移するチケットステータスの更新トリガー、クローズ時の満足度調査起動
エージェントステータス変更agent.status_changedエージェントがオンライン/オフライン/ビジーに切り替わるチームシフトボードの更新、Slack通知のトリガー

ヒント:イベントプッシュ範囲

TG-Staff Webhook イベントは、プラットフォーム内部で生成された重要なデータのみをプッシュし、ユーザーのTelegram側の元のメッセージ内容(メディアファイルなど)には関与しません。統合時にプッシュフィールドの範囲を理解し、提供されていないデータに依存しないようにしてください。例えば、message.received イベントにはメッセージテキスト、送信者ID、セッションIDが含まれますが、画像/動画のバイナリファイルは含まれません。


Webhookイベントを設定するには?——3ステップで統合完了

設定はTG-Staffコンソール内で完結し、コードは不要で、あなたのバックエンドがPOSTリクエストを受信するだけでOKです。

ステップ1:Webhook設定の入り口を見つける

TG-Staffコンソールにログインし、プロジェクト設定ページに移動します。サイドバーから**「開発者」または「統合」**メニュー(名称はコンソールの実際の表示に準じます)を見つけてください。「Webhook設定」ブロックが表示されます。

ステップ2:イベント受信先のURLを入力する

  • URLはHTTPSプロトコルである必要があります(TG-StaffはHTTPエンドポイントにデータをプッシュしません)。
  • サーバーが認証を必要とする場合、「リクエストヘッダー」領域でカスタムヘッダーを追加できます(例:Authorization: Bearer your-secret-token)。
  • 「保存」をクリックすると、TG-StaffはそのURLにpingテストを1回送信し、接続性を確認します。200が返されれば、設定は有効になります。

ステップ3:購読するイベントタイプを選択する

すべてのイベントを購読する必要はありません。統合のニーズに応じて、該当するイベントをチェックするだけです。例:

  • ユーザーが初めて連絡したときにCRMレコードを作成したい場合 → conversation.createdのみチェック
  • すべてのメッセージを内部システムに同期したい場合 → message.receivedをチェック
  • 完全な会話ライフサイクルを追跡したい場合 → conversation.created + conversation.status_changed + message.receivedをチェック

Webhookが有効かどうかを検証する

設定完了後、最も直接的な検証方法は、別のTelegramアカウントでボットにメッセージを送信し、ターゲットサーバーのログを確認することです。

よくある問題のトラブルシューティング:

  • URLに到達できない:サーバーのファイアウォールがTG-Staffの送信元IP(コンソールでIPリストを確認可能)を許可しているか確認してください。
  • 応答タイムアウト:TG-Staffはターゲットサーバーが5秒以内に200を返すことを要求します。処理ロジックが複雑な場合は、まず200を返し、その後非同期で処理する(キューに入れるなど)ことをお勧めします。
  • 署名検証失敗:TG-Staffが署名キーをサポートしている場合(公式ドキュメントに従ってください)、X-TG-Staff-SignatureヘッダーのHMAC署名を必ず検証してください。

セキュリティの推奨事項:署名検証とリトライ機構

  • 署名検証:TG-Staffが署名キーを提供している場合、受信側でリクエストの署名を必ず検証し、偽造コールバックを防止してください。検証方法は通常、リクエストボディに対してHMAC-SHA256で署名を計算し、リクエストヘッダーの署名と比較します。
  • リトライ戦略:ターゲットサーバーが200以外のステータスコードを返した場合、TG-Staffはデフォルトで最大3回リトライし、間隔は約30秒、2分、5分です。すべて失敗した場合、イベントは破棄されます(元のデータはTG-Staffプラットフォームに残り、失われることはありません)。サーバーは常に200を返して受信を確認することをお勧めします。

典型的な統合シナリオ:カスタマーサポートから自動化へ

以下の3つのシナリオは、WebhookイベントがどのようにTG-Staffをビジネスシステムと連携させるかを示しています。

シナリオ1:新規会話 → CRMチケットを自動作成

イベントconversation.created

フロー:ユーザーが初めてボットにメッセージを送信すると、TG-Staffがイベントをサーバーにプッシュ → サーバーがイベント内のユーザーID、会話ID、最初のメッセージテキストを解析 → CRM(HubSpot、Salesforceなど)に自動的にリードまたはチケットを作成、タイトルは「Telegramユーザー[ユーザー名]新規お問い合わせ」とし、会話リンクを添付。

メリット:カスタマーサポートが手動で顧客情報を入力する必要がなく、営業チームはリードの発生源を即座に把握できます。

シナリオ2:エージェント返信後 → メッセージを品質管理システムに同期

イベントmessage.received

フロー:エージェントがメッセージを送信するたびに、イベントが品質管理システム(内部コンプライアンスプラットフォームなど)にプッシュ → 品質管理システムがリスクワードルール(TG-Staffプロフェッショナル版のコンテンツリスク管理と連携可能)に基づいてリアルタイム検出 → 機密ワードにヒットした場合、自動的にそのメッセージをマークし、品質管理者に通知。

メリット:カスタマーサポート会話のリアルタイム品質管理を実現。特にWeb3、金融などコンプライアンス要件の高い業界に適しています。

シナリオ3:会話終了 → 満足度調査をトリガー

イベントconversation.status_changed(ステータスがclosedに変更)

フロー:エージェントが会話を終了すると、TG-Staffがイベントをプッシュ → サーバーがステータスをclosedと判断 → ユーザーに自動的に満足度調査リンクを送信(TG-Staffのメッセージ一斉送信機能や独立したボット経由)→ 調査結果をデータ分析プラットフォームに返送。

メリット:手動トリガー不要で、ユーザーフィードバックを自動収集し、カスタマーサポート品質を継続的に改善。


TG-Staffの他の機能との連携

Webhookイベントは孤立しておらず、TG-Staffの既存機能と連携して、より大きな統合価値を生み出すことができます。

  • 分流リンク + 新規会話イベント:ユーザーが広告の分流リンク(Diversion Link)からボットに入ると、conversation.createdイベントにreferrerフィールド(広告ソース、URLパラメータなど)が含まれます。これにより、チャネルごとのコンバージョン効果を分析できます。
  • エージェントステータス変更 + 内部通知:エージェントが30分以上オフラインになった場合、agent.status_changedイベントがSlackやDingTalkのボット通知をトリガーし、管理者にシフト調整を促します。
  • ユーザープロファイルデータの充実:イベントコールバックで、TG-StaffはユーザーIDを付与します。ユーザープロファイルAPI(プロフェッショナル版が必要)を呼び出して、ユーザーのタグや過去の会話サマリーを取得し、イベントデータと統合して外部データベースに書き込むことができます。

注意事項:データの重複とループを避ける

これは見落とされがちな落とし穴です。WebhookのターゲットサーバーがTG-Staffにリクエストを送信する場合(例:TG-StaffのAPI経由でメッセージを送信)、そのメッセージがmessage.receivedイベントをトリガーすると、A → B → Aの無限ループが発生します。

解決策:イベント処理ロジックで、メッセージの送信元を確認します。例えば、イベントペイロードでsender_typeagentまたはsystemかどうかを判断し、エージェントが送信したメッセージであれば書き込み操作をスキップし、重複を避けます。

注意:イベントプッシュの頻度制限

TG-Staff は Webhook イベントプッシュにレート制限がある場合があります(例:最大毎秒10回)。ビジネスピーク時に大量のイベントが発生する場合(複数のユーザーが同時に問い合わせるなど)、ターゲットサーバーでキューによるバッファ処理を行い、同時実行数が高すぎてリクエストが失われるのを防ぐことをお勧めします。


よくある質問

Q: TG-Staff Webhook イベントはカスタムフィールドやフィルター条件をサポートしていますか?
A: 現在、TG-Staff のイベントプッシュは固定のイベントタイプに基づいており、カスタムフィールドはサポートしていません。ただし、イベント内のセッションIDやユーザーIDを使用して、受信後に他のAPI(ユーザープロファイルAPIなど)を呼び出してデータを補完することができます。フィルター条件はターゲットサーバー側で実装することをお勧めします。

Q: Webhook イベントのプッシュが失敗した場合はどうなりますか?再試行メカニズムはありますか?
A: はい、TG-Staff はデフォルトで最大3回再試行します(各間隔は約30秒、2分、5分)。すべて失敗した場合、イベントは破棄されますが、データ損失は発生しません(元のデータはTG-Staffプラットフォームに残っているため)。ターゲットサーバーは200応答を返すことを推奨します。

Q: 同じイベントを受信するために複数のWebhook URLを同時に設定できますか?
A: 現在、TG-Staff はプロジェクトごとに1つのWebhook URLのみ設定できます。複数のシステムに配信する必要がある場合は、ターゲットサーバー内で転送(メッセージキューやミドルウェアの使用など)することをお勧めします。

Q: Webhook イベントにはユーザーの個人データ(電話番号、メールアドレスなど)が含まれますか?
A: Webhook イベントは主にセッションステータス、メッセージID、ユーザーIDなどのメタデータをプッシュし、ユーザーのTelegram側の機密情報(電話番号など)は含まれません。ユーザープロファイルのカスタムデータ(タグなど)にはビジネスデータが含まれる可能性があるため、プライバシーポリシーに従って処理してください。

Q: Webhook 設定が有効かどうかをテストするにはどうすればよいですか?
A: コンソールのWebhook設定ページには、通常「テストイベントを送信」ボタンがあります。ない場合は、手動で新しいセッションを作成し(テストBotにメッセージを送信するなど)、ターゲットサーバーのログで対応するPOSTリクエストを受信したか確認してください。


Telegramカスタマーサービスのデータ統合を始めましょう

TG-Staff Webhook イベントは、カスタマーサービスのデータとビジネスシステムを結ぶ「高速道路」です。CRMチケットの自動作成、メッセージ内容のリアルタイム品質チェック、全リンクのユーザー行動分析など、ポーリングの手間を省き、データを真に流動させることができます。

  • 無料トライアル:登録後3日間のトライアルをご利用いただけます。標準版以上のプランでWebhook機能をサポート(詳細は公式サイトをご確認ください)。
  • ドキュメントを参照:最新のイベントリスト、フィールド説明、署名検証のサンプルを入手 → TG-Staff 公式ドキュメント
  • カスタマーサポートへの問い合わせ:統合に関してご質問があれば、@tgstaff_robot まで直接ご連絡ください。技術チームが設定をお手伝いします。

今すぐWebhookイベント統合を体験し、Telegramカスタマーサービスの運用を「手動運搬」から「イベント駆動型」の自動化ワークフローにアップグレードしましょう。