Workflow: GoogleSheets Discord Create

Workflow Details

Download Workflow
{
    "meta": {
        "instanceId": "a2434c94d549548a685cca39cc4614698e94f527bcea84eefa363f1037ae14cd"
    },
    "nodes": [
        {
            "id": "b3a0fa7c-eb47-4f51-98d7-ac1a8de7b05d",
            "name": "On new or updated row",
            "type": "n8n-nodes-base.googleSheetsTrigger",
            "position": [
                800,
                380
            ],
            "parameters": {
                "options": {
                    "columnsToWatch": [
                        "Security Code"
                    ]
                },
                "pollTimes": {
                    "item": [
                        {
                            "mode": "everyMinute"
                        }
                    ]
                },
                "sheetName": {
                    "__rl": true,
                    "mode": "list",
                    "value": "gid=0",
                    "cachedResultUrl": "https:\/\/docs.google.com\/spreadsheets\/d\/1Np8TQv7kWwwrGiPkWWsmr4WYWAosv1BMBwwCd0f-dis\/edit#gid=0",
                    "cachedResultName": "Investments"
                },
                "documentId": {
                    "__rl": true,
                    "mode": "list",
                    "value": "1Np8TQv7kWwwrGiPkWWsmr4WYWAosv1BMBwwCd0f-dis",
                    "cachedResultUrl": "https:\/\/docs.google.com\/spreadsheets\/d\/1Np8TQv7kWwwrGiPkWWsmr4WYWAosv1BMBwwCd0f-dis\/edit?usp=drivesdk",
                    "cachedResultName": "Investments"
                }
            },
            "credentials": {
                "googleSheetsTriggerOAuth2Api": {
                    "id": "35",
                    "name": "TEST USER"
                }
            },
            "typeVersion": 1
        },
        {
            "id": "61b96d9b-801c-43e6-b89a-a55245386e4f",
            "name": "Send message",
            "type": "n8n-nodes-base.discord",
            "position": [
                1200,
                380
            ],
            "parameters": {
                "text": "=```\n{{ $json.ascii_table }}\n```",
                "options": [],
                "webhookUri": "https:\/\/discord.com\/api\/webhooks\/..."
            },
            "typeVersion": 1
        },
        {
            "id": "2dc9ce88-2079-4419-9f48-2281ac25cb36",
            "name": "Convert to ASCII table",
            "type": "n8n-nodes-base.code",
            "position": [
                1000,
                380
            ],
            "parameters": {
                "jsCode": "\/* configure columns to be displayed *\/\nconst columns_to_display = [\n  \"Security Code\",\n  \"Price\",\n  \"Quantity\",\n]\n\n\/* End of configuration section (do not edit code below) *\/\nconst google_sheets_data = $('On new or updated row').all();\n\n\/**\n * Takes a list of objects and returns an ascii table with\n * padding and headers.\n *\/\nfunction ascii_table(data, columns_to_display) {\n  let table = \"\"\n  \n  \/\/ Get the headers\n  let headers = []\n  for (let i = 0; i < columns_to_display.length; i++) {\n    headers.push(columns_to_display[i])\n  }\n\n  \/\/ Get the longest string in each column\n  let longest_strings = []\n  for (let i = 0; i < headers.length; i++) {\n    let longest_string = headers[i].length\n    for (let j = 0; j < data.length; j++) {\n      let string_length = data[j].json[headers[i]].length\n      if (string_length > longest_string) {\n        longest_string = string_length\n      }\n    }\n    longest_strings.push(longest_string)\n  }\n\n  \/\/ Add the headers to the table\n  for (let i = 0; i < headers.length; i++) {\n    table += headers[i].toString().padEnd(longest_strings[i] + 2, \" \")\n  }\n\n  \/\/ Add the data to the table\n  for (let i = 0; i < data.length; i++) {\n    table += \"\\n\"\n    for (let j = 0; j < headers.length; j++) {\n      table += data[i].json[headers[j]].toString().padEnd(longest_strings[j] + 2, \" \")\n    }\n  }\n\n  return table\n}\n\noutput = {\n  ascii_table: ascii_table(google_sheets_data, columns_to_display),\n}\n\nconsole.log(output.ascii_table)\n\nreturn output"
            },
            "typeVersion": 1
        },
        {
            "id": "2db7b37b-22f9-424d-a889-33f8a0db2b01",
            "name": "Sticky Note",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                340,
                220
            ],
            "parameters": {
                "width": 402,
                "height": 433,
                "content": "## Send Google Sheets data as a message to a Discord channel\nThis workflow sends a message to a Discord channel when a new row is added or a row is updated in a Google Sheet. The message will send all data rows in the Google Sheet.\n\n### How it works\nUsing a code node, we can use the obtained Google Sheet data to create a custom message that will be sent to Discord. The message will be sent to the Discord channel specified in the Discord node.\n\n### Setup\nThis workflow requires that you set up a Discord webhook and have an existing Google Sheet with data. See how to set up a Discord webhook [here](https:\/\/docs.n8n.io\/integrations\/builtin\/credentials\/discord\/#creating-a-webhook-in-discord).\n"
            },
            "typeVersion": 1
        }
    ],
    "connections": {
        "On new or updated row": {
            "main": [
                [
                    {
                        "node": "Convert to ASCII table",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Convert to ASCII table": {
            "main": [
                [
                    {
                        "node": "Send message",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        }
    }
}
Back to Workflows

Related Workflows

RAG & GenAI App With WordPress Content
View
Telegram Code Automation Webhook
View
Manual Renamekeys Automate Triggered
View
Send Discord message from Webflow form submission
View
Manual HTTP Create Webhook
View
Telegram AI-bot
View
Telegram AI Langchain bot
View
Vector DB Loader from Google Drive
View
Form GoogleSheets Create Triggered
View
Datetime Functionitem Create Webhook
View