AutomationFlowsEmail & Gmail › Session 5 — /engage Slack → Trigger.dev

Session 5 — /engage Slack → Trigger.dev

Session 5 — /engage Slack → Trigger.dev. Uses httpRequest. Webhook trigger; 4 nodes.

Webhook trigger★★★★☆ complexity4 nodesHTTP Request
Email & Gmail Trigger: Webhook Nodes: 4 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": "Session 5 \u2014 /engage Slack \u2192 Trigger.dev",
  "nodes": [
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "slack-engage",
        "responseMode": "responseNode",
        "options": {}
      },
      "id": "slack-webhook",
      "name": "Slack Webhook",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 1.1,
      "position": [
        0,
        300
      ]
    },
    {
      "parameters": {
        "respondWith": "text",
        "responseBody": "\ud83d\ude80 Pipeline starting\u2026",
        "options": {
          "responseCode": 200
        }
      },
      "id": "respond-ack",
      "name": "Respond 200 OK",
      "type": "n8n-nodes-base.respondToWebhook",
      "typeVersion": 1.1,
      "position": [
        220,
        300
      ]
    },
    {
      "parameters": {
        "jsCode": "// Parses an incoming Slack /engage slash command (form-encoded \u2192 $json.body).\n// Extracts the LinkedIn post URL from `text` (handles Slack's <url> formatting),\n// plus channel_id / user_id / response_url for downstream notification.\nconst body = $input.first().json.body || {};\nconst rawText = String(body.text || '').trim();\n\n// Slack often wraps URLs in angle brackets: <https://linkedin.com/posts/...> or <https://...|display>\nconst urlMatch = rawText.match(/<(https?:\\/\\/[^|>]+)/);\nconst postUrl = urlMatch ? urlMatch[1] : rawText;\n\nif (!postUrl.startsWith('http')) {\n  throw new Error(`No URL found in slash command text: \"${rawText}\"`);\n}\n\nreturn [{\n  json: {\n    postUrl,\n    channelId: String(body.channel_id || ''),\n    userId: String(body.user_id || ''),\n    responseUrl: String(body.response_url || ''),\n  }\n}];"
      },
      "id": "parse-slack",
      "name": "Parse Slack Body",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        440,
        300
      ]
    },
    {
      "parameters": {
        "method": "POST",
        "url": "https://api.trigger.dev/api/v1/tasks/orchestrator/trigger",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpBearerAuth",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        },
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "={{ JSON.stringify({ payload: { postUrl: $json.postUrl, slackChannel: $json.channelId, slackUserId: $json.userId, slackResponseUrl: $json.responseUrl } }) }}",
        "options": {}
      },
      "id": "trigger-orchestrator",
      "name": "Trigger.dev: Fire Orchestrator",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.1,
      "position": [
        660,
        300
      ],
      "credentials": {
        "httpBearerAuth": {
          "name": "<your credential>"
        }
      }
    }
  ],
  "connections": {
    "Slack Webhook": {
      "main": [
        [
          {
            "node": "Respond 200 OK",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Respond 200 OK": {
      "main": [
        [
          {
            "node": "Parse Slack Body",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Parse Slack Body": {
      "main": [
        [
          {
            "node": "Trigger.dev: Fire Orchestrator",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "settings": {
    "executionOrder": "v1"
  }
}

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

Session 5 — /engage Slack → Trigger.dev. Uses httpRequest. Webhook trigger; 4 nodes.

Source: https://github.com/tga-cheetung/claude-code-gtm-starter26/blob/e80014ca44ebb5eddee182f98698d565e8ea07f9/n8n/session5-engage.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

Automate WhatsApp communication for recruitment agencies with an interactive, structured customer experience. This workflow handles pricing inquiries, request submissions, tracking, complaints, and hu

HTTP Request, Google Sheets, Gmail +1
Email & Gmail

This workflow automates HR onboarding by capturing new hires via a webhook, saving them to Google Sheets, emailing a Slack invite via Gmail, and notifying managers in Slack, then listening for Slack t

Google Sheets, Gmail, Slack +1
Email & Gmail

Fluxo Cadastro Original. Uses httpRequest, gmail. Webhook trigger; 67 nodes.

HTTP Request, Gmail
Email & Gmail

Hectelion | Evaluation d'entreprise. Uses googleDrive, httpRequest, microsoftOutlook, googleSheets. Webhook trigger; 64 nodes.

Google Drive, HTTP Request, Microsoft Outlook +1
Email & Gmail

Advanced AI Powered Document Parsing & Text Extraction with Llama Parse. Uses gmail, gmailTrigger, httpRequest, googleSheets. Webhook trigger; 54 nodes.

Gmail, Gmail Trigger, HTTP Request +3