Workflow n8n

Automatisation Discord avec n8n : envoi de notes adhésives

Ce workflow n8n a pour objectif d'automatiser l'envoi de notes adhésives sur Discord en utilisant des modèles de langage d'OpenAI. Dans un contexte où les équipes de travail cherchent à optimiser leur communication, cette automatisation permet de partager rapidement des informations essentielles ou des rappels via des messages sur Discord. Les cas d'usage incluent la gestion de projets, le suivi des tâches ou encore la diffusion d'annonces importantes au sein d'une équipe.

  • Étape 1 : le déclencheur est un Schedule Trigger qui active le workflow selon une règle définie.
  • Étape 2 : le noeud Sticky Note génère le contenu de la note adhésive.
  • Étape 3 : l'OpenAI Chat Model est utilisé pour enrichir le texte avec des suggestions intelligentes.
  • Étape 4 : un Information Extractor extrait des données pertinentes du texte généré.
  • Étape 5 : un HTTP Request peut être utilisé pour interagir avec d'autres API si nécessaire. Enfin,
  • Étape 6 : le noeud Discord envoie le message final sur le canal approprié. Cette automatisation n8n apporte une valeur ajoutée significative en réduisant le temps de communication et en améliorant la clarté des messages au sein des équipes, ce qui se traduit par une meilleure productivité et une collaboration renforcée.
Tags clés :automatisationDiscordOpenAIn8ncommunication
Catégorie: Scheduled · Tags: automatisation, Discord, OpenAI, n8n, communication0

Workflow n8n Discord, OpenAI, communication : vue d'ensemble

Schéma des nœuds et connexions de ce workflow n8n, généré à partir du JSON n8n.

Workflow n8n Discord, OpenAI, communication : détail des nœuds

  • Sticky Note

    Ce noeud permet de créer une note autocollante avec un contenu spécifié.

  • Schedule Trigger

    Ce noeud déclenche le workflow selon une règle de planification définie.

  • OpenAI

    Ce noeud envoie un texte à l'API OpenAI pour obtenir une réponse basée sur un modèle spécifié.

  • param

    Ce noeud permet de définir des paramètres ou des variables à utiliser dans le workflow.

  • Discord

    Ce noeud envoie un message sur Discord avec le contenu et les options spécifiées.

  • OpenAI Chat Model

    Ce noeud utilise un modèle de chat OpenAI pour générer des réponses basées sur des options fournies.

  • Information Extractor

    Ce noeud extrait des informations spécifiques d'un texte en utilisant des attributs définis.

  • HTTP Request

    Ce noeud effectue une requête HTTP vers une URL spécifiée avec des options définies.

Inscris-toi pour voir l'intégralité du workflow

Inscription gratuite

S'inscrire gratuitementBesoin d'aide ?
{
  "nodes": [
    {
      "id": "4bf26356-9c59-4cee-8eb8-8553b23a172f",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        560,
        -120
      ],
      "parameters": {
        "width": 660,
        "height": 460,
        "content": "![](https://raw.githubusercontent.com/2innnnn0/30-Days-of-ChatGPT/refs/heads/main/datapopcorn_logo_50px.png)\n# Daily Cartoon (w/ AI Translate)\n\n### How it works\n- Automates the retrieval of Calvin and Hobbes daily comics.\n- Extracts the comic image URL from the website.\n- Translates comic dialogues to English and Korean(Other Language)\n- Posts the comic and translations to Discord daily.\n\n### Set up steps\n- Estimated setup time: ~10-15 minutes.\n- Use a **Schedule Trigger** to automate the workflow at 9 AM daily.\n- Add nodes for parameter setup, HTTP request, data extraction, and integration with Discord.\n- Add detailed notes to each node in the workflow for easy understanding."
      },
      "typeVersion": 1
    },
    {
      "id": "52d19472-41b4-4d71-874e-064ef9d6f248",
      "name": "Schedule Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        620,
        380
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "triggerAtHour": 9
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "bcc15f37-c048-4d9a-83cd-367856470095",
      "name": "OpenAI",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        1620,
        380
      ],
      "parameters": {
        "text": "Please write the original language and Korean together. \n\nEXAMPLE)\nCalvin: \"YOU'VE NEVER HAD AN OBLIGATION, AN ASSIGNMENT, OR A DEADLINE IN ALL YOUR LIFE! YOU HAVE NO RESPONSIBILITIES AT ALL! IT MUST BE NICE!\" (너는 평생 한 번도 의무, 과제, 혹은 마감일 없었잖아! 전혀 책임이 없다니! 정말 좋겠다!)\nHobbes: \"WIPE THAT INSOLENT SMIRK OFF YOUR FACE!\" (그 뻔뻔한 미소를 그만 지어!)\n",
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini",
          "cachedResultName": "GPT-4O-MINI"
        },
        "options": {},
        "resource": "image",
        "imageUrls": "={{ $json.output.cartoon_image }}",
        "operation": "analyze"
      },
      "credentials": {
        "openAiApi": {
          "id": "kYIZ8ZwQHS2d4GiD",
          "name": "(datapopcorn )OpenAi account"
        }
      },
      "typeVersion": 1.6
    },
    {
      "id": "35004d43-4061-476a-9af6-7d0b82ae86bd",
      "name": "param",
      "type": "n8n-nodes-base.set",
      "position": [
        840,
        380
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "59d36aef-2991-4fd2-9fbe-dad9a701b40f",
              "name": "year",
              "type": "string",
              "value": "={{ $now.format('yyyy') }}"
            },
            {
              "id": "b6b329f2-ba08-4516-bdb9-c5d124c02110",
              "name": "month",
              "type": "string",
              "value": "={{ $now.format('MM') }}"
            },
            {
              "id": "3cba75d1-a281-4e14-9bf7-e0bc0cc7c768",
              "name": "day",
              "type": "string",
              "value": "={{ $now.format('dd') }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "cf2c953f-1ff2-4abc-8abd-95e05603e64a",
      "name": "Discord",
      "type": "n8n-nodes-base.discord",
      "position": [
        1840,
        380
      ],
      "parameters": {
        "content": "=Daily Cartoon ({{ $('param').item.json.year }}/{{ $('param').item.json.month }}/{{ $('param').item.json.day }})\n{{ $('Information Extractor').item.json.output.cartoon_image }}\n\n{{ $json.content }}\n",
        "options": {},
        "authentication": "webhook"
      },
      "credentials": {
        "discordWebhookApi": {
          "id": "w82RWS7nmXLKDczt",
          "name": "n8n test webhook"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "5eec9870-a509-4090-a540-76b22bb3eac9",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        1260,
        560
      ],
      "parameters": {
        "model": "gpt-4o-mini-2024-07-18",
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "kYIZ8ZwQHS2d4GiD",
          "name": "(datapopcorn )OpenAi account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "352db81e-7571-47cb-b028-dec18e15ccce",
      "name": "Information Extractor",
      "type": "@n8n/n8n-nodes-langchain.informationExtractor",
      "position": [
        1260,
        380
      ],
      "parameters": {
        "text": "=Please just extract the src value in the <img class=\"img-fluid Lazyloaded\"> tag from HTML below. I don't need anything other than the value.\n\ne.g.)\nEXAMPLE INPUT)\n<img class=\"img-fluid lazyloaded\" srcset=\"https://assets.amuniversal.com/5ed526b06e94013bda88005056a9545d 900w\" data-srcset=\"https://assets.amuniversal.com/5ed526b06e94013bda88005056a9545d 900w\" sizes=\"\n                       (min-width: 992px) 900px,\n                       (min-width: 768px) 600px,\n                       (min-width: 576px) 300px,\n                       900px\" width=\"100%\" alt=\"Calvin and Hobbes Comic Strip for March 03, 2023 \" src=\"https://assets.amuniversal.com/5ed526b06e94013bda88005056a9545d\">\n\n\nEXAMPLE OUTPUT)\nhttps://assets.amuniversal.com/5ed526b06e94013bda88005056a9545d\n\n--\n(INPUT)\n{{ $json.data }}",
        "options": {},
        "attributes": {
          "attributes": [
            {
              "name": "cartoon_image",
              "description": "EXAMPLE OUTPUT) https://assets.amuniversal.com/***"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "517799ed-559c-4d17-b8aa-58bd4ee92ed3",
      "name": "HTTP Request",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1040,
        380
      ],
      "parameters": {
        "url": "=https://www.gocomics.com/calvinandhobbes/{{ $json.year }}/{{ $json.month }}/{{ $json.day }}",
        "options": {}
      },
      "typeVersion": 4.2
    }
  ],
  "pinData": {},
  "connections": {
    "param": {
      "main": [
        [
          {
            "node": "HTTP Request",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI": {
      "main": [
        [
          {
            "node": "Discord",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "HTTP Request": {
      "main": [
        [
          {
            "node": "Information Extractor",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "param",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Information Extractor",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Information Extractor": {
      "main": [
        [
          {
            "node": "OpenAI",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Workflow n8n Discord, OpenAI, communication : pour qui est ce workflow ?

Ce workflow s'adresse principalement aux équipes de projet, aux responsables de communication et aux entreprises cherchant à améliorer leur efficacité opérationnelle. Il est adapté aux utilisateurs ayant des compétences techniques intermédiaires et peut être mis en œuvre dans des organisations de toutes tailles.

Workflow n8n Discord, OpenAI, communication : problème résolu

Ce workflow résout le problème de la communication inefficace au sein des équipes en automatisant l'envoi de notes adhésives sur Discord. Il élimine le temps perdu à rédiger et envoyer manuellement des messages, réduit les risques d'oubli d'informations importantes et garantit que tous les membres de l'équipe reçoivent les mises à jour en temps réel. En utilisant cette automatisation, les utilisateurs peuvent se concentrer sur des tâches à plus forte valeur ajoutée.

Workflow n8n Discord, OpenAI, communication : étapes du workflow

Étape 1 : le workflow est déclenché par un Schedule Trigger selon une règle prédéfinie.

  • Étape 1 : le noeud Sticky Note génère le contenu de la note à partager.
  • Étape 2 : l'OpenAI Chat Model enrichit ce contenu avec des suggestions pertinentes.
  • Étape 3 : l'Information Extractor extrait des données clés du texte.
  • Étape 4 : un HTTP Request peut être intégré pour des interactions supplémentaires avec d'autres services.
  • Étape 5 : enfin, le noeud Discord envoie le message final sur le canal désigné.

Workflow n8n Discord, OpenAI, communication : guide de personnalisation

Pour personnaliser ce workflow, commencez par ajuster la règle du Schedule Trigger selon vos besoins de fréquence d'envoi. Modifiez le contenu du noeud Sticky Note pour refléter les informations que vous souhaitez partager. Vous pouvez également changer les paramètres de l'OpenAI Chat Model pour adapter le style et le ton du message. Si nécessaire, configurez le noeud HTTP Request pour interagir avec d'autres API. Assurez-vous que les paramètres d'authentification du noeud Discord sont corrects pour garantir l'envoi des messages. Enfin, surveillez les performances du workflow pour optimiser son efficacité.