AutomationFlowsMarketing & Ads › Post-event Lead Routing

Post-event Lead Routing

Post-event lead routing. Uses googleDrive, executeCommand, slack. Scheduled trigger; 6 nodes.

Cron / scheduled trigger★★★★☆ complexity6 nodesGoogle DriveExecute CommandSlack
Marketing & Ads Trigger: Cron / scheduled Nodes: 6 Complexity: ★★★★☆ Added:

This workflow follows the Google Drive → Slack 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": "Post-event lead routing",
  "nodes": [
    {
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "hours",
              "hoursInterval": 1
            }
          ]
        }
      },
      "id": "trigger-cron",
      "name": "Every hour",
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1,
      "position": [
        240,
        320
      ]
    },
    {
      "parameters": {
        "operation": "list",
        "folderId": "={{$env.EVENT_DROP_FOLDER_ID}}",
        "options": {
          "q": "mimeType='text/csv' and modifiedTime > '{{ $now.minus({hours:1}).toISO() }}'"
        }
      },
      "id": "drive-watch",
      "name": "List new CSVs in Drive",
      "type": "n8n-nodes-base.googleDrive",
      "typeVersion": 3,
      "position": [
        460,
        320
      ],
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "conditions": {
          "number": [
            {
              "value1": "={{$json[\"files\"].length}}",
              "operation": "larger",
              "value2": 0
            }
          ]
        }
      },
      "id": "has-files",
      "name": "Any new files?",
      "type": "n8n-nodes-base.if",
      "typeVersion": 1,
      "position": [
        680,
        320
      ]
    },
    {
      "parameters": {
        "command": "=cd /opt/gtm-engineering && python automations/02-event-automation/post_event.py --csv /tmp/{{$json[\"name\"]}} --event \"{{$json[\"name\"].split('.')[0]}}\" --slack --out /tmp/digest_{{$json[\"id\"]}}.md"
      },
      "id": "run-postevent",
      "name": "Run post_event.py",
      "type": "n8n-nodes-base.executeCommand",
      "typeVersion": 1,
      "position": [
        900,
        240
      ]
    },
    {
      "parameters": {
        "channel": "#sdr-handoff",
        "text": "=Post-event digest ready: `{{$json[\"name\"]}}`. Hot leads syncing to HubSpot now."
      },
      "id": "notify-slack",
      "name": "Notify SDR channel",
      "type": "n8n-nodes-base.slack",
      "typeVersion": 2,
      "position": [
        1120,
        240
      ],
      "credentials": {
        "slackApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {},
      "id": "noop",
      "name": "No new files",
      "type": "n8n-nodes-base.noOp",
      "typeVersion": 1,
      "position": [
        900,
        400
      ]
    }
  ],
  "connections": {
    "Every hour": {
      "main": [
        [
          {
            "node": "List new CSVs in Drive",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "List new CSVs in Drive": {
      "main": [
        [
          {
            "node": "Any new files?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Any new files?": {
      "main": [
        [
          {
            "node": "Run post_event.py",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "No new files",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Run post_event.py": {
      "main": [
        [
          {
            "node": "Notify SDR channel",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "post-event-v1",
  "tags": [
    "events",
    "post-event",
    "sdr"
  ]
}

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

Post-event lead routing. Uses googleDrive, executeCommand, slack. Scheduled trigger; 6 nodes.

Source: https://github.com/elikem2021/gtm-engineering/blob/main/n8n/post-event-lead-routing.json — original creator credit. Request a take-down →

More Marketing & Ads workflows → · Browse all categories →

Related workflows

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

Marketing & Ads

Content Analyzer (Tiktok). Uses stickyNote, scheduleTrigger, sort, airtable. Scheduled trigger; 27 nodes.

Airtable, HTTP Request, Google Drive
Marketing & Ads

This workflow is a comprehensive solution for digital marketers, performance agencies, and e-commerce brands looking to scale their creative testing process on Meta Ads efficiently. It eliminates the

Google Drive, HTTP Request, Google Sheets
Marketing & Ads

Watch target companies for C-level and VP hiring signals, then send AI-personalized outreach emails when leadership roles are posted.

Google Sheets, @Predictleads/N8N Nodes Predictleads, Slack +2
Marketing & Ads

Monitor customers for competitor tech adoption via PredictLeads and alert CSMs to prevent churn.

Google Sheets, @Predictleads/N8N Nodes Predictleads, Slack +1
Marketing & Ads

This workflow is designed for marketing teams, data analysts, and business owners who need to consistently track key performance indicators (KPIs). It saves hours of manual data collection and reporti

Google Analytics, HTTP Request, Google Sheets +3