コンテンツにスキップ

Webhookリファレンス

Webhook を設定すると、nocall の通話完了時に指定した URL へ通話情報を HTTP POST で送信します。Webhook はエージェント単位で設定します。

  1. nocall 管理画面で対象のエージェントを開きます。
  2. Webhook 設定を開きます。
  3. Webhook 名と送信先 URL を入力します。
  4. 必要に応じてカスタムヘッダーを追加し、保存します。
  5. テスト送信を実行し、受信側が 2xx を返すことを確認します。

認証トークンなど、送信先が必要とするヘッダーを最大 10 件設定できます。

Authorization: Bearer YOUR_TOKEN
X-Webhook-Secret: YOUR_SECRET

Content-Type は nocall が application/json に設定するため、カスタムヘッダーで上書きできません。

  • メソッド: POST
  • Content-Type: application/json
  • 成功レスポンス: 2xx
{
"id": "call_test_1234567890",
"timestamp": "2026-07-10T15:45:05.240+09:00",
"callStatus": "completed",
"direction": "outbound",
"from": "+815012345678",
"to": "+819098765432",
"duration": 120,
"isVoicemail": false,
"isCallback": false,
"phoneNumberType": "mobile",
"phoneNumberCountry": "JP",
"detailsUrl": "https://console.nocall.ai/workspace/ws_xxx/project/prj_xxx/call-logs/call_xxx",
"endUser": {
"id": "edu_test_1234567890",
"phoneNumber": "+819098765432",
"attributions": {
"会社名": "テスト株式会社",
"部署": "営業部"
},
"attributes": [
{ "label": "会社名", "value": "テスト株式会社" },
{ "label": "部署", "value": "営業部" }
]
},
"conversation": {
"startTime": "2026-07-10T15:43:05.240+09:00",
"endTime": "2026-07-10T15:45:05.240+09:00",
"duration": 120,
"messages": [
{ "role": "assistant", "content": "こんにちは。" },
{ "role": "user", "content": "お願いします。" }
]
},
"analysis": [
{
"label": "商談化",
"type": "boolean",
"description": "商談化したか",
"isOptional": false,
"value": true
},
{
"label": "目標ステータス",
"type": "goal_status",
"description": "目標の達成状況",
"isOptional": false,
"value": "achieved"
}
],
"agent": {
"id": "agt_test_1234567890",
"name": "テストエージェント"
}
}
フィールド 説明
id string 通話 ID
timestamp string Webhook 生成日時。ISO 8601 形式
callStatus string 通話ステータス
direction string | null outboundinboundweb、または null
from string 発信元
to string 発信先
duration number | null 通話時間(秒)
isVoicemail boolean 留守番電話と判定されたか
isCallback boolean コールバック通話か
phoneNumberType string | null 電話番号種別。例: mobile
phoneNumberCountry string | null 国コード。例: JP
detailsUrl string | null nocall の通話詳細 URL
endUser object | null コンタクト情報
conversation object | null 会話情報
analysis array | null 目標分析結果
agent object 通話に使ったエージェント

callStatus には preparingringingcompletedno_answerfailedunreachable などが入ります。

フィールド 説明
id string コンタクト ID
phoneNumber string E.164 形式の電話番号
attributions object 属性をラベルと値のマップで表した互換フィールド
attributes array { label: string, value: string } 形式の属性一覧

新しい連携では、属性の順序と重複をそのまま扱える attributes を使用してください。

フィールド 説明
startTime string | null 通話開始日時。ISO 8601 形式
endTime string | null 通話終了日時。ISO 8601 形式
duration number | null 通話時間(秒)
messages array | null 発話された assistant / user メッセージ

会話が作成されていない場合、conversationnull になります。

フィールド 説明
label string 分析項目名
type string booleantextnumberselectormulti_selectorgoal_status
description string 分析項目の説明
options string[] 選択式項目の選択肢。該当しない場合は省略されることがあります
isOptional boolean 任意項目か
value boolean | string | number | string[] | null 分析結果

goal_statusvalueachievedfailedpending のいずれかです。分析結果がない場合、analysisnull になります。

type value の型
boolean boolean true
text string "折り返しを希望"
number number 5
selector string "資料送付"
multi_selector string[] ["資料送付", "担当者連絡"]
goal_status string "achieved""failed""pending"
フィールド 説明
id string | number エージェント ID。互換性のため数値になる場合があります
name string エージェント名

受信側では id を文字列へ変換して扱うと安全です。

古い Webhook ペイロードを利用している場合は、次のように受信処理を変更してください。

旧フィールド・扱い 現行の扱い
endUser.attributions 新しい連携では endUser.attributes を使用する。attributions は互換フィールドとして現在も送信されます
conversation.goalStatus 削除済み。analysis から type="goal_status" の項目を参照します
conversation.goalResult 削除済み。必要な結果は analysistext 項目を参照します
agent.id を number として固定 string または number を受け付け、受信側で文字列へ正規化します
select / multi_select 現行の型名は selector / multi_selector です

directiondurationisVoicemailisCallbackphoneNumberTypephoneNumberCountryanalysis は旧ペイロードに存在しなかった追加フィールドです。受信側のスキーマで未知フィールドを拒否している場合は、現行ペイロードを受け付けるよう更新してください。