Guides · Typeform
Get a Mac notification for every Typeform response
A waitlist, a contact form, a survey: Typeform posts each submission to a webhook the moment it's sent. Point it at EventBar and every response pops up in your menu bar with the form's name and the answer you care about, and the count tells you how the launch is going.
Needs: the free EventBar app on your Mac, an EventBar account, and a Typeform account with permission to add webhooks. About five minutes. Typeform preset, signature verified.
Steps
- Create the webhook URL. In the EventBar dashboard, open the Webhooks tab, pick the group this belongs to (one group per site or app is the usual shape), choose the provider Typeform, name it, and press Create. Copy the URL; it stays visible and can be rotated any time.
- Paste it into Typeform. In Typeform: open the form, then Connect, then Webhooks, then Add a webhook. Paste the URL and save, then switch the webhook on. Press Edit on it to set a Secret and paste the same secret into the hook card in EventBar. Send test request on the same screen is the quickest first delivery.
- Trigger one. Most services offer a test delivery; otherwise do the real thing once. It shows up in the dashboard's Events tab within a second and in the menu bar, as an undefined type named after the event. That first one is your proof the wiring works.
- Make it read well. Press Define on the new type and give it a title and a body template. Fields come from the payload, nested ones with dots. The table below is a starting point.
This preset is on Plus and Pro. Free can do the same with a Generic JSON hook and a type field of type, without the signature check.
What you'll see
| Type | Title | Body template |
|---|---|---|
form_response | New response | {form_response.definition.title} · {form_response.answers.0.email} |
form_response | (a text answer) | {form_response.definition.title}: {form_response.answers.1.text} |
form_response | (hidden fields) | {form_response.definition.title} from {form_response.hidden.source} |
Every type has its own switch in the menu bar, so a noisy one can be quiet on this Mac and still counted. Counts cover the last hour, 24 hours, 7 days, 30 days and all time.
Worth knowing
- Every submission arrives as one type,
form_response, whichever form it came from. The form's title is in{form_response.definition.title}, so one template covers several forms. To count forms separately, make one hook per form, each in its own group. - Answers are a list in question order:
answers.0is the first answered question,answers.1the second. The value sits under the answer's type:email,text,number,boolean,choice.label. A skipped optional question shifts the ones after it, so templates work best on required questions near the top. - The signature is
Typeform-Signature: sha256=…, a base64 HMAC-SHA256 of the body with your secret. Duplicates are dropped byevent_id, so Typeform's retries never count twice. - Long forms can exceed what EventBar keeps per event (the rendered title and body plus 2 KB of fields); the notification text is rendered from the whole payload first, so put what you want to read in the template.
The full contract, including how each preset reads a payload and what the answers mean, is in the API docs. Something about Typeform's payload changed? Tell us and we'll fix the guide.