AutomationFlowsData & Sheets › Loop 6 — Follow-up

Loop 6 — Follow-up

Loop 6 — Follow-up. Uses airtable. Scheduled trigger; 5 nodes.

Cron / scheduled trigger★★★★☆ complexity5 nodesAirtable
Data & Sheets Trigger: Cron / scheduled Nodes: 5 Complexity: ★★★★☆ Added:

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "name": "Loop 6 \u2014 Follow-up",
  "nodes": [
    {
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "hours",
              "hoursInterval": 4
            }
          ]
        }
      },
      "id": "node-cron-6",
      "name": "Cron Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1.1,
      "position": [
        200,
        300
      ]
    },
    {
      "parameters": {
        "operation": "list",
        "base": {
          "__rl": true,
          "value": "YOUR_AIRTABLE_BASE_ID",
          "mode": "id"
        },
        "table": {
          "__rl": true,
          "value": "Leads",
          "mode": "name"
        },
        "filterByFormula": "AND({status}='active',{segment}!='',{next_followup_at}!='',IS_BEFORE({next_followup_at},NOW()))"
      },
      "id": "node-at-list-6",
      "name": "List Due Leads",
      "type": "n8n-nodes-base.airtable",
      "typeVersion": 2,
      "position": [
        420,
        300
      ],
      "credentials": {
        "airtableTokenApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "jsCode": "const seg=$json.fields?.segment||'cold';\nconst subjects={hot:'Quick check-in',warm:'Thought this might help',cold:'Staying in touch'};\nconst mins={hot:240,warm:720,cold:4320};\nconst next=new Date(Date.now()+mins[seg]*60000).toISOString();\nreturn[{json:{...$json,subject:subjects[seg],next_followup_at:next,last_followup_at:new Date().toISOString()}}];"
      },
      "id": "node-build-6",
      "name": "Build Follow-up",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        640,
        300
      ]
    },
    {
      "parameters": {
        "operation": "create",
        "base": {
          "__rl": true,
          "value": "YOUR_AIRTABLE_BASE_ID",
          "mode": "id"
        },
        "table": {
          "__rl": true,
          "value": "Interactions",
          "mode": "name"
        },
        "fields": {
          "fieldMappingMode": "defineBelow",
          "value": {
            "values": [
              {
                "fieldId": "lead_id",
                "fieldValue": "={{$json.id}}"
              },
              {
                "fieldId": "type",
                "fieldValue": "follow_up"
              },
              {
                "fieldId": "channel",
                "fieldValue": "email"
              },
              {
                "fieldId": "direction",
                "fieldValue": "outbound"
              },
              {
                "fieldId": "subject",
                "fieldValue": "={{$json.subject}}"
              },
              {
                "fieldId": "segment_at_time",
                "fieldValue": "={{$json.fields.segment}}"
              },
              {
                "fieldId": "score_at_time",
                "fieldValue": "={{$json.fields.score}}"
              },
              {
                "fieldId": "status",
                "fieldValue": "sent"
              },
              {
                "fieldId": "loop_source",
                "fieldValue": "loop_6"
              },
              {
                "fieldId": "created_at",
                "fieldValue": "={{$json.last_followup_at}}"
              }
            ]
          }
        }
      },
      "id": "node-at-interact-6",
      "name": "Log Interaction",
      "type": "n8n-nodes-base.airtable",
      "typeVersion": 2,
      "position": [
        860,
        300
      ],
      "credentials": {
        "airtableTokenApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "operation": "update",
        "base": {
          "__rl": true,
          "value": "YOUR_AIRTABLE_BASE_ID",
          "mode": "id"
        },
        "table": {
          "__rl": true,
          "value": "Leads",
          "mode": "name"
        },
        "id": "={{$json.id}}",
        "fields": {
          "fieldMappingMode": "defineBelow",
          "value": {
            "values": [
              {
                "fieldId": "last_followup_at",
                "fieldValue": "={{$json.last_followup_at}}"
              },
              {
                "fieldId": "next_followup_at",
                "fieldValue": "={{$json.next_followup_at}}"
              }
            ]
          }
        }
      },
      "id": "node-at-update-6",
      "name": "Update Lead",
      "type": "n8n-nodes-base.airtable",
      "typeVersion": 2,
      "position": [
        1080,
        300
      ],
      "credentials": {
        "airtableTokenApi": {
          "name": "<your credential>"
        }
      }
    }
  ],
  "connections": {
    "Cron Trigger": {
      "main": [
        [
          {
            "node": "List Due Leads",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "List Due Leads": {
      "main": [
        [
          {
            "node": "Build Follow-up",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Build Follow-up": {
      "main": [
        [
          {
            "node": "Log Interaction",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Log Interaction": {
      "main": [
        [
          {
            "node": "Update Lead",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "settings": {
    "executionOrder": "v1"
  },
  "tags": []
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

Loop 6 — Follow-up. Uses airtable. Scheduled trigger; 5 nodes.

Source: https://gist.github.com/axisassists/ea249e6223c4edebd76f0469ae0293a2 — original creator credit. Request a take-down →

More Data & Sheets workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

Data & Sheets

I prepared a detailed guide that showed the whole process of integrating the Binance API and storing data in Airtable to manage funding statements associated with tokens in a wallet.

Crypto, HTTP Request, Airtable
Data & Sheets

Stop wasting hours on manual dialing and listening to ringtones. This workflow transforms your Airtable into a high-velocity AI Call Center using Vapi AI**.

Airtable, HTTP Request
Data & Sheets

Reel-Analysis-Of-Favourite-Content-Creator. Uses httpRequest, airtable. Scheduled trigger; 26 nodes.

HTTP Request, Airtable
Data & Sheets

Link-By-Reel-Analysis. Uses httpRequest, airtable. Scheduled trigger; 24 nodes.

HTTP Request, Airtable
Data & Sheets

&gt; Transform your content strategy with automated competitor intelligence

HTTP Request, Airtable, Notion +2