Connect Ginta to Zapier, Make or n8n
Your website can send each new entry to another app as soon as it arrives: form messages, shop orders (when they're paid, or when they're sent as a question or on WhatsApp), bookings, quote requests, event sign-ups and reviews visitors send. Your app gets a webhook: a small JSON message sent to an address it gives you.
Everything still arrives in Ginta's Messages as well. The other app gets a copy.
Set it up
- In your app, create a webhook trigger and copy its address:
- Zapier: a new Zap → trigger Webhooks by Zapier → event Catch Hook → copy the address on the Test tab. Zapier's own help page says Webhooks by Zapier is not on its Free plan (checked 4 November 2026).
- Make: a new scenario → the Webhooks app → Custom webhook → Add → copy the address.
- n8n: a Webhook node, method POST → copy the production address.
- In Ginta, open your website → Settings → General → Send new entries to another app. Paste the address and press Save.
- Press Send a test. Ginta sends a made-up entry, and your app uses it to learn the fields. In Make, press Redetermine data structure first.
The address must start with https://. Ginta doesn't send to local or private addresses, or to Ginta's own addresses.
You can also do this from Claude: ask it to send your website's new entries to the address (tool manage_site, action webhook).
Example: new bookings in Google Calendar
With Zapier:
- Trigger: Webhooks by Zapier → Catch Hook. Save the address in Ginta and press Send a test.
- Add a filter step: continue only if kind is exactly
booking. - Action: Google Calendar → Create Detailed Event.
- Summary:
fields.serviceandfields.name - Start Date & Time:
fields.start - End Date & Time:
fields.end - Description:
fields.phone,fields.email,fields.note
- Summary:
- Make a real test booking on your website. It appears in the calendar.
With Make: Webhooks → Custom webhook, then a filter where kind equals booking, then Google Calendar → Create an Event with the same fields.
The test entry has kind test, not booking. To give the calendar step real booking fields, make one booking on your website first.
What is sent
One POST per entry, with Content-Type: application/json:
{
"id": "evt_6c1f0e2b9a8d4c7e8f1a2b3c4d5e6f70",
"kind": "booking",
"test": false,
"time": "2026-11-04T09:12:44.000Z",
"website": { "id": "sugar-bakery", "name": "Sugar Bakery", "url": "https://sugar-bakery.ginta.page/" },
"fields": {
"status": "confirmed",
"service": "Cake consultation",
"staff": null,
"start": "2026-11-12T08:00:00.000Z",
"end": "2026-11-12T08:30:00.000Z",
"timezone": "Europe/Vilnius",
"name": "Rasa",
"email": "rasa@example.com",
"phone": "+370 600 12345",
"address": null,
"note": "A birthday cake for 12",
"paid": null,
"currency": "EUR"
},
"open_in_ginta": "https://ginta.app/?site=sugar-bakery&tab=parts&part=bookings"
}
kind is one of these:
| kind | when | fields |
|---|---|---|
message |
a form on your website was sent | the form's own fields, as named in the form (form = the form's name if it has one) |
order |
a shop order was paid, or sent on WhatsApp | number, status, paid, items (name, quantity, price), total, currency, code, discount, delivery, address, note, name, email, phone |
question |
someone asked about a product (shop without card payments) | product, message, name, email, phone |
quote |
a quote request | number, service, answers, details, preferred_date, budget, address, photos (how many), name, email, phone |
booking |
a confirmed booking | status, service, staff, start, end, timezone, name, email, phone, address, note, paid, currency |
signup |
an event sign-up | status, event, start, end, timezone, places, name, email, phone, note, paid, currency |
review |
a visitor sent a review (it waits for your approval) | status (pending), rating (1–5), review, name, email, phone (null) |
test |
you pressed Send a test | made-up name, email, message |
Times are in UTC (ISO 8601), with the business's time zone in timezone. Money is a number (24.5) with its currency. A field without a value is null.
Check it's from Ginta (optional)
When you first save an address, Ginta shows a signing secret (whsec_…) once. Copy it if you want your app to check each request. The headers follow Standard Webhooks:
webhook-id: the event's id (the same on every try, so you can skip duplicates)webhook-timestamp: seconds since 1970webhook-signature:v1,+ base64 of HMAC-SHA256 over{webhook-id}.{webhook-timestamp}.{body}, keyed with the secret's bytes (the base64 afterwhsec_)
Standard Webhooks' libraries can check this for you. Zapier and Make don't need it.
If your app doesn't answer
- Ginta waits up to 5 seconds for an answer from 200 to 299. It doesn't follow redirects.
- A failed send is tried 3 more times: after about 1 minute, 10 minutes and 1 hour.
- After 20 failed tries in a row, or if your app answers
410 Gone, Ginta stops sending and emails you once. Nothing is lost: everything stays in Messages. Fix the address and Save it again to turn sending back on. - Settings shows when an entry was last sent, and the last error.
Limits
How many entries a website sends a day depends on the plan: see Limits (Free has a few). Each entry counts once, however many tries it takes. Over the limit, the entry stays in Messages, and the line in Settings says so.
Moving a website to another account removes its address (the new owner sets their own). Deleting the website removes it too.