Google Form responses in Slack

Every new Google Form response is posted to a Slack channel.

Easy Saves ~2 hours/month ProductivityBy Flowngn team

Works with n8n · Make · Zapier

How it works

Trigger: Google Sheets — new row in the form's response sheet
  1. Watch the sheet linked to your Google Form.
  2. Format each answer as a line: question — answer.
  3. Post it to your Slack channel.

Diagram

GNew responseGoogle Sheets Trigger{ }Format answersCodeSPost to #requestsSlack
Trigger App Code

Code

JavaScript used in the Code step — already included in the template below.

Format answers · Code node
// Mode: Run Once for Each Item
// Turns a form response row into readable "question — answer" lines.
const lines = Object.entries($json)
  .filter(([key, value]) => key !== "row_number" && value !== "")
  .map(([question, answer]) => `*${question}*\n${answer}`);

return { json: { text: `📝 New form response\n\n${lines.join("\n\n")}` } };

Build it

Pick your tool — same automation, step by step.

Copy and paste straight into an n8n canvas (Ctrl+V), or download and use Import from File. Then connect your own credentials and replace every YOUR_… placeholder.

Workflow JSON
Show code (117 lines)
{
  "name": "Google Form responses in Slack (Flowngn)",
  "nodes": [
    {
      "parameters": {
        "content": "## Google Form responses in Slack\nEvery new Google Form response is posted to a Slack channel.\n\n**Setup**\n1. Open each node and connect your own credentials.\n2. Replace every YOUR_… placeholder.\n3. Test once, then activate.\n\nFree template from Flowngn",
        "height": 260,
        "width": 340
      },
      "id": "26068bc2-eac9-4e99-a8cb-b57353c0b957",
      "name": "Setup notes",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -420,
        -60
      ]
    },
    {
      "parameters": {
        "pollTimes": {
          "item": [
            {
              "mode": "everyMinute"
            }
          ]
        },
        "documentId": {
          "__rl": true,
          "value": "YOUR_SPREADSHEET_ID",
          "mode": "id"
        },
        "sheetName": {
          "__rl": true,
          "value": "Form Responses 1",
          "mode": "name"
        },
        "event": "rowAdded",
        "options": {}
      },
      "id": "26068bc2-eac9-4e99-a8cb-b57353c0b957",
      "name": "New response",
      "type": "n8n-nodes-base.googleSheetsTrigger",
      "typeVersion": 1,
      "position": [
        0,
        0
      ]
    },
    {
      "parameters": {
        "jsCode": "// Mode: Run Once for Each Item\n// Turns a form response row into readable \"question — answer\" lines.\nconst lines = Object.entries($json)\n  .filter(([key, value]) => key !== \"row_number\" && value !== \"\")\n  .map(([question, answer]) => `*${question}*\\n${answer}`);\n\nreturn { json: { text: `📝 New form response\\n\\n${lines.join(\"\\n\\n\")}` } };",
        "mode": "runOnceForEachItem"
      },
      "id": "26068bc2-eac9-4e99-a8cb-b57353c0b957",
      "name": "Format answers",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        300,
        0
      ]
    },
    {
      "parameters": {
        "select": "channel",
        "channelId": {
          "__rl": true,
          "value": "#requests",
          "mode": "name"
        },
        "text": "={{ $json.text }}",
        "otherOptions": {}
      },
      "id": "26068bc2-eac9-4e99-a8cb-b57353c0b957",
      "name": "Post to #requests",
      "type": "n8n-nodes-base.slack",
      "typeVersion": 2.2,
      "position": [
        600,
        0
      ]
    }
  ],
  "connections": {
    "New response": {
      "main": [
        [
          {
            "node": "Format answers",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Format answers": {
      "main": [
        [
          {
            "node": "Post to #requests",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "meta": {
    "templateCredsSetupCompleted": false
  },
  "tags": []
}

Open in the playground to edit →

Tips

  • In Google Forms: Responses → Link to Sheets to create the sheet.

Related flows