Workflow n8n

Automatisation Webhook avec n8n : création d'articles RSS

Ce workflow n8n a pour objectif de simplifier la création d'articles RSS à partir de données extraites d'un site web. Dans un contexte où la gestion de contenu est cruciale pour les entreprises, ce type d'automatisation permet de gagner du temps et d'assurer une mise à jour régulière des informations. Les cas d'usage incluent la publication automatique d'articles, la mise à jour de flux RSS pour les blogs ou les sites d'actualités, et l'intégration de contenu dynamique dans des systèmes de gestion de contenu.

  • Étape 1 : Le workflow commence par un déclencheur Webhook qui attend une requête HTTP pour initier le processus.
  • Étape 2 : Ensuite, le nœud 'Fetch Website' récupère le contenu d'une URL spécifiée.
  • Étape 3 : Les nœuds 'Extract Posts' et 'Extract Fields' extraient les informations pertinentes du contenu HTML récupéré.
  • Étape 4 : Les données sont ensuite formatées à l'aide du nœud 'Format Date' pour assurer une présentation correcte.
  • Étape 5 : Le nœud 'Create RSS Items' génère les articles RSS à partir des données extraites. Enfin, le workflow répond à la requête Webhook avec les articles créés, permettant ainsi une intégration fluide dans d'autres systèmes. Grâce à cette automatisation n8n, les entreprises peuvent réduire les erreurs humaines, améliorer la rapidité de publication et optimiser leur gestion de contenu.
Tags clés :automatisationRSSwebhookn8nextraction de données
Catégorie: Webhook · Tags: automatisation, RSS, webhook, n8n, extraction de données0

Workflow n8n RSS, webhook, extraction de données : vue d'ensemble

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

Workflow n8n RSS, webhook, extraction de données : détail des nœuds

  • On clicking 'execute'

    Ce noeud déclenche le workflow lorsque l'utilisateur clique sur 'exécuter'.

  • Item Lists

    Ce noeud génère des listes d'éléments en fonction des options et du champ à extraire.

  • Extract Posts

    Ce noeud extrait des publications à partir de contenu HTML selon les valeurs d'extraction spécifiées.

  • Fetch Website

    Ce noeud effectue une requête HTTP pour récupérer le contenu d'une URL donnée.

  • Set URL

    Ce noeud définit une URL en utilisant les valeurs et options fournies.

  • Complete Link

    Ce noeud complète un lien en ajoutant des valeurs spécifiées.

  • Format Date

    Ce noeud formate une date selon le format spécifié et l'enregistre dans une propriété de données.

  • Create RSS Items

    Ce noeud crée des éléments RSS en exécutant le code de fonction fourni.

  • Webhook

    Ce noeud configure un webhook qui écoute les requêtes sur un chemin spécifié.

  • Respond to Webhook

    Ce noeud répond à une requête webhook avec les options et le corps de réponse spécifiés.

  • Prepare Response

    Ce noeud prépare une réponse en exécutant le code de fonction fourni.

  • Extract Fields

    Ce noeud extrait des champs spécifiques à partir de contenu HTML selon les valeurs d'extraction définies.

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

Inscription gratuite

