Skip to content

How to send form submissions to Airtable

A hosted form, or any webhook, that adds each submission as a record in your Airtable table, then posts to Slack or sends an email. Your own token, no code.

Updated

Airtable's own form view is the quickest way to get answers into a table, and if it does what you need, use it. This guide is for the other cases: the answers should also go somewhere else (Slack, an email, your API), or they come from a form or app that isn't Airtable. It uses a hosted Foliot form and the Add record to Airtable step, with no code, and shows the same thing with a webhook at the end.

  1. Trigger

    When a form is submitted

    Fields: Name, Email, Company, Plan (dropdown).
  2. Step 1

    Add record to Airtable

    Name Trigger → Name, Email Trigger → Email, Plan Trigger → Plan, Received Trigger → Submitted at
The workflow you'll build: each submission becomes a record in your table.

Before you start

  • A Foliot account. The free plan is enough to build and test this.
  • An Airtable base with a table for the answers, for example Name (single line text), Email (email), Company (single line text), Plan (single select) and Received (date and time).

Create an Airtable personal access token

Foliot writes to Airtable with a personal access token that you paste in. There's no “Connect Airtable” sign-in, and the token only reaches the bases you add to it.

  1. Go to airtable.com/create/tokens and create a token.
  2. Add exactly these scopes: data.records:read, data.records:write and schema.bases:read. The last one lets Foliot read the table's fields.
  3. Under access, add the base (or bases) the workflow should write to.
  4. Create it and copy the token. It starts with pat and works like a password; Airtable shows it only once.

Set it up in Foliot

1. Create the workflow and build the form

Create a new workflow and choose When a form is submitted as its trigger. A new form starts with a Name and an Email field. Use Add field for the rest. A dropdown whose options match your single select keeps the answers tidy.

2. Submit the form once

Open the Form link. While the workflow is off, the form shows a “Test mode” banner and saves answers as sample data. Fill it in once so the next step can preview real values.

3. Add the Airtable step

Click + after the trigger and choose Add record to Airtable. Then:

  1. Under Airtable connection, choose + Add an Airtable connection… and paste the token. Foliot checks it, including the schema.bases:read scope, before saving, and stores it encrypted.
  2. Open the table in Airtable, copy the link from the address bar (it looks like airtable.com/app…/tbl…/viw…), paste it and click Load table.
  3. Fill each field from the data picker, like Trigger → Email, or type a fixed value. Leave a field empty to skip it.

4. Test the step, then turn the workflow on

Test this step adds a real record with the sample answers; its result has the record's id and url. When it looks right, switch the workflow on and share the form link, or embed it with Put this form on your website in the trigger.

Which Airtable fields work

  • Filled in: single line text, long text, email, URL, phone, number, currency, percent (“50%” or 0.5), single select, multiple select (names separated by commas), date, date and time, and checkbox (Yes or No, or from data).
  • Selects are matched by option name. If the name doesn't exist yet, Airtable adds it when the field allows that. A time without an offset is taken in the workflow's timezone.
  • Not supported yet: attachments, linked records, users (collaborators) and a few others. The step lists them by name.
  • Formulas, rollups, lookups and created or modified times are Airtable's own and fill in by themselves.
  • Fields are saved by their ID, so renaming a field in Airtable doesn't break the step.

The same with a webhook

If the answers come from your own HTML form or another app, use When a webhook is received as the trigger instead. Send one request while the workflow is off so Foliot has sample data:

curl -X POST https://usefoliot.com/api/hooks/YOUR-TOKEN \
  -H "Content-Type: application/json" \
  -d '{"name": "Ada Lovelace", "email": "ada@example.com", "plan": "Pro"}'

Then fill the Airtable fields with Trigger → Name, Trigger → Email and Trigger → Plan. The webhook accepts JSON, form-encoded or plain-text bodies up to 256 KB. For an HTML form, set Send people to this page afterwards in the trigger's options so visitors land on your thank-you page. More in webhook to Google Sheets, which works the same way.

Useful variations

  • No duplicates: start with Find record in Airtable where Email is Trigger → Email, then a Branch on its found: Update record in Airtable on the Yes path, Add record to Airtable on the No path. Find returns the oldest match.
  • Tell the team: add Post to Slack with the record's link. See form submissions to Slack.
  • Confirm by email: add Send email to Trigger → Email. See a form that emails you and the sender.

Good to know

  • Records written by the step live in your Airtable base. Foliot itself stores its data in the EU, but what it writes to Airtable is kept wherever Airtable keeps your base.
  • Find record looks the field up by its saved ID and uses its current name, so it keeps working after a rename. A field name with }, a backslash or a line break can't be searched (Airtable formulas can't hold it).
  • Foliot has no Airtable triggers and can't delete records.
  • Each submission or webhook is one run, however many steps: 500 runs a month on the free plan, 10,000 on Pro ($12 a month).

Other ways to do it

  • Airtable's form view. Built in and the simplest when the answers only need to land in the table.
  • Airtable automations. Airtable can also receive webhooks and send emails itself. If your plan includes enough automation runs, that keeps everything in one place.
  • A form builder with an Airtable integration. Better for file uploads, conditional questions or payments.

Questions

Which scopes does the Airtable token need?

data.records:read, data.records:write and schema.bases:read, plus access to the bases the workflow writes to. Foliot checks the token when you save it.

Which Airtable fields can a form fill in?

Text, long text, email, URL, phone, number, currency, percent, single and multiple select, date, date and time, and checkbox. Attachments, linked records and users aren't supported yet.

Can I use my own HTML form?

Yes. Point the form at a Foliot webhook URL instead of using the hosted form, and set a page to send people to afterwards.

Is it free?

The free plan includes 500 runs a month and 5 active workflows. Each submission is one run. Pro is $12 a month for 10,000 runs.