Databases and spreadsheets
In developmentSend form submissions to Airtable
Airtable's own forms are fine until you want your own markup, your own styling and spam filtering that actually works. Keep the form you built and write the submissions into your base as records. The native adapter with a field mapper is in development; the webhook route below works today.
The native Airtable destination is still being built. The steps below use a webhook, which works today and needs no change to your form once the adapter ships.
What will land in Airtable
The native adapter is still in progress. The webhook route below delivers the same data today.
- A new record in your chosen table per submission
- Form fields mapped onto Airtable columns
- File uploads attached as Airtable attachments
- Spam quarantined before anything reaches your base
Setup
Create a personal access token
In Airtable's developer hub, create a token with data.records:write scope on the base you want to write to.
Add a webhook destination today
Point a WebForms webhook at a function that calls Airtable's records API. Sample below.
Switch to the native adapter when it lands
The Airtable destination will connect with OAuth and let you map fields visually. No changes to your form.
Airtable example
Swap in your own endpoint and these run as-is.
Creates one record per submission.
export async function POST(req: Request) {
const body = await req.json();
await fetch(
`https://api.airtable.com/v0/${process.env.AIRTABLE_BASE}/Submissions`,
{
method: "POST",
headers: {
Authorization: `Bearer ${process.env.AIRTABLE_TOKEN}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
fields: {
Name: body.data.name,
Email: body.data.email,
Message: body.data.message,
},
}),
},
);
return new Response("ok");
}Worth knowing
- The native Airtable destination is in development. This page describes the webhook route, which works today.
- Airtable rejects writes to a field that does not already exist. Create the columns before your first submission.
- The API limits you to 5 requests per second per base. Deliveries are queued, so bursts are smoothed rather than rejected.
Airtable form FAQ
For most small teams, yes. A base with three views (new, in progress, closed) fed directly by the form covers what a CRM would, without the subscription. Try that before buying one. The webhook route below works today.
Yes. Keep your own HTML, styling and validation, and write records into your base through a webhook destination today or the native adapter when it ships.
Not yet. It is in development. The webhook route on this page works today and needs no change to your form when the adapter arrives.
Yes. Uploads are stored and the payload includes a download URL, which Airtable can ingest as an attachment.
Other destinations
Sending from your stack
The destination is set in the dashboard, so the form itself is the same plain POST everywhere. These guides have the markup for the common setups.
Send your next form submission to Airtable
Free for 300 submissions a month. Endpoint in under a minute, no card required.
Start free