AutomationFlowsData & Sheets › Automated Google Sheet to CSV Conversion via Slack Messages

Automated Google Sheet to CSV Conversion via Slack Messages

ByAlok Singh @aloksingh20 on n8n.io

Step 1: Slack Trigger

Event trigger★★★★☆ complexity5 nodesSlack TriggerGoogle SheetsSpreadsheet FileSlack
Data & Sheets Trigger: Event Nodes: 5 Complexity: ★★★★☆ Added:

This workflow corresponds to n8n.io template #7771 — we link there as the canonical source.

This workflow follows the Google Sheets → 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
{
  "id": "ew7HeWnZvNhCglFr",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Googlesheet to CSV",
  "tags": [],
  "nodes": [
    {
      "id": "6267431f-93f5-447c-8a9c-aa315bcd1d90",
      "name": "Slack Trigger",
      "type": "n8n-nodes-base.slackTrigger",
      "position": [
        0,
        0
      ],
      "parameters": {
        "options": {},
        "trigger": [
          "any_event",
          "app_mention"
        ],
        "channelId": {
          "__rl": true,
          "mode": "list",
          "value": "C099B0PKEF2",
          "cachedResultName": "googlesheet-to-csv"
        }
      },
      "credentials": {
        "slackApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "a31b6810-779d-4182-a159-7482e2e6c28c",
      "name": "Extract Sheet ID",
      "type": "n8n-nodes-base.function",
      "position": [
        208,
        0
      ],
      "parameters": {
        "functionCode": "const regex = /https:\\/\\/docs\\.google\\.com\\/spreadsheets\\/d\\/([a-zA-Z0-9-_]+)/;\nconst match = regex.exec($json.text);\nif (match) {\n  return [{\n    sheetId: match[1],\n    channel: $json.channel\n  }];\n}\nreturn [];"
      },
      "typeVersion": 1
    },
    {
      "id": "44faf26c-07cf-4620-9631-291fb7f20dcf",
      "name": "Read Google Sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        400,
        0
      ],
      "parameters": {
        "options": {},
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 253150622,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/17nQYzOoH2SfxNlNvYs8fJ9RJzGr_UCtEtfBTINxDteI/edit#gid=253150622",
          "cachedResultName": "Sheet4"
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $json.sheetId }}"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4
    },
    {
      "id": "5599139b-0950-4e50-83f7-0b08a22bbf6b",
      "name": "Convert to CSV",
      "type": "n8n-nodes-base.spreadsheetFile",
      "position": [
        608,
        0
      ],
      "parameters": {
        "options": {},
        "operation": "toFile",
        "fileFormat": "csv"
      },
      "typeVersion": 1
    },
    {
      "id": "901abfb2-2893-4bf5-9d1d-9414c4cb68ef",
      "name": "Upload to Slack",
      "type": "n8n-nodes-base.slack",
      "position": [
        800,
        0
      ],
      "parameters": {
        "options": {
          "fileName": "Converted CSV",
          "channelIds": [
            "C099B0PKEF2"
          ]
        },
        "resource": "file",
        "binaryData": true,
        "authentication": "oAuth2"
      },
      "credentials": {
        "slackOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "b9c9ac20-c803-401d-a451-cd28e0254070",
  "connections": {
    "Slack Trigger": {
      "main": [
        [
          {
            "node": "Extract Sheet ID",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Convert to CSV": {
      "main": [
        [
          {
            "node": "Upload to Slack",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract Sheet ID": {
      "main": [
        [
          {
            "node": "Read Google Sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Read Google Sheet": {
      "main": [
        [
          {
            "node": "Convert to CSV",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

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

Step 1: Slack Trigger

Source: https://n8n.io/workflows/7771/ — original creator credit. Request a take-down →

More Data & Sheets workflows → · Browse all categories →

Related workflows

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

Data & Sheets

cdp_router. Uses gmailTrigger, telegramTrigger, googleSheets, httpRequest. Event-driven trigger; 53 nodes.

Gmail Trigger, Telegram Trigger, Google Sheets +4
Data & Sheets

cdp_router. Uses gmailTrigger, telegramTrigger, googleSheets, httpRequest. Event-driven trigger; 53 nodes.

Gmail Trigger, Telegram Trigger, Google Sheets +4
Data & Sheets

This workflow triggers when a HubSpot deal stage changes to Closed Won and automatically generates an invoice. It collects deal and contact data, builds a styled invoice, converts it into a PDF, and s

HubSpot Trigger, HTTP Request, Google Sheets +4
Data & Sheets

This guide will walk you through setting up your n8n workflow. By the end, you'll have a fully automated system for managing your recruitment pipeline.

Google Calendar Trigger, Slack, HTTP Request +4
Data & Sheets

This n8n workflow lets you control access to your internal Telegram bots and automation systems based on user roles and departments. It ensures that only authorized team members — defined in your empl

Telegram Trigger, Data Table, Slack Trigger +4