Skip to main content
Brightcall Dialer API

Learn more about Brightcall Webhooks

Updated this week

You can find webhook examples on Swagger (here ↗️):

There are different events for each call, such as "callStarted", "callRinging", "callAnswered", "callEnded", and "webphoneSummary". The "webphoneSummary" event is sent after an agent sets a tag for the call. It's important to note that the payload for each event is sent to a different endpoint.

Click to get a summary of each event.

  • callStarted: Sent when a call is initiated, with CRM data shown to the agent.

  • callRinging: Sent when the phone is ringing, with CRM data shown to the agent.

  • callAnswered: Sent when the call is answered, but often not processed.

  • callEnded: Sent when the call ends, and call data is sent to the CRM.

  • webphoneSummary: Sent after the call ends and the agent selects the call outcome, but it might not be triggered if no outcome is chosen. This event sends outcome details to the CRM.

Click to get a a detailed description of each event.


1. callStarted

  • Description: This event is triggered when a call is initiated by an agent or when an incoming call starts.

  • When it is Sent: The event is sent at the very beginning of a call, before the call starts ringing. It indicates that a connection attempt is being made to either an internal or external number.

  • Data: CRM data can be sent to the agent at this point to provide important context about the caller, such as the customer’s name, account information, or previous interactions. This helps the agent be prepared for the call.

2. callRinging

  • Description: This event is triggered when a call is actively ringing, either on the agent’s side for an incoming call or on the customer’s side for an outbound call.

  • When it is Sent: The event is sent during the ringing phase of the call, before it is answered.

  • Data: Similar to the callStarted event, you can send relevant CRM data such as caller details, recent interactions, or any important notes to the agent while the phone is ringing.

3. callAnswered

  • Description: This event is triggered when a call is answered by either the agent (in the case of inbound calls) or the customer (for outbound calls). However, in many cases, this event is not processed, so it may not be reliably used for updates or further actions.

  • When it is Sent: The event is sent immediately after the call is connected, but since it is often not processed, its usefulness for further CRM interactions is limited.

4. callEnded

  • Description: This event is triggered when the call is completed and the line is disconnected.

  • When it is Sent: The event is sent as soon as the call is terminated by either the agent or the customer.

  • Data: Instead of receiving data, this event usually sends call details to the CRM. Information such as call duration, caller ID, or another call data is typically logged at this stage for reporting or future reference.

5. webphoneSummary

  • Description: This event is sent after the agent selects or inputs the call outcome, such as “completed”, “not reached”, or “voicemail”. However, there is a possibility that this event will not be sent if the agent does not select an outcome or skips the disposition step.

  • When it is Sent: The event is sent after the call has ended and the agent chooses an outcome. In some cases, if the outcome is not selected, the event may not be sent at all.

  • Data: The webphoneSummary event is responsible for sending the call outcome and summary to the CRM, including information like call disposition, duration, notes entered by the agent and Brightcall AI Intelligence that includes AI summary & Transcript (if enabled for your account). However, if the agent fails to select an outcome, this data may not be recorded, and the event won’t be triggered.

For example:

When responding to the "callStarted" and "callRinging" webhook events, you can send some data from your side that will be shown to the agents. The response should match the "WebhookPayloadCallStartResponse" or "WebhookPayloadCallRingingResponse" scheme that is available on Swagger.
Here's an example of a response:

{
"success": true,
"contact": {
"id": "1",
"crmType": "CRM",
"phoneNumber": "1234567890",
"callId": "1111111111.11111",
"fields": [
{
"title": "CRM Lead URL",
"value": "https://crm-link",
"isWebsite": true
},
{
"title": "Email",
"value": "[email protected]"
},
{
"title": "Name",
"value": "John Doe"
}
]
}
}

How to set up ?

In order to set the webhook URL, you need to log into the Brightcall Dashboard and open that page↗.

It is possible to set up several webhooks. In that case, the payload would be sent to all of them.

Adding a new webhook

  1. If a webhook already specified, click the Add connector button

  2. Put endpoint URL to the API connector URL field

  3. If needed, specify additional parameters in the Access to calls section

  4. if several webhooks added, specify order by dragging connectors over the page

  5. Click the Save button on a bottom of the page

Elements of the connector

"Connector is active" switch — when set to off, no information would be sent to the specified endpoint.

"API connector url" field — endpoint URL to receive data.

"Additional data as json string" field — if specified, this information would be added to the payload.

"Use routes" checkbox - please read the description carefully:

"Is post format" checkbox — specified if the payload would be sent in POST or GET format. It is strongly recommended to enable this feature

"Send SMS events" checkbox — if enabled, webhook would be also send for SMS events

"Remove" button — deletes the connector.

"Add connector" button — add a new connector after selected one.

Restrictions

  1. It is not possible to receive only one event type, so all events data would be pushed to the specified endpoint. If only one event is needed, it should be filtered on the endpoint side

  2. For webphoneSummary webhook only result tag is sent, without its type(Positive, Neutral, Negative)

  3. It is not possible to send test payloads

Did this answer your question?