Zapier
Send what SIMCOAI takes on the phone into the apps you already use, without writing anything.
What this is for
Every booking, order, refund, escalation and new customer SIMCOAI records can start a Zap. A Zap is a rule you build by picking from lists - "when a new booking comes in, add a row to my spreadsheet" - so this needs no developer and no code.
- Put bookings straight into Google Calendar or a spreadsheet.
- Post escalations into a Slack or Teams channel so nothing waits for somebody to check the dashboard.
- Add every new customer to Mailchimp, HubSpot or a CRM.
- Send refund requests to whoever approves them.
Connecting your account
SIMCOAI has a dedicated Zapier app. Add SIMCOAI to Zapier, click Connect an Account, and sign in to SIMCOAI the same way you would on the dashboard - no API key to copy or paste. Zapier shows you plainly what it is asking to access (orders, refunds, bookings, escalations, customers) before you approve it, and you can disconnect it any time from Account → API Keys. If you would rather not add another app, the same events are also available through Zapier’s built-in Webhooks by Zapier app, using the steps below.
- Start a Zap with "Catch Hook"Add a step using Zapier’s built-in Webhooks by Zapier app, trigger event Catch Hook. Zapier gives you a unique URL - copy it.
- Create an API keyIn your dashboard, open Account → API Keys and create one with access to whichever records you want to send. It is shown once - copy it before you close the page.
- Subscribe that URL to a triggerSend the one-off request in the "Manual" section below (or use a Webhooks by Zapier "Custom Request" step) with your Catch Hook URL and the trigger you picked from the list.
- Turn the Zap onSIMCOAI posts the event to your Catch Hook URL the moment it happens. There is no polling delay.
What can start a Zap
Sixteen triggers - each fires the moment the record is created or changed, and each is named after the SIMCOAI event it subscribes to.
| Trigger | When it runs |
|---|---|
New booking requestbooking.requested | The assistant takes a booking request on a call or from your website. |
Booking confirmedbooking.confirmed | A booking is confirmed. |
Booking cancelledbooking.cancelled | A booking is cancelled. |
Booking completedbooking.completed | A booking is marked as completed. |
New orderorder.created | An order is logged. |
Order updatedorder.updated | An order changes. |
New refund requestrefund.requested | A refund request is taken. It never means money has moved - approving a refund is a separate step you control. |
Refund approvedrefund.approved | Somebody approves a refund. Approving is not the same as paying it. |
Refund declinedrefund.rejected | A refund request is declined. |
Refund paidrefund.refunded | A refund is marked as paid in your own records. |
New escalationescalation.created | Something is passed to a person: a complaint, a callback request, or anything the assistant would not handle itself. |
Escalation picked upescalation.in_progress | Somebody starts working on an escalation. |
Escalation resolvedescalation.resolved | An escalation is resolved. |
Escalation closedescalation.closed | An escalation is closed. |
New customercustomer.created | Somebody new is recorded for the first time. |
Customer updatedcustomer.updated | A customer record changes. |
What each trigger sends
A deliberately short, stable set. Internal columns are never sent - a Zap forwards whatever it is given to another company’s system, so only the fields below leave SIMCOAI.
{
"id": "9f2c1e40-5b7a-4c2f-9c3d-1a2b3c4d5e6f",
"created_at": "2026-08-19T14:32:07.114Z",
"status": "requested",
"customer_name": "Emily Carter",
"customer_email": "[email protected]",
"customer_phone": "+447700900456",
"service_name": "Haircut",
"preferred_time": "2026-08-21T13:30:00.000Z",
"example": false
}Doing things in SIMCOAI from a Zap
As well as triggers, the SIMCOAI Zapier app can act - so a Zap can run in both directions.
| Action | What it does |
|---|---|
| Log an Order | Creates an order, or updates it if that order number already exists - so replaying the same order twice never duplicates it. |
| Log a Booking | Creates a booking request in SIMCOAI from anywhere else you take bookings. |
| Log a Refund Request | Records that a refund was asked for. It only ever records the request - it never moves money. |
| Log an Escalation | Puts something in front of a person, from any app that can trigger a Zap. |
| Update a Record | Sets the status or notes on an existing order, refund, booking or escalation - one action covers all four record types, so you pick the type and paste an ID rather than needing four separate update actions. |
| Add or Update a Customer | Creates a customer, or merges into their existing record if SIMCOAI already knows them by email or phone. |
| Find or Create Customer | One dropdown that looks a customer up and creates them only if nothing matched - use this instead of wiring Find a Customer and Add or Update a Customer together by hand whenever another step in your Zap needs a customer. |
| Find a Customer (search) | Looks a customer up by name, email or phone - useful for a "check if this person already exists" step before another action. |
| Find an Order (search) | Looks an order up by order number, name, email or phone. |
| Find a Refund (search) | Looks a refund request up by order number, name, email or reason. |
| Find a Booking (search) | Looks a booking up by name, email, phone or service. |
| Find an Escalation (search) | Looks an escalation up by name, email, phone or reason. |
Building a Zap before you have any real records
Zapier will not let you finish a trigger without sample data, and a brand new account has no bookings yet. SIMCOAI sends a clearly marked example so you can still map your fields.
"example": true and uses a reserved address and phone number that cannot reach anybody. Once you have real records, SIMCOAI sends those instead and the flag is false. If you want a Zap to ignore examples, add a Zapier filter on that field.Doing the same thing without Zapier
The same subscriptions are plain HTTP, so you can drive them from anything.
# List the triggers you can subscribe to
curl -s https://api.simcoai.co.uk/v1/zapier/triggers \
-H "Authorization: Bearer $SIMCOAI_API_KEY"
# Subscribe: SIMCOAI POSTs the record to your URL when it happens
curl -s -X POST https://api.simcoai.co.uk/v1/zapier/subscribe \
-H "Authorization: Bearer $SIMCOAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"hookUrl":"https://hooks.zapier.com/hooks/catch/xxxxx/yyyyy/","event":"booking.requested"}'
# Stop it again
curl -s -X DELETE https://api.simcoai.co.uk/v1/zapier/subscribe/SUBSCRIPTION_ID \
-H "Authorization: Bearer $SIMCOAI_API_KEY" Two things worth knowing
- Subscribing twice is safe. The same URL and trigger reuses the existing subscription rather than creating a second one, so a retry cannot make every booking arrive twice.
- A Zap can only do what the key can do. Scopes are checked on every request, so a read-only key cannot be turned into a write by going through Zapier.