On this page
"Integration" has become one of the least trustworthy words in software. Spend an hour reading developers talk about it and you'll find the same joke in a dozen forms: a CSV export described as an integration, a logo wall of apps that nobody has actually built yet, a REST client re-labelled as "integrates with anything". One engineer summed up the trick nicely: marketing counts what's possible, and everyone else has to ship it.
So instead of a logo wall, here is the complete list of places a HornetForms response can go, what each one actually sends, what it deliberately doesn't, and how to connect it. Our list is short on purpose. Everything on it is real, and everything on it is free on every plan, Free included.
The rules that apply to all of them#
Read this bit once and the rest of the post makes sense.
- New completed responses only. A response is sent when someone finishes the form. Partial answers aren't sent, and neither are edits or deletions: if you fix a typo in a response later, the copy in Slack or your spreadsheet keeps the original. Deleting a response in HornetForms doesn't delete what was already delivered elsewhere.
- Files travel as names and a link. Uploaded files are sent as file names plus a link back to the response in HornetForms, not as the file itself. Your spreadsheet stays a spreadsheet.
- Every integration has the same controls. An on/off switch, a Send test button, and a delivery log showing what went out and when (statuses and times, not answers, and it's cleared after 30 days).
- Failures retry, then pause. If the other end has a bad day, delivery retries automatically. After repeated failures the integration pauses itself and workspace owners and admins get an email, so you find out from us rather than from a silent spreadsheet.
- They're your destinations, not our sub-processors. Google, Slack, Discord, Notion and Zapier are recipients you chose, under your own agreement with them. Section 4.14 of our privacy policy spells this out, including exactly what we store for each connection.
- Moving a form to another workspace removes its integrations. HornetForms warns you first. Set them up again in the new workspace.
Everything below lives in a form's Integrations tab.
Google Sheets#
What it does. Adds a row for every new completed response to a Google spreadsheet. One column per question, plus the submission time and a link back to the response.
How to connect.
- Open the form's Integrations tab and pick Google Sheets.
- Connect your Google account. HornetForms creates the spreadsheet for you, or adds a new tab to one it created earlier.
- Optionally copy in the responses you already have, so the sheet starts complete rather than starting today.
- Hit Send test and watch a row appear.
Good to know. We only ask Google for access to files HornetForms itself creates (the drive.file permission), so we can't open the rest of your Drive. If you switch the integration to a new tab, the delivery log starts over. This is the one integration that can backfill existing responses; everything else starts from now.
Reach for it when you want the data somewhere you can sort, filter and pivot, or when someone on your team would rather live in a spreadsheet than in an app. Which is most teams, honestly. Our guide on how to analyze survey data shows what to do with those rows.
Slack#
What it does. Posts a message to a channel for every new completed response.
How to connect. Either use Add to Slack and pick the channel in Slack, or paste an incoming webhook URL if your workspace prefers you didn't install apps.
Good to know. Mentions in answers are suppressed, so nobody can type @everyone into your contact form and ping your whole company at 3am. Ask us how we know to think about that.
Reach for it when a response needs a human to react quickly: sales enquiries, bug reports, support requests, maintenance requests. Pick a channel people actually read, not #notifications.
Discord#
What it does. The same thing, for a Discord channel.
How to connect. Create a channel webhook in Discord (Channel settings → Integrations → Webhooks), copy the URL, paste it into HornetForms.
Good to know. Mentions are suppressed here too.
Reach for it when your community lives in Discord: server feedback, event sign-ups, applications to join something.
Notion#
What it does. Creates a page in a Notion database for every new completed response, with your questions mapped to the database's properties.
How to connect.
- Connect Notion and choose the pages HornetForms may access.
- Pick an existing database, or have HornetForms create one inside a parent page you choose.
- Review the field mapping: each question lines up with a Notion property, and you can change the pairing before you save.
- Send test, then look at your database.
Good to know. If the database you want isn't in the list, Notion hasn't shared it with us yet: open the page in Notion, then ••• → Connections → add HornetForms. Mapping is worth two careful minutes, because a date landing in a text property is annoying to fix later.
Reach for it when Notion is where your team actually works: a content request queue, a candidate pipeline, a CRM you built yourself one quiet Friday. Using Google Forms instead? Here's how to send Google Form answers to Notion.
Zapier#
What it does. Hands each new completed response to Zapier through the New Form Response trigger, so you can reach the thousands of apps you already use there.
How to connect.
- On the Integrations tab, create a Zapier key and copy it.
- Open HornetForms on Zapier from the same card.
- Paste the key, pick the form, and build your Zap.
Good to know. Our Zapier app is invite-only while Zapier reviews it for their directory, so the link on that card is how you get to it. Keys can be revoked from HornetForms at any time, which is the fastest way to stop a Zap you've lost track of.
Reach for it when your destination isn't on our list: a CRM, a mailing tool, an issue tracker, a spreadsheet in a different ecosystem.
Signed webhooks, plus n8n and Make#
What it does. Sends every new completed response to a URL you own, as JSON, signed in the Standard Webhooks format, with automatic retries.
How to connect.
- Add a webhook on the Integrations tab with your endpoint URL.
- Copy the signing secret.
- Verify the signature on your side before you trust the payload. HornetForms shows a verification snippet to copy, and the delivery log tells you what your server answered.
Good to know. This is the route for n8n and Make: both are connected through signed webhooks rather than native apps, and we have step-by-step in-app guides for each, covering the setup, the signature check and how to handle a duplicate delivery. Retries mean your endpoint should be idempotent, which is a fancy way of saying "receiving the same response twice shouldn't create two records".
Reach for it when you have an automation platform or your own code, and you want the raw data rather than someone's interpretation of it.
Email notifications#
Not an app integration, but it's where most people start and it's free on every plan.
What it does. Emails you (and anyone else you list) when a response arrives, and can send the respondent a confirmation email of their own.
Good to know. Set the notification's Reply-To to the respondent's email answer, and replying to the notification replies to them. It is the single highest-value two-minute setting in the product.
REST API (Business)#
What it does. Lets your own code read and manage forms and responses, with scoped workspace API keys, idempotency keys and an OpenAPI 3.1 document plus an in-app reference. This one is part of the Business plan.
Reach for it when you're pulling data on a schedule, or building something of your own on top of your forms. For pushing each response out as it arrives, webhooks are simpler and free.
Picking one#
| If you want... | Use |
|---|---|
| Rows you can sort and filter | Google Sheets |
| Someone to react within minutes | Slack or Discord |
| Responses in your team's workspace pages | Notion |
| Any other app | Zapier |
| Your own automation platform or server | Signed webhooks (and the n8n / Make guides) |
| To reply to the person who wrote in | Email notifications with Reply-To |
| To query your data from your own code | REST API (Business) |
You can run several at once: a response can land in a spreadsheet, ping a channel and hit your webhook, all from the same form.
Coming from Typeform? You may not need to rebuild your forms at all: the Typeform importer brings your questions across as an editable form.
Try one on a real form#
Pick the form you check most often and connect it to the place you'd rather be looking. Every integration in this post, except the REST API, is on the Free plan, which is free forever. The features page has the wider tour, and you can sign up for free without a card.
Then press Send test, because everyone forgets to press Send test.