AI Navigate

n8nを使ったAIボイスエージェントパイプラインの構築 — 通話を分析、リードをスコアリング、リアルタイムで通知

Dev.to / 2026/3/12

📰 ニュースTools & Practical Usage

要点

  • 本記事は、n8nだけで構築された実運用レベルのポストコール・インテリジェンス・パイプラインを解説します。カスタムインフラも接着コードも不要 — すぐにインポートして数分で有効化できるワークフローです。
  • ビジネス価値は、発話後の処理(意図の抽出、リードのスコアリング、営業へのアラート、CRMへのログ記録)にあると論じています。
  • アーキテクチャは、単一のワークフローで5つの段階をたどります:通話終了時のWebhook、構造化JSONを返すAI分析ステップ、リードスコアリングの意思決定ノード、適格リード向けのSlackアラート経路、CRMログ。
  • さまざまな音声プラットフォーム(Vapi、Retell AI、Synthflow、Bland.ai)をサポートしており、トランスクリプトを含むcall-ended webhookを送信する限り利用可能で、サンプルペイロードも提供します。

Voice AIは今、注目を集めています。Upworkは2026年初頭、ボイスエージェントのプロジェクト投稿数が前年比+329%増加したと報告しました。しかし、ほとんどのチュートリアルが見逃している点があります。それは、通話そのものが物語の半分に過ぎないということです。通話に起こること — 意図の抽出、リードのスコアリング、営業チームへのアラート、CRMへのログ記録 — ここにビジネス価値が実際に存在します。

この記事は、n8nだけで構築された実運用レベルのポストコール・インテリジェンス・パイプラインを解説します。カスタムインフラも接着コードも不要 — すぐにインポートして数分で有効化できるワークフローだけです。

The Architecture

The pipeline connects five stages in a single n8n workflow:

[Vapi / Retell / Synthflow]
        ↓  webhook (call ended event)
[n8n Webhook Node]
        ↓  raw transcript + metadata
[AI Analysis Node — DeepSeek/OpenAI]
        ↓  structured JSON: intent, score, sentiment
[IF Node — leadScore >= 7 AND qualifiedLead = true]
    ↓ YES                        ↓ NO
[Slack Alert]              [Low-priority log]
        ↓
[Google Sheets — CRM Log]

Compatible voice platforms: Vapi, Retell AI, Synthflow, Bland.ai — any platform that sends a webhook on call completion with the transcript in the payload.

The webhook payload typically looks like this (Vapi example):

{
  "type": "call-ended",
  "call": {
    "id": "call_abc123",
    "duration": 187,
    "transcript": "Agent: Hi, thanks for calling Apex Realty...
Caller: Yes, I'm looking to buy...",
    "phoneNumber": "+14155551234",
    "metadata": {
      "campaign": "google-ads-q1"
    }
  }
}

セクション1: 通話イベントの受信と解析

n8n のWebhookノードは、/voice-agent/call-ended のようなパスをリッスンします。POST に設定し、すぐに 200 OK で応答します(音声プラットフォームに待たせないようにします)、それからペイロードを下流へ渡します。

Codeノードは、AIに渡す前に必要なフィールドを抽出します:

const call = $input.item.json.call;
return [{
  json: {
    callId: call.id,
    duration: call.duration,
    transcript: call.transcript,
    phoneNumber: call.phoneNumber,
    campaign: call.metadata?.campaign ?? "unknown"
  }
}];

セクション2: AIトランスクリプト分析 — 知能層

ここが実際の作業が行われる箇所です。HTTPリクエストノード(またはネイティブのOpenAIノード)が、構造化抽出プロンプトを用いてトランスクリプトをモデルへ送信します:

You are a sales intelligence analyst. Analyze this call transcript and return ONLY valid JSON.

Extract:
- callerIntent: one of [buying, selling, renting, refinancing, pricing_inquiry, scheduling, complaint, general_inquiry]
- sentiment: one of [positive, neutral, negative]
- urgency: one of [immediate, within_month, exploring, unknown]
- leadScore: integer 1-10 (10 = ready to buy/commit now)
- qualifiedLead: boolean (true if they have budget, authority, need, and timeline)
- actionItems: array of strings (what the sales team should do next)
- summary: one-sentence summary of the call

Transcript:
{{transcript}}
{
  "callerIntent": "buying",
  "sentiment": "positive",
  "urgency": "within_month",
  "leadScore": 8,
  "qualifiedLead": true,
  "actionItems": [
    "Send 3-bedroom listings in Maplewood under $650K",
    "Schedule follow-up call for Thursday afternoon"
  ],
  "summary": "Caller is pre-approved for $650K, actively searching, prefers Maplewood area."
}

8つのcallerIntentタイプは、不動産およびSaaSの販売コール数百件にわたって調整されました。意図分類を正しく行うことは重要です — それは下流のルーティングを決定するものであり、リードスコアだけではありません。

セクション3: ルーティングロジック — IFノード

