Skip to main content

Zapier Integration — Connect SkipCalls to 7,000+ Apps

Use the official SkipCalls Zapier app to connect calls, SMS, and appointments to CRMs, Google Sheets, Slack, and more. Full field reference and recipes included.

Written by Nikita Podelenko

Connect SkipCalls to 7,000+ apps on Zapier — Google Sheets, Slack, HubSpot, Salesforce, Gmail, Airtable, Notion, you name it. This is our official Zapier app, so triggers deliver in real time and every field comes pre-named.

What you get

Triggers (SkipCalls → Zapier)

Every trigger is webhook-based — no polling, no delay. Fires the moment the event happens.

  • Outbound Call Completed — an AI-placed outbound call finishes successfully

  • Outbound Call Failed — no answer, busy, rejected, or error

  • Incoming Call Completed — your AI receptionist handles an inbound call

  • New SMS Received — an inbound text arrives on one of your numbers

  • Outbound SMS Sent — an SMS is sent from one of your numbers

  • SMS Delivery Failed — an outbound SMS fails to deliver

  • Appointment Booked — the AI agent successfully books a slot on your calendar during a call

Actions (Zapier → SkipCalls)

  • Schedule Outbound Call — queue an AI-powered phone call to any number. Pass the agent, goal, scheduled time, max duration, timezone, and optional context.

  • Send SMS Reply — post a reply into an existing SMS conversation (pair with the "New SMS Received" trigger).

Searches

  • Find Outbound Calls — past outbound calls, optionally filtered by status or phone

  • Find Incoming Calls — inbound call history with filters

  • Find SMS Conversation — look up a thread by customer phone or status

Setup (about 2 minutes)

1. Add SkipCalls to Zapier

Click Open in Zapier. Accept the invite to add SkipCalls to your Zapier account. Free plans work.

2. Create an API key

In the SkipCalls dashboard open Integration → API Keys (or go to app.skipcalls.com/integration?tab=keys). Click Create API key, give it a name like "Zapier", and copy the sk_… value. Keys don't expire; you can revoke them any time.

3. Connect in Zapier

When Zapier asks for authentication, paste the key. That's the whole auth. Now pick a trigger, map fields into the destination action, turn the Zap on. Every subscription you create shows up in the Zapier tab inside SkipCalls — toggle it on/off or scope to a specific receptionist without leaving the dashboard.

Field reference

All webhook payloads are flat, snake_case JSON — no nested objects to parse. Map them straight into your destination app.

Incoming Call Completed

  • event_type — always INCOMING_CALL_COMPLETED

  • call_id, call_title, call_status, call_duration_minutes, call_type='inbound'

  • caller_name — populated if the caller is in your Contacts

  • phone_from — the caller's number

  • phone_to — your SkipCalls number they dialed

  • phone_country

  • call_started_at, call_finished_at — ISO-8601

  • summary_full — full AI-generated call summary

  • summary_short — one-line version

  • recommended_next_action

  • agent_id, agent_name, agent_description

  • data_collected_count + data_1_field, data_1_type, data_1_value, data_2_* … up to data_10_* (structured info the agent extracted during the call)

  • evaluations_total, evaluations_passed, evaluations_failed, evaluations_unknown, evaluation_success_rate

  • eval_1_name, eval_1_type, eval_1_rationale … up to eval_5_*

  • tasks_count, next_task_title, next_task_priority, next_task_due_date, lead_status (HOT/WARM/COLD/UNQUALIFIED)

  • recording_url

Outbound Call Completed — same as above, plus:

  • call_goal — the goal you set for the call

  • call_phone_number — the number dialed

  • call_scheduled_at

  • business_goal, business_context, needs_retry

  • transfer_allowed, was_transferred, transfer_number

New SMS Received

  • event_type='SMS_RECEIVED', communication_type='sms'

  • sms_conversation_id — capture this to use with Send SMS Reply

  • sms_message_id, sms_message_content, sms_message_direction='INBOUND'

  • sms_message_status, sms_created_at

  • sms_conversation_message_count, sms_conversation_agent_messages, sms_conversation_customer_messages, sms_conversation_unread_messages

  • is_inbound_sms, is_outbound_sms — booleans for easy filtering

  • phone_from (customer), phone_to (your number)

  • agent_id, agent_name

