AutomationFlowsSlack & Telegram › Slack Thread to Google Sheets Logger

Slack Thread to Google Sheets Logger

Original n8n title: 소정_n8n_슬랙봇

소정_n8n_슬랙봇. Uses slack, googleSheets, slackTrigger. Event-driven trigger; 12 nodes.

Event trigger★★★★☆ complexity12 nodesSlackGoogle SheetsSlack Trigger
Slack & Telegram Trigger: Event Nodes: 12 Complexity: ★★★★☆ Added:

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
{
  "name": "\uc18c\uc815_n8n_\uc2ac\ub799\ubd07",
  "nodes": [
    {
      "parameters": {
        "content": "\uc0ac\uc804\uc791\uc5c5 \uc791\uc5c5\n1. [\uc2ac\ub799] \uc6cc\ud06c\uc2a4\ud398\uc774\uc2a4\uc0dd\uc131\n2. [\uc2ac\ub799 api] \uc571 \uc0dd\uc131\n\uae30\ubcf8\uc124\uc815\n\uc571 \uad8c\ud55c (OAuth & Permission)\n\uc571 \ud648\n \ud45c\uc2dc \uc774\ub984 \uc791\uc131, \ud56d\uc0c1 \uc628\ub77c\uc778 ON, \ud0ed \ud45c\uc2dc ON \n-OAuth \uad8c\ud55c (\ubd07 \ud1a0\ud070, \uc0ac\uc6a9\uc790 \ud1a0\ud070) \ub458\ub2e4 \uc0dd\uc131\ub418\uace0 \uc124\uce58. \n3. [\uc2ac\ub799] \ubd07 \ucd08\ub300\ud558\uae30 \n\uc6cc\ud06c\uc2a4\ud398\uc774\uc2a4 \uc88c\uce21 \ud558\ub2e8  apps \ub780\uc5d0 \ubd07 \ud45c\uc2dc\uc774\ub984 \ud655\uc778\n\ud074\ub9ad \ud6c4 \uc6b0\uce21 \uc0c1\ub2e8 \uc810 \uc138\uac1c \n\uc0c1\uc138\ubcf4\uae30 Open App Details\n\ubd07 \ucd08\ub300\ud560 \ucc44\ub110 \uc120\ud0dd\nAdd testbot too a channel ",
        "height": 336,
        "width": 416
      },
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1632,
        0
      ],
      "typeVersion": 1,
      "id": "e14c0626-51b9-4620-bdee-38fb47d189cd",
      "name": "Sticky Note1"
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "24ef1afb-ecbb-470d-b7a9-32d6089cc86c",
              "name": "=\uadfc\ubb34\uc2dc\uac04",
              "value": "={{ DateTime.fromMillis($json.ts * 1000).setZone('Asia/Seoul').toFormat('yyyy-MM-dd HH:mm:ss') }}",
              "type": "string"
            },
            {
              "id": "5c86a0d4-b38b-4950-b2a9-6f67611b48b7",
              "name": "\uc0ac\uc6a9\uc790\uc774\ub984",
              "value": "={{ $json.real_name }}",
              "type": "string"
            },
            {
              "id": "19831c1a-c9a2-4370-a4b0-cf53fd4e3fd1",
              "name": "\uad6c\ubd84",
              "value": "={{ $json.text.includes('\ucd9c\uadfc') ? '\ucd9c\uadfc' : '\ud1f4\uadfc' }}",
              "type": "string"
            },
            {
              "id": "1286aa03-a20c-4d78-befc-bb5d17d1a80a",
              "name": "\uc6d0\ubcf8\uba54\uc2dc\uc9c0",
              "value": "={{ $json.text }}",
              "type": "string"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        -624,
        512
      ],
      "id": "d3522551-0253-4cac-989f-ee2d3fbcddb1",
      "name": "Edit Fields2"
    },
    {
      "parameters": {
        "resource": "channel",
        "operation": "replies",
        "channelId": {
          "__rl": true,
          "value": "C09S7DBUPND",
          "mode": "list",
          "cachedResultName": "5_\ucd9c\ud1f4\uadfc\uae30\ub85d"
        },
        "ts": "=1763506818.156159",
        "filters": {}
      },
      "type": "n8n-nodes-base.slack",
      "typeVersion": 2.3,
      "position": [
        -1264,
        496
      ],
      "id": "f67928da-5f73-439f-a92c-cf386c33381f",
      "name": "Get a thread",
      "alwaysOutputData": true,
      "credentials": {
        "slackApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "mode": "combine",
        "combineBy": "combineByPosition",
        "options": {}
      },
      "type": "n8n-nodes-base.merge",
      "typeVersion": 3.2,
      "position": [
        -784,
        512
      ],
      "id": "9e11ab2d-66cd-4f1b-8b3f-906b333c72fd",
      "name": "Merge"
    },
    {
      "parameters": {
        "operation": "append",
        "documentId": {
          "__rl": true,
          "value": "1xQYG995Z2sr8L5Vn4rYmhS4jxOnc_SZYjhP2BP1p4TE",
          "mode": "list",
          "cachedResultName": "[\uc9c0\uc9c0\ud50c\ub7a9] \uadfc\ud0dc\ub0b4\uc5ed",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1xQYG995Z2sr8L5Vn4rYmhS4jxOnc_SZYjhP2BP1p4TE/edit?usp=drivesdk"
        },
        "sheetName": {
          "__rl": true,
          "value": 1859397282,
          "mode": "list",
          "cachedResultName": "\uc2dc\ud2b84",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1xQYG995Z2sr8L5Vn4rYmhS4jxOnc_SZYjhP2BP1p4TE/edit#gid=1859397282"
        },
        "columns": {
          "mappingMode": "autoMapInputData",
          "value": {},
          "matchingColumns": [],
          "schema": [
            {
              "id": "\uad6c\ubd84",
              "displayName": "\uad6c\ubd84",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "\uadfc\ubb34\uc2dc\uac04",
              "displayName": "\uadfc\ubb34\uc2dc\uac04",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "\ub0a0\uc9dc",
              "displayName": "\ub0a0\uc9dc",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "\uc2dc\uac04",
              "displayName": "\uc2dc\uac04",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "\uc0ac\uc6a9\uc790\uc774\ub984",
              "displayName": "\uc0ac\uc6a9\uc790\uc774\ub984",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "\uc6d0\ubcf8\uba54\uc2dc\uc9c0",
              "displayName": "\uc6d0\ubcf8\uba54\uc2dc\uc9c0",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            }
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {}
      },
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4.7,
      "position": [
        -448,
        512
      ],
      "id": "e97fae22-a252-454a-a3d9-6f1dc4bc2404",
      "name": "Append row in sheet1",
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "operation": "getPermalink",
        "channelId": {
          "__rl": true,
          "value": "C09S7DBUPND",
          "mode": "list",
          "cachedResultName": "5_\ucd9c\ud1f4\uadfc\uae30\ub85d"
        },
        "timestamp": 1763506818.156159
      },
      "type": "n8n-nodes-base.slack",
      "typeVersion": 2.3,
      "position": [
        -1456,
        496
      ],
      "id": "f93ff4af-251f-4266-a3c2-d3abc1e7d514",
      "name": "Get a message permalink",
      "credentials": {
        "slackApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "content": "\uc6cc\ud06c\ud50c\ub85c\uc6b0 \uc124\uba85\nSlack (Get Messages): \ud0c0\uc784\uc2a4\ud0ec\ud504\ub97c \ud1b5\ud574 \uba54\uc2dc\uc9c0\ub97c \ubd88\ub7ec\uc635\ub2c8\ub2e4.\n\nSlack (Get a thread): \ud574\ub2f9 \uba54\uc2dc\uc9c0\uc758 \uc2a4\ub808\ub4dc(\ub313\uae00)\ub97c \ubaa8\ub450 \uac00\uc838\uc635\ub2c8\ub2e4.\n\nFunction : \ubd07\uacfc \uad00\ub9ac\uc790(U09PV8GNYDV)\ub97c \uc81c\uc678\ud558\uace0, \ud14d\uc2a4\ud2b8\uc5d0 '\ucd9c\uadfc' \ub610\ub294 '\ud1f4\uadfc' \ud0a4\uc6cc\ub4dc\uac00 \ud3ec\ud568\ub41c \uc0ac\uc6a9\uc790 \uba54\uc2dc\uc9c0\ub9cc \ucd94\ucd9c\n\nSlack (Get Information about user): \uc870\uac74\uc5d0 \ud574\ub2f9\ud558\ub294 \uc0ac\uc6a9\uc790\uc758 real_name \uc815\ubcf4\ub97c \uac00\uc838\uc635\ub2c8\ub2e4. \n\nMerge Node: \ud544\ud130\ub9c1\ub41c \uba54\uc2dc\uc9c0 \ub370\uc774\ud130\uc640 \uc0ac\uc6a9\uc790 \uc774\ub984 \ub370\uc774\ud130\ub97c \ud569\uce69\ub2c8\ub2e4.\n\nEdit Fields2 (Set Node): \ub370\uc774\ud130\ub97c \uc815\ub9ac\ud558\uace0 \uc2dc\uac04\ub300\ub97c \ubcc0\ud658\ud558\uba70, \ubd88\ud544\uc694\ud55c \ud544\ub4dc\ub97c \uc81c\uac70\ud569\ub2c8\ub2e4.\n\nGoogle Sheets: \ucd5c\uc885 \ub370\uc774\ud130\ub97c \ucd94\uac00\ud569\ub2c8\ub2e4.",
        "height": 336,
        "width": 736
      },
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1104,
        0
      ],
      "typeVersion": 1,
      "id": "3e05de7d-853e-4953-8ccd-637f92ad95f9",
      "name": "Sticky Note"
    },
    {
      "parameters": {
        "jsCode": "const items = [];\nconst EXCLUDED_USER_ID = 'U09PV8GNYDV'; // \uc81c\uc678\ud560 \uad00\ub9ac\uc790 ID\ub97c \ubcc0\uc218\ub85c \uc120\uc5b8\n\n// \uc785\ub825\ub41c \ubaa8\ub4e0 \ud56d\ubaa9(Slack \uba54\uc2dc\uc9c0)\uc744 \ubc18\ubcf5\ud569\ub2c8\ub2e4.\nfor (const item of $input.all()) {\n  const user = item.json.user; // \uba54\uc2dc\uc9c0 \uc791\uc131\uc790 ID\n  const text = item.json.text; // \uba54\uc2dc\uc9c0 \ub0b4\uc6a9\n\n  // 1. \uc2ac\ub799\ubd07\uc774 \uc544\ub2c8\uc5b4\uc57c \ud569\ub2c8\ub2e4.\n  const isNotBot = user !== 'USLACKBOT'; \n  \n  // 2. \uad00\ub9ac\uc790 ID (U09PV8GNYDV)\uac00 \uc544\ub2c8\uc5b4\uc57c \ud569\ub2c8\ub2e4.\n  const isNotAdmin = user !== EXCLUDED_USER_ID; \n\n  // 3. \ud14d\uc2a4\ud2b8\uc5d0 '\ucd9c\uadfc' \ub610\ub294 '\ud1f4\uadfc'\uc774 \ud3ec\ud568\ub418\uc5b4\uc57c \ud569\ub2c8\ub2e4.\n  const isCheckInOut = text && (text.includes('\ucd9c\uadfc') || text.includes('\ud1f4\uadfc'));\n  \n  // \uc138 \uc870\uac74 (\ubd07\uc774 \uc544\ub2d8 && \uad00\ub9ac\uc790\uac00 \uc544\ub2d8 && \ucd9c\ud1f4\uadfc \ud0a4\uc6cc\ub4dc \ud3ec\ud568)\uc774 \ubaa8\ub450 \ucc38\uc77c \uacbd\uc6b0\uc5d0\ub9cc \ucd9c\ub825\ud569\ub2c8\ub2e4.\n  if (isNotBot && isNotAdmin && isCheckInOut) {\n    items.push(item);\n  }\n}\n\nreturn items;"
      },
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        -1088,
        496
      ],
      "id": "b0a35022-1d7e-4428-b6c7-8fc4964a9719",
      "name": "Code in JavaScript"
    },
    {
      "parameters": {
        "resource": "user",
        "user": {
          "__rl": true,
          "value": "={{ $json.user }}",
          "mode": "id"
        }
      },
      "type": "n8n-nodes-base.slack",
      "typeVersion": 2.3,
      "position": [
        -928,
        608
      ],
      "id": "74f009c7-3fb9-4bf6-96df-8e93d5114e9f",
      "name": "Get information about a user",
      "credentials": {
        "slackApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "trigger": [
          "any_event"
        ],
        "channelId": {
          "__rl": true,
          "value": "C09S7DBUPND",
          "mode": "list",
          "cachedResultName": "5_\ucd9c\ud1f4\uadfc\uae30\ub85d"
        },
        "options": {}
      },
      "type": "n8n-nodes-base.slackTrigger",
      "typeVersion": 1,
      "position": [
        -1632,
        640
      ],
      "id": "9f8038d4-871f-4f46-bc77-1ab35c5fd615",
      "name": "Slack Trigger",
      "credentials": {
        "slackApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "rule": {
          "interval": [
            {}
          ]
        }
      },
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1.2,
      "position": [
        -1632,
        352
      ],
      "id": "c2ad0992-59c3-4fd4-94a6-400369d53f8d",
      "name": "Schedule Trigger"
    },
    {
      "parameters": {},
      "type": "n8n-nodes-base.manualTrigger",
      "typeVersion": 1,
      "position": [
        -1632,
        496
      ],
      "id": "7b467e31-d783-4eba-83d7-96c6f6261a83",
      "name": "When clicking \u2018Execute workflow\u2019"
    }
  ],
  "connections": {
    "Edit Fields2": {
      "main": [
        [
          {
            "node": "Append row in sheet1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get a thread": {
      "main": [
        [
          {
            "node": "Code in JavaScript",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge": {
      "main": [
        [
          {
            "node": "Edit Fields2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get a message permalink": {
      "main": [
        [
          {
            "node": "Get a thread",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code in JavaScript": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 0
          },
          {
            "node": "Get information about a user",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get information about a user": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Slack Trigger": {
      "main": [
        []
      ]
    },
    "When clicking \u2018Execute workflow\u2019": {
      "main": [
        [
          {
            "node": "Get a message permalink",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "bc1c18c2-6066-439b-b30e-aa7f63c337da",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "id": "rkzLE75ewVGfK77y",
  "tags": []
}

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

소정_n8n_슬랙봇. Uses slack, googleSheets, slackTrigger. Event-driven trigger; 12 nodes.

Source: https://github.com/ggplab/n8n-playbook/blob/08ee7d84568b1462a8b1b16a29607db085ee0846/02-usecases/03-workflow-attendance/n8n_Slack_Attendance_Bot.json — original creator credit. Request a take-down →

More Slack & Telegram workflows → · Browse all categories →

Related workflows

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

Slack & Telegram

Type in Slack. Walk away. Get a professional PDF report and a structured Excel fix sheet delivered to Google Drive and posted back in your Slack thread — fully automated, zero manual work.

Compression, HTTP Request, Google Drive +3
Slack & Telegram

This workflow collects a blog brief via an n8n form, uses Anthropic Claude to generate an outline and write each section, saves both outline and article as formatted Google Docs in Google Drive, then

Form Trigger, Google Sheets, HTTP Request +2
Slack & Telegram

This workflow runs a SEEK.com.au job search via Apify on a daily schedule or on-demand form submission, deduplicates new listings, and routes results to Google Sheets, Airtable, a webhook endpoint, an

HTTP Request, Google Sheets, Airtable +5
Slack & Telegram

Vendorbot Form Filler. Uses executeCommand, gmail, telegram, slack. Event-driven trigger; 39 nodes.

Execute Command, Gmail, Telegram +6
Slack & Telegram

Transform your lead list into an AI-powered calling machine. This workflow automates your entire cold calling process using Vapi's conversational AI to initiate calls, qualify leads, capture detailed

Google Sheets, HTTP Request, Slack