ZapBounce and Airtable

Airtable holds contact data in bases that behave like a light CRM, and its automations can call an API through a scripting action.

The rate limit is the constraint that shapes the design. Airtable's own API allows a limited number of requests per second per base, and a script writing results row by row will hit it.

Row-by-row writes hit Airtable's own rate limit

A script that verifies an address and immediately updates the record makes one Airtable write per row. On a table of several thousand, that exceeds the per-second limit and the script starts failing partway.

Airtable's update endpoint takes up to ten records per call, so batching the writes reduces the request count by an order of magnitude.

The verification side has its own pacing, which is another argument for submitting a batch and collecting results rather than checking one address at a time.

How the data moves

  1. Use a scripting action, not a per-record automation

    A per-record automation runs once per row and re-creates the rate limit problem from the other direction.

  2. Submit addresses as a batch

    One call with the whole column, rather than a fetch per record.

  3. Write results back in chunks of ten

    Airtable's update endpoint takes ten records per call. Chunking is what keeps the script inside the limit.

  4. Use a single select field for the verdict

    Single select makes the values consistent and gives you view filters and color coding without extra work.

Setting it up

  1. Add a single select field for the result with its four values (valid, invalid, catch_all, unknown), checkbox fields for the role and disposable flags, and a date field for the check.
  2. Create an automation with a scripting action, storing the key in an input variable rather than the script body.
  3. Read the addresses from the view and submit them as one batch.
  4. Poll or use a second automation triggered by a webhook to collect results.
  5. Write results back in chunks of ten records per update call.
  6. Create a view filtered on the verdict for any list you export.

Airtable: common questions

Why does my script fail partway through?

Almost always Airtable's own rate limit from row-by-row writes. Chunk the updates into tens.

Per-record automation or a script?

A script. A per-record automation makes one run per row, which is the same problem in a different shape.

Single select or text for the verdict?

Single select. Consistent values, view filters and color coding for free.

Check a Airtable export today

100 free checks a month, no card. Unknown results and duplicates are never billed.