AI Navigate

n8nで作るAI音声エージェントパイプライン — 通話分析、リードのスコアリング、リアルタイム通知

Dev.to / 2026/3/12

💬 オピニオンDeveloper Stack & InfrastructureTools & Practical Usage

要点

  • 本番環境クラスのポストコール・インテリジェンス・パイプラインをn8nで示し、文字起こしを分析、リードをスコアリング、セールスへアラート、CRMへリアルタイムで結果をログします。
  • アーキテクチャは1つのワークフローに5段階を接続します:通話終了時のWebhook、未加工文字起こし、AI分析による構造化データ(意図、スコア、感情)、リードスコアリング決定、そしてアクション(SlackアラートとCRMログ)。
  • 通話完了時のテキストデータを含むWebhookを受け取ることで、複数の音声プラットフォーム(Vapi、Retell AI、Synthflow、Bland.ai)をサポートします。
  • 具体的なペイロード例を提供し、カスタムインフラなしでパイプラインをインポート・有効化する方法を解説します。
  • ポストコール処理のビジネス価値は、通話内容だけでなく処理全体にあります。

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

この記事では、n8n のみで構築された本番運用クラスのポストコール・インテリジェンス・パイプラインを紹介します。カスタムインフラもグルーコードも不要 — その場でインポートして数分で有効化できるワークフローのみです。

アーキテクチャ

このパイプラインは、1つの n8n ワークフローで5つのステージを接続します。

[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 — 通話完了時にペイロードにトランスクリプトを含めて webhook を送信する任意のプラットフォーム。

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 で応答します(ボイスプラットフォームに待機させないため)、その後ペイロードを下流へ渡します。

A Code node extracts the fields you need before hitting the 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 Request ノード(またはネイティブの 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}}

The model returns clean JSON like:

{
  "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."
}

The 8 callerIntent types were tuned across hundreds of real estate and SaaS sales calls. Getting intent classification right is critical — it determines downstream routing, not just the lead score.

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

n8n の IF ノードは、AND ロジックで2つの条件を評価します:

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

True branch (hot lead): Slack アラートを直ちにトリガーします。
False branch (cold/warm lead): 後のフォローアップのために Google Sheets に書き込み、誰にも通知しません。

The Slack message template:

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

*ホットリードアラート* — スコア: {{ $json.leadScore }}/10
電話: {{ $json.phoneNumber }} | キャンペーン: {{ $json.campaign }}
意図: {{ $json.callerIntent }} | 緊急度: {{ $json.urgency }}
要約: {{ $json.summary }}
次のステップ: {{ $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を置換するだけです:

ベース URL: https://api.deepseek.com/v1
モデル: deepseek-chat
API キー: your-deepseek-key

Section 5: Real-World Use Cases

Real estate agencies — 購入者/売却者の意図をスコアリングし、エリアごとに担当者へリードを自動割り当て、通話後数分以内に有望購入者へリスト通知をトリガーします。

SaaS sales teams — トライアルから有料へ移行するシグナルを検出、解約リスクの電話をCS介入のためにフラグ付けし、MEDDICの資格情報フィールドを自動的にHubSpotに記録します。

Healthcare appointment booking — 予約タイプ、言及された保険、緊急度を抽出。受付スタッフの介入なしに適切な専門医のカレンダーへ振り分けます。

Legal intake — ケースタイプを分類(人身傷害、家族法、刑事事件)、ケースの強さを示すシグナルを評価し、高額案件タイプの折返し電話を優先します。

いずれのシナリオでも、ワークフローは同一です — callerIntentの分類体系とルーティングルールだけが異なります。これは、カスタム統合をハードコーディングするのではなく、n8nで構築することの組み合わせ可能性の利点です。

The Google Sheets CRM Log

Every call — hot or cold — gets logged to a Google Sheets row via the Google Sheets node:

ソース
タイムスタンプ {{ $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の列マッピングなど、数時間の試行錯誤が必要です。私はすでにその作業を済ませています。

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

15個の他のAI自動化テンプレートと一緒に [GUMROAD_LINK] を入手してください。

このバンドルには、リードの強化、競合分析、サポートチケットのトリアージ、契約の要約、その他多くのテンプレートが含まれており、すべて同じn8n + DeepSeekのコスト効率の高いスタックで構築されています。

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

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