Réutiliser des actualités à partir de sources RSS et les publier via PostPulse

Avancé

Ceci est unContent Creation, Multimodal AIworkflow d'automatisation du domainecontenant 25 nœuds.Utilise principalement des nœuds comme If, Wait, Merge, Function, RssFeedRead. Automatisation des actualités RSS vers la publication sur plusieurs plateformes de médias sociaux avec PostPulse

Prérequis
  • Aucun prérequis spécial, prêt à l'emploi après importation
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": "lTO5ex53oKKkeT0d",
  "meta": {
    "instanceId": "bf246f909c2b838648f333c22c98b9bde186937bc00a5918bd9a27f4ec3914d3"
  },
  "name": "Repurpose News from RSS Feed and Publish via PostPulse",
  "tags": [],
  "nodes": [
    {
      "id": "5225f3e9-d85f-4e3e-900a-e67fbc5ea7ac",
      "name": "Déclencheur Planifié",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -48,
        -144
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "triggerAtHour": 9
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "b72c3c2f-7b1d-4925-9dca-720f2353b793",
      "name": "Condition Si",
      "type": "n8n-nodes-base.if",
      "position": [
        720,
        0
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "bff36021-96e1-421e-9218-81e2117786b1",
              "operator": {
                "type": "dateTime",
                "operation": "afterOrEquals"
              },
              "leftValue": "={{ $json.pubDate }}",
              "rightValue": "={{ $now.minus(1, 'days').startOf('day') }}"
            },
            {
              "id": "8acc637f-1103-4c4f-a80e-428020b3cf41",
              "operator": {
                "type": "dateTime",
                "operation": "beforeOrEquals"
              },
              "leftValue": "={{ $json.pubDate }}",
              "rightValue": "={{ $now.minus(1, 'days').endOf('day') }}"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "3442e809-c9a9-45a0-9088-72a1810355b1",
      "name": "Obtenir les comptes connectés",
      "type": "@postpulse/n8n-nodes-postpulse.postPulse",
      "position": [
        784,
        480
      ],
      "parameters": {
        "resource": "account"
      },
      "credentials": {
        "postPulseOAuth2Api": {
          "id": "nrEYznJjQaKGajyK",
          "name": "PostPulse account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "2d2d2c5f-32b3-4b7a-8a49-a52e8ac9dea1",
      "name": "Vérification Média Si",
      "type": "n8n-nodes-base.if",
      "position": [
        912,
        0
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "media-check-condition",
              "operator": {
                "type": "string",
                "operation": "notEmpty"
              },
              "leftValue": "={{ (\n          $json.enclosure?.url ||\n          $json['media:content']?.url || \n          $json['media:thumbnail']?.url ||\n          ($json.description && $json.description.match(/<img[^>]+src=[\"']([^\"']+)[\"']/i)?.[1]) ||\n          ($json['content:encoded'] && $json['content:encoded'].match(/<img[^>]+src=[\"']([^\"']+)[\"']/i)?.[1])\n        ) }}"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "13391fd1-8164-4bc2-b5cd-438c507dffa5",
      "name": "Lecture Flux RSS",
      "type": "n8n-nodes-base.rssFeedRead",
      "position": [
        336,
        -64
      ],
      "parameters": {
        "url": "https://rss.unian.ua/site/gplay_56_ukr.rss",
        "options": {}
      },
      "typeVersion": 1
    },
    {
      "id": "eab7ec94-76a3-4840-a89e-f77f2e1991ef",
      "name": "Fusion (sans média + comptes)",
      "type": "n8n-nodes-base.merge",
      "position": [
        1152,
        224
      ],
      "parameters": {
        "mode": "combine",
        "options": {},
        "combineBy": "combineAll"
      },
      "typeVersion": 3.2
    },
    {
      "id": "6edb85e6-e42f-486c-8a51-035ea59dbe96",
      "name": "Téléverser média",
      "type": "@postpulse/n8n-nodes-postpulse.postPulse",
      "position": [
        1104,
        -176
      ],
      "parameters": {
        "url": "={{ $json.enclosure.url }}",
        "resource": "media",
        "filenameHint": "={{ $json.enclosure.url.split(\"/\").pop() }}",
        "uploadSource": "url"
      },
      "credentials": {
        "postPulseOAuth2Api": {
          "id": "nrEYznJjQaKGajyK",
          "name": "PostPulse account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "13fd97d3-c730-4ad1-9311-58fe5f385c10",
      "name": "Obtenir statut téléversement",
      "type": "@postpulse/n8n-nodes-postpulse.postPulse",
      "position": [
        1312,
        -208
      ],
      "parameters": {
        "importId": "={{ $json.id }}",
        "resource": "media",
        "operation": "getUploadStatus"
      },
      "credentials": {
        "postPulseOAuth2Api": {
          "id": "nrEYznJjQaKGajyK",
          "name": "PostPulse account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "3b3c7fdb-a992-43ac-8478-e42a7e6ec7d9",
      "name": "Fusion1",
      "type": "n8n-nodes-base.merge",
      "position": [
        2160,
        -64
      ],
      "parameters": {
        "mode": "combine",
        "options": {},
        "combineBy": "combineAll"
      },
      "typeVersion": 3.2
    },
    {
      "id": "1d049387-8e7b-4cc7-b32d-704f0aba5945",
      "name": "Si1",
      "type": "n8n-nodes-base.if",
      "position": [
        1504,
        -304
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "44cab27e-ad6e-4320-aea2-ca7e5ebbbf2f",
              "operator": {
                "type": "string",
                "operation": "notEquals"
              },
              "leftValue": "={{ $json.state }}",
              "rightValue": "READY"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "804a3503-e23f-4a87-b811-bd552edf94ac",
      "name": "Attente",
      "type": "n8n-nodes-base.wait",
      "position": [
        1744,
        -304
      ],
      "webhookId": "2a52ba6c-06e9-4cdc-94af-8e9206ad2f0f",
      "parameters": {},
      "typeVersion": 1.1
    },
    {
      "id": "2c315149-3047-467e-bdb3-e62330aabe10",
      "name": "Publier Publication",
      "type": "@postpulse/n8n-nodes-postpulse.postPulse",
      "position": [
        2400,
        -32
      ],
      "parameters": {
        "isDraft": true,
        "publications": {
          "publication": [
            {
              "posts": {
                "post": [
                  {
                    "content": "={{ (function(){\nconst t=$json['content:encodedSnippet'],p=$json.platform;\nlet m=500;if(p==='X_TWITTER')m=280;if(p==='BLUE_SKY')m=300;\nif(t.length<=m)return t;\nconst d=t.lastIndexOf('.',m),e=t.lastIndexOf('!',m),q=t.lastIndexOf('?',m),s=Math.max(d,e,q),l=m*0.6;\nif(s>0&&s>=l)return t.substring(0,s+1);\nconst w=t.lastIndexOf(' ',m);\nreturn t.substring(0,w>0?w:m)+'...';\n})() }}",
                    "attachmentPaths": {
                      "path": [
                        {
                          "value": "={{ $json.s3Key }}"
                        }
                      ]
                    }
                  }
                ]
              },
              "platformSettings": "={{ (function() { const platformMapping = { 'X_TWITTER': 'TWITTER', 'YOUTUBE': 'YOUTUBE', 'THREADS': 'THREADS', 'TIKTOK': 'TIK_TOK', 'INSTAGRAM': 'INSTAGRAM', 'FACEBOOK': 'FACEBOOK', 'LINKEDIN': 'LINKEDIN', 'BLUE_SKY': 'BLUE_SKY', 'TELEGRAM': 'TELEGRAM' }; return JSON.stringify({ \"type\": platformMapping[$json.platform] }); })() }}",
              "socialMediaAccountId": "={{ $json.id }}"
            }
          ]
        },
        "scheduledTime": "={{$now.toUTC()}}"
      },
      "credentials": {
        "postPulseOAuth2Api": {
          "id": "nrEYznJjQaKGajyK",
          "name": "PostPulse account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "abde1db6-6283-472b-8fc6-9d0bd9cfb6eb",
      "name": "Fusion",
      "type": "n8n-nodes-base.merge",
      "position": [
        1952,
        -160
      ],
      "parameters": {
        "mode": "combine",
        "options": {},
        "advanced": true,
        "mergeByFields": {
          "values": [
            {
              "field1": "sourceUrl",
              "field2": "enclosure.url"
            }
          ]
        }
      },
      "typeVersion": 3.2
    },
    {
      "id": "c05dd604-c4ee-485b-81f6-d38f67e515b0",
      "name": "Publier Publication (texte uniquement)",
      "type": "@postpulse/n8n-nodes-postpulse.postPulse",
      "position": [
        1776,
        336
      ],
      "parameters": {
        "isDraft": true,
        "publications": {
          "publication": [
            {
              "posts": {
                "post": [
                  {
                    "content": "={{ (function(){\n  const title = $json.title || '';\n  const content = $json['content'] || $json['content:encodedSnippet'] || $json.description || '';\n  const fullText = title + (content ? '\\n\\n' + content : '');\n  const p = $json.platform;\n  let m = 500;\n  if(p==='X_TWITTER') m=280;\n  if(p==='BLUE_SKY') m=300;\n  if(fullText.length <= m) return fullText;\n  const d = fullText.lastIndexOf('.', m), e = fullText.lastIndexOf('!', m), q = fullText.lastIndexOf('?', m);\n  const s = Math.max(d, e, q), l = m*0.6;\n  if(s > 0 && s >= l) return fullText.substring(0, s+1);\n  const w = fullText.lastIndexOf(' ', m);\n  return fullText.substring(0, w>0?w:m) + '...';\n})() }}\n",
                    "attachmentPaths": {
                      "path": [
                        {}
                      ]
                    }
                  }
                ]
              },
              "platformSettings": "={{ (function() { const platformMapping = { 'X_TWITTER': 'TWITTER', 'YOUTUBE': 'YOUTUBE', 'THREADS': 'THREADS', 'TIKTOK': 'TIK_TOK', 'INSTAGRAM': 'INSTAGRAM', 'FACEBOOK': 'FACEBOOK', 'LINKEDIN': 'LINKEDIN', 'BLUE_SKY': 'BLUE_SKY', 'TELEGRAM': 'TELEGRAM' }; return JSON.stringify({ \"type\": platformMapping[$json.platform] }); })() }}",
              "socialMediaAccountId": "={{ $json.id }}"
            }
          ]
        },
        "scheduledTime": "={{$now.toUTC()}}"
      },
      "credentials": {
        "postPulseOAuth2Api": {
          "id": "nrEYznJjQaKGajyK",
          "name": "PostPulse account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "d20115e7-11a2-4af9-ab4f-a9c33ea44b99",
      "name": "Limiter à N publications",
      "type": "n8n-nodes-base.function",
      "position": [
        512,
        -48
      ],
      "parameters": {
        "functionCode": "const limit = 1; // Specify the desired\nconst items = $input.all();\n\nreturn items.slice(0, limit);"
      },
      "typeVersion": 1
    },
    {
      "id": "7cf7be4d-1553-4f52-ac23-007a46e73eb8",
      "name": "Note adhésive",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -128,
        -544
      ],
      "parameters": {
        "width": 640,
        "height": 144,
        "content": "## Repurpose News from RSS Feed and Publish via PostPulse\nThis workflow automatically fetches news from an RSS feed, processes the content, and publishes or schedules posts across multiple social media platforms using PostPulse.\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "8a2f34a4-7099-42c7-82cd-b8291f585e21",
      "name": "Note adhésive1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -112,
        16
      ],
      "parameters": {
        "width": 272,
        "height": 96,
        "content": "## Schedule Trigger\nSets the workflow to run at a chosen time, e.g., daily at 9:00 AM.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "402d5b7c-a30d-4bef-af05-74d48ef703d7",
      "name": "Note adhésive2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        256,
        -208
      ],
      "parameters": {
        "height": 96,
        "content": "## RSS Feed Read\nFetches the latest news from a specified RSS feed URL.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "b02123b2-1751-4e7b-99c9-49dca6c2c653",
      "name": "Note adhésive3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        416,
        80
      ],
      "parameters": {
        "width": 288,
        "height": 112,
        "content": "## Limit to N Post  \nLimits the number of items passed through. Set the desired number directly in the node code.  \n"
      },
      "typeVersion": 1
    },
    {
      "id": "ef97a779-fb99-4d50-9e11-2968dad3e477",
      "name": "Note adhésive4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        656,
        -208
      ],
      "parameters": {
        "width": 384,
        "content": "## If & Media Check IF  \nFilters posts based on publish date (e.g., only from yesterday) **AND** checks if they contain an image by looking at fields like `enclosure.url`, `media:content`, `media:thumbnail`, or `<img>` inside the HTML content.  \n"
      },
      "typeVersion": 1
    },
    {
      "id": "fefe03d9-f87b-43ca-8f17-c5c09fa347ad",
      "name": "Note adhésive5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1216,
        -448
      ],
      "parameters": {
        "width": 544,
        "height": 112,
        "content": "## PostPulse Upload Media & Get Upload Status\nUploads images or videos from the feed to PostPulse, waits for the media to be ready, and checks the upload status every 5 seconds.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "1e1b08d4-96d7-4229-bdcf-0ac43f58f18c",
      "name": "Note adhésive6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2064,
        -288
      ],
      "parameters": {
        "width": 336,
        "height": 128,
        "content": "## Merge\nCombines information from the RSS feed with the uploaded media, creating a single record with a shared URL.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "00692b40-ef2b-4aa8-9f2b-e69a097071d9",
      "name": "Note adhésive7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2144,
        224
      ],
      "parameters": {
        "width": 320,
        "height": 128,
        "content": "##  Publish Post\nSchedules the news post. If \"Is Draft\" is checked, the post is saved as a draft; if not, it is scheduled for immediate publishing.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "5ee6e715-62dc-4b82-993a-e35587d76d71",
      "name": "Note adhésive8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        592,
        640
      ],
      "parameters": {
        "width": 352,
        "content": "## PostPulse Get Connected Accounts\nRetrieves your linked social media accounts for publishing posts.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "10976fdd-1cc1-4739-bc62-2ab1cb1d71d0",
      "name": "Note adhésive9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1216,
        48
      ],
      "parameters": {
        "width": 256,
        "content": "## Merge (no media + accounts)  \nMerges posts without media with accounts data.  \n"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "018ef9cd-662d-4a33-8efd-f090b888f812",
  "connections": {
    "b72c3c2f-7b1d-4925-9dca-720f2353b793": {
      "main": [
        [
          {
            "node": "2d2d2c5f-32b3-4b7a-8a49-a52e8ac9dea1",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "2d2d2c5f-32b3-4b7a-8a49-a52e8ac9dea1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "1d049387-8e7b-4cc7-b32d-704f0aba5945": {
      "main": [
        [
          {
            "node": "804a3503-e23f-4a87-b811-bd552edf94ac",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "abde1db6-6283-472b-8fc6-9d0bd9cfb6eb",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "804a3503-e23f-4a87-b811-bd552edf94ac": {
      "main": [
        [
          {
            "node": "13fd97d3-c730-4ad1-9311-58fe5f385c10",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "abde1db6-6283-472b-8fc6-9d0bd9cfb6eb": {
      "main": [
        [
          {
            "node": "3b3c7fdb-a992-43ac-8478-e42a7e6ec7d9",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "3b3c7fdb-a992-43ac-8478-e42a7e6ec7d9": {
      "main": [
        [
          {
            "node": "2c315149-3047-467e-bdb3-e62330aabe10",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "6edb85e6-e42f-486c-8a51-035ea59dbe96": {
      "main": [
        [
          {
            "node": "13fd97d3-c730-4ad1-9311-58fe5f385c10",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "13391fd1-8164-4bc2-b5cd-438c507dffa5": {
      "main": [
        [
          {
            "node": "d20115e7-11a2-4af9-ab4f-a9c33ea44b99",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "2d2d2c5f-32b3-4b7a-8a49-a52e8ac9dea1": {
      "main": [
        [
          {
            "node": "6edb85e6-e42f-486c-8a51-035ea59dbe96",
            "type": "main",
            "index": 0
          },
          {
            "node": "abde1db6-6283-472b-8fc6-9d0bd9cfb6eb",
            "type": "main",
            "index": 1
          }
        ],
        [
          {
            "node": "eab7ec94-76a3-4840-a89e-f77f2e1991ef",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "d20115e7-11a2-4af9-ab4f-a9c33ea44b99": {
      "main": [
        [
          {
            "node": "b72c3c2f-7b1d-4925-9dca-720f2353b793",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "5225f3e9-d85f-4e3e-900a-e67fbc5ea7ac": {
      "main": [
        [
          {
            "node": "3442e809-c9a9-45a0-9088-72a1810355b1",
            "type": "main",
            "index": 0
          },
          {
            "node": "13391fd1-8164-4bc2-b5cd-438c507dffa5",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "13fd97d3-c730-4ad1-9311-58fe5f385c10": {
      "main": [
        [
          {
            "node": "1d049387-8e7b-4cc7-b32d-704f0aba5945",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "3442e809-c9a9-45a0-9088-72a1810355b1": {
      "main": [
        [
          {
            "node": "eab7ec94-76a3-4840-a89e-f77f2e1991ef",
            "type": "main",
            "index": 1
          },
          {
            "node": "3b3c7fdb-a992-43ac-8478-e42a7e6ec7d9",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "eab7ec94-76a3-4840-a89e-f77f2e1991ef": {
      "main": [
        [
          {
            "node": "c05dd604-c4ee-485b-81f6-d38f67e515b0",
            "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é ?

Avancé - Création de contenu, IA Multimodale

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é
Avancé
Nombre de nœuds25
Catégorie2
Types de nœuds8
Description de la difficulté

Adapté aux utilisateurs avancés, avec des workflows complexes contenant 16+ nœuds

Auteur

Hnatiuk Dmytro is a Content Manager at PostPulse, experienced in copywriting, localization, and social media marketing. Skilled in creating engaging content strategies, managing multi-platform campaigns, and optimizing posts for audience engagement. He also has technical skills in HTML, JavaScript, Node.js, and C#, with a background in cybersecurity. Outside of work, Dmytro is a musician, enjoys playing and listening to music, stays active through sports, and values connecting with people

Liens externes
Voir sur n8n.io

Partager ce workflow

Catégories

Catégories: 34