Automate updates from Google Sheets to Discord using a Google Sheets Trigger and Discord Webhook. This workflow is perfect for teams needing real-time collaboration and communication. Requires 2 accounts: Google Sheets Trigger O Auth and Discord Webhook. Save hours on manual updates and ensure your team stays informed with instant notifications.
Categories
Credentials
Copy or download to import into your n8n instance
{ "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 } ] ] } } }
This workflow seamlessly integrates OpenAI GPT and Serp API to enhance your chat interactions by providing AI-driven responses based on real-time information. Ideal for AI-powered automation users, it requires 2 accounts: OpenAI API and Serp API. Save hours in customer engagement and provide instant, accurate information, boosting your response efficiency and customer satisfaction.
Streamline your RSS feed monitoring by leveraging Google Gemini and AI Agent for real-time insights. This workflow reads RSS feeds, processes data through HTTP requests, and engages in AI chat for interactive analysis. Perfect for developers and integrators. Requires 0 accounts. Save hours weekly by automating data collection and enhancing decision-making with intelligent insights.
Utilize the Telegram Bot API to send timely meeting reminders sourced from Google Calendar directly to your team via Telegram. This workflow is ideal for communication teams seeking to enhance coordination. Requires 2 accounts: Telegram Bot Token and OpenAI API Key. Streamline your scheduling process and save up to 10 hours a month on follow-ups!
Leverage OpenAI GPT and Serp API to automate engaging chat responses based on real-time data and Wikipedia information. This workflow is perfect for AI-powered automation users looking to enhance customer interactions. Requires 2 accounts: OpenAI API and Serp API. Save hours of manual response crafting while providing instant, relevant answers to your audience.
Configure credentials and update service-specific settings before executing the workflow. Review required credentials in the Technical Details section above.