> ## Documentation Index
> Fetch the complete documentation index at: https://docs-terra.withunify.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Airtable Integration

> Sync form submissions to Airtable in real-time

# Airtable Integration

> Automatically sync submissions to Airtable for case management and reporting.

## How It Works

```mermaid theme={null}
sequenceDiagram
    participant S as Submission
    participant O as Outbox
    participant Q as Queue
    participant A as Airtable

    S->>O: Create outbox entry (pending)
    O->>O: Manual approval
    O->>Q: Enqueue approved sync
    Q->>A: Upsert record
    A-->>Q: Success
    Q->>O: Mark sent
```

## Setup

### 1. Connect Airtable

1. Go to **Form Settings** → **Integrations**
2. Click **Connect Airtable**
3. Authorize via OAuth (PKCE flow)

### 2. Select Base & Table

Choose which Airtable base and table to sync to.

### 3. Map Fields

Map Terra fields to Airtable columns:

| Terra Field | Airtable Column |
| ----------- | --------------- |
| `full-name` | Name            |
| `email`     | Email Address   |
| `income`    | Annual Income   |

## Field Type Mapping

| Terra Type      | Airtable Type    |
| --------------- | ---------------- |
| text            | Single line text |
| number          | Number           |
| date            | Date             |
| choice (single) | Single select    |
| choice (multi)  | Multiple select  |
| files           | Attachment       |
| address         | Long text        |

## Sync Timing

* Submissions land in the **Airtable Outbox** first
* Manual approval is required by default
* Continuous sync can be enabled per form or mapping
* Manual re-sync available in dashboard

## Rate Limiting

Airtable has a 5 requests/second limit. The queue spaces requests:

```typescript theme={null}
const AIRTABLE_DELAY = 200; // 200ms between requests
```

***

<CardGroup cols={2}>
  <Card title="Queue Architecture" icon="clock" href="/core-systems/async/queue-architecture">
    How syncs are processed
  </Card>

  <Card title="Google Drive" icon="folder" href="/integrations/google-drive">
    File storage integration
  </Card>
</CardGroup>
