Skip to main content
Signals offers several kinds of voice chat event types that can be sent to your webhook URLs.
To learn how to specify webhook URLs for your cloud employees in the Signals app, please see the webhook URLs configuration step in the quickstart guide.
We currently only send a call_analyzed event at the moment to not spam your webhook.
Below you will find an example of the data structure for outbound voice calls.

Webhook Response Structure

When an outbound call event occurs, Signals will send a webhook response with the following structure:
{
    "event": "call_analyzed",
    "call": {
        "call_type": "phone",
        "call_direction": "outbound",
        "from_number": "+1234567890",
        "to_number": "+1234567890",
        "call_duration": 120,
        "call_start_time": "1972-01-01T00:00:00Z",
        "call_end_time": "1972-01-01T00:00:00Z",
        "call_status": "completed",
        "metadata": {},
        "extracted_variables": {
            "name": "Susan",
            "email": "susan@example.com",
            "phone": "+1234567890",
            "company": "Example Inc.",
            "title": "VP of Sales"
        },
        "disconnect_reason": "user_hangup",
        "transcript": "Agent: Hello I'm Emma, what can I help you with today?\n...",
        "transcript_object": [
            {
                "role": "agent",
                "content": "Hello I'm Emma, what can I help you with today?",
                "metadata": {
                    "response_id": 0,
                    "knowledge_base_content": [
                        "{Title: Salutation}\n\nBe friendly when introducing yourself.",
                        ...
                    ]
                }
            },
            {
                "role": "user",
                "content": "Hi Emma, I want to learn more about your company!"
            },
            ...
        ],
        "transcript_with_tool_calls": [ [Object], [Object], ... ],
        "meeting_event": {
            "id": 123,
            "name": "...",
            "agent_name": "...",
            "date": "1972-01-01",
            "duration_minutes": 120,
            "lead_time_minutes": 10
        },
        "opt_out_sensitive_data": false,
        "call_analysis": {
            "call_summary": "...",
            "in_voicemail": false,
            "user_sentiment": "...",
            "call_successful": true,
            "custom_analysis_data": {
                "failed_qualified_question": ""
            }
        }
    }
}
If metadata or custom variables are empty they will be omitted from the webhook event payload

Key Fields

FieldDescription
eventThe type of call event (call-start, call-ended, or call-analyzed)
call.call_typeType of call (always “phone” for voice calls)
call.call_directionDirection of the call (always “outbound”)
call.from_numberThe phone number that initiated the call
call.to_numberThe phone number that received the call
call.call_durationDuration of the call in seconds
call.call_statusStatus of the call (e.g., “completed”, “failed”, “busy”)
call.extracted_variablesInformation extracted during the call
call.transcriptThe full conversation transcript
call.call_analysisAnalysis results including summary and sentiment

Usage Notes

  1. Call Status
    • completed: Call ended normally
    • failed: Call failed to connect
    • busy: Recipient was busy
    • no_answer: Call was not answered
    • voicemail: Call went to voicemail
  2. Call Analysis
    • Available only in call-analyzed events
    • Includes sentiment analysis and call summary
    • May contain custom analysis data based on your configuration
  3. Transcripts
    • transcript: Plain text version of the conversation
    • transcript_object: Structured version with speaker information and knowledge base context
    • transcript_with_tool_calls: Includes tool usage during the call