Skip to content
Developers
esc
  • Type an endpoint, an object or a word from a guide.

Recipes

Zapier, Make and n8n

A webhook starts the workflow, one HTTP step reads the record. No code.

Zapier, Make and n8n connect Quarters to thousands of other apps without code. A webhook starts the workflow, one HTTP step reads the record it names, and whatever comes next is up to you: a row in a spreadsheet, a message to the team, an invoice in the accounting package. In the other direction, a form anywhere can land as an inquiry.

Before you start

  1. Under Settings › Integrations, create an API credential for the tool: a client ID (qc_…) and a secret (qs_…). One per tool, so revoking one leaves the others working.
  2. Every HTTP step signs in with HTTP Basic: the client ID as the username, the secret as the password. All three tools have it built in, so there is no token to fetch or keep. See Authentication.

Every workflow, in four steps

  1. Trigger. The tool gives you a webhook URL. Add it as an endpoint under Settings › Integrations and press the test button: a ping arrives, and the tool learns what a delivery looks like.
  2. Filter. An endpoint receives every event. Continue only on the one you want, for example event is reservation.updated and data.status is confirmed.
  3. Read. A delivery points at a record; it does not carry it. GET the record, for a booking https://go.quarters.live/api/v1/reservations/ followed by data.reservationId, and map its fields into the next step.
  4. Act. Any app the tool connects to.

Zapier

  1. Trigger: Webhooks by Zapier › Catch Hook. Add the URL it shows as an endpoint and send the test.
  2. Filter by Zapier on event, and on data.status where it matters.
  3. Action: Webhooks by Zapier › GET to the record’s URL. In Basic Auth, enter the client ID and the secret joined by a vertical bar: qc_…|qs_….

Make

  1. Trigger: Webhooks › Custom webhook. Add its address as an endpoint and send the test, so Make can determine the data structure.
  2. A filter on the link after it, on event and data.status.
  3. HTTP › Make a Basic Auth request to the record’s URL, with a Basic Auth keychain holding the client ID and the secret. Turn on Parse response so the next module can map the fields.

n8n

  1. A Webhook node, method POST. Add its production URL as the endpoint; the test URL only listens while the editor waits for it.
  2. An If node on {{ $json.body.event }}.
  3. An HTTP Request node to the record’s URL. Authentication: Generic Credential Type › Basic Auth, with the client ID and the secret.

Send inquiries in

A form that is not on your own website, a Typeform, a Webflow form, a lead ad, can land in Quarters as an inquiry, in the same inbox as one from your site. POST it to /inquiries as JSON, with the same HTTP Basic credentials: lastName and email are required, and source says where it came from, for example typeform.

The guest gets a confirmation email when you switched on that form's reply under Website > Booking. If the form already sends one, send sendConfirmation: false.

The signature

Every delivery is signed, as described in Webhooks. Because it only names a record and the workflow reads that record with your own credentials, a forged call cannot put false data into the workflow: at most, it runs the workflow on a real record at the wrong moment. That matters when the workflow sends something, so verify there, over the raw body:

  • Zapier: trigger on Catch Raw Hook instead, and compare in a Code by Zapier step with Node’s createHmac.
  • Make: turn on JSON pass-through on the webhook and compare the header with sha256= followed by sha256(body; hex; secret).
  • n8n: turn on Raw Body on the Webhook node and compute the HMAC with the Crypto node, SHA256, hex.