Skip to content

Verify the email addresses in an Airtable table

Integration CRM, support and community

Airtable email verification in three steps: export a view as CSV, verify the file in PricklyMails, then merge each recommendation back onto its record.

There is no native Airtable connector: you export the list, PricklyMails verifies it, and you bring the result back into Airtable. New addresses can go through the API before they ever reach Airtable.

Verify for free

Step by step

Clean your list in three steps

  1. In Airtable

    Export your records from Airtable

    1. Open the base and the table that hold your addresses.
    2. Open a grid view with no filters, so that the file holds every record of the table.
    3. Click the down arrow to the right of the view's name.
    4. Click Download CSV.

    Note

    Airtable exports a grid view as a CSV file on its web and desktop apps only.

    Tip

    PricklyMails only needs the addresses: keep the email column alone in the file before moving on.

    SourceAirtable's official help center
  2. In PricklyMails

    Verify the file in PricklyMails

    1. In the dashboard, open Batches and click New batch.
    2. Drop the file you exported from Airtable: a .csv or .txt with one address per line, no header row and no quotes. A header row would count as an address in the estimate, though it is never billed, and a quoted address would not be verified: the report lists both as malformed. You can also paste the list.
    3. The dashboard counts the addresses and shows the estimated cost in tokens before anything is sent, then you click Submit batch. A batch holds at least 20 addresses, and your plan sets the largest list it can hold.
    4. The list is verified in the background. Once the batch is done, open it and click Download report: you get a CSV with a row for each address of your file, giving its verdict, its reason, its score and its recommendation, with the dashboard's labels.

    Note

    Download the report from the browser that sent the list: that browser is what keeps the addresses, for the 16 most recent batches at most. Our servers, in Germany, only keep a one-way fingerprint of each one.
    What the report says

    Every address gets a recommendation: the action to take. The report writes it with the dashboard's label; the API returns a short form of it.

    Send
    The address is valid, or hosted by a large provider that accepts every address without confirming any. Send as usual.
    Review
    A domain that accepts any address (catch-all), a generic address such as contact@, a full mailbox, or a server that never answered, or refused to. Take a look before you send.
    Remove
    The address does not exist, its domain cannot receive mail, or it is disposable, mistyped or malformed. Take it out.

    Note

    A malformed address is never verified: the batch counts it under "Malformed addresses", and the report still lists it, with the verdict "Invalid", the reason "Malformed address" and the recommendation "Remove", so you take it out of Airtable with the others. A duplicate, counted under "Duplicates removed", appears only once.

    Behind each recommendation sit a verdict (Valid, Risky, Invalid or Not verifiable), a reason and a score from 0 to 100, each in its own column of the report. When a server never answers, the address comes back "Not verifiable" and the checks that got no answer are refunded.

  3. In Airtable

    Bring the result back into Airtable

    Open the report in a spreadsheet and filter the Recommendation column.

    Remove

    A Recommendation field on each record takes the answer from the report, then you delete the records to remove.

    Airtable's CSV import extension merges a file into a table on a field you pick: merged on your email field, the report fills a new field of each record.

    1. In your table, click the + icon to the right of your last field.
    2. Pick the single line text type, name the field Recommendation, then click Create field.
    3. Click Tools in the upper-right corner, then Extensions.
    4. Click Add an extension, search for the CSV import extension, then click Add and Add extension.
    5. Drop the report into the extension, then select your table.
    6. Turn on Merge with existing records and pick your email field as the field to merge on.
    7. Under Field mappings, check that your Recommendation field takes the Recommendation column of the report.
    8. At the bottom of the extension, check that no new record will be created, then click Create records.
    9. In a grid view, filter the records on the condition Recommendation is Remove.
    10. Select the checkbox of each record shown, right-click, then click Delete all selected records.
    Review

    They deserve a look before you use them. To go through them, filter a view on the condition Recommendation is Review.

    Send

    Their records stay as they are: nothing to do.

    Note

    The CSV import extension is available on all paid plans, and only Owners and Creators can add it to a base.

    Tip

    Rather keep the records? Airtable suggests archiving instead of deleting: a condition Recommendation is not Remove on your working views keeps them out of sight.

Verify each address before it reaches Airtable

Does your form or sync script add records to a table through Airtable's Web API, with the Create records (opens in a new tab) call? Ask PricklyMails first. If the recommendation is remove, don't create the record.

One call starts the verification and already flags a likely typo, a second one reads the verdict. Depending on your plan, a signed webhook can also send it to you as soon as it's ready.

Request
curl -s https://api.pricklymails.com/api/verify \
  -H "Authorization: Bearer pm_live_9f3a..." \
  -H "Content-Type: application/json" \
  -d '{ "email": "ana.silva@gmail.con" }' \
  | jq '{job_uuid, suggestion}'
Response
{
  "job_uuid": "8f1c2a9e-4b7d-4e2a-9c61-3d5f0b7a2e18",
  "suggestion": "ana.silva@gmail.com"
}
Request
curl -s https://api.pricklymails.com/api/verify/$JOB_UUID \
  -H "Authorization: Bearer pm_live_9f3a..." \
  | jq '.verifications[0] | {status, reason, score, recommendation}'
Response
{
  "status": "invalid",
  "reason": "no_mx_records",
  "score": 0,
  "recommendation": "remove"
}
Read the API docs

Frequently asked questions

Why did the import create new records, or skip some?

The CSV import extension matches the merge field case-sensitively: it treats Name@example.com and name@example.com as two different values, though it ignores leading and trailing spaces. A report row that matches no record becomes a new record, and a record whose address was left out of the batch gets no recommendation. If two records hold the same address, both are updated.

SourceAirtable's official help center

How do I undo a merge or a deletion that went wrong?

Airtable recommends taking a base snapshot before any import: click the base history icon in the upper-right corner, then Snapshots and Take a snapshot. Restoring a snapshot creates a new base as it was, without touching the current one. A deleted record also stays in your workspace trash for 7 days.

Can the extension merge a large report?

Up to a point: the CSV import extension takes at most 25,000 rows and 5 MB per file. Airtable adds that it loads the whole destination table before importing, so a very large table can make the import fail or time out even when the file is small. Split a larger report into several files and import them one by one.

SourceAirtable's official help center

Does PricklyMails connect to Airtable directly?

No, there is no native connector: you go through a file export, as above. You can also call the PricklyMails API from your own code before an address reaches Airtable.

These trademarks belong to their respective owners. Naming them implies no partnership.

Check your list before your next send.

1,000 tokens free when you sign up, no credit card. After that, you only pay for answers.