Workflow n8n

Automatisation Wallabag avec n8n : publication d'articles facilement

Ce workflow n8n a pour objectif d'automatiser la publication d'articles sur Wallabag, facilitant ainsi la gestion de contenu pour les utilisateurs. Dans un contexte où la gestion de l'information est cruciale, ce type d'automatisation est particulièrement utile pour les rédacteurs, les journalistes ou toute personne souhaitant centraliser ses lectures. Grâce à ce workflow, vous pouvez facilement envoyer des articles à Wallabag sans intervention manuelle, ce qui vous permet de gagner un temps précieux et d'optimiser votre flux de travail.

  • Étape 1 : Le déclencheur est un événement manuel, permettant à l'utilisateur de lancer le processus à tout moment.
  • Étape 2 : Une requête HTTP est effectuée pour authentifier l'accès à Wallabag, garantissant que seules les personnes autorisées peuvent publier des articles.
  • Étape 3 : Un cron est configuré pour exécuter le workflow à des intervalles réguliers, assurant une mise à jour constante des articles.
  • Étape 4 : Une fonction personnalisée peut être ajoutée pour traiter les données avant leur envoi.
  • Étape 5 : Des conditions peuvent être définies pour s'assurer que seuls les articles pertinents sont publiés. Enfin, ce workflow offre une valeur ajoutée significative en réduisant le temps de gestion des contenus et en minimisant les erreurs humaines, tout en permettant une intégration fluide avec Wallabag.
Tags clés :automatisationWallabagpublication d'articlesn8ngestion de contenu
Catégorie: Manual · Tags: automatisation, Wallabag, publication d'articles, n8n, gestion de contenu0

Workflow n8n Wallabag, publication d'articles, gestion de contenu : vue d'ensemble

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

Workflow n8n Wallabag, publication d'articles, gestion de contenu : détail des nœuds

  • On clicking 'execute'

    Déclenche le workflow manuellement lorsque l'utilisateur clique sur 'exécuter'.

  • HTTP Request

    Effectue une requête HTTP vers une URL spécifiée avec les options et paramètres fournis.

  • Cron

    Déclenche le workflow à des intervalles réguliers selon un calendrier défini.

  • Function

    Exécute un code JavaScript personnalisé pour traiter des données ou effectuer des calculs.

  • IF

    Évalue des conditions et dirige le flux en fonction du résultat de cette évaluation.

  • NoOp

    Ne fait aucune opération, servant de point de passage dans le workflow.

  • Auth Wallabag

    Effectue une requête HTTP pour authentifier l'accès à Wallabag avec les paramètres fournis.

  • Merge

    Fusionne plusieurs flux de données en un seul flux continu.

  • Get stared articles

    Récupère des articles à partir d'une source spécifiée via une requête HTTP.

  • Auth TTRss

    Effectue une requête HTTP pour authentifier l'accès à TTRss avec les paramètres fournis.

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

Inscription gratuite

