Send website enquiries to Airtable
If your pipeline lives in Airtable rather than in a CRM, this writes each enquiry straight into it as a new row, the moment it arrives.
Read Send your website enquiries to your CRM for the shared picture: what is sent, what is never sent, and what this does not do. This page is the Airtable half.
Your columns, not ours
Airtable refuses a row that names a column the table does not have, so the names have to agree before the first enquiry arrives. They agree in whichever direction suits you: either name your columns as below, or keep the names you already use and tell us about them in Where each field goes when you add the destination.
The second way is usually the right one. Your base is yours, and renaming a column you already use in views, formulas and automations to suit us would be a poor trade.
These are the names we start from, which is all a brand new table needs:
| Column | Type to choose | What arrives |
|---|---|---|
Name |
Single line text | Their full name as given |
Email |
As typed | |
Phone |
Phone number | As typed |
Company |
Single line text | Only if your form collects one |
Message |
Long text | What they wrote |
Page |
URL | The page they were on |
Site |
Single line text | Which of your sites it came from |
Source |
Single select | Website enquiry or Property enquiry |
You do not have to use all of them. Empty a box in Where each field goes and that field is not sent at all, so a table with no Phone column simply never receives one. Anything else in your table - a status, an owner, a follow-up date - is yours and is never touched.
If your table already has Full name rather than Name, or Work email rather than Email, write
that in instead. Nothing has to be renamed on your side.
Source works as a single select because we ask Airtable to match the value to an existing option.
If you would rather not manage options, make it a single line text field instead.
Get the three values
- Personal access token. Airtable → Builder hub → Personal access tokens → Create token. Give
it the
data.records:writescope and access to this one base, and nothing else. Copy it when it is shown; Airtable will not show it again, and neither will we. - Base id. Starts with
app. It is in the address bar while the base is open, and in the API documentation Airtable generates for that base. - Table name. Exactly as it appears on the tab in Airtable.
Give the token access to only this base. It is the one credential here that can write, and a token scoped to one base cannot touch the rest of your workspace even if it leaks.
Add it in Webkio
Project settings → CRM → Airtable, paste the three values, tick which enquiries to send, set your own column names in Where each field goes if they differ from the list above, then Add destination.
That panel is explained in full on Send your website enquiries to your CRM.
The token is stored and never shown back to you. To change it you paste a new one.
Check it
Press Send test on the destination. A row called "Webkio Test" should appear in your table within a second or two; delete it afterwards. Airtable answers with a real error when something is wrong, so a wrong column name or a token without write access is named rather than failing quietly.
Recent deliveries on the card then shows every attempt since, which is where to look the first time an enquiry does not turn up.
Limits worth knowing
- New rows only. An enquiry from somebody already in the table creates a second row. There is no matching, no merging, and no updating.
- One table. Add a second destination if you want different enquiries in different tables.
- Columns must match. Renaming a column in Airtable breaks the write until you rename it back or update the destination.
- One way. Editing the row in Airtable changes nothing in Webkio.
- Attachments are not sent. Nothing a visitor uploaded is written to the base.
When it is not working
| What you see | What it usually is |
|---|---|
Check these: Personal access token when saving |
The value does not start with pat. A token name rather than the token does this |
Check these: Base id |
The value does not start with app. A base URL or a share link does this |
| Card mentions an unknown field name | A column is missing or spelled differently. Check Where each field goes on the destination against your table, capitals included |
| Card says not authorized | The token has no access to this base, or lacks data.records:write |
| Card says the table was not found | The table was renamed. Update the destination to the new name |
| Switched off after repeated failures | Ten consecutive failures. Fix the cause, then press Resume, which clears the count |
Frequently asked questions
Does it work with Airtable's free plan?
Yes. Personal access tokens and the records API are available on every plan.
Can I send to a specific view?
No. Rows are added to the table, and your views then show them according to their own filters.
What if I already have a different column layout?
Use it. Open Where each field goes on the destination and write your own column names in. That is what it is for, and it is better than renaming columns your views and automations already depend on.
Can I use this with Airtable automations?
Yes, and it is a good pairing. A new row can trigger an Airtable automation, so you can route, notify or assign inside Airtable without anything extra from us.
Is my token safe?
It is stored encrypted at rest, never shown back to you, and never sent anywhere except Airtable. Scope it to one base with write access only, so the worst case stays small.