Loading tutorials…
Loading tutorials…
Airtable automations are powerful, native, and brittle if you wire them wrong. Most bases past 20 automations have 5-8 that silently fail every week. This walks the patterns that hold up.
Who this is forOperators setting up their first automations or teams whose automation count has grown faster than their documentation. If you have ever asked 'why didn't that notification fire?' and could not answer in under five minutes, this tutorial is for you.
What you'll need
Step 1
Every automation is: when this happens (trigger) → if these conditions are met (filters) → do this (action). Most failures come from missing the conditions step.
Open Airtable → top-right toolbar → "Automations" panel.
"+ Create automation" → name it descriptively ("Notify reviewer on status change," not "Automation 4").
Trigger options: "When record matches conditions" (most common), "When record created," "When record updated" (watch a specific field), "When form submitted," "At a scheduled time," "When a webhook is received."
Conditions (added inside the trigger or via an "Find records" action): narrow down which records the action runs on. Without conditions, "When record updated" fires on every edit — including formatting changes.
Action options: "Update record," "Create record," "Send Slack message," "Send Microsoft Teams message," "Send email," "Run script" (custom JS), "Find records," "Send to webhook" (outbound to Zapier/Make/anything HTTP).
Test each step in the right rail before turning the automation ON. Airtable shows the data flowing through.
Step 2
The most common Airtable automation: when status moves to X, notify the next owner. Master this pattern and 60% of your needs are covered.
"+ Create automation" → name: "Notify reviewer on status In Review."
Trigger: "When record updated" → Table: Content → Field that triggers updates: Status.
Inside the trigger config, add a condition: Status = "In Review" (otherwise the automation fires on every status change, including back-to-Drafting).
Action: "Send Slack message" (or "Send Microsoft Teams message," or "Send email"). Configure recipient: dynamic from the Reviewer field on the record. Message: "{Content Title} is ready for review by {Reviewer}. View it: https://airtable.com/{BASE_ID}/{TABLE_ID}/{RECORD_ID}."
Test: pick a sample record, click "Test step" — Airtable shows the message that would send. Verify the recipient and content.
Turn ON. Repeat the pattern for each major status transition (Drafting → In Review, In Review → Approved, Approved → Scheduled).
Step 3
Scheduled triggers fire on a cron — daily, weekly, monthly. Use for digest emails, stale-record reminders, recurring summaries.
"+ Create automation" → name "Weekly content recap email."
Trigger: "At a scheduled time" → Repeat every: 1 week → On: Monday → At: 9:00 AM (base timezone).
Action 1: "Find records" → Table: Content → Conditions: Status = "Published" AND Published Date is within "the past 7 days." This returns the list of last week's published content.
Action 2: "Send email" → Recipient: team email list → Subject: "Content recap — week of {WEEK_START}." Body: dynamic table of the found records (Title, Type, Channel, Author).
Test by manually running the trigger. Verify the email arrives, the record list is accurate, and formatting is readable on mobile.
Turn ON. The Monday recap arrives automatically every week — without anyone remembering to send it.
Step 4
For anything beyond declarative triggers — multi-table updates, complex calculations, conditional branching — drop into the Run Script action (JavaScript).
In an automation → "+ Add action" → "Run script."
You get a JavaScript editor. Use `input.config()` to define inputs from previous steps. Use `output.set()` to pass values to later steps.
Common scripts: deduplication (search existing records before creating), bulk updates (loop over linked records and set a field), cross-table writes (update a Companies record when a Deals record changes), API calls (fetch external data via fetch()).
Example: when a Deal moves to Closed Won, write a "Last Won Date" on the linked Company record. Script: get the record from input, find the linked Company, update its Last Won Date field. 15 lines of JS.
Scripting is sandboxed: no filesystem, no eval, fetch() is allowed but rate-limited (5 calls/run by default).
For non-developers: ChatGPT or Claude can write these scripts. Paste your scenario and ask for an Airtable scripting block solution.
Step 5
When native actions are not enough, send to a webhook (outbound) or receive a webhook (inbound). This is the bridge to Zapier, Make, or custom backends.
Outbound webhook: in an automation → "+ Add action" → "Send to webhook." URL: your Zapier catch hook, Make webhook, or custom endpoint. Method: POST. Headers + body: JSON with the fields you want to send.
Inbound webhook: trigger: "When webhook received." Airtable generates a unique URL. POST to that URL from any external system (Slack slash command, Stripe webhook, GitHub action) and the automation fires.
Pattern: Airtable handles your data model; webhooks handle the integration layer. Avoid building everything inside Airtable scripts.
Cost note: each automation run on Team tier counts toward your 50K runs/month quota. Business is 100K. If you have an automation firing on every record update across a 10K-row table, you can burn through quota in days.
Step 6
After 10 automations, no one remembers what each does. Document the trigger, conditions, action, and owner of every one — in the base itself.
Create a "Automations Registry" table: fields Name, Purpose, Trigger Type, Trigger Conditions, Actions, Last Modified, Owner, Status (Active / Paused / Broken).
For each existing automation, add a row. Paste the trigger config and action config as Long text. Future-you (and new hires) will thank you.
Convention: when you build a new automation, the first thing you do is add it to the registry. Untracked automations are the source of "why did that fire?" mysteries.
Quarterly audit: open the registry, look for Paused/Broken status, fix or delete. Look for redundant automations doing similar things. Consolidate.
Step 7
Automations can fail silently — record not found, API timeout, invalid field. Build a meta-automation that notifies you when this happens.
In each business-critical automation, add a "Find records" or precondition check at the start. If the precondition fails (e.g., no Reviewer set), branch to a notification action.
Action: "Send Slack message" → channel: #ops-alerts → message: "Automation [X] failed because [Y] — record: {RECORD_URL}."
Pattern: every automation has both a happy-path action AND a failure-notification action.
On the Airtable side, check the Automations panel → click an automation → "Run history" tab to see successes/failures. Review weekly.
For very critical automations (payment, inventory, etc.), consider an external monitor — Make can run a daily health check on Airtable Automation run logs.
Common mistakes
No conditions on "When record updated" triggers
What goes wrong: Automation fires on every edit — including formatting changes, field re-orders, or admins fixing typos. Slack channel floods. Team mutes the channel and misses real notifications. A campaign launch worth $30K slips because nobody saw the 'In Review' alert.
How to avoid: Always add conditions on "When record updated" — usually a Single select equality check (Status = "In Review"). Without conditions, the trigger is too broad to be useful.
No automation documentation
What goes wrong: After 6 months, no one remembers which automation does what. Debugging takes 2-3x as long. Redundant automations pile up (3 different ones notifying the same Slack channel for similar reasons). Wasted automation runs cost ~$50-200/mo on Team tier overages.
How to avoid: Build an Automations Registry table. Add a row for every automation. Update on creation. Audit quarterly.
Hardcoded recipient emails / Slack channels
What goes wrong: When a team member leaves, the automation keeps emailing their address. Or the wrong Slack channel keeps receiving stale notifications. Real signals get missed in noise. ~3-6 hrs/week of misrouted notifications for a 20-person team.
How to avoid: Use dynamic field references — pull the recipient from a User field or a "Notifications Channel" field on the record. When someone changes roles, update the field; the automation adapts.
Treating Airtable automations as a full integration platform
What goes wrong: Trying to wire 50 automations with complex branching, multi-system writes, and error recovery — when Make or Zapier would handle it in 5 steps. Scripts grow unwieldy. Failures multiply. ~$1-3K/mo of engineering time on something a $20/mo tool solves.
How to avoid: Airtable automations are best for in-base actions and simple notifications. For multi-system orchestration, use Make or Zapier with Airtable as a node. Covered in tutorial 9.
Hitting automation run limits without monitoring
What goes wrong: Team tier includes 50K automation runs/month. Business is 100K. A loose 'on every record update' automation can hit 50K in a week on a busy base. Automations silently stop firing. Notifications stop. Campaigns slip — usually noticed only when someone asks 'where's the alert?' Cost of missed signal: $5-15K/quarter.
How to avoid: Tight conditions on triggers (status equality, not field-change). Monitor automation run counts in Settings → Automations → Usage. Upgrade tier or refactor before you hit the cap.
No failure notifications
What goes wrong: An automation throws an error (record not found, API timeout) and fails silently. The team assumes it ran. Two weeks later, a manager asks 'why didn't I get the weekly digest?' and you realize it has been broken since. Compounding decision drift.
How to avoid: Every critical automation has a failure-notification branch (Slack alert to #ops-alerts). Weekly review of automation run history. Critical-path automations get a daily external health check.
Recap
Done — what's next
How to set up an Airtable base for marketing without rebuilding it in month two
Read the next tutorial
Hand it off
Automations are the highest-leverage and highest-risk part of an Airtable base. A specialist will audit your existing automations, kill the redundant ones, fix the silent failures, and document the rest in a registry — typically $200-500 one-shot. Ongoing automation maintenance runs $400-1,200/mo at $14-16/hr for accounts with 30+ active automations.
See specialist rates
There is no limit to the number of automations you can create on Team tier — only on the total runs per month (50K on Team, 100K on Business, 500K on Enterprise). One automation with tight conditions firing 100 times/day is 3K/month. Watch your run counts in Settings → Automations → Usage.
The native 'Send email' action sends from Airtable's email infrastructure with a 'sent via Airtable' footer. For branded emails from your domain, use a webhook action to send to Resend, SendGrid, or your transactional email service. For Gmail-style sends, use the Gmail integration via Make/Zapier.
Airtable Automations live inside Airtable, trigger on Airtable events, and primarily act on Airtable data or send simple notifications. Make/Zapier are external orchestration platforms that connect Airtable to 1,000+ other tools with complex branching and error handling. Use Airtable Automations for in-base logic; use Make/Zapier for cross-tool workflows (CRM sync, calendar updates, payment webhooks).
Three usual causes: (1) you hit the monthly run limit on your tier — check Settings → Automations → Usage. (2) the trigger conditions changed (a field was renamed, a Single select option was deleted). (3) the action endpoint is failing silently — check the Run history tab on the automation for error messages. Fix the underlying issue, do not just toggle the automation off and on.
Yes — use the 'When webhook is received' trigger. Airtable generates a unique URL. POST JSON to that URL from anywhere (Webflow form, Stripe webhook, GitHub action) and the automation fires. The request body becomes input data for the automation steps. This is how you wire Airtable into custom integrations without Make/Zapier.
Airtable
Airtable is fast to spin up and easy to wire wrong. Most marketing bases hit a wall at 3,000 records or 10 linked tables because the schema was built around the first idea, not the second year of data. This walks the base structure that holds up.
Airtable
Airtable becomes 10x more valuable when it talks to the tools the team already uses — Slack, Gmail, Google Calendar, Mailchimp, HubSpot, your CMS. This walks the integration patterns that hold up past the first sync.
Airtable
Airtable feels fast until your base hits a wall — usually around 10K records on Team or 50K on Business. The wall is rarely the record count itself; it is what you built on top of it. This walks the diagnostic sequence specialists run.
Airtable
DIY Airtable is a great idea — until it isn't. This is the honest framework: when the cost of self-managing a base exceeds the cost of hiring help, and how to tell which side you're on.