All help articles

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 Integrations

See 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.

1. Copy the Catch Hook URL from Zapier
2. Paste it into SimpleDock
3. Send a test event
Zapier
Zapier · Webhooks · Catch Hook

Custom Webhook URL

https://hooks.zapier.com/hooks/catch/9421705/3hpx4gv

In Zapier, choose Webhooks by Zapier → Catch Hook. Zapier generates a unique URL like the one above.

SimpleDock
SimpleDock · Integrations

Zapier hook URL

Set it up

  1. 1
    Create a Zap with the Catch Hook trigger
    In 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.
  2. 2
    Paste the URL into SimpleDock
    Open Settings → Integrations in SimpleDock, click Add Zapier, paste the hook URL, and pick the locations and event types you care about.
  3. 3
    Send a test event
    Click Send test in the SimpleDock row. SimpleDock fires a sample webhook.test envelope so Zapier can capture it. Back in Zapier, click Test trigger — your sample is already there.
  4. 4
    Add an action
    Pick 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.
  5. 5
    Turn the Zap on
    That'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.created

A carrier books a new appointment via your booking link.

json
{
  "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.
Signing
SimpleDock signs every Zapier delivery with 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.