Triggers
Events that start your Zap. Each trigger maps to a webhook event or a Zapier-side filtered view of work_record.created and provides structured data you can use in subsequent steps.
Instant Triggers
User-facing adaptlive triggers are REST hook based. The Zapier app also defines polling functions for sample data and initial setup, not as a guaranteed replay channel for missed deliveries.
Popular Triggers
Call Ended
call.endedFires when a call completes. Includes caller info, duration, summary data, and captured facts when available.
Available Fields
callSessionIddirectionfromNumbertoNumberdurationSecondssummaryfactsSMS Received
sms.receivedFires when an inbound SMS arrives. Includes message content, sender phone, and linked customer if matched.
Available Fields
messageIdfromtobodyreceivedAtcustomerIdpersonIdVoicemail Received
voicemail.receivedFires when a caller leaves a voicemail. Includes transcript and recording URL.
Available Fields
communicationEventIdcallSessionIdfromtodurationSecondstranscriptrecordingUrlWork Record Created
work_record.createdFires when a new job, appointment, case, or ticket is created. Filter by kind in Zapier.
Available Fields
workRecordIdkindtitledescriptionstatusprioritycustomerIdscheduledStartscheduledEndcreatedAtAppointment Created
work_record.created + kind=APPOINTMENTFiltered view over work_record.created for APPOINTMENT records.
Available Fields
workRecordIdnumberkindtitlestatusscheduledStartassignedToIdAll Triggers
| Trigger | Event | Description |
|---|---|---|
| Call Ended | call.ended | Fires when a call completes. |
| SMS Received | sms.received | Fires when an inbound SMS arrives. |
| SMS Sent | sms.sent | Fires when an outbound SMS is sent (manual or automated). |
| Voicemail Received | voicemail.received | Fires when a caller leaves a voicemail. |
| Call Missed | call.missed | Fires when a call rings and goes unanswered without voicemail. |
| Person Created | person.created | Fires when a new person is added (via call, manual entry, or API). |
| Work Record Created | work_record.created | Fires when a new job, appointment, case, or ticket is created. |
| Job Created | work_record.created + kind=JOB | Filtered view over work_record. |
| Appointment Created | work_record.created + kind=APPOINTMENT | Filtered view over work_record. |
| Matter Created | work_record.created + kind=MATTER | Filtered view over work_record. |
| Delivery Created | work_record.created + kind=DELIVERY | Filtered view over work_record. |
| Case Created | work_record.created + kind=CASE | Filtered view over work_record. |
| Draft Approved | draft.approved | Fires when post-call draft is approved by a human. |
| Signal Fired | signal.fired | Fires when a signal (complaint, upsell opportunity, etc. |
Filtering Triggers
Use Zapier's built-in filter step to narrow which events proceed through your Zap:
- By call direction: Only trigger on inbound or outbound calls.
- By work record kind: Only trigger on JOB, APPOINTMENT, CASE, etc.
- By phone number: Only trigger for specific caller numbers.
- By signal type: Only trigger on complaint signals, not upsell.
Filters run after the trigger, so you're not billed for filtered-out events (Zapier's task counting rules apply).
Example Payload
Here's what the Call Ended trigger provides to subsequent Zap steps:
{
"callId": "call_xyz789",
"direction": "inbound",
"from": "+15125551234",
"to": "+15125559876",
"duration": 342,
"startedAt": "2024-03-25T14:30:00.000Z",
"endedAt": "2024-03-25T14:35:42.000Z",
"summary": "Customer called about AC repair. Unit not cooling, making clicking noise. Scheduled appointment for tomorrow 9am.",
"transcript": "Hi, I'm calling about my AC unit...",
"recordingUrl": "https://recordings.adaptlive.app/...",
"customerId": "cust_abc123",
"personId": "party_def456",
"workRecordId": "wr_job789",
"facts": [
{
"factId": "fact_001",
"subject": "equipment",
"key": "issue_type",
"value": "not_cooling"
},
{
"factId": "fact_002",
"subject": "equipment",
"key": "symptom",
"value": "clicking_noise"
}
]
}