S'inscrire gratuitementBesoin d'aide ?
{
  "nodes": [
    {
      "name": "On clicking 'execute'",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        240,
        300
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "name": "Item Lists",
      "type": "n8n-nodes-base.itemLists",
      "position": [
        1120,
        300
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "post"
      },
      "typeVersion": 1
    },
    {
      "name": "Extract Posts",
      "type": "n8n-nodes-base.htmlExtract",
      "position": [
        900,
        300
      ],
      "parameters": {
        "options": {},
        "extractionValues": {
          "values": [
            {
              "key": "post",
              "cssSelector": ".blog-listing__post-content",
              "returnArray": true,
              "returnValue": "html"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "name": "Fetch Website",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        680,
        300
      ],
      "parameters": {
        "url": "={{$json[\"base_domain\"]}}/blog/category/release",
        "options": {
          "timeout": 10000
        },
        "responseFormat": "string"
      },
      "typeVersion": 1
    },
    {
      "name": "Set URL",
      "type": "n8n-nodes-base.set",
      "position": [
        460,
        300
      ],
      "parameters": {
        "values": {
          "string": [
            {
              "name": "base_domain",
              "value": "https://baserow.io"
            }
          ]
        },
        "options": {}
      },
      "typeVersion": 1
    },
    {
      "name": "Complete Link",
      "type": "n8n-nodes-base.set",
      "position": [
        240,
        500
      ],
      "parameters": {
        "values": {
          "string": [
            {
              "name": "link",
              "value": "={{$item(0).$node[\"Set URL\"].json[\"base_domain\"]}}{{$json[\"link\"]}}"
            }
          ]
        },
        "options": {}
      },
      "typeVersion": 1
    },
    {
      "name": "Format Date",
      "type": "n8n-nodes-base.dateTime",
      "position": [
        460,
        500
      ],
      "parameters": {
        "value": "={{$json[\"date\"]}}",
        "options": {},
        "toFormat": "YYYY-MM-DD",
        "dataPropertyName": "date"
      },
      "typeVersion": 1
    },
    {
      "name": "Create RSS Items",
      "type": "n8n-nodes-base.functionItem",
      "position": [
        680,
        500
      ],
      "parameters": {
        "functionCode": "return {\n  rss_item: \n`<item>\n  <title>${item.title}</title>\n  <link>${item.link}</link>\n  <description>${item.description}</description>\n  <pubDate>${item.date}</pubDate>\n</item>`\n}"
      },
      "typeVersion": 1
    },
    {
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "position": [
        240,
        100
      ],
      "webhookId": "27c1e4db-568f-4bf9-9474-0898ce1173f7",
      "parameters": {
        "path": "baserow-releases",
        "options": {},
        "responseMode": "responseNode"
      },
      "typeVersion": 1
    },
    {
      "name": "Respond to Webhook",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        1120,
        500
      ],
      "parameters": {
        "options": {
          "responseHeaders": {
            "entries": [
              {
                "name": "content-type",
                "value": "application/xml"
              }
            ]
          }
        },
        "respondWith": "text",
        "responseBody": "={{$json[\"feed\"]}}"
      },
      "typeVersion": 1
    },
    {
      "name": "Prepare Response",
      "type": "n8n-nodes-base.function",
      "position": [
        900,
        500
      ],
      "parameters": {
        "functionCode": "let feed =\n`<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<rss version=\"2.0\">\n\n<channel>\n  <title>Baserow Releases</title>\n  <link>https://baserow.io/blog/category/release</link>\n  <description>Stay up to date with the latest changes and updates of Baserow</description>\n  ${items.map(e => e.json.rss_item).join('\\n')}\n</channel>\n\n</rss>`;\n\nreturn [{\n  json: {\n    feed: feed\n  }\n}];"
      },
      "typeVersion": 1
    },
    {
      "name": "Extract Fields",
      "type": "n8n-nodes-base.htmlExtract",
      "position": [
        1340,
        300
      ],
      "parameters": {
        "options": {},
        "dataPropertyName": "post",
        "extractionValues": {
          "values": [
            {
              "key": "date",
              "cssSelector": ".blog-listing__post-info > strong"
            },
            {
              "key": "title",
              "cssSelector": ".blog-listing__post-title"
            },
            {
              "key": "link",
              "attribute": "href",
              "cssSelector": ".blog-listing__post-title > a",
              "returnValue": "attribute"
            },
            {
              "key": "description",
              "cssSelector": ".blog-listing__post-description"
            }
          ]
        }
      },
      "typeVersion": 1
    }
  ],
  "connections": {
    "Set URL": {
      "main": [
        [
          {
            "node": "Fetch Website",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Webhook": {
      "main": [
        [
          {
            "node": "Set URL",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Item Lists": {
      "main": [
        [
          {
            "node": "Extract Fields",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Format Date": {
      "main": [
        [
          {
            "node": "Create RSS Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Complete Link": {
      "main": [
        [
          {
            "node": "Format Date",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract Posts": {
      "main": [
        [
          {
            "node": "Item Lists",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch Website": {
      "main": [
        [
          {
            "node": "Extract Posts",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract Fields": {
      "main": [
        [
          {
            "node": "Complete Link",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create RSS Items": {
      "main": [
        [
          {
            "node": "Prepare Response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Prepare Response": {
      "main": [
        [
          {
            "node": "Respond to Webhook",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "On clicking 'execute'": {
      "main": [
        [
          {
            "node": "Set URL",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Workflow n8n RSS, webhook, extraction de données : pour qui est ce workflow ?

Ce workflow s'adresse aux équipes marketing, aux gestionnaires de contenu et aux développeurs souhaitant automatiser la création de flux RSS. Il est idéal pour les PME et les startups qui cherchent à optimiser leur processus de publication sans nécessiter de compétences techniques avancées.

Workflow n8n RSS, webhook, extraction de données : problème résolu

Ce workflow résout le problème de la mise à jour manuelle des flux RSS, ce qui peut être chronophage et sujet à des erreurs. En automatisant ce processus, les utilisateurs peuvent s'assurer que leur contenu est toujours à jour, réduisant ainsi le risque de publication d'informations obsolètes. Les entreprises bénéficient d'une meilleure visibilité en ligne et d'une gestion de contenu plus efficace.

Workflow n8n RSS, webhook, extraction de données : étapes du workflow

Étape 1 : Le processus débute avec le déclencheur Webhook qui attend une requête.

  • Étape 1 : Le nœud 'Fetch Website' récupère le contenu d'une URL.
  • Étape 2 : Les nœuds 'Extract Posts' et 'Extract Fields' extraient les données nécessaires.
  • Étape 3 : Le nœud 'Format Date' ajuste le format des dates extraites.
  • Étape 4 : Le nœud 'Create RSS Items' génère les articles RSS.
  • Étape 5 : Enfin, le nœud 'Respond to Webhook' envoie la réponse contenant les articles créés.

Workflow n8n RSS, webhook, extraction de données : guide de personnalisation

Pour personnaliser ce workflow, vous pouvez modifier l'URL dans le nœud 'Fetch Website' pour pointer vers le site dont vous souhaitez extraire le contenu. Dans le nœud 'Extract Posts', ajustez les valeurs d'extraction pour cibler les éléments HTML spécifiques que vous souhaitez inclure dans vos articles RSS. Vous pouvez également adapter le format de date dans le nœud 'Format Date' selon vos préférences. Enfin, assurez-vous que le nœud 'Webhook' est configuré avec le bon chemin pour recevoir les requêtes appropriées.