# Airtable

Turn an Airtable table of people into an audience. Rasket reads the table, keeps its people as contacts in a segment, once or as records change, and you send to that segment with campaigns.

> Coming soon: connecting Airtable is not switched on yet. This page describes it as it will ship. Until then, download the table as a CSV file and import it in Audience.

## What it does

- **Reads only the bases you grant.** When you connect, Airtable asks which bases Rasket may use.
- **One table, one sync.** Optionally through one of its views. A sync says which field holds the email address, what the other fields become, and the segment the people go into.
- **Adds and updates, never removes.** New records become contacts, and changes in Airtable update them. Nobody is removed or unsubscribed by a sync.
- **Writes back only where you say.** With write-back on, Rasket fills only the fields you picked for it, never a field the sync reads.

## Before you start

- **An admin of the Rasket project.** Connecting an Airtable account and adding a sync are an admin's decisions. Other members can see the syncs but not change them.
- **A table with an email field.** One address per record.
- **Their agreement.** Only people who agreed to hear from you should arrive subscribed. An opt-in field, such as a checkbox, says who did.
- **A verified sending domain,** for the campaigns you send afterwards. The [domains guide](https://www.rasket.com/docs/domains) walks through it.

## Connect an Airtable account

1. In Rasket, open **Settings**, then **Integrations**, then **Airtable**, and choose **Connect an Airtable account**.
2. Rasket says what it will read and write. Choose **Continue to Airtable**.
3. In Airtable, choose the bases Rasket may use, and grant access.
4. You are back on Settings, and the account has its own card.

Finish within ten minutes of choosing Continue. After that the connection expires and nothing is read; start again from Settings. To use another base later, connect the account again and add it on Airtable's screen.

## Add a sync

1. On the account's card, choose **Add a sync**, then the base.
2. Choose the table, and a view if you want only the records it shows. The form lists the table's fields.
3. Map the fields, as the table below describes.
4. Say who agreed to hear from you, as the consent table describes.
5. Choose **Save and sync**. The sync reads the whole table once straight away, and its page shows what it did.

| Field | What it takes |
| --- | --- |
| Email address field | Required. An Email, Single line text, Long text, Formula or Lookup field holding one address per record. |
| First name, Last name | Optional. A text, Formula, Single select or Lookup field. Leave the rest as Don't copy. |
| A contact property | Any other readable field, into one of your project's contact properties. Add properties in Audience first. |
| Opt-in field (optional) | A Checkbox, or a Single select or Multiple select field and the option that means yes. Records that say yes arrive subscribed; the rest arrive not subscribed. |
| Add them to the segment | An existing segment, or A new segment… with a name you type. Every synced person joins it. |
| Subscribe them to a topic (optional) | Only people who arrive subscribed. People who opted out of the topic stay opted out. |
| Run | Once, now, or As records change. |
| Write email activity back (optional) | Up to four fields you pick: status, last sent, last opened and last clicked. |

## Who arrives subscribed

| What you set | What happens |
| --- | --- |
| An opt-in field, and you confirm the statement | Records that say yes arrive subscribed. Every other record arrives as a contact who is not subscribed. |
| No opt-in field, and you confirm everyone in the table agreed | Every record arrives subscribed. |
| No opt-in field, and nothing confirmed | Every record arrives as a contact who is not subscribed. |

A contact who is not subscribed gets no campaigns, only the transactional email you send them. Rasket keeps the statement you confirmed, who confirmed it and when, on the sync.

A contact who arrived not subscribed is subscribed once their record says yes. Someone who unsubscribed stays unsubscribed, whatever the table says.

## As records change

With **As records change**, Airtable tells Rasket when a mapped field changes, and Rasket reads just those records, usually within a minute. Edits to other fields, and Rasket's own write-back, start nothing.

- **Two per base.** Airtable lets Rasket watch two tables in one base. A third sync on that base runs once instead.
- **Few API calls.** Airtable's free plan allows 1,000 API calls a month for the whole workspace. Watching for changes uses a few calls for each change, instead of reading the table every hour.

## What a sync never does

- **It never removes or unsubscribes anybody.** A record deleted in Airtable, or no longer opted in, leaves the contact and its segment as they are.
- **It never touches people who said no.** Unsubscribed contacts, addresses on your suppression list and contacts deleted in Rasket are skipped and left alone. A contact you delete stays deleted.
- **It never writes to a field it reads.**

Changes in Airtable win over names and properties edited in Rasket. An email address changed in Airtable becomes a new contact; the old one stays. When one address appears in several records, the last one wins.

## Write email activity back

Pick up to four fields for Rasket to fill on each record the sync added. Rasket writes after each run, and every hour when something changed, and only to records whose values changed. It covers campaigns only.

| Value | The field it goes in |
| --- | --- |
| Status | A text or Single select field gets Subscribed, Not subscribed, Unsubscribed, Bounced, Marked as spam or Suppressed. A Checkbox is ticked when they unsubscribed or are suppressed. |
| Last sent | A Date, Date and time, or text field: when a campaign was last sent to them. |
| Last opened | The same, for the last campaign they opened. |
| Last clicked | The same, for the last campaign link they clicked. |

## Send to them

In **Campaigns**, create a campaign for the sync's segment and send it. The [campaigns reference](https://www.rasket.com/docs/api-reference/broadcasts) covers sending one over the API.

## Managing a sync

- **Sync now** on the sync's page reads the whole table again at once.
- **Write back now** fills the write-back fields at once.
- **Change this sync** edits the mapping, the segment, the topic, the schedule or write-back. The next run reads the whole table.
- **Runs** shows the newest runs and how many records each added, updated and skipped. Rasket keeps the last 30.
- **Delete sync** stops it. The contacts it added stay.
- **Disconnect** on the account's card deletes its syncs and stops watching their tables. The contacts stay. To end Rasket's access completely, also remove Rasket from your Airtable account's third-party integrations.

## Limits

- **10,000 records a run.** A bigger table is read over several runs, each one continuing where the last stopped.
- **Fields.** Text, email, phone, URL, number, checkbox, select, date, formula, rollup, lookup and collaborator fields can be read. Attachments, linked records and buttons cannot.
- **Access lasts while it is used.** Rasket renews its access before Airtable's 60-day limit. If renewal fails, the syncs pause and the card offers Reconnect.
- **Your plan's contact limit** applies, as it does to an import. Records past it are skipped.

## Troubleshooting

### “Airtable isn't available here”

Connecting Airtable is not switched on for this deployment. Download the table as a CSV file and import it in Audience instead.

### “This connection has expired”

More than ten minutes passed, or the connection started somewhere other than Rasket. Nothing was read. Start again from Settings → Integrations → Airtable.

### A base is not listed

It was not granted. Connect the account again and choose the base on Airtable's screen.

### “Airtable no longer accepts Rasket's access”

Rasket's access was removed in Airtable, or ran out. The account's syncs are paused. Choose **Reconnect** on its card; nothing is lost, and the syncs catch up.

### The table, the view or a field is gone

Renamed ones still work. A deleted table stops the sync: add a new sync for the table you use now. A deleted view or field stops it too, and its page names it. Choose another and save.

### “Airtable didn't let Rasket watch this table”

Two syncs on this base already run as records change. Set one of them, or this one, to run once.

### Write-back says a value wasn't accepted

One of the write-back fields can't hold its value. Check the field types in the write-back table above, or choose other fields. The import keeps running either way.

### Records were skipped

The sync's Runs list says why for a sample of records. A record is skipped when it has no valid email address, has the same address as a later record, belongs to someone who unsubscribed, is on your suppression list or was deleted in Rasket, or when the project is at its contact limit.
