Skip to content

Zapier

Zapier connects apps without code: something happens in one app (a trigger) and Zapier does something in another (an action). Grondia has a Zapier app, so a campground can react to a new booking, a payment or a check-in with a message, a spreadsheet row or a task in the tool it already uses.

This page is for two readers: a campground, or someone working for one, who wants to automate routines, and a developer deciding whether Zapier or the API is the right way to connect a product. If your product serves many campgrounds, read Zapier or the API first.

Seven triggers start a Zap:

Trigger in Zapier Starts when Grondia event behind it
New booking A booking is made, whatever its first status booking.booked
Booking changed A booking’s dates, guests, price or status change, or it is confirmed booking.changed
Booking canceled A booking is cancelled booking.cancelled
New guest A guest profile is created guest.created
Payment received An online payment succeeds, or a payment is recorded on a booking. A payment taken with the admin’s Collect payment action does not start it (which payments raise an event) payment.settled, payment.recorded
Guest checked in The campground records a check-in guest.checked_in
Guest checked out The campground records a check-out guest.checked_out

Three actions let a Zap write back:

Action What it does
Create or update guest Finds the guest by id, else by email (any letter case), else creates one. A new guest needs a first or last name. A field the Zap leaves empty is left as it is. country and language are two-letter codes
Add booking note Appends [Zapier 2026-07-14] <your note> to the booking’s internal notes, which only the campground’s staff see. The booking is found by its reference, its id or your own external reference. A note is up to 2000 characters
Create booking hold Holds a pitch by creating a pending booking, the same as POST bookings/, with the same checks for availability and booking window. It needs an external_reference, which the app fills in so that a retried step never books twice

What a Zap cannot do: cancel or refund a booking, create a payment, or start on an invoice (there is no invoice trigger). The Zapier key is deliberately narrower than a bookings:write key, which could also cancel and refund.

Each trigger item is a full object, not an id. A booking item has its reference, status, dates, number of nights and guests, pitch type, pitch label, total, amount still due, currency, the guest’s name, email, phone and address, the guest’s comment and the check-in and check-out times. The pitch number is left out when the campground hides it from guests until arrival. A guest item has the guest’s contact details and address. A payment item has the amount, method, payment time and the booking’s guest. A “Booking changed” item gets a new id for every change, so each change starts the Zap once. When you build a Zap, Zapier’s sample data comes from the campground’s most recent real items.

The campground’s administrator, in the admin under App Store, section “Developer & API”, on the Zapier card.

  1. Ask Grondia to switch the Zapier integration on for the campground.

    The card is locked until then. Write to Felix, felix@grondia.com, or to Siro, siro@grondia.com.

  2. Create the Zapier key on the card.

    It is shown once. If it is lost, revoke it and create a new one.

  3. In Zapier, add the Grondia app and paste the key when it asks you to sign in. This needs the app to be available to you (see the notice above).

  4. Build the Zap. The card lists the live Zaps, with how many deliveries were sent and how many failed, and a Stop button for each.

  1. Campground administrator to Grondia: Create the Zapier key on the card

  2. Campground administrator to Zapier: Add the Grondia app, paste the key

  3. Campground administrator to Zapier: Turn a Zap on, trigger New booking

  4. Zapier to Grondia: Subscribe this Zap's hook address

  5. Grondia to Zapier: Subscription id and signing secret

  6. Grondia: Anna Müller books pitch A12

  7. Grondia to Zapier: Signed webhook with ids only

  8. Zapier to Grondia: Ask for the full booking

  9. Grondia to Zapier: Booking with guest contact data

  10. Zapier: The Zap runs its steps

  11. Zapier to Grondia: Action: add a booking note

Zapier’s hook is an ordinary Grondia webhook: a signed POST with a compact body that holds ids and no guest data, retried when it fails. The Zapier app checks the signature with the secret it received when the Zap was turned on, refuses a delivery older than five minutes, and then asks Grondia for the full object. That is why guest data never travels in the webhook body itself. Only hook addresses on Zapier’s own domain, over HTTPS, are accepted.

The key has one scope, zapier. It reaches a small set of routes that exist for the Zapier app, which are not part of the API reference, and nothing else in the API. It is not in the Developer API key form, and only the Zapier card creates it.

  • Revoke the key on the card: its Zaps stop at once, and deliveries already waiting or being retried are dropped.
  • Stop one Zap on the card: Zapier then shows that Zap as broken until it is turned off and on again.
  • Disconnect Zapier revokes every Zapier key and stops every Zap.
  • If the administrator who created the key stops being an administrator, the key and its Zaps stop. The card shows the key as stopped. Create a new key as another administrator.
  • If Grondia switches the integration off for the campground, everything stops the same way.
Situation What happens What to do
A hold is neither paid nor confirmed It is a pending booking, so it is released after about 30 to 35 minutes and ends as abandoned (life of a booking) Confirm it, or have the campground take payment, inside that time
A hold step is retried The first hold is returned (200), so a retry never books twice Nothing
A hold uses an external_reference that another credential created 409 with external_reference_conflict Give the step a unique reference of its own
The pitch is taken for those dates 409 with site_unavailable, like POST bookings/ Handle the failure in the Zap
Create or update guest would give a guest the name and date of birth of another 409 with guest_duplicate_name_dob, naming the other guest Update that guest by id
Add booking note finds no booking 404 with booking_not_found Check the reference
The key was revoked or has expired 401 with key_inactive Create a new key on the card
The key is live, but its creator is no longer an administrator 401 with zapier_grant_revoked Create a new key as an administrator
Create or update guest creates a guest The new guest profile raises guest.created, which starts a “New guest” Zap Do not create guests from a Zap that starts on New guest
The Zapier integration is off for the campground The Zapier routes answer 404 Ask Grondia to switch it on
You want Use
One campground’s own routines: a message, a spreadsheet row, a task Zapier
A product that many campgrounds use, with your own backend The API with one key per campground: see Credentials, the Webhooks guide and the webhooks in the reference, and pick the recipe for your kind of product in What you can build

The zapier scope cannot be given to another app, so a product cannot borrow the Zapier route. If you build an automation product of your own, use the API like any other integration: the campground creates your key, you receive the same signed webhooks, and guest personal data stays redacted unless Felix agrees otherwise.

  • Grondia has switched the Zapier integration on for the campground.
  • The Grondia app is available to the people who build Zaps (it is private until Zapier has published it).
  • The administrator who creates the key will stay an administrator, or another administrator knows to create a new one.
  • The campground has decided that Zapier may see its guests’ contact details.
  • A test booking started a Zap, and the Zap showed up under live Zaps on the card.
  • Holds are confirmed or paid within the pending window.