Integrate WhatsApp with Airtable

To integrate WhatsApp with Airtable, calls go out through its Run a script automation action (fetch) and events come back through its When webhook received trigger; authentication is Token passed into the script as an input variable from a settings table or a secret field, and the setup below takes about 20 minutes. No official connector is involved: groups, Channels, status posts and template-free sends all go through one plain HTTPS call.

Data

What you can do with Airtable

Setup in Airtable

Events arrive through
When webhook received trigger
Authentication
Token passed into the script as an input variable from a settings table or a secret field
Time to first call
About 20 minutes
  1. Create an automation with the trigger you want - a record entering a view is usually the cleanest - and add a Run a script action.

  2. Declare the fields you need as input variables rather than querying the whole table, and pass the channel token in as one of them from a settings record.

  3. In the script, call fetch against the Wapito endpoint with the Authorization header, and read the response body before deciding whether the step succeeded.

  4. Write the message id and the status back to the record with an update, so the view empties as records are processed and a re-run cannot double-send.

  5. For inbound events, add a second automation with the webhook trigger, copy its URL, and register it in Wapito.

Example flows

Message a contact when a record enters a view

A view holds records ready to contact. The script sends the message, writes the id and timestamp back, and the record leaves the view, which makes the view itself the queue and the audit trail at once.

POST /messages/text Send a text message

curl --request POST \
  --url https://api.wapito.com/v1/messages/text \
  --header 'Authorization: Bearer wpt_YOUR_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '{"to":"+15551234567","body":"Your order #4182 has shipped. Track it here: https://acme.example/t/4182","typing_time":3}'

Create a group for a new project record

When a project record is created, the script creates the group from the linked team members' numbers and stores the group id on the record, so later automations can post updates into the right thread.

POST /groups Create a group

curl --request POST \
  --url https://api.wapito.com/v1/groups \
  --header 'Authorization: Bearer wpt_YOUR_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '{"subject":"Acme Launch Team","participants":["+15551234567","+15559876543"],"description":"Coordination for the Q3 launch. Keep it on topic."}'

Validate numbers as records are added

A script checks the number on creation and sets a checkbox plus a checked-on date. Records that fail are routed to a review view rather than silently sitting in the queue waiting to fail at send time.

GET /contacts/{id}/exists Check one number for WhatsApp

curl --request GET \
  --url 'https://api.wapito.com/v1/contacts/+15551234567/exists' \
  --header 'Authorization: Bearer wpt_YOUR_TOKEN'

Capture inbound replies as linked records

The webhook automation creates a message record linked to the contact it came from, so the whole conversation is visible from the contact record without leaving the base.

GET /messages/list/{chat_id} List messages in a chat

Beta

curl --request GET \
  --url 'https://api.wapito.com/v1/messages/list/15551234567@s.whatsapp.net?count=50&offset=0&from_me=true&time_from=1789372800000&time_to=1789459200000' \
  --header 'Authorization: Bearer wpt_YOUR_TOKEN'

Receiving events

In Airtable the inbound side is the When webhook received trigger: it gives you the URL to register in Wapito.Every event Wapito delivers — an inbound message, a delivery receipt, a member joining a group, a number disconnecting — is one HTTPS POST to a URL you register, signed with the webhook's secret in the X-Wapito-Signature header. Verify that header against the raw request body before you act on anything, answer with a 2xx within the retry window, and do slow work afterwards.

Webhooks guide: events, envelope and signature When webhook received trigger documentation

Step-by-step recipes for Airtable

What the official connector does instead

Airtable ships no WhatsApp integration, official or third-party, that covers groups, Channels or status - the marketplace options route through Meta's platform or through another automation tool. A Run a script action calling Wapito keeps the whole flow inside the base.

Wapito is an independent product. It is not affiliated with, endorsed by, sponsored by or certified by WhatsApp or Meta Platforms, Inc. WhatsApp is a trademark of Meta Platforms, Inc.

Frequently asked questions

Are there limits on fetch inside a script action?

Yes. Airtable caps the number of fetch calls and record queries a single script run may make, so a script that loops over a whole table will hit the ceiling. Process one record per run by driving the automation from a view, which is also better pacing for your number.

Where should the token live?

In a settings table restricted by field permissions, or in a field that collaborators cannot read, passed into the script as an input variable. Hard-coding it in the script body means anyone who can open the automation can read it, which is usually more people than you think.

Do I need a paid plan for the webhook trigger?

The webhook trigger is part of Airtable's automation features and availability depends on your plan, so check before you design around it. The outbound half - Run a script with fetch - is available more widely, and plenty of useful integrations only need that direction.

Related

Try it on your own number

Create a channel, link a WhatsApp number by QR or pairing code, and call the API in a couple of minutes. The Sandbox plan is free and needs no card.