Developers

Webhook events

Review the event categories Tideflow exposes and how to subscribe to the right ones.

Last updated: 2026-04-06

Event types

Tideflow currently sends three types of webhook events:

  • new_lead— Fired when a new caller/lead is created after a call.
  • call_completed— Fired when call processing finishes (recording saved, transcription complete).
  • lead_status_changed— Fired when a lead's status is manually updated.

Each webhook endpoint can subscribe to one or more event types. Events are matched to endpoints based on your subscription selection.

Production deliveries do not include an event type field in the JSON body. Route events using the X-Tideflow-Event header, and treat the payload body as event-specific data.

new_lead

Sent after a call is processed and a lead record is created. This is typically the most important event for CRM integrations.

{
  "event_id": "twilio_recording:new_lead:<lead_id>",
  "occurred_at": "2026-04-06T02:30:00.000Z",
  "business_id": "<uuid>",
  "lead_id": "<uuid>",
  "call_id": null,
  "score": 78,
  "priority_score": 82,
  "urgency": "medium",
  "status": "new",
  "summary": "Caller asked about plumbing repair for a leaking pipe.",
  "source": "twilio_recording"
}

Key fields

FieldDescription
event_idUnique event identifier for deduplication.
lead_idThe lead record UUID. Use this to look up the full lead in Tideflow.
scoreAI-generated lead quality score (0–100).
priority_scoreCombined priority score factoring intent, value, and urgency.
urgencyUrgency level: low, medium, or high.
summaryAI-generated plain-text summary of what the caller needed.
sourceOrigin of the event (e.g., twilio_recording).

call_completed

Sent when a call record is fully saved, including the recording and transcription.

{
  "event_id": "twilio_recording:call_completed:<call_id>",
  "occurred_at": "2026-04-06T02:30:05.000Z",
  "business_id": "<uuid>",
  "call_id": "<uuid>",
  "call_sid": "CA...",
  "status": "voicemail_transcribed",
  "duration_seconds": 34,
  "lead_id": "<uuid or null>",
  "source": "voicemail"
}

Key fields

FieldDescription
call_idThe call record UUID.
call_sidTwilio call SID for cross-referencing with Twilio logs.
duration_secondsCall duration in seconds.
lead_idAssociated lead UUID, or null if no lead was created.
sourceCall source: voicemail or ai_receptionist.

lead_status_changed

Sent when a lead's status is manually updated from the dashboard.

{
  "event_id": "lead_status_changed:<lead_id>:new->contacted:<timestamp>",
  "occurred_at": "2026-04-06T03:15:00.000Z",
  "business_id": "<uuid>",
  "lead_id": "<uuid>",
  "from_status": "new",
  "to_status": "contacted"
}

Test events

When you use the test button in Settings → Integrations, Tideflow sends a new_lead event with sample data. Test events have an event_id starting with test_ and a source of tideflow-test so you can identify them in your receiver. The synthetic test payload may include extra convenience fields that are not present on production deliveries, so always route on X-Tideflow-Event rather than a payload type.

Subscribing to events

When you add or edit a webhook endpoint, choose which events it should receive. An endpoint only receives deliveries for the event types it subscribes to. You can change the subscription at any time from the integrations settings.

Next up

Webhook authentication and delivery

Understand delivery expectations, signatures, and retry concepts for production receivers.