AutomationFlowsEmail & Gmail › Sentinel — Link Outreach (send + Follow-up)

Sentinel — Link Outreach (send + Follow-up)

Sentinel — Link Outreach (send + follow-up). Uses airtable, gmail. Scheduled trigger; 8 nodes.

Cron / scheduled trigger★★★☆☆ complexity8 nodesAirtableGmail
Email & Gmail Trigger: Cron / scheduled Nodes: 8 Complexity: ★★★☆☆ Added:

This workflow follows the Airtable → Gmail recipe pattern — see all workflows that pair these two integrations.

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": "Sentinel \u2014 Link Outreach (send + follow-up)",
  "nodes": [
    {
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "minutes",
              "minutesInterval": 15
            }
          ]
        }
      },
      "id": "trg-send",
      "name": "Every 15 min",
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1.1,
      "position": [
        -320,
        0
      ]
    },
    {
      "parameters": {
        "operation": "search",
        "base": {
          "__rl": true,
          "value": "YOUR_BASE_ID",
          "mode": "id"
        },
        "table": {
          "__rl": true,
          "value": "Outreach",
          "mode": "name"
        },
        "filterByFormula": "AND({Status}='Send Outreach', {Contact Email}!='')",
        "options": {}
      },
      "id": "find-send",
      "name": "Find 'Send Outreach'",
      "type": "n8n-nodes-base.airtable",
      "typeVersion": 2.1,
      "position": [
        -100,
        0
      ]
    },
    {
      "parameters": {
        "sendTo": "={{ $json.fields['Contact Email'] }}",
        "subject": "={{ $json.fields['Subject'] }}",
        "emailType": "text",
        "message": "={{ $json.fields['Email'] }}",
        "options": {}
      },
      "id": "gmail-send",
      "name": "Send email",
      "type": "n8n-nodes-base.gmail",
      "typeVersion": 2.1,
      "position": [
        140,
        0
      ]
    },
    {
      "parameters": {
        "operation": "update",
        "base": {
          "__rl": true,
          "value": "YOUR_BASE_ID",
          "mode": "id"
        },
        "table": {
          "__rl": true,
          "value": "Outreach",
          "mode": "name"
        },
        "id": "={{ $('Find \\'Send Outreach\\'').item.json.id }}",
        "columns": {
          "mappingMode": "defineBelow",
          "value": {
            "Status": "Sent",
            "Sent At": "={{ $now.toISO() }}"
          }
        },
        "options": {}
      },
      "id": "mark-sent",
      "name": "Mark Sent",
      "type": "n8n-nodes-base.airtable",
      "typeVersion": 2.1,
      "position": [
        380,
        0
      ]
    },
    {
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "days",
              "daysInterval": 1
            }
          ]
        }
      },
      "id": "trg-followup",
      "name": "Daily follow-up",
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1.1,
      "position": [
        -320,
        260
      ]
    },
    {
      "parameters": {
        "operation": "search",
        "base": {
          "__rl": true,
          "value": "YOUR_BASE_ID",
          "mode": "id"
        },
        "table": {
          "__rl": true,
          "value": "Outreach",
          "mode": "name"
        },
        "filterByFormula": "AND({Status}='Sent', NOT({Replied}), IS_BEFORE({Sent At}, DATEADD(NOW(), -3, 'days')))",
        "options": {}
      },
      "id": "find-followup",
      "name": "Find due follow-ups",
      "type": "n8n-nodes-base.airtable",
      "typeVersion": 2.1,
      "position": [
        -100,
        260
      ]
    },
    {
      "parameters": {
        "sendTo": "={{ $json.fields['Contact Email'] }}",
        "subject": "=Re: {{ $json.fields['Subject'] }}",
        "emailType": "text",
        "message": "=Just following up on my note below \u2014 would this be a useful addition for your readers?\n\n{{ $json.fields['Email'] }}",
        "options": {}
      },
      "id": "gmail-followup",
      "name": "Send follow-up",
      "type": "n8n-nodes-base.gmail",
      "typeVersion": 2.1,
      "position": [
        140,
        260
      ]
    },
    {
      "parameters": {
        "operation": "update",
        "base": {
          "__rl": true,
          "value": "YOUR_BASE_ID",
          "mode": "id"
        },
        "table": {
          "__rl": true,
          "value": "Outreach",
          "mode": "name"
        },
        "id": "={{ $('Find due follow-ups').item.json.id }}",
        "columns": {
          "mappingMode": "defineBelow",
          "value": {
            "Status": "Follow-up 1"
          }
        },
        "options": {}
      },
      "id": "mark-followup",
      "name": "Mark Follow-up 1",
      "type": "n8n-nodes-base.airtable",
      "typeVersion": 2.1,
      "position": [
        380,
        260
      ]
    }
  ],
  "connections": {
    "Every 15 min": {
      "main": [
        [
          {
            "node": "Find 'Send Outreach'",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Find 'Send Outreach'": {
      "main": [
        [
          {
            "node": "Send email",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send email": {
      "main": [
        [
          {
            "node": "Mark Sent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Daily follow-up": {
      "main": [
        [
          {
            "node": "Find due follow-ups",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Find due follow-ups": {
      "main": [
        [
          {
            "node": "Send follow-up",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send follow-up": {
      "main": [
        [
          {
            "node": "Mark Follow-up 1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "settings": {
    "executionOrder": "v1"
  }
}
Pro

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

About this workflow

Sentinel — Link Outreach (send + follow-up). Uses airtable, gmail. Scheduled trigger; 8 nodes.

Source: https://github.com/Dexterous-Ruler/SEO/blob/141b39128d89671955fdbce1853ad06628605131/n8n/link-outreach.json — original creator credit. Request a take-down →

More Email & Gmail workflows → · Browse all categories →

Related workflows

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

Email & Gmail

This workflow runs every weekday morning to find HubSpot deals with stale proposal activity, pulls the associated contact email, enforces opt-out and follow-up limits using Google Sheets, sends a valu

HubSpot, Google Sheets, Slack +1
Email & Gmail

How it works time trigger using the cron format, every weekday at 5pm gets CentralStationCRM people updates of today checks for tag "Outreach" if true, sends message on gmail (predefine in node) waits

Gmail, HTTP Request, Slack
Email & Gmail

This n8n workflow template, "Email Outreach Automation," is designed to help you set up an automated email outreach system using tools you might already be familiar with: Google Sheets and Google Docs

Google Sheets, Google Docs, Gmail
Email & Gmail

Create Email Campaign From LinkedIn Post Interactions. Uses airtable, lemlist, hubspot, phantombuster. Scheduled trigger; 16 nodes.

Airtable, Lemlist, HubSpot +2
Email & Gmail

This workflow runs on a daily schedule to monitor users currently on a trial plan. It fetches user data from MongoDB, calculates their trial stage, and assigns a trigger label such as Day 3, Day 7, Da

MongoDB, Gmail