n8nの IF ノードは、AND演算で2つの条件を評価します:

条件 演算子
{{ $json.leadScore }} 以上 7
{{ $json.qualifiedLead }} 等しい true

真の場合の分岐(ホットリード):Slackアラートを即時に発報します。
偽の場合の分岐(コールド/ウォームリード):後のフォローアップのためにGoogle Sheetsへ書き込み、誰にも通知しません。

Slackメッセージのテンプレート:

*Hot Lead Alert* — Score: {{ $json.leadScore }}/10
Phone: {{ $json.phoneNumber }} | Campaign: {{ $json.campaign }}
Intent: {{ $json.callerIntent }} | Urgency: {{ $json.urgency }}
Summary: {{ $json.summary }}
Next steps: {{ $json.actionItems.join(', ') }}

通話終了後、数秒でセールス担当者に完全な文脈付きブリーフがSlackで提示されます — 録音を聴く必要も、CRMへの手動入力もありません。

セクション4: DeepSeekが大規模運用を実現する理由

すべての着信通話に対してAI分析を実行するには、OpenAIの価格設定ではコストの問題が生じます:

モデル 1Mトークンあたりの入力コスト 月間10,000件の通話(平均約500トークン)
GPT-4o $5.00 ~$25/月
GPT-4 Turbo $10.00 ~$50/月
DeepSeek V3 $0.14 ~$0.70/月

1日あたり300件の通話を扱う不動産仲介業者の場合、DeepSeekはAI分析コストを$450/月から$13/月未満に削減し、このような構造化タスクで同等の抽出品質を実現します。上記のプロンプトは、OpenAI互換のエンドポイントであれば改変なしで機能します — ベースURLを置換するだけです:

Base URL: https://api.deepseek.com/v1
Model: deepseek-chat
API Key: your-deepseek-key

セクション5: 実世界のユースケース

不動産仲介業者 — 買い手/売り手の意図をスコアリングし、エリア別にリードを自動割り当て、通話後数分以内にホットバイヤーへ物件通知をトリガーします。

SaaSの販売チーム — トライアルからペイドへのシグナルを検出し、解約リスクの電話をCS介入としてフラグ付け、HubSpotへ自動でMEDDIC資格フィールドを記録します。

医療予約の取り付け — 予約タイプ、言及された保険、緊急度を抽出します。フロントデスクの介入なしに、該当する専門医のカレンダーへルーティングします。

法的受付 — ケースタイプを分類(人身事故、家族法、刑事)、ケースの強さを示す指標を評価し、高額案件タイプのCallbackを優先します。

各シナリオでは、ワークフローは同一であり、callerIntentの分類体系とルーティングルールのみが変わります。これは、カスタム統合をハードコーディングするのではなく、n8nで構築することの構成性の利点です。

Google Sheets CRMログ

すべての通話(ホット/コールド問わず)は、Google Sheetsノードを介してGoogle Sheetsの行に記録されます:

ソース
タイムスタンプ {{ $now }}
通話ID {{ $json.callId }}
電話 {{ $json.phoneNumber }}
継続時間(秒) {{ $json.duration }}
意図 {{ $json.callerIntent }}
スコア {{ $json.leadScore }}
適格 {{ $json.qualifiedLead }}
センチメント {{ $json.sentiment }}
緊急度 {{ $json.urgency }}
要約 {{ $json.summary }}
キャンペーン {{ $json.campaign }}

これにより、バックエンドコードに触れることなく、クエリ可能な通話インテリジェンスデータベースを作成できます。スコアでフィルタし、意図でピボットし、キャンペーン別の転換率をGoogle Sheetsで可視化します。

本番運用対応のテンプレートを入手

これをゼロから構築するには、プロンプトの調整、Webhookのデバッグ、IFノードの条件構文、Sheetsの列マッピングなど、数時間の試行錯誤が必要です。私はすでにその作業を完了しています。

本番運用対応のn8n JSONテンプレートとしてパッケージ化しており、5分でインポートして有効化できます。完全なワークフロー、調整済みAIプロンプト、Slackメッセージテンプレート、コピー可能なGoogle Sheetsのスキーマが含まれています。

[GUMROAD_LINK] にある他の15個のAI自動化テンプレートと一緒に入手可能です。

このバンドルには、リードエンリッチメント、競合モニタリング、サポートチケット振り分け、契約の要約などのテンプレートが含まれており、すべて同じn8n + DeepSeekのコスト効率の良いスタックで構築されています。

私はAI自動化システム、Claude/Cursor統合のMCPサーバ、カスタムエージェントパイプラインの構築を手掛けています。ビジネスワークフローを自動化したい、あるいは本番運用対応のAI統合を迅速に構築したい場合は、Upworkで見つけるか直接ご連絡ください。

私が扱う技術スタック: n8n、Claude Code、MCPプロトコル、OpenAI/DeepSeek API、Node.js/TypeScript、Python。