This page shows the different webhook formats we send for events.
Webhook JSON Example: Result Notifications
{
"event_type": "result.completed",
"data": {
  "id": 101,
  "name": "string",
  "agent": 42,
  "status": "completed",
  "met_expected_outcome_count": 0,
  "total_expected_outcome_count": 0,
  "success_rate": 100,
  "run_as_text": false,
  "is_cronjob": false,
  "runs": {
    "1": {
      "id": 301,
      "scenario": {
        "id": 205,
        "name": "Customer's Specific Preference Confirmation",
        "personality_name": "Direct Communicator ",
        "expected_outcome_prompt": ""
      },
      "expected_outcome": {},
      "success": true,
      "evaluation": {
        "metrics": []
      },
      "transcript_object": [
        {
          "role": "Testing Agent",
          "time": "00:02",
          "content": "Hello.",
          "end_time": 2.82,
          "start_time": 2.32
        }
      ],
      "voice_recording": "https://example.com/audio/recording.wav",
      "timestamp": "2025-07-31T10:37:40Z",
      "executed_at": "2025-07-31T10:37:41Z",
      "error_message": ""
    }
  },
  "created_at": "2025-07-31T10:37:40Z"
}
}
Cronjob Notifications
{
  "event_type": "result.completed",
  "data": {
    "id": 6,
    "name": "string",
    "agent": 1,
    "status": "completed",
    "met_expected_outcome_count": 0,
    "total_expected_outcome_count": 0,
    "success_rate": 0.0,
    "run_as_text": false,
    "is_cronjob": true,
    "runs": {
      "6": {
        "id": 6,
        "scenario": {
          "id": 13,
          "name": "Secure Cell Activation Workflow",
          "personality_name": "Direct Communicator ",
          "expected_outcome_prompt": ""
        },
        "expected_outcome": {},
        "success": false,
        "evaluation": {
          "metrics": [
            {
              "id": 7,
              "name": "workflow-adherence-check",
              "type": "binary_workflow_adherence",
              "score": 0,
              "explanation": [
                "This metric explicitly requires a false outcome for validation."
              ],
              "vocera_defined_metric_code": "string"
            },
          ]
        },
        "transcript_object": [
          {
            "role": "Testing Agent",
            "time": "00:01",
            "content": "Hello.",
            "end_time": 1.78,
            "start_time": 1.28
          },
          {
            "role": "Main Agent",
            "time": "00:02",
            "content": "World",
            "end_time": 2.9,
            "start_time": 2.32
          }
        ],
        "voice_recording": "https://example.com/audio/recording.wav",
        "timestamp": "2025-07-31T10:53:16Z",
        "executed_at": "2025-07-31T10:53:16Z",
        "error_message": ""
      }
    },
    "created_at": "2025-07-31T10:53:16Z"
  }
}
Call Log Evaluation Notifications
{
  "event_type": "call_log.completed",
  "data": {
    "id": 95,
    "duration": "01:10",
    "voice_recording_url": "https://example.com/audio/recording.mp3",
    "critical_categories": [],
    "status": "success",
    "agent_id": "1",
    "timestamp": "2025-07-31T11:13:42Z",
    "success": true,
    "is_reviewed": false,
    "feedback": "",
    "evaluation": {
      "metrics": [
        {
          "id": 5,
          "name": "workflow-adherence-check",
          "type": "binary_workflow_adherence",
          "vocera_defined_metric_code": "string",
          "score": 5,
          "explanation": [
            "This metric is defined to always return true.",
            "The AI agent, by definition of the metric, meets the criteria."
          ]
        }
      ]
    },
    "transcript": "[0:00] Testing Agent: Hello. This is ExampleCorp.\n[0:01] Main Agent: Hello. You've reached Professional Services",
    "transcript_object": [
      {
        "role": "Testing Agent",
        "time": "0:00",
        "content": "Hello. This is ExampleCorp.",
        "end_time": 1.7,
        "start_time": 0.24
      },
      {
        "role": "Main Agent",
        "time": "0:01",
        "content": "Hello. You've reached Professional Services.",
        "end_time": 7.3,
        "start_time": 1.2
      },
      {
        "role": "Testing Agent",
        "time": "0:02",
        "content": "Please stay on the line while we connect you. This call may be monitored.",
        "end_time": 8.42,
        "start_time": 2.0
      },
      {
        "role": "Main Agent",
        "time": "0:07",
        "content": "How can I help you today?",
        "end_time": 8.58,
        "start_time": 7.36
      },
      {
        "role": "Testing Agent",
        "time": "0:19",
        "content": "Hello. Hi.",
        "end_time": 20.32,
        "start_time": 19.18
      },
      {
        "role": "Main Agent",
        "time": "0:21",
        "content": "Hi there. How can I assist you today?",
        "end_time": 23.77,
        "start_time": 21.35
      },
      {
        "role": "Testing Agent",
        "time": "0:25",
        "content": "I'm calling regarding an order. Are you working on one now?",
        "end_time": 35.26,
        "start_time": 25.49
      },
      {
        "role": "Main Agent",
        "time": "0:36",
        "content": "Thanks for reaching out.",
        "end_time": 38.45,
        "start_time": 36.45
      },
      {
        "role": "Testing Agent",
        "time": "0:38",
        "content": "Hi.",
        "end_time": 38.7,
        "start_time": 38.2
      },
      {
        "role": "Main Agent",
        "time": "0:38",
        "content": "This is a consulting firm. Would you like help with anything related to that?",
        "end_time": 52.59,
        "start_time": 38.45
      },
      {
        "role": "Testing Agent",
        "time": "0:53",
        "content": "No.",
        "end_time": 54.18,
        "start_time": 53.68
      },
      {
        "role": "Main Agent",
        "time": "0:55",
        "content": "Understood. Is there anything else I can help you with?",
        "end_time": 59.18,
        "start_time": 55.32
      },
      {
        "role": "Testing Agent",
        "time": "0:59",
        "content": "No.",
        "end_time": 60.41,
        "start_time": 59.91
      },
      {
        "role": "Main Agent",
        "time": "1:01",
        "content": "Thanks for calling. Goodbye.",
        "end_time": 70.2,
        "start_time": 61.8
      }
    ],
    "call_ended_reason": "",
    "dropoff_point": "end of conversation as no queries remaining",
    "topic": "{}",
    "customer_number": "",
    "user_generated_transcript": null,
    "metadata": {},
    "dynamic_variables": {},
    "created_at": "2025-07-31T11:13:42Z",
    "updated_at": "2025-07-31T11:14:04Z",
    "call_id": "stereo_audio",
    "agent": 1
  }
}
Webhook Forwarding
{
    "message":{
      "timestamp":1728862846068,
      "type":"end-of-call-report",
      "analysis":{
          "summary":"The call is between a mortgage representative named Tush and a customer named Alex...",
          "successEvaluation":"true"
      },
      "artifact":{
          "messages":[
            {
                "role":"system",
                "message":"<Personality>\nYou are a middle aged man from New York with a strong French accent</Personality>",
                "time":1728862774417,
                "secondsFromStart":0
            },
            {
                "role":"user",
                "message":"Hello. This is Tush calling from.",
                "time":1728862776876,
                "endTime":1728862778816,
                "secondsFromStart":2.32,
                "duration":1940
            },
            {
                "role":"bot",
                "message":"Yeah. What do you want?",
                "time":1728862782375.9998,
                "endTime":1728862784086,
                "secondsFromStart":7.8199997,
                "duration":1390.001220703125,
                "source":""
            },
            {
                "role":"user",
                "message":"Hi. So I wanted to verify if I'm speaking to Alex too.",
                "time":1728862785216,
                "endTime":1728862789286,
                "secondsFromStart":10.66,
                "duration":4070
            },
            {
                "role":"bot",
                "message":"Yeah. It's Alex. What do you need?",
                "time":1728862789756,
                "endTime":1728862791396,
                "secondsFromStart":15.2,
                "duration":1640,
                "source":""
            },
            {
                "role":"user",
                "message":"So that's great. Welcome to any mortgage. I'm happy to say that your loan has been approved....",
                "time":1728862792936,
                "endTime":1728862811816,
                "secondsFromStart":18.38,
                "duration":15119.998046875
            },
            {
                "role":"bot",
                "message":"Alex Dieuet.",
                "time":1728862813506,
                "endTime":1728862814246.002,
                "secondsFromStart":38.95,
                "duration":740.001953125,
                "source":""
            },
            {
                "role":"user",
                "message":"And the email address, please?",
                "time":1728862815716,
                "endTime":1728862818346,
                "secondsFromStart":41.16,
                "duration":2229.9970703125
            },
            {
                "role":"bot",
                "message":"Um, why do you need that?",
                "time":1728862819406,
                "endTime":1728862820846,
                "secondsFromStart":44.85,
                "duration":1440,
                "source":""
            },
            {
                "role":"user",
                "message":"I just need it for verification.",
                "time":1728862821776,
                "endTime":1728862823586,
                "secondsFromStart":47.22,
                "duration":1810
            },
            {
                "role":"bot",
                "message":"Fine. It's alex dot outlook dot com.",
                "time":1728862824396,
                "endTime":1728862826736,
                "secondsFromStart":49.84,
                "duration":2340,
                "source":""
            },
            {
                "role":"user",
                "message":"Okay. Great. And your",
                "time":1728862828056,
                "endTime":1728862829836,
                "secondsFromStart":53.5,
                "duration":1780
            },
            {
                "role":"bot",
                "message":"Yeah.",
                "time":1728862829276,
                "endTime":1728862829776,
                "secondsFromStart":54.72,
                "duration":500,
                "source":""
            },
            {
                "role":"user",
                "message":"physical mailing address as well, please?",
                "time":1728862830406.002,
                "endTime":1728862832186,
                "secondsFromStart":55.850002,
                "duration":1779.998046875
            },
            {
                "role":"bot",
                "message":"600 North McClure Court, Chicago,",
                "time":1728862833036,
                "endTime":1728862835056,
                "secondsFromStart":58.48,
                "duration":2020,
                "source":""
            },
            {
                "role":"user",
                "message":"Great. That's it. Okay.",
                "time":1728862836466,
                "endTime":1728862838346,
                "secondsFromStart":61.91,
                "duration":1780
            },
            {
                "toolCalls":[
                  {
                      "id":"call_8VwgR084TgFhoIFScCy",
                      "type":"function",
                      "function":{
                        "name":"endCall",
                        "arguments":"{}"
                      }
                  }
                ],
                "role":"tool_calls",
                "message":"",
                "time":1728862838338,
                "secondsFromStart":62.614
            },
            {
                "role":"tool_call_result",
                "time":1728862839057,
                "secondsFromStart":63.333,
                "name":"endCall",
                "result":"Success.",
                "toolCallId":"call_8VlD2084TgFhoIFScCy"
            }
          ],
          "messagesOpenAIFormatted":[
            {
                "role":"system",
                "content":"<Personality>\nYou are a middle aged man from New York with a strong French accent</Personality>"
            },
            {
                "role":"user",
                "content":"Hello. This is Tush calling from."
            },
            {
                "role":"assistant",
                "content":"Yeah. What do you want?"
            },
            {
                "role":"user",
                "content":"Hi. So I wanted to verify if I'm speaking to Alex too."
            },
            {
                "role":"assistant",
                "content":"Yeah. It's Alex. What do you need?"
            },
            {
                "role":"user",
                "content":"So that's great. Welcome to any mortgage. I'm happy to say that your loan has been approved..."
            },
            {
                "role":"assistant",
                "content":"Alex Dieuet."
            },
            {
                "role":"user",
                "content":"And the email address, please?"
            },
            {
                "role":"assistant",
                "content":"Um, why do you need that?"
            },
            {
                "role":"user",
                "content":"I just need it for verification."
            },
            {
                "role":"assistant",
                "content":"Fine. It's alex dot outlook dot com."
            },
            {
                "role":"user",
                "content":"Okay. Great. And your"
            },
            {
                "role":"assistant",
                "content":"Yeah."
            },
            {
                "role":"user",
                "content":"physical mailing address as well, please?"
            },
            {
                "role":"assistant",
                "content":"600 North McClure Court, Chicago,"
            },
            {
                "role":"user",
                "content":"Great. That's it. Okay."
            },
            {
                "role":"assistant",
                "tool_calls":[
                  {
                      "id":"call_8VlD2084TgFhoIFScCy",
                      "type":"function",
                      "function":{
                        "name":"endCall",
                        "arguments":"{}"
                      }
                  }
                ]
            },
            {
                "role":"tool",
                "tool_call_id":"call_8TlD2084TgFhoIFScCy",
                "content":"Success."
            }
          ],
          "transcript":"User: Hello. This is Tush calling from.\nAI: Yeah. What do you want?\nUser: Hi. So I wanted to verify..",
          "recordingUrl":"https://example.com/audio/recording.wav",
          "stereoRecordingUrl":"https://example.com/audio/recording.wav"
      },
      "startedAt":"2024-10-13T23:39:35.724Z",
      "endedAt":"2024-10-13T23:40:39.072Z",
      "endedReason":"assistant-ended-call",
      "cost":0.112,
      "costBreakdown":{
          "stt":0.0115,
          "llm":0.0319,
          "tts":0.012,
          "vapi":0.0528,
          "total":0.112,
          "llmPromptTokens":6159,
          "llmCompletionTokens":73,
          "ttsCharacters":239,
          "analysisCostBreakdown":{
            "summary":0.0018,
            "summaryPromptTokens":279,
            "summaryCompletionTokens":63,
            "structuredData":0,
            "structuredDataPromptTokens":0,
            "structuredDataCompletionTokens":0,
            "successEvaluation":0.0021,
            "successEvaluationPromptTokens":672,
            "successEvaluationCompletionTokens":4
          }
      },
      "costs":[
          {
            "type":"transcriber",
            "transcriber":{
                "provider":"deepgram",
                "model":"nova-2"
            },
            "minutes":1.1590666666666667,
            "cost":0.01154963
          },
          {
            "type":"model",
            "model":{
                "provider":"openai",
                "model":"gpt-4o"
            },
            "promptTokens":6159,
            "completionTokens":73,
            "cost":0.03189
          },
          {
            "type":"voice",
            "voice":{
                "provider":"11labs",
                "voiceId":"MZHabtAqfFWWdxrbZ9iS"
            },
            "characters":239,
            "cost":0.01195
          },
          {
            "type":"vapi",
            "subType":"normal",
            "minutes":1.0558,
            "cost":0.05279
          },
          {
            "type":"analysis",
            "analysisType":"summary",
            "model":{
                "provider":"anthropic",
                "model":"claude-3-5-sonnet-20240620"
            },
            "promptTokens":279,
            "completionTokens":63,
            "cost":0.001782
          },
          {
            "type":"analysis",
            "analysisType":"successEvaluation",
            "model":{
                "provider":"anthropic",
                "model":"claude-3-5-sonnet-20240620"
            },
            "promptTokens":672,
            "completionTokens":4,
            "cost":0.002076
          }
      ],
      "durationMs":63348,
      "durationSeconds":63.348,
      "durationMinutes":1.0558,
      "summary":"The call is between a mortgage representative named Tush and a customer named Alex...",
      "transcript":"User: Hello. This is Tush calling from.\nAI: Yeah. What do you want?...",
      "messages":[
          {
            "role":"system",
            "message":"<Personality>\nYou are a middle aged man from New York with a strong French accent</Personality>",
            "time":1728862774417,
            "secondsFromStart":0
          },
          {
            "role":"user",
            "message":"Hello. This is Tush calling from.",
            "time":1728862776876,
            "endTime":1728862778816,
            "secondsFromStart":2.32,
            "duration":1940
          },
          {
            "role":"bot",
            "message":"Yeah. What do you want?",
            "time":1728862782375.9998,
            "endTime":1728862784086,
            "secondsFromStart":7.8199997,
            "duration":1390.001220703125,
            "source":""
          },
          {
            "role":"user",
            "message":"Hi. So I wanted to verify if I'm speaking to Alex too.",
            "time":1728862785216,
            "endTime":1728862789286,
            "secondsFromStart":10.66,
            "duration":4070
          },
          {
            "role":"bot",
            "message":"Yeah. It's Alex. What do you need?",
            "time":1728862789756,
            "endTime":1728862791396,
            "secondsFromStart":15.2,
            "duration":1640,
            "source":""
          },
          {
            "role":"user",
            "message":"So that's great. Welcome to any mortgage. I'm happy to say that your loan has been approved...",
            "time":1728862792936,
            "endTime":1728862811816,
            "secondsFromStart":18.38,
            "duration":15119.998046875
          },
          {
            "role":"bot",
            "message":"Alex Dieuet.",
            "time":1728862813506,
            "endTime":1728862814246.002,
            "secondsFromStart":38.95,
            "duration":740.001953125,
            "source":""
          },
          {
            "role":"user",
            "message":"And the email address, please?",
            "time":1728862815716,
            "endTime":1728862818346,
            "secondsFromStart":41.16,
            "duration":2229.9970703125
          },
          {
            "role":"bot",
            "message":"Um, why do you need that?",
            "time":1728862819406,
            "endTime":1728862820846,
            "secondsFromStart":44.85,
            "duration":1440,
            "source":""
          },
          {
            "role":"user",
            "message":"I just need it for verification.",
            "time":1728862821776,
            "endTime":1728862823586,
            "secondsFromStart":47.22,
            "duration":1810
          },
          {
            "role":"bot",
            "message":"Fine. It's alex dot outlook dot com.",
            "time":1728862824396,
            "endTime":1728862826736,
            "secondsFromStart":49.84,
            "duration":2340,
            "source":""
          },
          {
            "role":"user",
            "message":"Okay. Great. And your",
            "time":1728862828056,
            "endTime":1728862829836,
            "secondsFromStart":53.5,
            "duration":1780
          },
          {
            "role":"bot",
            "message":"Yeah.",
            "time":1728862829276,
            "endTime":1728862829776,
            "secondsFromStart":54.72,
            "duration":500,
            "source":""
          },
          {
            "role":"user",
            "message":"physical mailing address as well, please?",
            "time":1728862830406.002,
            "endTime":1728862832186,
            "secondsFromStart":55.850002,
            "duration":1779.998046875
          },
          {
            "role":"bot",
            "message":"600 North McClure Court, Chicago,",
            "time":1728862833036,
            "endTime":1728862835056,
            "secondsFromStart":58.48,
            "duration":2020,
            "source":""
          },
          {
            "role":"user",
            "message":"Great. That's it. Okay.",
            "time":1728862836466,
            "endTime":1728862838346,
            "secondsFromStart":61.91,
            "duration":1780
          },
          {
            "toolCalls":[
                {
                  "id":"call_8VwgRTTlTgFhoIFScCy",
                  "type":"function",
                  "function":{
                      "name":"endCall",
                      "arguments":"{}"
                  }
                }
            ],
            "role":"tool_calls",
            "message":"",
            "time":1728862838338,
            "secondsFromStart":62.614
          },
          {
            "role":"tool_call_result",
            "time":1728862839057,
            "secondsFromStart":63.333,
            "name":"endCall",
            "result":"Success.",
            "toolCallId":"call_8VwgRTTlD2084TgFhoIFScCy"
          }
      ],
      "recordingUrl":"https://example.com/audio/recording.wav",
      "stereoRecordingUrl":"https://example.com/audio/stereo-recording.wav",
      "call":{
          "id":"df5832e8-2ea6-4ae4-8dcd-7771b69de4c8",
          "orgId":"08f74a93-34a1-4734-ad0d-009eea71d139",
          "createdAt":"2024-10-13T23:39:34.017Z",
          "updatedAt":"2024-10-13T23:39:34.017Z",
          "type":"webCall",
          "monitor":{
            "listenUrl":"wss://aws-us-west-2-production3-phone-call-websocket.vapi.ai/2ea6-4ae4-8dcd-7771b69de4c8/listen",
            "controlUrl":"https://aws-us-west-2-production3-phone-call-websocket.vapi.ai/2ea6-4ae4-8dcd-7771b69de4c8/control"
          },
          "webCallUrl":"https://vapi.daily.co/iBpUS5C5b0",
          "status":"queued",
          "assistant":{
            "name":"Kastle - Frustrated Dutch",
            "transcriber":{
                "provider":"deepgram",
                "model":"nova-2",
                "language":"en"
            },
            "model":{
                "model":"gpt-4o",
                "temperature":0,
                "messages":[
                  {
                      "content":"<Personality>\nYou are a middle aged man from New York with a strong French accent</Personality>",
                      "role":"system"
                  }
                ],
                "emotionRecognitionEnabled":true,
                "provider":"openai"
            },
            "voice":{
                "fillerInjectionEnabled":false,
                "inputMinCharacters":5,
                "provider":"11labs",
                "voiceId":"MZHabtAqfFbZ9iS",
                "stability":0.5,
                "similarityBoost":0.75
            },
            "endCallFunctionEnabled":true,
            "clientMessages":[
                "transcript",
                "hang",
                "function-call",
                "speech-update",
                "metadata",
                "transfer-update",
                "conversation-update"
            ],
            "serverMessages":[
                "end-of-call-report",
                "status-update",
                "hang",
                "function-call"
            ],
            "silenceTimeoutSeconds":99,
            "maxDurationSeconds":600,
            "parentId":"8a68-4e20-bd0e-d042ca56f9cc",
            "serverUrl":"https://example.com/process",
            "backgroundSound":"office",
            "backchannelingEnabled":true,
            "backgroundDenoisingEnabled":false,
            "startSpeakingPlan":{
                "smartEndpointingEnabled":true
            },
            "stopSpeakingPlan":{
                "numWords":2
            }
          },
          "assistantOverrides":{
            "clientMessages":[
                "transfer-update"
            ]
          }
      },
      "assistant":{
          "name":"Kastle - Frustrated Dutch",
          "transcriber":{
            "provider":"deepgram",
            "model":"nova-2",
            "language":"en"
          },
          "model":{
            "model":"gpt-4o",
            "temperature":0,
            "messages":[
                {
                  "content":"<Personality>\nYou are a middle aged man from New York with a strong French accent</Personality>",
                  "role":"system"
                }
            ],
            "emotionRecognitionEnabled":true,
            "provider":"openai"
          },
          "voice":{
            "fillerInjectionEnabled":false,
            "inputMinCharacters":5,
            "provider":"11labs",
            "voiceId":"MZHabtAqfFWWdxrbZ9iS",
            "stability":0.5,
            "similarityBoost":0.75
          },
          "endCallFunctionEnabled":true,
          "clientMessages":[
            "transcript",
            "hang",
            "function-call",
            "speech-update",
            "metadata",
            "transfer-update",
            "conversation-update"
          ],
          "serverMessages":[
            "end-of-call-report",
            "status-update",
            "hang",
            "function-call"
          ],
          "silenceTimeoutSeconds":99,
          "maxDurationSeconds":600,
          "parentId":"8a68-4e20-bd0e-d042ca56f9cc",
          "serverUrl":"https://example.com/process/",
          "backgroundSound":"office",
          "backchannelingEnabled":true,
          "backgroundDenoisingEnabled":false,
          "startSpeakingPlan":{
            "smartEndpointingEnabled":true
          },
          "stopSpeakingPlan":{
            "numWords":2
          }
      }
    }
}