DocumentationAPI Reference
DocumentationAPI Reference
Book a meeting
Linkedin
Github
  1. Webhooks
  • Agents
    • List all agents
      GET
    • Create a new agent
      POST
    • Get an agent
      GET
    • Update an agent
      PATCH
    • Delete an agent
      DELETE
  • Tool Templates
    • List all tool templates
      GET
    • Create a new tool template
      POST
    • Get a tool template
      GET
    • Update a tool template
      PATCH
    • Delete a tool template
      DELETE
  • Numbers
    • List all phone numbers
      GET
    • Register a phone number
      POST
    • Get a phone number
      GET
    • Update a phone number
      PATCH
    • Delete a phone number
      DELETE
  • Calls
    • List calls
      GET
    • Get call by ID
      GET
    • Initiate outbound call
      POST
  • Call Control
    • Send control command to active call
      POST
  • Usage
    • Get usage logs
      GET
  • 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
    • Create organization
    • Get organization information (deprecated)
  • 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
    • OutboundCallRequest
    • Account
    • UsageLog
    • OutboundCallResponse
    • UsageSummary
    • Organization
    • SipTrunk
    • SipTrunkCreate
    • OrganizationChild
    • Voice
    • OrganizationCreate
    • OrganizationCreated
    • AssistantRequestPayload
    • CallObject
    • Customer
    • AssistantRequestResponse
    • XAIRealtimeVoice
    • AssistantConfigOverride
    • AnalysisPlan
    • AssistantWebhookObject
    • ToolCallsPayload
    • ToolCall
    • ToolCallsResponse
    • StatusUpdatePayload
    • EndOfCallReportPayload
    • ToolDefinition
    • EndCallTool
    • TransferCallTool
    • WebhookHeaders
    • XAIRealtimeWebhookNotes
    • ToolFunctionConfig
    • ToolTransferConfig
    • ToolTemplate
    • ToolTemplateCreate
    • ToolTemplateUpdate
    • AnalysisTemplate
    • CreateAnalysisTemplate
    • UpdateAnalysisTemplate
    • AnalysisTemplateListResponse
    • CampaignLead
    • Campaign
    • CampaignCreate
    • CampaignUpdate
    • CampaignLeadCreate
DocumentationAPI Reference
DocumentationAPI Reference
Book a meeting
Linkedin
Github
  1. Webhooks

Dynamic assistant configuration webhook

Webhook
POST
assistant-request
Webhooks
Last modified:2026-01-30 13:43:45
Maintainer:Jesper Rietbergen
Called BEFORE an inbound call is answered, allowing you to:
Dynamically configure the assistant based on caller information
Personalize the greeting message
Override STT/LLM/TTS configuration
Set call-specific analysis plans
Reject calls based on business logic (e.g., outside business hours)
Pass custom metadata that will be echoed in all subsequent webhook events
⚠️ Important: Your endpoint must respond within 5 seconds or the call will proceed with default agent configuration.

Response Modes#

1. Default mode - Use saved agent config:
{}
2. Transient agent - Full config override:
{
  "assistant": {
    "first_message": "Hello John!",
    "tts_config": {"voice_id": "..."},
    "metadata": {"crm_id": "12345"}
  }
}
3. Hybrid agent - Reference saved agent + overrides:
{
  "assistant_id": "uuid-of-saved-agent",
  "assistant_override": {
    "tts_config": {"voice_id": "female-voice"},
    "first_message": "Hello John!",
    "metadata": {"crm_id": "12345"}
  }
}
The hybrid mode uses shallow merge: each top-level key in assistant_override completely replaces that config block from the saved agent.

Custom Metadata#

Any fields you add to the assistant config (like metadata) will be echoed back in all subsequent webhook events (status-update, tool-calls, end-of-call-report). This is useful for passing CRM IDs, campaign info, or any context you need.

Request

Authorization
Provide your bearer token in the
Authorization
header when making requests to protected resources.
Example:
Authorization: Bearer ********************
Body Params application/jsonRequired

Examples

Responses

🟢200
application/json
Configuration overrides (all fields optional). Return empty object {} to use default agent config.
Body

Request Request Example
Shell
JavaScript
Java
Swift
curl --location --request POST 'https://your-api-server.com' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data-raw '{
    "message": {
        "type": "assistant-request",
        "timestamp": "2019-08-24T14:15:22.123Z",
        "call": {
            "id": "5c4d030f-43e3-4e65-899e-8148521e660f",
            "type": "inbound_phone_call",
            "status": "ringing",
            "pipeline": "standard"
        },
        "phone_number": {
            "number": "+31850835037",
            "name": "HMS Sovereign Demo"
        },
        "customer": {
            "number": "+31612345678"
        }
    }
}'
Response Response Example
Default mode (use saved config)
{}
Modified at 2026-01-30 13:43:45
Previous
Refresh domain status
Next
Tool/Function Call
Built with