Webphone Webhooks

## Overview

The webphone sends call event data to your system via webhooks. These events represent the full lifecycle of a call and include metadata, results, and optional AI-powered insights.

The three main events are:

– `call_start`

– `call_stop`

– `call_postprocess` (optional)

Below is a complete example using realistic dummy data.

## Example Payloads: Full Lifecycle

### 1. Call Start Event

Sent when a call is initiated from the webphone.

“`json

{

  “event”: “call_start”,

  “call_id”: “x71p99345762k44nm28d55q90lbc6v”,

  “direction”: “outgoing”,

  “status”: “start”,

  “date”: “2026-06-12T10:03:11.215Z”,

  “callerid”: “Laura (3001)”,

  “caller_number”: “3001”,

  “caller_name”: “Laura”,

  “callee_number”: “0309876543”,

  “callee_name”: “BusinessCompany”,

  “local_number”: “3001”,

  “local_name”: “Laura”,

  “remote_number”: “0309876543”,

  “remote_name”: “BusinessCompany”,

  “from”: {

    “name”: “Laura”,

    “number”: “3001”

  },

  “to”: {

    “name”: “BusinessCompany”,

    “number”: “0309876543”

  },

  “call_result”: null,

  “duration_sec”: 0,

  “started_at”: “2026-06-12T10:03:11.214Z”,

  “ended_at”: null,

  “user_email”: “laura.devries@bedrijf.nl”

}

“`

### 2. Call Stop Event

Sent when the call ends.

“`json

{

  “event”: “call_stop”,

  “call_id”: “x71p99345762k44nm28d55q90lbc6v”,

  “direction”: “outgoing”,

  “status”: “stop”,

  “date”: “2026-06-12T10:04:02.487Z”,

  “callerid”: “Laura (3001)”,

  “caller_number”: “3001”,

  “caller_name”: “Laura”,

  “callee_number”: “0309876543”,

  “callee_name”: “BusinessCompany”,

  “local_number”: “3001”,

  “local_name”: “Laura”,

  “remote_number”: “0309876543”,

  “remote_name”: “BusinessCompany”,

  “from”: {

    “name”: “Laura”,

    “number”: “3001”

  },

  “to”: {

    “name”: “BusinessCompany”,

    “number”: “0309876543”

  },

  “call_result”: “Answered”,

  “duration_sec”: 51,

  “started_at”: “2026-06-12T10:03:11.214Z”,

  “ended_at”: “2026-06-12T10:04:02.487Z”,

  “user_email”: “laura.devries@bedrijf.nl”

}

### 3. Call Post-Process Event – Optional

Sent after the call has been processed, for example after transcription and AI analysis.

Analysis is a dynamic object that can contain any number of key-value pairs.

“`json

{

  “event”: “call_postprocess”,

  “call_id”: “x71p99345762k44nm28d55q90lbc6v”,

  “direction”: “outgoing”,

  “status”: “stop”,

  “date”: “2026-06-12T10:04:21.903Z”,

  “callerid”: “Laura (3001)”,

  “caller_number”: “3001”,

  “caller_name”: “Laura”,

  “callee_number”: “0309876543”,

  “callee_name”: “BusinessCompany”,

  “local_number”: “3001”,

  “local_name”: “Laura”,

  “remote_number”: “0309876543”,

  “remote_name”: “BusinessCompany”,

  “from”: {

    “name”: “Laura”,

    “number”: “3001”

  },

  “to”: {

    “name”: “BusinessCompany”,

    “number”: “0309876543”

  },

  “call_result”: “Answered”,

  “duration_sec”: 51,

  “started_at”: “2026-06-12T10:03:11.214Z”,

  “ended_at”: “2026-06-12T10:04:02.487Z”,

  “transcription”: “[12:03:14 PM] Callee: Welcome to BusinessCompany.\n[12:03:16 PM] Callee: This call may be recorded for quality purposes.\n[12:03:18 PM] Callee: Our current waiting time is longer than usual.\n[12:03:22 PM] Caller: Hello?\n[12:03:24 PM] Callee: Please visit our website for frequently asked questions.\n[12:03:27 PM] Caller: I can’t hear anything.\n[12:03:29 PM] Callee: Press 1 for sales.\n[12:03:31 PM] Callee: Press 2 for support.\n[12:03:33 PM] Caller: Hello?”,

  “analysis”: {

    “samenvatting”: “The caller reached an automated system at BusinessCompany. The system informed about call recording and increased waiting times, and provided IVR options. The caller attempted to make contact but did not reach a live agent. The call ended without resolution.”,

    “actiepunten”: [

      “Verify audio connectivity on the caller side.”,

      “Improve IVR routing efficiency.”,

      “Offer a callback option during high wait times.”,

      “Ensure quicker connection to live agents.”

    ],

    “sentiment”: “neutral”

  },

  “user_email”: “laura.devries@bedrijf.nl”

}

“`

## How Webphone Webhooks Work

These events are automatically generated and sent by the webphone, a browser-based softphone, to your configured webhook endpoint.

### Flow

1. User starts a call  

   → `call_start` is sent

2. Call ends  

   → `call_stop` is sent

3. Call is processed, including transcription and AI analysis  

   → `call_postprocess` is sent

## Key Benefits

– Full call lifecycle tracking

– Real-time call logging

– AI-powered transcription and summaries

– CRM integration

– Workflow automation, such as follow-ups and callbacks

## Summary

| Event | Description |

|—|—|

| `call_start` | Call has started |

| `call_stop` | Call has ended |

| `call_postprocess` | Call enriched with AI and transcription |