S'inscrire gratuitementBesoin d'aide ?
{
  "id": "4",
  "name": "post to wallabag",
  "nodes": [
    {
      "name": "On clicking 'execute'",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        120,
        250
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "name": "HTTP Request",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1280,
        380
      ],
      "parameters": {
        "url": "=http://{HERE-YOUR-WALLABAG-HOST}/api/entries.json",
        "options": {},
        "requestMethod": "POST",
        "bodyParametersUi": {
          "parameter": [
            {
              "name": "url",
              "value": "={{$json[\"url\"]}}"
            }
          ]
        },
        "queryParametersUi": {
          "parameter": []
        },
        "headerParametersUi": {
          "parameter": [
            {
              "name": "Authorization",
              "value": "=Bearer {{$json[\"access_token\"]}}"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "name": "Cron",
      "type": "n8n-nodes-base.cron",
      "position": [
        120,
        400
      ],
      "parameters": {
        "triggerTimes": {
          "item": [
            {
              "mode": "everyX",
              "unit": "minutes",
              "value": 10
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "name": "Function",
      "type": "n8n-nodes-base.function",
      "position": [
        900,
        470
      ],
      "parameters": {
        "functionCode": "// Get the global workflow static data\nconst staticData = getWorkflowStaticData('global')\n\n// Access its data\nconst lastStarRssId = staticData.lastStarRssId\n\nlet list = []\n\nfor (const item of items[0].json.content){\n  let currentId = item.id\n  if(currentId == lastStarRssId) break;\n  list.push({'json':{\n    'id': currentId,\n    'lastId': lastStarRssId,\n    'url': item.link,\n    'tags': item.tags,\n    'access_token': items[1].json.access_token\n  }})\n}\n\n\n// Get the last ID from Rss Feed\nlet currentStarRssId = items[0].json.content[0].id\n\n// TODO: make a loop to get all the items beyond the last saved id\nif(!lastStarRssId || currentStarRssId != lastStarRssId)\n{  \n  // Update its data\n  staticData.lastStarRssId = currentStarRssId;\n  \n}\nelse { list = [{'json':{ 'id': 'Nan', 'lastId': staticData.lastStarRssId }}] }\nreturn list;\n\n/*return [{'json':{'url': items[0].json.content.pop(), 'wallabag':items[1].json}}]*/"
      },
      "typeVersion": 1
    },
    {
      "name": "IF",
      "type": "n8n-nodes-base.if",
      "position": [
        1100,
        470
      ],
      "parameters": {
        "conditions": {
          "string": [
            {
              "value1": "={{$node[\"Function\"].json[\"id\"]}}",
              "value2": "NaN",
              "operation": "notEqual"
            }
          ],
          "boolean": []
        }
      },
      "typeVersion": 1
    },
    {
      "name": "NoOp",
      "type": "n8n-nodes-base.noOp",
      "position": [
        1290,
        570
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "name": "Auth Wallabag",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        490,
        590
      ],
      "parameters": {
        "url": "http://{HERE-YOUR-WALLABAG-HOST}/oauth/v2/token",
        "options": {},
        "requestMethod": "POST",
        "bodyParametersUi": {
          "parameter": [
            {
              "name": "grant_type",
              "value": "password"
            },
            {
              "name": "client_id",
              "value": "{HERE-YOUR-CLIENT_ID}"
            },
            {
              "name": "client_secret",
              "value": "{HERE-YOUR-CLIENT_SECRET}"
            },
            {
              "name": "username",
              "value": "{HERE-YOUR-USERNAME}"
            },
            {
              "name": "password",
              "value": "{HERE-YOUR-PASSWORD}"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "name": "Merge",
      "type": "n8n-nodes-base.merge",
      "position": [
        710,
        470
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "name": "Get stared articles",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        490,
        400
      ],
      "parameters": {
        "url": "http://{HERE-YOUR-TTRSS-HOST}/tt-rss/api/",
        "options": {},
        "requestMethod": "POST",
        "bodyParametersUi": {
          "parameter": [
            {
              "name": "sid",
              "value": "={{$json[\"content\"][\"session_id\"]}}"
            },
            {
              "name": "op",
              "value": "getHeadLines"
            },
            {
              "name": "feed_id",
              "value": "-1"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "name": "Auth TTRss",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        320,
        400
      ],
      "parameters": {
        "url": "http://{HERE-YOUR-TTRSS-HOST}/tt-rss/api/",
        "options": {},
        "requestMethod": "POST",
        "bodyParametersUi": {
          "parameter": [
            {
              "name": "op",
              "value": "login"
            },
            {
              "name": "user",
              "value": "{HERE-YOUR-API-USER}"
            },
            {
              "name": "password",
              "value": "{HERE-YOUR-API-SECRET}"
            }
          ]
        }
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {},
  "connections": {
    "IF": {
      "main": [
        [
          {
            "node": "HTTP Request",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "NoOp",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Cron": {
      "main": [
        [
          {
            "node": "Auth TTRss",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge": {
      "main": [
        [
          {
            "node": "Function",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Function": {
      "main": [
        [
          {
            "node": "IF",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Auth TTRss": {
      "main": [
        [
          {
            "node": "Get stared articles",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Auth Wallabag": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Get stared articles": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "On clicking 'execute'": {
      "main": [
        [
          {
            "node": "Auth TTRss",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Workflow n8n Wallabag, publication d'articles, gestion de contenu : pour qui est ce workflow ?

Ce workflow s'adresse principalement aux rédacteurs, journalistes et professionnels de la gestion de contenu qui cherchent à automatiser la publication d'articles sur Wallabag. Il est conçu pour des utilisateurs ayant un niveau technique intermédiaire, souhaitant optimiser leur flux de travail sans nécessiter de compétences en développement avancées.

Workflow n8n Wallabag, publication d'articles, gestion de contenu : problème résolu

Ce workflow résout le problème de la gestion manuelle des publications sur Wallabag, qui peut être chronophage et sujet à des erreurs. En automatisant ce processus, les utilisateurs peuvent se concentrer sur la création de contenu plutôt que sur sa gestion. Cela réduit également le risque d'oublier de publier des articles importants, garantissant ainsi que toutes les informations pertinentes sont centralisées et accessibles.

Workflow n8n Wallabag, publication d'articles, gestion de contenu : étapes du workflow

Étape 1 : L'utilisateur déclenche manuellement le workflow.

  • Étape 1 : Une requête HTTP est envoyée pour authentifier l'accès à Wallabag.
  • Étape 2 : Un cron est mis en place pour exécuter le workflow à intervalles réguliers.
  • Étape 3 : Une fonction personnalisée peut être ajoutée pour traiter les données des articles.
  • Étape 4 : Des conditions sont vérifiées pour s'assurer que seuls les articles pertinents sont publiés.
  • Étape 5 : Les articles sont publiés sur Wallabag, assurant une gestion efficace du contenu.

Workflow n8n Wallabag, publication d'articles, gestion de contenu : guide de personnalisation

Pour personnaliser ce workflow, vous pouvez modifier l'URL de la requête HTTP pour l'adapter à votre instance de Wallabag. Il est également possible d'ajuster les paramètres de la fonction pour traiter les articles selon vos besoins spécifiques. Si vous souhaitez intégrer d'autres outils, vous pouvez ajouter des noeuds supplémentaires pour récupérer des articles depuis d'autres sources. Assurez-vous de sécuriser vos clés d'API et de tester le workflow régulièrement pour garantir son bon fonctionnement.