Bridgecore

Ready-made recipe · leads

Typeform → Google Sheets → Slack

Every new Typeform answer becomes a Google Sheets row, and your team gets a Slack message in #leads.

Steps

  1. When when a typeform is submitted — Typeform node only reads
  2. Then add a row to google sheets — Google Sheets node can be undone
  3. Then send a slack message to #leads — Slack node can’t be undone

Fields to fill (6)

The file has every node wired up. These are the blanks only you can fill (your form, your sheet, your words).

NodeWhat to do
Typeformfill formId (Form which should trigger workflow on submission)
Google Sheetsfill documentId (Document)
Google Sheetsfill sheetName (Sheet)
Google Sheetsfill columns (Columns)
Slackcheck channelId = 'leads' (pick it in n8n's list)
Slackfill text (The message text to post)

Accounts to connect (3)

In n8n, pick or add a credential on each node — one of the types below.

Need something slightly different? Same engine, your own words:

Get the n8n file

Download typeform-to-sheets-and-slack.json

  1. Open a new, empty workflow in n8n.
  2. Open the workflow menu (⋯) and choose Import from File — or copy the JSON below and paste it onto the canvas (Ctrl/Cmd+V).
  3. Connect the accounts, fill the fields above, run one test, then turn the workflow on.
Or copy the JSON
{
  "name": "Every new Typeform answer becomes a Google Sheets row",
  "nodes": [
    {
      "id": "n1",
      "name": "Typeform Trigger",
      "type": "n8n-nodes-base.typeformTrigger",
      "typeVersion": 1.1,
      "parameters": {
        "formId": ""
      },
      "position": [
        240,
        300
      ],
      "notes": "step: when a typeform is submitted · reversibility: read-only"
    },
    {
      "id": "n2",
      "name": "Google Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4.7,
      "parameters": {
        "resource": "sheet",
        "operation": "append",
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": ""
        },
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": ""
        },
        "columns": {
          "mappingMode": "autoMapInputData",
          "value": {},
          "matchingColumns": [],
          "schema": []
        }
      },
      "position": [
        460,
        300
      ],
      "notes": "step: add a row to google sheets · reversibility: reversible"
    },
    {
      "id": "n3",
      "name": "Slack",
      "type": "n8n-nodes-base.slack",
      "typeVersion": 2.7,
      "parameters": {
        "resource": "message",
        "operation": "post",
        "channelId": {
          "__rl": true,
          "mode": "name",
          "value": "leads"
        },
        "select": "channel",
        "text": ""
      },
      "position": [
        680,
        300
      ],
      "notes": "step: send a slack message to #leads · reversibility: irreversible"
    }
  ],
  "connections": {
    "Typeform Trigger": {
      "main": [
        [
          {
            "node": "Google Sheets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Sheets": {
      "main": [
        [
          {
            "node": "Slack",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "settings": {
    "executionOrder": "v1"
  },
  "active": false
}