Zapier
Connect to 8,000+ apps without code
Connect 24CallDesk to 8,000+ apps using Zapier's no-code automation platform.
What Is Zapier?
Zapier connects apps together with "Zaps":
- Trigger: Something happens in one app
- Action: Do something in another app
Example: When a call ends in 24CallDesk (trigger) → Add a row to Google Sheets (action)
Available Triggers
Events that can start a Zap:
| Trigger | Fires When |
|---|---|
| New Call | An incoming call is received on your 24CallDesk phone number |
| Call Completed | A phone call ends, includes transcript and summary |
| Contact Replied | A contact responds via SMS |
| New Contact | A new contact is added to your contacts list |
| New Appointment | Someone books an appointment through your calendar |
| Workflow Completed | A contact completes all steps in a follow-up workflow |
Trigger Data
Each trigger includes relevant data. Here's what you'll receive:
New Call / Call Completed
{
"id": "call_abc123def456",
"phone_number": "+15551234567",
"direction": "inbound",
"status": "completed",
"duration_seconds": 245,
"started_at": "2024-12-24T10:30:00Z",
"ended_at": "2024-12-24T10:34:05Z",
"contact_name": "John Smith",
"contact_email": "john@example.com",
"contact_token": "con_xyz789",
"transcript": "Agent: Hello, how can I help?\nCaller: I need to schedule...",
"title": "Appointment Request",
"summary": "Caller requested to schedule a consultation for next week",
"task": "Schedule consultation",
"urgency": "normal",
"recording_url": "https://api.twilio.com/recordings/abc123"
}Contact Replied
{
"id": "12345",
"phone_number": "+15551234567",
"direction": "inbound",
"content": "Yes, I'd like to schedule for Tuesday please",
"status": "created",
"contact_name": "Emily Davis",
"contact_email": "emily@example.com",
"contact_token": "con_xyz789",
"created_at": "2024-12-24T14:20:00Z"
}New Contact
{
"id": "con_abc123def456",
"name": "Emily Davis",
"phone_number": "+15551234567",
"email": "emily@example.com",
"status": "active",
"source": "call",
"metadata": {
"company": "Acme Corp",
"notes": "Interested in premium plan"
},
"created_at": "2024-12-24T10:00:00Z"
}New Appointment
{
"id": "evt_abc123def456",
"title": "Initial Consultation",
"description": "30-minute discovery call",
"contact_name": "Emily Davis",
"contact_phone": "+15559876543",
"contact_email": "emily@example.com",
"contact_token": "con_xyz789",
"start_time": "2024-12-26T14:00:00Z",
"end_time": "2024-12-26T14:30:00Z",
"timezone": "America/New_York",
"status": "confirmed",
"scheduling_option": "30 Minute Consultation",
"notes": "30-minute discovery call"
}Workflow Completed
{
"id": 12345,
"workflow_id": "wf_abc123",
"workflow_name": "New Lead Follow-up",
"contact_name": "Emily Davis",
"contact_phone": "+15551234567",
"contact_email": "emily@example.com",
"contact_token": "con_xyz789",
"status": "completed",
"steps_completed": 5,
"total_steps": 5,
"progress_percentage": 100,
"completed_at": "2024-12-24T14:20:00Z",
"outcome": "completed"
}Available Actions
Things 24CallDesk can do when triggered by other apps:
| Action | What It Does |
|---|---|
| Create Contact | Add a new contact to your 24CallDesk contacts list |
| Send SMS | Send a text message to a phone number from your 24CallDesk number |
| Start Workflow | Enroll a contact into a follow-up workflow to begin automated outreach |
Action Input Fields
Create Contact
| Field | Required | Description |
|---|---|---|
| Name | Yes | Contact's full name |
| Phone Number | Yes | Phone number (any format, normalized to E.164) |
| No | Contact's email address | |
| Notes | No | Additional notes about the contact |
Send SMS
| Field | Required | Description |
|---|---|---|
| Phone Number | Yes | Recipient's phone number |
| Name | No | Contact name (creates contact if doesn't exist) |
| Message | Yes | The SMS content to send |
Start Workflow
| Field | Required | Description |
|---|---|---|
| Trigger Type | Yes | Type of trigger (e.g., form_submitted, contact_created) |
| Phone Number | Yes | Contact's phone number |
| Name | No | Contact's name |
| No | Contact's email |
Setup
Connect 24CallDesk to Zapier
- Log into zapier.com
- Go to My Apps > Add Connection
- Search for "24CallDesk"
- Click Connect
- You'll be redirected to 24CallDesk to authorize the connection
- Log in and click Authorize to grant Zapier access
Create Your First Zap
- Click Create Zap
- Choose 24CallDesk as the trigger app
- Select a trigger (e.g., "Call Completed")
- Choose your action app (e.g., Google Sheets)
- Map the fields from the trigger to your action
- Test and turn on your Zap
24CallDesk uses OAuth for secure authentication. You'll authorize once and Zapier will maintain the connection automatically.
Popular Zaps
Google Sheets to Workflow
Google Sheets → 24CallDesk
New spreadsheet row starts a follow-up workflow:
- Add a new row to your Google Sheet with contact info
- 24CallDesk creates the contact automatically
- Contact is enrolled in your follow-up workflow
Start Workflow from Form
Typeform → 24CallDesk
Enroll contacts into a workflow when they submit a form:
- Lead fills out your Typeform
- Contact is created in 24CallDesk
- Follow-up workflow begins automatically
Call to Slack
24CallDesk → Slack
Get Slack notifications for completed calls:
- Call ends in 24CallDesk
- Summary and details posted to your Slack channel
- Team stays informed in real-time
Call Log to Sheets
24CallDesk → Google Sheets
Automatically log all calls to a spreadsheet:
- Call completes in 24CallDesk
- Row added to Google Sheet with call details
- Build your call history automatically
Multi-Step Zaps
Chain actions together for complex workflows:
Trigger: Call Completed (outcome = interested)
↓
Action 1: Create/update contact in HubSpot
↓
Action 2: Send Slack notification to sales team
↓
Action 3: Add row to Google Sheet for tracking
↓
Action 4: Send follow-up email via GmailFilters & Paths
Filters
Only run actions when conditions are met:
Trigger: Call Completed
Filter: Only continue if summary contains "callback"
Action: Create follow-up task in AsanaPaths
Different actions based on conditions:
Trigger: Call Completed
↓
Path A (status = completed, duration > 60):
→ Add to "Qualified Leads" sheet
→ Send thank-you email
Path B (status = completed, duration < 60):
→ Add to "Short Calls" sheet
→ Flag for reviewAPI Reference
This section documents the API endpoints used by the Zapier integration.
Authentication
24CallDesk uses OAuth 2.0 for Zapier authentication.
OAuth Flow:
- User initiates connection in Zapier
- Redirect to
https://api.24calldesk.com/oauth/authorize - User authorizes access
- Zapier receives authorization code
- Code exchanged for access/refresh tokens
Scopes:
read- Read contacts, calls, messageswrite- Create/update contactsfollow_ups- Manage workflowscontacts- Full contact accesssms- Send SMS messages
Webhook Subscription Endpoints
Zapier uses these endpoints to subscribe to triggers:
Subscribe to Events
POST /api/v1/webhook_subscriptions
Authorization: Bearer {access_token}
Content-Type: application/json
{
"event_type": "call_completed",
"webhook_url": "https://hooks.zapier.com/..."
}Response:
{
"id": "zwh_abc123",
"event_type": "call_completed",
"webhook_url": "https://hooks.zapier.com/...",
"active": true
}Unsubscribe from Events
DELETE /api/v1/webhook_subscriptions/{id}
Authorization: Bearer {access_token}Action Endpoints
Create Contact
POST /calldesk/contacts/create
Authorization: Bearer {access_token}
Content-Type: application/json
{
"contact": {
"name": "John Doe",
"phone_number": "+15551234567",
"email": "john@example.com",
"source": "zapier",
"notes": "From Typeform submission"
}
}Send SMS
POST /calldesk/contacts/text
Authorization: Bearer {access_token}
Content-Type: application/json
{
"contact_token": "con_xyz789",
"sms_content": "Thanks for your interest! We'll be in touch soon."
}Start Workflow
POST /webhooks/incoming/follow_up_triggers/trigger
Authorization: Bearer {access_token}
Content-Type: application/json
{
"trigger_type": "form_submitted",
"contact": {
"name": "John Doe",
"phone": "+15551234567",
"email": "john@example.com"
},
"metadata": {
"source": "zapier",
"form_name": "Contact Us"
}
}Error Handling
All endpoints return structured errors:
{
"error": "invalid_phone",
"message": "Phone number must be in E.164 format (+15551234567)"
}Common Status Codes:
200- Success201- Created400- Bad request (invalid parameters)401- Unauthorized (invalid/expired token)422- Validation error
Best Practices
Test Before Going Live
Always use Zapier's test feature:
- Run a test with sample data
- Verify the output looks right
- Check that the destination app received it correctly
Use Filters Wisely
Don't send every event to every app. Filter for relevance:
Good: Call Completed + duration > 30 seconds
Bad: All calls → CRM (creates noise)Handle Errors
Set up notifications for Zap errors:
- Email alerts when Zaps fail
- Retry logic for transient failures
- Fallback actions for critical flows
Name Zaps Clearly
Use descriptive names:
Good: "24CallDesk Completed Calls → HubSpot Contacts"
Bad: "My Zap 1"Zapier offers a free tier with 100 tasks/month. Most businesses need a paid plan for higher volume.
Rate Limits
24CallDesk Zapier integration limits:
| Limit Type | Value |
|---|---|
| Requests per minute | 100 |
| Requests per day | 10,000 |
For higher volumes, consider our REST API or Webhooks for direct integration.
Troubleshooting
Connection Issues
If your Zapier connection stops working:
- Go to My Apps in Zapier
- Find 24CallDesk and click Reconnect
- Re-authorize the connection
Missing Data
If triggers aren't firing or data is missing:
- Check that your 24CallDesk account is active
- Verify the trigger conditions match your events
- Test the trigger manually in Zapier
Need Help?
- Zapier Support: zapier.com/help
- 24CallDesk Support: support@24calldesk.com
