Integrations · Zapier
Connect Zapier in 3 minutes
Pipe every booking, check-in, and cancellation into Zapier. From there, route to Sheets, Airtable, Notion, your CRM, or any of Zapier's 6,000+ apps.
Open IntegrationsSee it before you build it
Setup is two URL copies and a click. Here's the full flow — Zapier on the left, SimpleDock on the right.
Custom Webhook URL
In Zapier, choose Webhooks by Zapier → Catch Hook. Zapier generates a unique URL like the one above.
Zapier hook URL
Set it up
- 1Create a Zap with the Catch Hook triggerIn Zapier, click Create Zap. For the trigger, pick Webhooks by Zapier → Catch Hook. Skip the optional "Pick off a child key" field. Zapier shows a unique
https://hooks.zapier.com/...URL. - 2Paste the URL into SimpleDockOpen Settings → Integrations in SimpleDock, click Add Zapier, paste the hook URL, and pick the locations and event types you care about.
- 3Send a test eventClick Send test in the SimpleDock row. SimpleDock fires a sample
webhook.testenvelope so Zapier can capture it. Back in Zapier, click Test trigger — your sample is already there. - 4Add an actionPick whatever Zap action you need: append a row in Sheets, add a record in Airtable, post to Discord, create a Notion page. Field names from the SimpleDock payload appear in the field picker automatically.
- 5Turn the Zap onThat's it. From this point on, every matching event in SimpleDock flows into Zapier within a few seconds.
What Zapier receives
Each delivery is a single JSON envelope with the event type, a stable event id, and a data object describing the appointment. Click between event types to see the payload.
appointment.createdA carrier books a new appointment via your booking link.
{
"id": "evt_2tQ9pX8Lm6Nz",
"type": "appointment.created",
"createdAt": "2026-05-08T17:12:03.481Z",
"organizationId": "org_acme",
"locationId": "loc_main",
"data": {
"id": "appt_abc123def456",
"status": "APPROVED",
"startTime": "2026-05-12T14:00:00.000Z",
"endTime": "2026-05-12T15:00:00.000Z",
"companyName": "Acme Freight",
"contactEmail": "[email protected]",
"contactPhone": "+1-555-234-1180",
"driverName": "Maria Lopez",
"driverPhone": "+1-555-901-2233",
"trailerNumber": "TRL-44781",
"poReference": "PO-2026-4471",
"notes": "Pallet jack ready",
"driverNotes": null,
"customFields": {},
"arrivalStatus": null,
"estimatedDelay": null,
"checkedInAt": null,
"completedAt": null,
"approvedAt": "2026-05-08T17:12:00.000Z",
"rejectedAt": null,
"cancelledAt": null,
"rejectionReason": null,
"createdAt": "2026-05-08T17:10:00.000Z",
"updatedAt": "2026-05-08T17:12:00.000Z",
"manageUrl": "https://simpledock.ai/manage/mt_4j2k...",
"door": {
"id": "door_4",
"name": "Door 4"
},
"appointmentType": {
"id": "atype_inb_dry",
"name": "Inbound dry van",
"loadType": "DRY",
"direction": "INBOUND",
"durationMinutes": 60
},
"location": {
"id": "loc_main",
"name": "Reno DC",
"slug": "reno-dc",
"timezone": "America/Los_Angeles",
"address": "1200 Industrial Way",
"city": "Reno",
"state": "NV",
"zip": "89502"
}
}
}Verify it's working
Hit Send test in Settings → Integrations. SimpleDock shows the response code and time, and Zapier's task history shows the incoming request. If the test never reaches Zapier:
- Confirm the Zap is turned on. Off Zaps quietly drop requests.
- Re-paste the hook URL. Zapier sometimes regenerates URLs when a trigger is edited.
- Check the SimpleDock endpoint is Active — we auto-disable endpoints that return 4xx repeatedly.
X-SimpleDock-Signature. Zapier doesn't verify it for you, but you can verify it in a Zap Code step if you handle sensitive data. See how →Common gotchas
- Zapier rate limits. Free Zaps poll/run every 15 minutes — but Catch Hook is real-time. You're fine.
- Selecting "off" event types. By default we send all 8 event types. If you only want bookings, narrow the event list to
appointment.created. - Multiple locations. Each endpoint can scope to specific locations. Add separate endpoints if you want separate Zaps per location.