Airtable has evolved from a glorified spreadsheet into a legitimate low-code platform with powerful automation capabilities. Many teams — especially non-technical ones — live in Airtable for project management, CRM, and operations tracking.
If your team is already in Airtable, it’s natural to ask: can I build my enrichment and automation workflows here? Sometimes yes. Often, you’ll hit limits that make it the wrong layer for data-heavy tasks.
What Airtable Automations do
Airtable Automations are triggered workflows — when a record is created, updated, or meets a condition, run a sequence of actions. Those actions include:
- Creating or updating Airtable records
- Sending emails (via integrated providers)
- Posting to Slack
- Calling external APIs via HTTP requests
- Running custom scripts (JavaScript)
- Triggering Zapier or Make connections
For internal operations workflows — “when a deal moves to Closed Won, create a project record and notify the delivery team” — Airtable Automations work well. The data stays in Airtable, the workflow is visual and maintainable by non-engineers.
Where Airtable Automations hit limits
No async job model
Airtable Automations run synchronously within a 30-second timeout per automation run. If an HTTP request to an external API takes longer than 30 seconds, the automation fails.
Seek API’s job model is asynchronous — you submit a job, get a job_uuid, and poll for the result later. This is the right model for extraction jobs that take 5–30 seconds (or longer for complex tasks). Fitting this into an Airtable Automation requires hacky workarounds (triggering a second automation to check the result via a script).
JavaScript sandbox limitations
Airtable’s “Run a script” action runs JavaScript in a very restricted sandbox:
- No npm packages
- No
fetch(usefetchfrom the Airtable scripting API — but it has rate limits) - Limited to internal Airtable operations and a few built-in HTTP utilities
- 30-second timeout
For a simple transform or calculation: fine. For a multi-step enrichment pipeline: severely limited.
Per-automation-run pricing
Airtable charges based on records and automation runs. The Business plan ($20/seat/month) includes unlimited automations, but each seat cost multiplies with team size. For high-volume programmatic workflows, the seat-based model doesn’t scale sensibly.
Not a pipeline tool
Airtable Automations were designed to update records and send notifications — not to run batch enrichment jobs against a list of 5,000 companies. Batch processing in Airtable requires triggering one automation per record, which is slow, fragile, and quota-consuming.
The intended combination
Airtable and Seek API are designed for different parts of the stack. The natural combination:
- Airtable stores your data (leads, companies, projects)
- Seek API enriches that data via programmatic job submissions
- Airtable’s API receives the enriched results and updates records
// Your backend script or webhook handler:
async function enrichAirtableRecord(recordId, domain) {
// 1. Submit enrichment job to Seek API
const job = await submitJob('company-enrichment', { domain });
const result = await waitForJob(job.job_uuid);
// 2. Update the Airtable record via Airtable API
await airtable('Companies').update(recordId, {
'Employees': result.employees,
'Industry': result.industry,
'Tech Stack': result.technologies.map(t => t.name).join(', '),
'LinkedIn URL': result.linkedinUrl,
'Enriched At': new Date().toISOString()
});
}
This runs outside Airtable (a cron job, a webhook, a manual trigger) but feeds results back in. Airtable remains the source of truth. Seek API handles the data acquisition.
When Airtable Automations are enough
Use Airtable Automations (without Seek API) when:
- The workflow only involves Airtable records, emails, and Slack notifications
- You’re connecting two SaaS tools via a simple trigger
- Data lookup comes from Airtable itself or simple synchronous APIs (under 3s response)
- Non-technical users need to maintain the automation
Use Seek API (with Airtable as the data store) when:
- Enrichment requires calling extraction workers (LinkedIn, Maps, tech stack)
- The data refresh is batch-oriented (enrich 500 records weekly)
- You need predictable per-record pricing for enrichment cost control
- The extraction job takes more than 5–10 seconds
A complete Airtable + Seek API pipeline example
Use case: Enrich all new companies added to an Airtable CRM weekly.
- Cron job (weekly, external to Airtable): Fetch all unenriched records from Airtable API where
Enriched Atis blank - Submit batch jobs to Seek API’s company-enrichment worker for all domains
- Wait for all jobs to complete (parallel with webhooks or polling)
- Update Airtable via PATCH requests with the enriched fields
Result: Your Airtable CRM stays current with company data without manual work. The automation lives outside Airtable where it’s not subject to 30-second timeouts or sandbox restrictions.