Skip to main content
skill CX Codex

airtable-automation — Claude Code skill: install and use

Gives an agent patterns for Airtable base design, views, formulas and automation flows. Use it when tasks, projects or n8n workflows need a clear data structure.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add claude-office-skills/skills --skill airtable-automation -a claude-code
Open on GitHub

What airtable-automation does

This skill gives the agent templates for Airtable base structures, including linked project and task tables, fields, Grid views, Kanban views and Calendar views. It also covers formulas for dates, status and progress, plus rollups for task counts and hours.

It includes built-in automation patterns for new-task notifications, overdue-task emails and project status changes at 100% progress. There are n8n flow outlines too: form data enters Airtable, is enriched, sent to HubSpot, then reported in Slack.

Record creation, updates and queries are tied to the airtable-mcp MCP server. Check that connection before working with records.

What it helps with

  • design linked project and task tables
  • create views grouped by status or dates
  • write an overdue-task formula
  • calculate hours with rollup fields
  • connect a form, Airtable and HubSpot through n8n

Example prompts for the agent

  • Design an Airtable base for projects, tasks and team members with linked records.
  • Set up an Airtable automation that posts a new task to Slack.
  • Draft an n8n flow that sends form data to Airtable and HubSpot.

How to install airtable-automation

1Skills CLI (Vercel)

npx skills add claude-office-skills/skills --skill airtable-automation -a claude-code

2Manually: put the files in place

~/.claude/skills/airtable-automation/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/airtable-automation/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about airtable-automation

How do I install airtable-automation in Claude Code?

Run npx skills add claude-office-skills/skills --skill airtable-automation -a claude-code, then run npx skills add claude-office-skills/skills --skill airtable-automation -a claude-code again and open ~/.claude/skills/airtable-automation/SKILL.md.

What does airtable-automation do?

The skill guides an agent through Airtable base structures, views, formulas, rollups and automation flows. It includes integration patterns for n8n, Slack and HubSpot.

Which record operations does the skill use?

Its airtable-mcp setup lists record creation, record updates and record queries through airtable_create_record, airtable_update_record and airtable_query.

Source text

SKILL.md · MIT
---
name: airtable-automation
description: "Airtable database automation - views, automations, integrations, and workflow triggers"
version: "1.0.0"
author: claude-office-skills
license: MIT

category: productivity
tags:
  - airtable
  - automation
  - database
  - workflow
  - n8n
department: Operations

models:
  recommended:
    - claude-sonnet-4

mcp:
  server: airtable-mcp
  tools:
    - airtable_create_record
    - airtable_update_record
    - airtable_query

capabilities:
  - database_automation
  - view_creation
  - integration_workflows
  - formula_design
  - reporting

languages:
  - en
  - zh

related_skills:
  - notion-automation
  - sheets-automation
  - crm-automation
---

# Airtable Automation

Automate Airtable bases with views, automations, integrations, and cross-platform workflows. Based on n8n's Airtable integration templates.

## Overview

This skill covers:
- Database design and views
- Built-in automations
- n8n integration workflows
- Formula and rollup design
- Reporting and dashboards

---

## Database Design

### Base Structure Template

```yaml
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 Configuration

```yaml
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
```

---

## Automations

### Built-in Airtable Automations

```yaml
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!"
```

### n8n Integration Workflows

```yaml
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}"
```

---

## Formula Reference

### Common Formulas

```yaml
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
```

### Rollup Examples

```yaml
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)
```

---

## Integration Patterns

### Airtable + Slack

```yaml
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
```

### Airtable + Calendar

```yaml
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"
```

### Airtable + Zapier/n8n

```yaml
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
```

---

## Reporting Templates

### Weekly Status Report

```yaml
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 View

```yaml
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
```

---

## Output Example

**Request**: "Design an Airtable base for content marketing"

**Output**:

```markdown
# 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: 
- Post to social scheduler
- Add analytics tracking row
- Celebrate in Slack 🎉
```

## Views
- 📅 Calendar View (by Publish Date)
- 📊 Kanban (by Status)
- 👤 My Content (filtered by Author)
- 📈 Performance Dashboard
```

---

*Airtable Automation Skill - Part of Claude Office Skills*

© claude-office-skills · MIT · claude-office-skills/skills

Similar skills

All skills for Data and databases →

From the same set109

tiktok-marketing A skill for TikTok content strategy: pillars, video scripts, hashtags and posting analytics. Useful when you run an account and want a repeatable system. CX Codex +1 6,900installs whatsapp-automation This skill covers WhatsApp Business support, chatbots, order notifications, and broadcast messaging for agent-driven workflows. CX Codex +1 6,500installs xlsx-manipulation A skill that builds and edits Excel files from code: creates .xlsx workbooks with openpyxl, adds formulas, formatting and charts. CX Codex +1 6,500installs google-ads-manager Helps plan Google Ads campaigns, group search keywords, write RSA ad copy, and prepare reporting. Useful when organizing paid search workflows. CX Codex +1 6,300installs telegram-bot A skill for building Telegram bots: chatbots, notifications, AI assistants and group automation. Useful when you need message handlers and workflows fast. CX Codex +1 6,200installs academic-search Builds academic search strategies, reviews supplied papers and abstracts, and helps synthesize findings. Use it when planning a literature review or assessing research methods. CX Codex +1 6,100installs docx-manipulation The skill builds and edits Word files through python-docx: headings, tables, images, headers. Useful when a report or contract has to come out of code. CX Codex +1 6,100installs calendar-automation Automates Google Calendar and Outlook workflows: allocates focus time blocks, sends morning Slack briefings, and prepares meeting notes with context. CX Codex +1 6,100installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor