Créer des canaux Discord à partir de Google Sheets et notifier les membres

Intermédiaire

Ceci est unAI, Marketingworkflow d'automatisation du domainecontenant 14 nœuds.Utilise principalement des nœuds comme Filter, Discord, GoogleSheets, GoogleSheetsTrigger, combinant la technologie d'intelligence artificielle pour une automatisation intelligente. Créer des canaux Discord à partir de Google Sheets et notifier les membres

Prérequis
  • Token Bot Discord ou Webhook
  • Informations d'identification Google Sheets API
Aperçu du workflow
Visualisation des connexions entre les nœuds, avec support du zoom et du déplacement
Exporter le workflow
Copiez la configuration JSON suivante dans n8n pour importer et utiliser ce workflow
{
  "id": "onboarding-workflow-template",
  "meta": {
    "instanceId": "template-instance-id",
    "templateCredsSetupCompleted": false
  },
  "name": "Discord Channel Creation from Google Sheets with Member Notifications",
  "tags": [],
  "nodes": [
    {
      "id": "c9ed5dd5-e2b9-4e6b-b0b5-3af3729428a7",
      "name": "Note adhésive",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -720,
        -60
      ],
      "parameters": {
        "width": 280,
        "height": 340,
        "content": "## Monitor New Project Entries\nMonitors Google Sheets for new project entries and initiates the workflow when a new row is added to the Project Onboarding sheet."
      },
      "typeVersion": 1
    },
    {
      "id": "f8509721-482a-4088-93a8-59c3abd86af9",
      "name": "Note adhésive1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -420,
        -60
      ],
      "parameters": {
        "width": 280,
        "height": 340,
        "content": "## Filter Valid Project Entries\nFilters entries to only process projects that don't have Discord channels created yet (Discord ID is empty) and have a valid timestamp."
      },
      "typeVersion": 1
    },
    {
      "id": "5c51ca61-5591-4512-8b26-5988d0ce9dc9",
      "name": "Note adhésive2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -120,
        -60
      ],
      "parameters": {
        "width": 280,
        "height": 340,
        "content": "## Create New Discord Channel\nCreates a new Discord channel with the Project ID as the channel name in the specified category for project organization."
      },
      "typeVersion": 1
    },
    {
      "id": "b5a5eb5a-e4fa-4ed3-b590-972eb9c0080f",
      "name": "Note adhésive3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        180,
        -60
      ],
      "parameters": {
        "width": 280,
        "height": 340,
        "content": "## Update Google Sheets with Channel Info\nUpdates the Google Sheet with the newly created Discord channel ID and marks the status as 'Discord Created' for tracking purposes."
      },
      "typeVersion": 1
    },
    {
      "id": "08e09442-ee10-4421-9ff8-9ed234c8dad3",
      "name": "Note adhésive4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        760,
        -60
      ],
      "parameters": {
        "width": 580,
        "height": 360,
        "content": "## Send Project Announcement\nSends a formatted message to the Discord channel announcing the new project with key details and team assignments."
      },
      "typeVersion": 1
    },
    {
      "id": "f418dff7-e57c-40b7-a4a3-8b6357936b85",
      "name": "Note adhésive5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1420,
        -60
      ],
      "parameters": {
        "width": 280,
        "height": 340,
        "content": "## Complete Onboarding Process\nMarks the onboarding process as complete in the tracking sheet after all messages have been sent successfully."
      },
      "typeVersion": 1
    },
    {
      "id": "9042f971-3a6e-4125-ba4c-326793446a9e",
      "name": "Surveiller les nouvelles entrées de projet",
      "type": "n8n-nodes-base.googleSheetsTrigger",
      "position": [
        -620,
        120
      ],
      "parameters": {
        "event": "rowAdded",
        "options": {},
        "pollTimes": {
          "item": [
            {
              "mode": "everyX"
            }
          ]
        },
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "PROJECT_SHEET_ID",
          "cachedResultName": "Project Onboarding"
        },
        "documentId": {
          "__rl": true,
          "mode": "url",
          "value": "YOUR_GOOGLE_SHEET_URL_HERE"
        }
      },
      "credentials": {
        "googleSheetsTriggerOAuth2Api": {
          "id": "YOUR_GOOGLE_SHEETS_CREDENTIAL_ID",
          "name": "Google Sheets OAuth2"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "c0f8af86-cd7c-42d5-b8c3-d20a75e4a9cf",
      "name": "Filtrer les entrées de projet valides",
      "type": "n8n-nodes-base.filter",
      "position": [
        -320,
        120
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "a5d0b0c6-424b-441d-bcf7-7a5ac25698b2",
              "operator": {
                "type": "string",
                "operation": "empty",
                "singleValue": true
              },
              "leftValue": "={{ $json['Discord ID'] }}",
              "rightValue": "Created"
            },
            {
              "id": "f3cef95a-0856-4eff-a2ad-c42a64bae076",
              "operator": {
                "type": "string",
                "operation": "notEmpty",
                "singleValue": true
              },
              "leftValue": "={{ $json.Timestamp }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "97ddddfb-8bc8-43e9-b06a-4c95a423c7f6",
      "name": "Créer le canal Discord",
      "type": "n8n-nodes-base.discord",
      "position": [
        -20,
        120
      ],
      "webhookId": "YOUR_DISCORD_WEBHOOK_ID",
      "parameters": {
        "name": "={{ $json['Project ID'] }}",
        "guildId": {
          "__rl": true,
          "mode": "list",
          "value": "YOUR_DISCORD_GUILD_ID",
          "cachedResultName": "Your Discord Server"
        },
        "options": {
          "categoryId": {
            "__rl": true,
            "mode": "list",
            "value": "YOUR_DISCORD_CATEGORY_ID",
            "cachedResultName": "New Projects Category"
          }
        }
      },
      "credentials": {
        "discordBotApi": {
          "id": "YOUR_DISCORD_BOT_CREDENTIAL_ID",
          "name": "Discord Bot API"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "005657e7-eef2-45e0-aceb-694bee90757f",
      "name": "Mettre à jour la feuille avec l'ID du canal Discord",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        280,
        120
      ],
      "parameters": {
        "columns": {
          "value": {
            "Domain ID": "={{ $('Filter Valid Project Entries').item.json['Domain ID'] }}",
            "Discord ID": "={{ $json.id }}",
            "Discord Server Creation": "Discord Created"
          },
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "Domain ID"
          ]
        },
        "options": {},
        "operation": "update",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "PROJECT_SHEET_ID",
          "cachedResultName": "Project Onboarding"
        },
        "documentId": {
          "__rl": true,
          "mode": "url",
          "value": "YOUR_GOOGLE_SHEET_URL_HERE"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "YOUR_GOOGLE_SHEETS_CREDENTIAL_ID",
          "name": "Google Sheets OAuth2"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "2a5bfd36-9fe4-4832-8a6c-6063bd620483",
      "name": "Vérifier le statut d'envoi du message",
      "type": "n8n-nodes-base.filter",
      "position": [
        560,
        120
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "36a3a601-2204-4080-a869-ee00506a7fec",
              "operator": {
                "type": "dateTime",
                "operation": "notEmpty",
                "singleValue": true
              },
              "leftValue": "={{ $('Monitor New Project Entries').item.json.Timestamp }}",
              "rightValue": ""
            },
            {
              "id": "7675f210-3bc8-41b9-9dee-53b13926eaa1",
              "operator": {
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json['Discord Server Creation'] }}",
              "rightValue": "Discord Created"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "a7499f15-0c8d-4505-92c0-0967432700ee",
      "name": "Envoyer le message d'annonce du projet",
      "type": "n8n-nodes-base.discord",
      "position": [
        900,
        120
      ],
      "webhookId": "YOUR_DISCORD_WEBHOOK_ID",
      "parameters": {
        "content": "=Congratulations Team! We Got A New Project 🤩 🥳 @everyone\n\n@ProjectManager Please assign this project to the respective team\n\n**Project ID:** {{ $('Filter Valid Project Entries').item.json['Project ID'] }}\n**Project Type:** {{ $('Filter Valid Project Entries').item.json['Product Type'] }}\n**Client Name:** {{ $('Filter Valid Project Entries').item.json['Client Name'] }}\n\n**What is the main goal of this client? What he/she is trying to achieve with this project?**\n{{ $('Filter Valid Project Entries').item.json['What is the main goal of this client? What he/she is trying to achieve with this project?'] }}\n\n**Is there any task that we need to do immediately on this project?**\n{{ $('Filter Valid Project Entries').item.json['Is there any task that we need to do immediately on this project?'] }}\n\n**Our commitments to the client that operation team should know?**\n{{ $('Filter Valid Project Entries').item.json['Our commitments to the client that operation team should know?'] }}",
        "guildId": {
          "__rl": true,
          "mode": "list",
          "value": "YOUR_DISCORD_GUILD_ID",
          "cachedResultName": "Your Discord Server"
        },
        "options": {},
        "resource": "message",
        "channelId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('Update Sheet with Discord Channel ID').item.json['Discord ID'] }}"
        }
      },
      "credentials": {
        "discordBotApi": {
          "id": "YOUR_DISCORD_BOT_CREDENTIAL_ID",
          "name": "Discord Bot API"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "3c43a71e-fa48-407a-8cd6-b4fd866d1657",
      "name": "Envoyer les détails supplémentaires du projet",
      "type": "n8n-nodes-base.discord",
      "position": [
        1140,
        120
      ],
      "webhookId": "YOUR_DISCORD_WEBHOOK_ID",
      "parameters": {
        "content": "=**Additional Project Information:**\n\n**Anything else you want to share about this project?**\n{{ $('Filter Valid Project Entries').item.json['Anything else you want to share about this project?'] }}\n\n**Access Information:**\n**Google Analytics:** {{ $('Filter Valid Project Entries').item.json['Access [Google Analytics]'] }}\n**Google Search Console:** {{ $('Filter Valid Project Entries').item.json['Access [Google Search Console]'] }}\n**Website Backend:** {{ $('Filter Valid Project Entries').item.json['Access [Website Backend]'] }}\n\n**Competitors & Keywords:**\n{{ $('Filter Valid Project Entries').item.json['List of top competitors & seed keywords? (whatever is available)'] }}\n\n**Call Recording:** {{ $('Filter Valid Project Entries').item.json['Call Recording URL'] }}\n\n**Communication Method:** {{ $('Filter Valid Project Entries').item.json['Communication Method (if any)'] }}",
        "guildId": {
          "__rl": true,
          "mode": "list",
          "value": "YOUR_DISCORD_GUILD_ID",
          "cachedResultName": "Your Discord Server"
        },
        "options": {},
        "resource": "message",
        "channelId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $json.channel_id }}"
        }
      },
      "credentials": {
        "discordBotApi": {
          "id": "YOUR_DISCORD_BOT_CREDENTIAL_ID",
          "name": "Discord Bot API"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "4a7b142a-9fc4-4eb8-baf2-1745a3597e69",
      "name": "Marquer l'intégration comme terminée",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1480,
        120
      ],
      "parameters": {
        "columns": {
          "value": {
            "Discord ID": "={{ $('Check Message Sending Status').item.json['Discord ID'] }}",
            "Discord Server Creation": "Discord Created, Onboarding Message Sent"
          },
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "Discord ID"
          ]
        },
        "options": {},
        "operation": "update",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "PROJECT_SHEET_ID",
          "cachedResultName": "Project Onboarding"
        },
        "documentId": {
          "__rl": true,
          "mode": "url",
          "value": "YOUR_GOOGLE_SHEET_URL_HERE"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "YOUR_GOOGLE_SHEETS_CREDENTIAL_ID",
          "name": "Google Sheets OAuth2"
        }
      },
      "typeVersion": 4.6
    }
  ],
  "active": true,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "template-version-id",
  "connections": {
    "97ddddfb-8bc8-43e9-b06a-4c95a423c7f6": {
      "main": [
        [
          {
            "node": "005657e7-eef2-45e0-aceb-694bee90757f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "9042f971-3a6e-4125-ba4c-326793446a9e": {
      "main": [
        [
          {
            "node": "c0f8af86-cd7c-42d5-b8c3-d20a75e4a9cf",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "2a5bfd36-9fe4-4832-8a6c-6063bd620483": {
      "main": [
        [
          {
            "node": "a7499f15-0c8d-4505-92c0-0967432700ee",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "c0f8af86-cd7c-42d5-b8c3-d20a75e4a9cf": {
      "main": [
        [
          {
            "node": "97ddddfb-8bc8-43e9-b06a-4c95a423c7f6",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "3c43a71e-fa48-407a-8cd6-b4fd866d1657": {
      "main": [
        [
          {
            "node": "4a7b142a-9fc4-4eb8-baf2-1745a3597e69",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "a7499f15-0c8d-4505-92c0-0967432700ee": {
      "main": [
        [
          {
            "node": "3c43a71e-fa48-407a-8cd6-b4fd866d1657",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "005657e7-eef2-45e0-aceb-694bee90757f": {
      "main": [
        [
          {
            "node": "2a5bfd36-9fe4-4832-8a6c-6063bd620483",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Foire aux questions

Comment utiliser ce workflow ?

Copiez le code de configuration JSON ci-dessus, créez un nouveau workflow dans votre instance n8n et sélectionnez "Importer depuis le JSON", collez la configuration et modifiez les paramètres d'authentification selon vos besoins.

Dans quelles scénarios ce workflow est-il adapté ?

Intermédiaire - Intelligence Artificielle, Marketing

Est-ce payant ?

Ce workflow est entièrement gratuit et peut être utilisé directement. Veuillez noter que les services tiers utilisés dans le workflow (comme l'API OpenAI) peuvent nécessiter un paiement de votre part.

Informations sur le workflow
Niveau de difficulté
Intermédiaire
Nombre de nœuds14
Catégorie2
Types de nœuds5
Description de la difficulté

Adapté aux utilisateurs expérimentés, avec des workflows de complexité moyenne contenant 6-15 nœuds

Liens externes
Voir sur n8n.io

Partager ce workflow

Catégories

Catégories: 34