# Send Data to Airtable



Connect your Surface form to Airtable with a webhook, so every submission creates a new record in your base.

## Prerequisites [#prerequisites]

You need:

* A Surface Forms account with a form created
* An Airtable account and base set up
* Admin access to both platforms

## Step 1: Create Your Form and Airtable Project [#step-1-create-your-form-and-airtable-project]

1. In Surface Forms, create your form if you haven't already
2. In Airtable, create a new base or use an existing one
3. Set up your table with columns that match the data you want to receive from your form

<Note>
  Make sure your Airtable column names are clearly defined, as you'll need to reference them later in the webhook payload.
</Note>

## Step 2: Set Up Airtable Automation [#step-2-set-up-airtable-automation]

1. In your Airtable base, click on the **Automations** tab
2. Click **Create Automation**
3. Select **When webhook received** as your trigger
4. Add a second action step by clicking the &#x2A;*+** button
5. Choose **Create Record** as your action
6. Configure the Create Record action:
   * Select your target table
   * Map the incoming webhook fields to your table columns
7. Save the automation and copy the webhook URL

<img src="/docs/images/walkthroughs/airtable/1.png" alt="Airtable webhook URL" />

<Tip>
  You can also use the [Airtable API](https://airtable.com/developers/web/api) to create records programmatically.
</Tip>

<Warning>
  Keep your webhook URL secure - anyone with this URL can send data to your Airtable base.
</Warning>

## Step 3: Configure Surface Forms Workflow [#step-3-configure-surface-forms-workflow]

1. Open the Surface Forms Workflow Builder
2. Create a new workflow:

<img src="/docs/images/walkthroughs/airtable/2.png" alt="Airtable webhook URL" />

### Workflow Trigger Options [#workflow-trigger-options]

You can configure when the webhook sends data:

* On form submission
* When visitor drops off
* While form is in progress

<img src="/docs/images/walkthroughs/airtable/3.png" alt="Airtable webhook URL" />

### Configure the Webhook Action [#configure-the-webhook-action]

1. Click the &#x2A;*+** button to add a new node
2. Select **HTTP Request** from the actions menu
3. In the sidebar configuration:
   * Set **Request URL** to your Airtable webhook URL
   * Change **HTTP Method** to `POST`
   * Under **Body**, add your JSON mapping. Where the object key is the Airtable column name and the value is the form variable.

<img src="/docs/images/walkthroughs/airtable/4.png" alt="HTTP Request configuration" />

<Tip>
  Use the `@` symbol in the workflow builder to access form variables. Press `@` and start typing to see available fields from your form.
</Tip>

## Step 4: Test Your Integration [#step-4-test-your-integration]

1. Submit a test entry through your Surface Form
2. Check your Airtable base for the new record
3. Verify that all fields are mapping correctly

<Note>
  If you don't see data appearing in Airtable:

  * Check your webhook URL is correct
  * Verify your JSON payload structure matches your Airtable columns
  * Review the workflow logs in Surface Forms
</Note>

## Need Help? [#need-help]

* Email [support@withsurface.com](mailto:support@withsurface.com)
* Book a [consultation](mailto:founders@withsurface.com) with our team
