Flireo AI
WebsiteLinkedin
WebsiteLinkedin
  1. Webhooks
  • API Reference
    • Agents
      • List all agents
      • Create a new agent
      • Get an agent
      • Update an agent
      • Delete an agent
    • Tool Templates
      • List all tool templates
      • Create a new tool template
      • Get a tool template
      • Update a tool template
      • Delete a tool template
    • Numbers
      • List all phone numbers
      • Register a phone number
      • Get a phone number
      • Update a phone number
      • Delete a phone number
    • Calls
      • List calls
      • Get call by ID
      • Initiate outbound call
    • Call Control
      • Send control command to active call
    • Usage
      • Get usage logs
    • SIP Trunks
      • List SIP trunks
      • Create a SIP trunk
      • Get a SIP trunk
      • Delete a SIP trunk
    • Voices
      • List available voices
    • BYOK
      • Get BYOK configurations
      • Add BYOK configuration
      • Delete BYOK configuration
      • Get BYOK provider configurations
    • Domains
      • Get your domain
      • Add a domain
      • Delete your domain
      • List available Resend domains
      • Select and sync a Resend domain
      • Verify domain DNS records
      • Refresh domain status
    • Webhooks
      • Dynamic assistant configuration webhook
      • Tool/Function Call
      • Call Status Update
      • End of Call Report
    • Analysis Templates
      • List analysis templates
      • Create analysis template
      • Get analysis template
      • Update analysis template
      • Delete analysis template
    • Organization
      • Get organization information
    • Campaigns
      • List all campaigns
      • Create a campaign
      • Get a campaign
      • Update a campaign
      • Delete a campaign
      • List campaign leads
      • Add a lead
      • Remove a lead
    • Schemas
      • Error
      • Pagination
      • UUID
      • Timestamp
      • SuccessResponse
      • STTConfig
      • LLMConfig
      • TTSConfig
      • XAIRealtimeConfig
      • Agent
      • AgentCreate
      • AgentUpdate
      • PhoneNumber
      • PhoneNumberCreate
      • PhoneNumberUpdate
      • Call
      • CallControlCommand
      • InjectContextCommand
      • SayCommand
      • EndCallCommand
      • TransferCommand
      • CallControlResponse
      • Account
      • OutboundCallRequest
      • OutboundCallResponse
      • UsageLog
      • UsageSummary
      • Organization
      • SipTrunk
      • SipTrunkCreate
      • Voice
      • AssistantRequestPayload
      • CallObject
      • AssistantRequestResponse
      • XAIRealtimeVoice
      • Customer
      • AssistantConfigOverride
      • AnalysisPlan
      • ToolCallsPayload
      • ToolCall
      • ToolCallsResponse
      • StatusUpdatePayload
      • EndOfCallReportPayload
      • ToolDefinition
      • EndCallTool
      • TransferCallTool
      • WebhookHeaders
      • XAIRealtimeWebhookNotes
      • ToolFunctionConfig
      • ToolTransferConfig
      • ToolTemplate
      • ToolTemplateCreate
      • ToolTemplateUpdate
      • AnalysisTemplate
      • CreateAnalysisTemplate
      • UpdateAnalysisTemplate
      • AnalysisTemplateListResponse
      • CampaignLead
      • Campaign
      • CampaignCreate
      • CampaignUpdate
      • CampaignLeadCreate
  • Documentation
    • Get started
      • Quickstart
      • Introduction
      • Authentication
    • Core concepts
      • Agents
      • Phone numbers
      • Calls
      • Webhooks
    • Api's
      • Organization
      • Agents
      • Phone numbers
      • Sip trunks
      • Calls
      • Call control
      • Usage
      • Voices
      • BYOK
      • Domains
      • Analysis templates
      • Tool templates
    • Webhooks
      • Overview
      • Assistant request
      • Tool calls
      • Status update
      • End of call report
      • Security
    • Guides
      • BYOK Setup
      • Call analysis
      • Custom Tools
      • Call Transfers
      • xAI Realtime Integration
      • Analysis templates
      • Billing
      • Error codes
      • Rate limits
      • Sip Trunks
      • Tool templates
      • Troubleshooting
WebsiteLinkedin
WebsiteLinkedin
  1. Webhooks

End of call report

Called after the call ends with a summary and optional structured analysis. This is the most commonly used webhook for CRM integrations.

When It's Called#

After the call ends, Flireo:
1.
Generates an AI summary of the conversation
2.
Runs structured analysis (if analysisPlan was configured)
3.
Sends the report to your webhook

Request Payload#

{
  "message": {
    "type": "end-of-call-report",
    "timestamp": "2025-12-13T12:05:30.000Z",
    "call": {
      "id": "5c4d030f-43e3-4e65-899e-8148521e660f",
      "type": "inboundPhoneCall",
      "status": "ended"
    },
    "phoneNumber": {
      "number": "+31850835037",
      "name": "Flireo Demo"
    },
    "customer": {
      "number": "+31612345678"
    },
    "durationSeconds": 84,
    "summary": "Klant vroeg naar openingstijden en wilde een afspraak maken voor volgende week.",
    "analysis": {
      "sentiment": 8,
      "hoofdonderwerp": "Afspraak maken",
      "vraag_beantwoord": true,
      "gesprek_kwaliteit": "Goed"
    }
  }
}

Payload Fields#

FieldTypeAlways PresentDescription
durationSecondsintegerYesTotal call duration
summarystringYesAI-generated summary
analysisobjectNoStructured analysis (if configured)

Response#

The response body is ignored. Return any 2xx status code to acknowledge receipt.

Analysis Configuration#

To get structured analysis, configure analysisPlan on your agent:
{
  "analysis_plan": {
    "structuredDataPlan": {
      "enabled": true,
      "schema": {
        "type": "object",
        "properties": {
          "sentiment": {
            "type": "integer",
            "minimum": 1,
            "maximum": 10,
            "description": "Customer sentiment score 1-10"
          },
          "intent": {
            "type": "string",
            "enum": ["support", "sales", "complaint", "other"]
          },
          "resolved": {
            "type": "boolean",
            "description": "Whether the customer's issue was resolved"
          },
          "follow_up_needed": {
            "type": "boolean"
          }
        }
      },
      "messages": [
        {
          "role": "system",
          "content": "Analyze the call transcript according to the provided schema. Return valid JSON matching the schema."
        },
        {
          "role": "user",
          "content": "Schema: {{schema}}\n\nTranscript: {{transcript}}\n\nCall ended because: {{endedReason}}"
        }
      ]
    },
    "minMessagesThreshold": 5
  }
}

Analysis Plan Fields#

FieldDescription
structuredDataPlan.enabledEnable/disable analysis
structuredDataPlan.schemaJSON Schema for output
structuredDataPlan.messagesPrompt template with placeholders
minMessagesThresholdMin conversation messages before running

Available Placeholders#

PlaceholderDescription
{{schema}}Your JSON Schema
{{transcript}}Full call transcript
{{endedReason}}Why the call ended

Use Cases#

Sync call summaries to CRM
Track customer sentiment over time
Identify sales opportunities
Measure call quality
Detect escalation needs
Build analytics dashboards

Example Implementation (Node.js)#

See EndOfCallReportPayload Schema and AnalysisPlan Schema for complete details.
Modified at 2025-12-29 14:26:49
Previous
Status update
Next
Security
Built with