Form integrations: Sheets, Slack, Notion
Set a destination up once in the Workflows tab and it runs on every new response. Every destination is free except emails to the respondent, and each one can run only when the answers match.
Last updated
Every integration, and the plan it needs
Open your form, go to the Workflows tab and scroll to Notify and send and Sync your data. Each card below is one destination:
| Integration | What it does | Plan |
|---|---|---|
| Email me | Get an email with the answers every time someone responds. | Free |
| Email the respondent | Send a confirmation, with a copy of their answers if you like. | Pro |
| Webhooks | Send signed JSON to any URL, with automatic retries. | Free |
| Slack | Post each response to a Slack channel. | Free |
| Discord | Post each response to a Discord channel. | Free |
| Zapier | Connect thousands of apps with a Zapier Catch Hook. | Free |
| Make | Start a Make scenario with a custom webhook. | Free |
| n8n | Trigger an n8n workflow with a Webhook node. | Free |
| Google Sheets | Keep a spreadsheet up to date with every response. | Free |
| Notion | Add each response as a page in a Notion database. | Free |
| Airtable | Add each response as a record in an Airtable table. | Free |
Every destination has Only when answers match, free on every plan, so a customer inquiry form can post sales questions to one channel and support questions to another, and a roof inspection report can reach your estimator only when a roof rates Poor. When to send can delay a send by an hour, a day or up to 30 days on Pro. Typical uses: a local business lead form posting each lead to Slack, an online job application form adding a record to Airtable, a workplace incident report form alerting a channel the moment a report comes in, or a testimonial collection form filling a quotes library in Notion. Other pairings that work well:
- Google Sheets: a takeout order form sends each order to the kitchen's sheet, an employee availability form keeps the roster sheet current, a golf day entry form fills the pairings list, and a classroom walkthrough form logs each visit for the department. A mailing address form builds the card list, a school fundraiser order form adds up each product for the supplier order, and an offboarding checklist form keeps every departure in one dated list.
- Slack or Discord: a vehicle inspection checklist alerts the fleet channel when a driver reports a defect, an absence report form tells the shift lead who is out, a school photo consent form tells the people who post photos about each no, a sponsorship request form reaches the team that decides, and a school trip permission slip alerts the trip lead when a child needs medication.
- Notion or Airtable: a bookkeeping client intake form becomes a client page, a wholesale account application an account record, an employee info form a staff record, a website brief template the project page, and an educational grant application form a record for the review panel.
Set one up
Every card works the same way: open it, fill in what it asks for, press Connect, then Send test to see a sample response arrive. The steps each card shows:
- Google Sheets. Copy your private live-feed link and paste it into
=IMPORTDATA()in any Google Sheet. If the card also offers Direct sync, share a sheet with the address shown there, and we add a row the moment someone responds. We write the header row and add columns when you add questions. - Slack. Go to api.slack.com/apps, create an app (or open yours) and turn on Incoming Webhooks. Choose Add New Webhook to Workspace and pick a channel. Copy the webhook URL and paste it below.
- Discord. In Discord, open the channel settings, then Integrations › Webhooks. Create a webhook and choose Copy Webhook URL. Paste the URL below.
- Notion. Create an internal integration at notion.so/my-integrations and copy its secret. Add the integration to your database from ••• › Connections, then paste the database link. Map questions to properties; we create missing properties for you.
- Airtable. Create a personal access token at airtable.com/create/tokens with record and schema scopes. Paste the token and the link to your table, then map questions to fields; we create missing fields for you.
- Webhooks. Paste your Endpoint URL and press Connect. We create a signing secret and show it once, so copy it then.
Google Sheets, Notion and Airtable can also copy the responses you already have: press Sync existing submissions after you connect.
Webhooks: payload, signature and retries
Each response is sent as a JSON POST, close to Tally's webhook shape, so existing Zapier, Make and n8n recipes need few changes. fields lists every answer with its raw value and a readable displayValue; pdfUrl is a link to the response as a PDF, valid for 7 days:
{
"eventId": "…",
"eventType": "FORM_RESPONSE",
"createdAt": "2026-09-22T09:30:12.000Z",
"data": {
"responseId": "…",
"submissionId": "…",
"surveyId": "…",
"surveyTitle": "Contact form",
"surveyUrl": "https://www.pulseformcreator.com/s/abc12345/",
"createdAt": "2026-09-22T09:30:12.000Z",
"fields": [
{ "key": "email", "label": "Email", "type": "email",
"value": "mia@example.com", "displayValue": "mia@example.com" },
{ "key": "topic", "label": "What is it about?", "type": "dropdown",
"value": "an_order", "displayValue": "An order" },
{ "key": "hidden:utm_source", "label": "utm_source", "type": "hidden_field",
"value": "newsletter", "displayValue": "newsletter" }
],
"hidden": { "utm_source": "newsletter" },
"variables": {},
"endingId": null,
"pdfUrl": "https://www.pulseformcreator.com/api/surveys/…/pdf/?exp=…&sig=…"
}
}
Check the signature before you trust a request. Each one carries two headers: PulseFormCreator-Timestamp, the time in Unix seconds, and PulseFormCreator-Signature, which reads sha256= followed by a hex HMAC-SHA256.
- Read the raw request body as text, before any JSON parsing.
- Compute HMAC-SHA256 of the timestamp, a period and the raw body (
timestamp.body), using your signing secret as the key. - Compare
sha256=plus that hex value with the signature header, in constant time. - Reject a request whose timestamp is more than a few minutes old.
Retries. A delivery succeeds when your endpoint answers with a 2xx status within 10 seconds. Timeouts, network errors and 408, 429 and 5xx answers are tried again after 5 minutes, 30 minutes, 1 hour, 6 hours and 1 day, 6 attempts in all. Other 4xx answers and redirects are not retried. Every attempt shows in the delivery log on the webhook's card.
Zapier, Make and n8n
If a tool is not in the table, Zapier, Make or n8n probably reaches it. Each has its own card with its own steps, and all three take the same signed webhook: copy the URL they give you, paste it into the card in PulseFormCreator, press Connect, then Send test so the tool can see your fields. A wholesale order form embedded on a store page can send each order on to your store's tools this way, a mailing list signup form can add each subscriber to your email tool, and an approved supply requisition form can pass its items and total to your accounting system.
If you are moving from another form builder, webhook payload shapes differ between products. Re-test anything downstream after you import. The Tally switching guide lists this as a step.
Email notifications
Turn on Email me in the Workflows tab to get the answers by email every time someone responds. It goes to your account address and up to 10 more addresses you add, and it is free. Attach a PDF of the response, also free, adds the answers as a PDF; a PDF over 5 MB becomes a download link instead. A bakery can print each order from its custom cake order form straight from that email. On PulseFormCreator Pro you can also set the Subject, add a Message above the answers, and set Reply-To to the respondent's own address, so replying to the email answers them.
Email the respondent sends people a confirmation, on Pro, with your own sender name, Reply-To address, subject and message, and a copy of their answers if you want one. A form can have several, each with its own Only when answers match.
Each notification counts once toward the fair use line for emails, however many addresses it goes to.
Your own code, PDFs and your own domain
The public API reads your forms and responses from your own code, and it is free on every plan. Create a key under Account, then API keys.
Open any response in your results and download it as a PDF, also free; response PDFs covers every way to get one. A daily or weekly digest of each form's new responses is a card on the Workflows tab, and one summary across all your forms is a setting on your account page.
On Pro, forms can live at your own domain and notification emails can come from your own address. See custom domains.
Did this answer your question?
If it did not, tell us what was missing and we will fix the article.