Available Events
Levers sends webhook notifications for the following events:
| Event | Description |
|---|
phone_call.ended | Triggered when an AI phone call completes |
phone_call.ended
Triggered when an AI phone call finishes. This event includes comprehensive call data including transcription, sentiment analysis, and call outcome.
Payload Schema
{
"providerCallId": "069652c8-d01e-733e-8000-7c64a16dde5f",
"numberFrom": "+15074106928",
"numberTo": "+971585420805",
"providerStatus": "pass",
"deliveryStatus": "pass",
"duration": 53,
"summary": null,
"endedReason": null,
"callOutput": "CALL_RESULT",
"callOutputReasoning": "Detailed evaluation and reasoning for the call result based on the conversation context and objectives.",
"sentimentOutput": "NEUTRAL",
"sentimentOutputReasoning": "Analysis of the contact's emotional tone and engagement level throughout the conversation.",
"transcription": "Full transcript of the conversation between the AI assistant and the contact.",
"recordingUrl": "levers-test-bucket:livekit-egress/56d4148b-3e6e-4095-b5c2-ca6e383357dd/6e0ac8cd-26c7-41ee-9e1e-a4cb692ba741/recording_1768238221.mp3",
"metadata": {
"requestMetadata": {
"project_id": "proj_123",
"extra_id": "custom_id_456"
}
}
}
Field Descriptions
| Field | Type | Description |
|---|
providerCallId | string (UUID) | Unique identifier for the call from the telephony provider |
numberFrom | string | The Levers phone number that made the call (E.164 format) |
numberTo | string | The phone number that received the call (E.164 format) |
providerStatus | string | Status of the call from provider perspective (pass, fail) |
deliveryStatus | string | Whether the call was successfully delivered (pass, fail) |
duration | integer | Call duration in seconds |
summary | string | null | Brief summary of the call (may be null) |
endedReason | string | null | Reason why the call ended (may be null) |
callOutput | string | Result of the call evaluation based on the conversation outcome |
callOutputReasoning | string | Detailed evaluation and reasoning for the call result based on the conversation context and objectives |
sentimentOutput | string | Detected sentiment of the contact (POSITIVE, NEUTRAL, NEGATIVE) |
sentimentOutputReasoning | string | Analysis of the contact’s emotional tone and engagement level throughout the conversation |
transcription | string | Full text transcript of the conversation |
recordingUrl | string | URL to the call recording audio file |
metadata | object | Additional metadata about the call (key-value pairs). Contains requestMetadata which includes any custom data passed when initiating the call (e.g., project_id, extra_id) |
Call Output Values
The callOutput field can include various outcomes such as:
| Value | Description |
|---|
PAYMENT EXTENSION | Contact requested more time to pay |
PAYMENT PROMISE | Contact committed to paying by a specific date |
CALL BACK REQUESTED | Contact asked to be called again later |
WRONG NUMBER | The number was invalid or wrong contact |
NOT INTERESTED | Contact declined to discuss the matter |
PAYMENT COMPLETED | Payment was made during/after the call |
Sentiment Values
| Value | Description |
|---|
POSITIVE | Contact was cooperative and engaged |
NEUTRAL | Contact was neither cooperative nor resistant |
NEGATIVE | Contact was frustrated, angry, or uncooperative |
Learn how to verify webhook signatures to secure your endpoint.