事業紹介 事業紹介トップ 経営データ分析基盤 Claude / MCP 導入 育つ業務アプリ 複雑な SaaS を専用 UI に Shopify Plus 移行・拡張 生成AI 活用(Multi AI) SEO / AIO / 広告運用 顧問・アドバイザリ インフラ構築 自社メディア投資・開発
Claude Claude / MCP 総合 Claude Cowork Claude Code Claude Design MCP サーバー実装
Shopify Plus Shopify Plus トップ EC-CUBE からの移行 大手カートからの移行 Shopify 通常プラン
実績
業界ニュース 業界ニュース トップ AI ニュース └ Claude └ ChatGPT・Codex └ Gemini └ その他 Shopify ニュース SaaS ニュース お知らせ(自社発信)
会社情報 お問い合わせ
2026.05.22

Twilio × OpenAI × Node.js で WhatsApp ファクトチェックボットを構築する

記事のサマリー(TL;DR)

  • Twilio Webhook が WhatsApp の転送メッセージ(テキスト・画像・音声・動画)を受け取り、OpenAI で真偽判定
  • 音声・動画は gpt-4o-mini-transcribe で文字起こし後、gpt-5.4-mini で軽量ウェブ検索付き検証を実施
  • 必要スタックは Node.js 20+、express、twilio、openai、dotenv の4パッケージのみ

Twilio × WhatsApp Business API を使った情報検証ボットが国内コミュニケーション基盤に与える影響

WhatsApp は日本国内での普及率こそ LINE に劣るが、インバウンド対応・海外取引先との連絡・グローバル EC の顧客サポートでは実用的な選択肢です。Twilio WhatsApp Business API はすでに国内の業務 SaaS や EC 企業での導入実績があり、本チュートリアルのアーキテクチャ(Webhook → 分類 → OpenAI 判定 → 返信)は、ファクトチェック以外にも「注文確認の自動応答」「画像付き問い合わせの自動仕分け」「音声メモのテキスト化と CRM 連携」などに転用できます。Twilio と Rails 製カスタム UI を組み合わせて業務 SaaS の UI を補完する構成であれば、同様の Webhook パターンをそのまま適用できます。

詳細

作るものの概要

このチュートリアルで完成するのは、以下の機能を持つ WhatsApp ボットです。

  • Twilio Webhook 経由で転送メッセージを受信
  • プレーンテキストをそのまま LLM に渡して検証
  • 画像をマルチモーダルモデルで解析
  • 音声メモ・短い動画を文字起こしてから解析
  • 時事性・事実性の高いクレームに対してウェブ検索ステップを挿入
  • 信頼性評価の短文と、公式ソースが見つかった場合はその URL を WhatsApp で返信

エンドツーエンドのフロー:

  1. ユーザーがメッセージをあなたの WhatsApp 番号に転送
  2. Twilio がそのメッセージを Webhook へ送信
  3. アプリがテキスト/画像/音声/動画を判別
  4. 音声・動画の場合は先に文字起こし
  5. コンテンツを OpenAI へ送信して解析
  6. クレームが事実確認を要する場合、モデルが軽量ウェブ検索を実施
  7. Twilio 経由でユーザーに短い信頼性評価を返信

前提条件

  • Twilio アカウント(WhatsApp Sender または WhatsApp Sandbox)
  • OpenAI API キー
  • Node.js 20 以上
  • ngrok などのトンネリングツール

プロジェクトのセットアップ

[コードは原文をご参照ください]

依存パッケージのインストール:

[コードは原文をご参照ください]

package.json に以下を追加:

[コードは原文をご参照ください]

.env ファイルを作成し、以下の値を設定:

[コードは原文をご参照ください]

アプリは以下の3ファイルに分割します:

  • src/index.js:Express サーバーと Twilio Webhook
  • src/services/media.js:メディアのダウンロードと分類
  • src/services/openai.js:文字起こしと検証

WhatsApp Webhook の構築

src/index.js を作成し、以下を記述します:

[コードは原文をご参照ください]

Twilio は Webhook パラメータをフォームエンコードで送信するため、express.urlencoded() だけで対応できます。

次に /whatsapp ルートを追加します:

[コードは原文をご参照ください]


画像・音声メモ・動画の処理

src/services/media.js を作成します:

[コードは原文をご参照ください]

Twilio がインバウンドメディアを保存する URL には認証が必要なため、OpenAI へ送る前にアカウント SID と Auth Token でダウンロードします:

[コードは原文をご参照ください]

src/index.js のコメント行を以下に置き換えます:

[コードは原文をご参照ください]

画像はマルチモーダルモデルへ直接送信し、音声・動画は先に文字起こしを行います。OpenAI の音声認識は mp3mp4m4awavwebm などの一般的な形式に対応しており、WhatsApp の音声メモや短い転送動画に適しています。


OpenAI による文字起こしと検証の追加

src/services/openai.js を作成し、OpenAI クライアントと toFile ユーティリティを初期化します:

[コードは原文をご参照ください]

※ 本記事は Twilio Blog(2026年5月4日公開、著者:Charles Oduk、レビュー:Dhruv Patel)の内容を翻訳・編集したものです。