Appointment Booked

  • appointment_id, appointment_title, appointment_description

  • appointment_start_time, appointment_end_time, appointment_duration_minutes, appointment_timezone

  • appointment_source_typeINCOMING_CALL / OUTBOUND_CALL / MANUAL

  • appointment_calendar_provider, appointment_calendar_name, appointment_external_event_url

  • guest_name, guest_phone, guest_email — captured during the call

  • contact_id, contact_first_name, contact_last_name, contact_phone, contact_email, contact_lifecycle_stage — CRM match

  • source_call_id, source_call_summary, source_call_caller_name, source_call_phone_from

  • agent_id, agent_name

Popular recipes

📱 SMS yourself every new lead (with details)

  • Trigger: Incoming Call Completed

  • Action: SMS by Zapier or Twilio → Send SMS

  • Body template: New lead: #{{caller_name}} at #{{phone_from}}. #{{summary_short}}. Tap to call back.

📇 Save every caller to HubSpot / Salesforce / Pipedrive

  • Trigger: Incoming Call Completed

  • Action: Create or Update Contact in your CRM

  • Map phone_from → Phone, caller_name → Name, summary_full → Notes, lead_status → Lifecycle Stage

📊 Log every call to Google Sheets

  • Trigger: any Call Completed

  • Action: Google Sheets → Create Spreadsheet Row

  • Map the fields you care about — timestamp, caller_name, phone_from, call_duration_minutes, summary_short, recording_url, lead_status

📅 Slack the team when an appointment is booked

  • Trigger: Appointment Booked

  • Action: Slack → Send Channel Message

  • Body: 📅 New booking: #{{guest_name}} on #{{appointment_start_time}} (#{{appointment_calendar_name}}). Phone: #{{guest_phone}}

💬 Auto-reply to texts from your CRM

  • Trigger: New SMS Received

  • Filter / Paths: route by sms_message_content keywords or contact owner

  • Action: Send SMS Reply — pass sms_conversation_id from the trigger

📞 Call leads automatically when they land in your pipeline

  • Trigger: HubSpot / Pipedrive → New Contact

  • Action: Schedule Outbound Call — set phone from the contact, craft a goal like "Qualify the lead and book a 15-min intro if there's fit"

📧 Email the transcript + recording

  • Trigger: Incoming Call Completed

  • Action: Gmail / Outlook → Send Email

  • Subject: Call from #{{caller_name}} — #{{summary_short}}

  • Body: #{{summary_full}} + Recording: #{{recording_url}}

Already using "Webhooks by Zapier"?

If you set up SkipCalls before this official app existed by creating a Webhooks by Zapier catch URL, your Zap will keep working — nothing breaks. You can leave it as-is.

For new Zaps we recommend the official app because:

  • No manual webhook URL pasting, no "test webhook" round-trips

  • Fields are pre-named (phone_from, summary_full) instead of raw JSON keys

  • You can pause, enable, or scope subscriptions per-receptionist from the SkipCalls dashboard

  • Automatic retries and delivery error handling on our side

To migrate: install the app, rebuild the trigger step using the matching SkipCalls trigger, and re-map the action. The action step stays the same.

Troubleshooting

  • Trigger not firing? Check the Zap is turned on in Zapier AND the subscription shows Enabled in the Zapier tab inside SkipCalls.

  • Wrong receptionist firing? In the Zapier tab, change the Which receptionist column for that subscription, or pick All to fire for every agent.

  • API key rejected? Keys don't expire but can be revoked. Open Integration → API Keys and generate a new one.

  • Empty caller_name? That field is only populated when the caller already exists in your Contacts. phone_from is always set — use it as a fallback.

  • Dates aren't parsing? All datetime fields are ISO-8601 UTC (2026-04-21T15:00:00Z). In Zapier, set the field type to "datetime" — formatting works automatically in Gmail, Slack, Google Calendar, etc.

  • No data in data_1_field? That means the agent didn't have any data collection fields configured. Open the agent, add structured fields under "Data Collection", and those fields will appear on every future call.

Need help?

Reply here with what you're trying to build — trigger, destination app, and what you want to happen — and we'll help you map the fields or pick the right recipe.

Did this answer your question?