Airtable database automation - views, automations, integrations, and workflow triggers
npx skills add https://github.com/claude-office-skills/skills --skill airtable-automation
Automate Airtable bases with views, automations, integrations, and cross-platform workflows. Based on n8n's Airtable integration templates.
This skill covers:
base: "Project Management"
tables:
Projects:
fields:
- Name: single_line_text (primary)
- Status: single_select [Planning, Active, On Hold, Complete]
- Priority: single_select [P0, P1, P2, P3]
- Owner: collaborator
- Start Date: date
- Due Date: date
- Budget: currency
- Tasks: link_to_records (Tasks)
- Progress: rollup (Tasks.Status, COUNTIF(Done)/COUNT)
- Days Remaining: formula (DATETIME_DIFF(Due Date, TODAY(), 'days'))
Tasks:
fields:
- Task Name: single_line_text (primary)
- Project: link_to_records (Projects)
- Status: single_select [To Do, In Progress, Review, Done]
- Assignee: collaborator
- Due Date: date
- Hours Estimated: number
- Hours Actual: number
- Attachments: attachment
Team:
fields:
- Name: single_line_text (primary)
- Email: email
- Role: single_select [PM, Developer, Designer, QA]
- Current Projects: link_to_records (Projects)
- Capacity: number (hours/week)
- Utilization: rollup (calculate from Tasks)
views:
Projects:
- Grid: All Projects
fields: [Name, Status, Owner, Due Date, Progress]
sort: Due Date (ascending)
- Kanban: By Status
group_by: Status
card_fields: [Name, Owner, Due Date]
- Calendar: Timeline
date_field: Due Date
- Gallery: Project Cards
cover: Attachments
Tasks:
- Grid: My Tasks
filter: Assignee = {Current User}
sort: Due Date
- Kanban: Sprint Board
group_by: Status
- Calendar: Task Calendar
date_field: Due Date
automation_1:
name: "New Task Notification"
trigger:
when: record_created
table: Tasks
actions:
- send_slack:
channel: "#project-updates"
message: |
๐ New task created!
Task: {Task Name}
Project: {Project}
Assignee: {Assignee}
Due: {Due Date}
automation_2:
name: "Overdue Task Alert"
trigger:
when: record_matches_conditions
table: Tasks
conditions:
- Status: not "Done"
- Due Date: before today
actions:
- send_email:
to: "{Assignee.email}"
subject: "โ ๏ธ Overdue Task: {Task Name}"
body: "Your task '{Task Name}' was due on {Due Date}."
- update_record:
field: Status
value: "Overdue"
automation_3:
name: "Project Complete"
trigger:
when: record_updated
table: Projects
field: Progress
condition: equals 100%
actions:
- update_record:
field: Status
value: "Complete"
- send_slack:
channel: "#wins"
message: "๐ Project '{Name}' completed!"
workflow: "Form to Airtable to CRM"
trigger: typeform_submission
steps:
1. create_airtable_record:
base: "Leads"
table: "Contacts"
fields:
Name: "{form.name}"
Email: "{form.email}"
Company: "{form.company}"
Source: "Website Form"
Created: "{timestamp}"
2. enrich_data:
clearbit: lookup_email
update_record:
Company Size: "{clearbit.company_size}"
Industry: "{clearbit.industry}"
3. sync_to_hubspot:
create_contact:
email: "{email}"
properties: from_airtable
4. notify_sales:
slack:
channel: "#new-leads"
message: "New lead: {Name} from {Company}"
formulas:
days_until_due:
formula: "DATETIME_DIFF({Due Date}, TODAY(), 'days')"
output: number
is_overdue:
formula: "IF(AND({Status}!='Done', {Due Date}<TODAY()), 'Yes', 'No')"
output: text
full_name:
formula: "CONCATENATE({First Name}, ' ', {Last Name})"
output: text
progress_bar:
formula: |
REPT('โ', ROUND({Progress}/10, 0)) &
REPT('โ', 10-ROUND({Progress}/10, 0)) &
' ' & ROUND({Progress}, 0) & '%'
output: text (visual progress)
status_emoji:
formula: |
SWITCH({Status},
'To Do', 'โฌ',
'In Progress', '๐ต',
'Review', '๐ก',
'Done', 'โ
',
'โ'
)
output: text
workdays_remaining:
formula: "WORKDAY_DIFF(TODAY(), {Due Date})"
output: number
quarter:
formula: |
'Q' & CEILING(MONTH({Date})/3) & ' ' & YEAR({Date})
output: text
rollups:
task_count:
linked_field: Tasks
aggregation: COUNT(values)
total_hours:
linked_field: Tasks
rollup_field: Hours Estimated
aggregation: SUM(values)
completion_rate:
linked_field: Tasks
rollup_field: Status
aggregation: |
COUNTALL(IF(values='Done', 1)) / COUNT(values) * 100
average_rating:
linked_field: Reviews
rollup_field: Rating
aggregation: AVERAGE(values)
slack_integration:
new_record_notification:
trigger: record_created
action: post_to_channel
template: |
*New {Table} Record*
{Field1}: {value1}
{Field2}: {value2}
<{record_url}|View in Airtable>
daily_digest:
schedule: "9am weekdays"
query: records_due_today
action: post_summary
slash_command:
command: /airtable-add
action: create_record_from_slack
calendar_sync:
airtable_to_google:
trigger: record_with_date_created
action: create_calendar_event
mapping:
title: "{Name}"
start: "{Date}"
description: "{Notes}"
google_to_airtable:
trigger: calendar_event_created
action: create_airtable_record
mapping:
Name: "{event.title}"
Date: "{event.start}"
Type: "Meeting"
multi_step_workflow:
name: "Lead Processing Pipeline"
trigger:
platform: airtable
event: new_record
table: Raw Leads
steps:
- enrich:
service: clearbit
input: email
output: company_data
- score:
service: ai_scoring
criteria: [company_size, industry, title]
output: lead_score
- route:
condition: lead_score
high: assign_to_sales
medium: add_to_nurture
low: mark_as_cold
- update_airtable:
table: Qualified Leads
fields: [enriched_data, score, assignment]
- notify:
if: high_score
slack: dm_sales_rep
report_automation:
schedule: "Friday 5pm"
queries:
completed_this_week:
table: Tasks
filter:
- Status: Done
- Completed Date: this_week
in_progress:
table: Tasks
filter:
- Status: In Progress
overdue:
table: Tasks
filter:
- Status: not Done
- Due Date: before today
output:
format: markdown
destination: [slack, email]
template: |
# Weekly Status Report - {week}
## Completed ({completed_count})
{completed_list}
## In Progress ({in_progress_count})
{in_progress_list}
## Overdue ({overdue_count}) โ ๏ธ
{overdue_list}
## Metrics
- Completion rate: {rate}%
- On-time delivery: {on_time}%
dashboard:
name: "Project Dashboard"
widgets:
- summary_bar:
metrics:
- Total Projects: COUNT(Projects)
- Active: COUNT(Status='Active')
- At Risk: COUNT(Days Remaining < 7)
- progress_chart:
type: bar
data: Projects grouped by Status
- upcoming_deadlines:
type: list
query: Projects where Due Date in next 14 days
sort: Due Date ascending
limit: 10
- team_utilization:
type: horizontal_bar
data: Team members by task count
Request: "Design an Airtable base for content marketing"
Output:
# Content Marketing Base
## Tables
### 1. Content Calendar
| Field | Type | Purpose |
|-------|------|---------|
| Title | Text | Content title |
| Status | Select | Idea โ Draft โ Review โ Published |
| Type | Select | Blog, Video, Social, Email |
| Author | Collaborator | Assigned writer |
| Publish Date | Date | Target publish date |
| Platform | Multi-select | Blog, LinkedIn, Twitter |
| Keywords | Multi-select | SEO keywords |
| Performance | Link | โ Analytics |
### 2. Analytics
| Field | Type | Purpose |
|-------|------|---------|
| Content | Link | โ Content Calendar |
| Views | Number | Page views |
| Engagement | Number | Likes + comments |
| Conversions | Number | CTAs clicked |
| Date | Date | Measurement date |
## Automations
**1. New Content Idea**
Trigger: Record created
Action: Slack to #content-ideas
**2. Ready for Review**
Trigger: Status โ Review
Action: Email editor + set due date
**3. Published**
Trigger: Status โ Published
Action:
## Views
- ๐
Calendar View (by Publish Date)
- ๐ Kanban (by Status)
- ๐ค My Content (filtered by Author)
- ๐ Performance Dashboard
*Airtable Automation Skill - Part of Claude Office Skills*
Expert database architect specializing in data layer design from scratch, technology selection, schema modeling, and scalable database architectures. Masters SQL/NoSQL/TimeSeries database selection, normalization strategies, migration planning, and performance-first design. Handles both greenfield architectures and re-architecture of existing systems. Use PROACTIVELY for database architecture, technology selection, or data modeling decisions.
>- Configures GKE Backup Plans and restore workflows. Use for backup policies, disaster recovery, or GKE cluster restores. Don't use for database backups.
Creates explicit validation checkpoints (verification gates) between project phases to catch errors early and ensure quality before proceeding. Use when the user asks about quality gates, milestone checks, phase transitions, approval steps, go/no-go decision points, or preventing cascading errors across a multi-step workflow. Produces acceptance criteria checklists, automated CI gate configurations, manual sign-off requirements, and conditional review rules for scenarios such as security changes, API changes, or database migrations.
Unified CloudBase execution guide for all-in-one skill installs. Use this first for CloudBase app tasks, especially existing apps with TODOs, fixed pages, or active handlers. Routes PostgreSQL / CloudBase PG / app.rdb() / queryPgDatabase / managePgDatabase work away from legacy NoSQL and old auth patterns.
Implement, review, or improve data persistence using SwiftData. Use when defining @Model classes with @Attribute, @Relationship, @Transient, #Unique, or #Index; when querying with @Query, #Predicate, FetchDescriptor, or SortDescriptor; when configuring ModelContainer and ModelContext for SwiftUI or background work with @ModelActor; when planning schema migrations with VersionedSchema and SchemaMigrationPlan; when setting up CloudKit sync with ModelConfiguration; or when coexisting with or migrating from Core Data.
Plan and run backups, set recovery objectives, and run disaster recovery drills. Use this skill when defining RPO/RTO targets, designing backup architecture, deciding what to back up and how often, planning for full-region or platform outages, or running a restoration drill. Triggers on backup, restore, RPO, RTO, disaster recovery, DR, business continuity, what if the database is gone, what if our hosting goes down, recovery drill, ransomware planning. Also triggers when an incident reveals a gap in restoration capability.
Expert database architect specializing in data layer design from scratch, technology selection, schema modeling, and scalable database architectures. Masters SQL/NoSQL/TimeSeries database selection, normalization strategies, migration planning, and performance-first design. Handles both greenfield architectures and re-architecture of existing systems. Use PROACTIVELY for database architecture, technology selection, or data modeling decisions.
> System architecture design and review. Use when designing architecture, evaluating microservices vs monolith, writing ADRs, choosing a database, planning for scalability, reviewing system design, or generating architecture diagrams.
Take claude-office-skills/airtable-automation from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side โ one of them will be ignored.