Automatisation des publications de blog Notion vers Webflow

Ce workflow optimise la gestion de contenu en synchronisant automatiquement vos articles de blog depuis Notion vers Webflow. Grâce à ce processus, vous pouvez facilement maintenir votre site Web à jour avec du contenu riche, sans effort manuel. Les slugs uniques sont générés pour éviter les doublons et les mises à jour sont gérées efficacement, garantissant que chaque publication est correctement reflétée sur votre site. Un système de notification assure également que vous êtes informé de chaque synchronisation réussie.

29,877 vues
9,684 copies
Intégration

Documentation Complète

📋 Automatisation des publications de blog Notion vers Webflow

💡 Description

Ce workflow optimise la gestion de contenu en synchronisant automatiquement vos articles de blog depuis Notion vers Webflow. Grâce à ce processus, vous pouvez facilement maintenir votre site Web à jour avec du contenu riche, sans effort manuel. Les slugs uniques sont générés pour éviter les doublons et les mises à jour sont gérées efficacement, garantissant que chaque publication est correctement reflétée sur votre site. Un système de notification assure également que vous êtes informé de chaque synchronisation réussie.

📈 Impact & ROI: Amélioration significative de l'efficacité opérationnelle et réduction des erreurs manuelles, permettant une mise à jour plus rapide du contenu web et une meilleure allocation des ressources.

🚀 Fonctionnalités Clés

  • ✅ Synchronisation automatique des articles de blog entre Notion et Webflow
  • ✅ Gestion efficace des slugs pour éviter les doublons
  • ✅ Notifications en temps réel pour les synchronisations réussies
  • ✅ Transformation des blocs Notion en rich text HTML pour un rendu optimal

📊 Architecture Technique

29
Nodes
23
Connexions
3
Services

🔌 Services Intégrés

NotionWebflowSlack

🔧 Composition du Workflow

NodeTypeDescription
Sticky NotestickyNoteTraitement des données
Get simple page datanotionTraitement des données
Get all page datanotionTraitement des données
Take cover urlsetTraitement des données
Merge1mergeFusion de plusieurs branches de données
Data transporter1noOpTraitement des données
Get all blog posts1notionTraitement des données
Is sync checked?1filterTraitement des données
For each blog post1splitInBatchesDivision des données en plusieurs branches
Sticky Note17stickyNoteTraitement des données
Sticky Note18stickyNoteTraitement des données
Create post1webflowTraitement des données
Sticky Note19stickyNoteTraitement des données
Update slug on posts1notionTraitement des données
Slug uniqueness checker and differentiator1codeTraitement des données
Success message1slackTraitement des données
Merge2mergeFusion de plusieurs branches de données
Compare by slug1compareDatasetsTraitement des données
Add slug to posts1notionTraitement des données
Get all collection posts1webflowTraitement des données
Data transporter, Notion posts to sync1noOpTraitement des données
Craft the rich text element1codeTraitement des données
Turn blocks into HTML1codeTraitement des données
Get blocks1notionTraitement des données
Update in "Blog Posts"webflowTraitement des données
Add Webflow item id to Notion datacodeTraitement des données
Final Notion post datamergeFusion de plusieurs branches de données
Sticky Note1stickyNoteTraitement des données
Schedule TriggerscheduleTriggerTraitement des données

📖 Guide d'Implémentation

  1. Import du workflow: Téléchargez le fichier JSON et importez-le dans votre instance n8n
  2. Configuration des credentials: Configurez les accès pour chaque service utilisé
  3. Personnalisation: Adaptez les paramètres selon vos besoins spécifiques
  4. Test: Exécutez le workflow en mode test pour vérifier le bon fonctionnement
  5. Activation: Activez le workflow pour une exécution automatique

🏷️ Tags

NotionWebflowAutomatisationSynchronisation

Structure JSON

Voir le code JSON complet
{
    "nodes": [
        {
            "id": "adb2d3bc-c6ab-4bb6-b954-61956ca2836d",
            "name": "Sticky Note",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                -1528.3572519550153,
                3540
            ],
            "parameters": {
                "width": 830.4857444594224,
                "height": 495.4835100729081,
                "content": "## Workflow installation\n* Add a \"slug\" text property to each blog post (this parameter will be synced with Webflow and will be used to determine if a post is new or already present in your Webflow collection)\n* Add a \"Sync to Webflow?\" checkbox to each blog post\n* Connect your accounts and run a test to fill Webflow nodes with the right fields\n\n[![image.png](https:\/\/i.postimg.cc\/xCymVp7w\/image.png)](https:\/\/postimg.cc\/BLbbxpJp)"
            },
            "typeVersion": 1
        },
        {
            "id": "a5a79fd3-7adb-4e56-8aa7-2fd0cfc22927",
            "name": "Get simple page data",
            "type": "n8n-nodes-base.notion",
            "position": [
                -80,
                4520
            ],
            "parameters": {
                "pageId": {
                    "__rl": true,
                    "mode": "id",
                    "value": "={{ $json.id }}"
                },
                "resource": "databasePage",
                "operation": "get"
            },
            "credentials": {
                "notionApi": {
                    "id": "rxtaEXgFPg96muhy",
                    "name": "My Notion account"
                }
            },
            "executeOnce": true,
            "typeVersion": 2.2
        },
        {
            "id": "dbb56719-e091-4475-94fb-430cd58ce8bb",
            "name": "Get all page data",
            "type": "n8n-nodes-base.notion",
            "position": [
                -120,
                4840
            ],
            "parameters": {
                "pageId": {
                    "__rl": true,
                    "mode": "id",
                    "value": "={{ $json.id }}"
                },
                "simple": false,
                "resource": "databasePage",
                "operation": "get"
            },
            "credentials": {
                "notionApi": {
                    "id": "rxtaEXgFPg96muhy",
                    "name": "My Notion account"
                }
            },
            "executeOnce": true,
            "typeVersion": 2.2
        },
        {
            "id": "af3fd27a-642e-4ec6-bc07-5d02076830e2",
            "name": "Take cover url",
            "type": "n8n-nodes-base.set",
            "position": [
                100,
                4840
            ],
            "parameters": {
                "options": [],
                "assignments": {
                    "assignments": [
                        {
                            "id": "7f9960fb-9898-4d1a-b4d9-29c95fb7c144",
                            "name": "cover_url",
                            "type": "string",
                            "value": "={{ $json.cover.external.url }}"
                        }
                    ]
                }
            },
            "typeVersion": 3.3
        },
        {
            "id": "5910292c-2548-4ca2-b7e4-304f99712e8d",
            "name": "Merge1",
            "type": "n8n-nodes-base.merge",
            "position": [
                320,
                4640
            ],
            "parameters": {
                "mode": "combine",
                "options": [],
                "combinationMode": "mergeByPosition"
            },
            "typeVersion": 2.1
        },
        {
            "id": "65c81d79-770c-48d4-97b9-f22328c22465",
            "name": "Data transporter1",
            "type": "n8n-nodes-base.noOp",
            "position": [
                3220,
                4900
            ],
            "parameters": [],
            "typeVersion": 1
        },
        {
            "id": "1bc81efb-d293-4c97-bcb8-e114de0e482c",
            "name": "Get all blog posts1",
            "type": "n8n-nodes-base.notion",
            "position": [
                -1220,
                4640
            ],
            "parameters": {
                "options": [],
                "resource": "databasePage",
                "operation": "getAll",
                "returnAll": true,
                "databaseId": {
                    "__rl": true,
                    "mode": "list",
                    "value": "4587b66c-d670-45b5-93f0-69ba1b0f3924",
                    "cachedResultUrl": "https:\/\/www.notion.so\/4587b66cd67045b593f069ba1b0f3924",
                    "cachedResultName": "My blog"
                }
            },
            "credentials": {
                "notionApi": {
                    "id": "rxtaEXgFPg96muhy",
                    "name": "My Notion account"
                }
            },
            "typeVersion": 2.2
        },
        {
            "id": "56392232-05c7-477f-911f-7713d6cfa25f",
            "name": "Is sync checked?1",
            "type": "n8n-nodes-base.filter",
            "position": [
                -940,
                4640
            ],
            "parameters": {
                "options": [],
                "conditions": {
                    "options": {
                        "leftValue": "",
                        "caseSensitive": true,
                        "typeValidation": "strict"
                    },
                    "combinator": "and",
                    "conditions": [
                        {
                            "id": "461a5a59-f894-4dda-9233-175a1e228d23",
                            "operator": {
                                "type": "boolean",
                                "operation": "true",
                                "singleValue": true
                            },
                            "leftValue": "={{ $json.property_sync_to_webflow }}",
                            "rightValue": ""
                        }
                    ]
                }
            },
            "typeVersion": 2
        },
        {
            "id": "2a9fab27-612e-4eb9-935c-fd802f39c96e",
            "name": "For each blog post1",
            "type": "n8n-nodes-base.splitInBatches",
            "position": [
                -360,
                4640
            ],
            "parameters": {
                "options": []
            },
            "typeVersion": 3
        },
        {
            "id": "8f6d8e51-b92b-4780-b782-3f72203f40aa",
            "name": "Sticky Note17",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                540,
                4720
            ],
            "parameters": {
                "width": 777.880012347261,
                "height": 287.94399632670337,
                "content": "### ⚙️ Turn blocks into rich text\nThis is where the magic happens — Notion blocks are mapped and turned into their respective html version. Works with all the major rich text elements: headings 1, headings 2, headings 3, normal, bold and italic text, quotes, bulleted lists, numbered lists and images with captions."
            },
            "typeVersion": 1
        },
        {
            "id": "9592c56d-9bb2-433e-b49c-ec634e3d1db2",
            "name": "Sticky Note18",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                1980,
                4420
            ],
            "parameters": {
                "width": 218.00983675699544,
                "height": 394.8629861599825,
                "content": "### ✅ Create a new post or update an existing one?\nThis node compares (by slug) your Notion post with all your Webflow posts and chooses whether to create a new one (in \"A only\" branch) or update an existing one (in \"different\" branch)."
            },
            "typeVersion": 1
        },
        {
            "id": "3ffb06d2-c1f1-4ce1-961f-8ece894d6cca",
            "name": "Create post1",
            "type": "n8n-nodes-base.webflow",
            "position": [
                2400,
                4460
            ],
            "parameters": {
                "siteId": "65a40576635069142ed11d7c",
                "fieldsUi": {
                    "fieldValues": [
                        {
                            "fieldId": "name",
                            "fieldValue": "={{ $json[\"name\"] }}"
                        },
                        {
                            "fieldId": "slug",
                            "fieldValue": "={{ $json.property_slug }}"
                        },
                        {
                            "fieldId": "blog-post-richt-text",
                            "fieldValue": "={{ $json.newRichText }}"
                        },
                        {
                            "fieldId": "_archived",
                            "fieldValue": "false"
                        },
                        {
                            "fieldId": "_draft",
                            "fieldValue": "true"
                        },
                        {
                            "fieldId": "blog-post-featured-image-photo",
                            "fieldValue": "={{ $json.cover_url }}"
                        },
                        {
                            "fieldId": "blog-post-thumbnail-image-photo",
                            "fieldValue": "={{ $json.cover_url }}"
                        }
                    ]
                },
                "operation": "create",
                "collectionId": "65a40577635069142ed11dd8",
                "authentication": "oAuth2"
            },
            "credentials": {
                "webflowOAuth2Api": {
                    "id": "cGhEXKKL99szTUa1",
                    "name": "Webflow account"
                }
            },
            "retryOnFail": true,
            "typeVersion": 1
        },
        {
            "id": "e6490f39-b420-488c-b407-948425615764",
            "name": "Sticky Note19",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                -140,
                3960
            ],
            "parameters": {
                "width": 233.87813121439967,
                "height": 389.3234455133497,
                "content": "### 🎉 Success\nSend a success message where you want.\n\nYou can remove this node.\n\nNote: If you're on it, you may need to refresh the Webflow page."
            },
            "typeVersion": 1
        },
        {
            "id": "13568b0a-9665-4149-b848-2dc355b91126",
            "name": "Update slug on posts1",
            "type": "n8n-nodes-base.notion",
            "position": [
                2920,
                4760
            ],
            "parameters": {
                "pageId": {
                    "__rl": true,
                    "mode": "id",
                    "value": "={{ $('Compare by slug1').item.json.different.id.inputA }}"
                },
                "options": [],
                "resource": "databasePage",
                "operation": "update",
                "propertiesUi": {
                    "propertyValues": [
                        {
                            "key": "slug|rich_text",
                            "textContent": "={{ $json.slug }}"
                        }
                    ]
                }
            },
            "credentials": {
                "notionApi": {
                    "id": "rxtaEXgFPg96muhy",
                    "name": "My Notion account"
                }
            },
            "retryOnFail": true,
            "typeVersion": 2.2
        },
        {
            "id": "8574c1d2-491d-4bbb-bcc1-0bef64b321a2",
            "name": "Slug uniqueness checker and differentiator1",
            "type": "n8n-nodes-base.code",
            "notes": "Add a number to the slug if it's not unique",
            "position": [
                -660,
                4640
            ],
            "parameters": {
                "jsCode": "const data = $input.all().map(item => item.json)\nconst slugCount = {};\n\nreturn data.map(item => {\n  let slug = item.property_slug;\n  \n  if (slugCount[slug]) {\n    slugCount[slug] += 1;\n    slug = `${slug}-${slugCount[slug]}`;\n  } else {\n    slugCount[slug] = 1;\n  }\n  \n  item.property_slug = slug;\n  return item;\n});"
            },
            "notesInFlow": true,
            "typeVersion": 2
        },
        {
            "id": "21755856-9123-4acd-b343-3af878d665ad",
            "name": "Success message1",
            "type": "n8n-nodes-base.slack",
            "position": [
                -80,
                4175
            ],
            "parameters": {
                "text": "=[Notion to Webflow] — \"{{ $json.name }}\" successfully synced 🎉",
                "select": "channel",
                "channelId": {
                    "__rl": true,
                    "mode": "list",
                    "value": "C07719A0GF5",
                    "cachedResultName": "general"
                },
                "otherOptions": [],
                "authentication": "oAuth2"
            },
            "credentials": {
                "slackOAuth2Api": {
                    "id": "qY28oJXU3BH6OrP3",
                    "name": "Desengineers Account"
                }
            },
            "typeVersion": 2.2
        },
        {
            "id": "6c232d4a-464b-4d5a-992b-f649d955eb1e",
            "name": "Merge2",
            "type": "n8n-nodes-base.merge",
            "position": [
                2660,
                4540
            ],
            "parameters": {
                "mode": "combine",
                "options": [],
                "combinationMode": "mergeByPosition"
            },
            "typeVersion": 2.1
        },
        {
            "id": "6af0cab5-8f70-435f-a341-c22d157d9200",
            "name": "Compare by slug1",
            "type": "n8n-nodes-base.compareDatasets",
            "position": [
                2040,
                4640
            ],
            "parameters": {
                "options": [],
                "mergeByFields": {
                    "values": [
                        {
                            "field1": "property_slug",
                            "field2": "slug"
                        }
                    ]
                }
            },
            "typeVersion": 2.3
        },
        {
            "id": "54a7dcf6-188e-4ca5-bc1e-3e76d5536236",
            "name": "Add slug to posts1",
            "type": "n8n-nodes-base.notion",
            "position": [
                2900,
                4540
            ],
            "parameters": {
                "pageId": {
                    "__rl": true,
                    "mode": "id",
                    "value": "={{ $json.id }}"
                },
                "options": [],
                "resource": "databasePage",
                "operation": "update",
                "propertiesUi": {
                    "propertyValues": [
                        {
                            "key": "slug|rich_text",
                            "textContent": "={{ $json.slug }}"
                        }
                    ]
                }
            },
            "credentials": {
                "notionApi": {
                    "id": "rxtaEXgFPg96muhy",
                    "name": "My Notion account"
                }
            },
            "retryOnFail": true,
            "typeVersion": 2.2
        },
        {
            "id": "f9a66b20-ce82-4f36-b145-283dadf97d34",
            "name": "Get all collection posts1",
            "type": "n8n-nodes-base.webflow",
            "position": [
                1720,
                4780
            ],
            "parameters": {
                "siteId": "65a40576635069142ed11d7c",
                "operation": "getAll",
                "returnAll": true,
                "collectionId": "65a40577635069142ed11dd8",
                "authentication": "oAuth2"
            },
            "credentials": {
                "webflowOAuth2Api": {
                    "id": "cGhEXKKL99szTUa1",
                    "name": "Webflow account"
                }
            },
            "typeVersion": 1
        },
        {
            "id": "c09f3782-12a1-4a91-945d-cd1ed14bfeb3",
            "name": "Data transporter, Notion posts to sync1",
            "type": "n8n-nodes-base.noOp",
            "position": [
                1720,
                4480
            ],
            "parameters": [],
            "typeVersion": 1
        },
        {
            "id": "9dc3ee15-4b4c-463c-a3b5-17b1dcb275da",
            "name": "Craft the rich text element1",
            "type": "n8n-nodes-base.code",
            "position": [
                1160,
                4836
            ],
            "parameters": {
                "jsCode": "const blocks = $input.all().map(item => item.json);\n\nlet newRichText = '';\nlet bulletedListItems = [];\nlet numberedListItems = [];\n\nblocks.forEach(block => {\n  if (block.type === 'bulleted_list_item') {\n    bulletedListItems.push(block.html);\n  } else if (block.type === 'numbered_list_item') {\n    numberedListItems.push(block.html);\n  } else {\n    if (bulletedListItems.length > 0) {\n      newRichText += `<ul>${bulletedListItems.join('')}<\/ul>`;\n      bulletedListItems = [];\n    }\n    if (numberedListItems.length > 0) {\n      newRichText += `<ol>${numberedListItems.join('')}<\/ol>`;\n      numberedListItems = [];\n    }\n    newRichText += block.html;\n  }\n});\n\nif (bulletedListItems.length > 0) {\n  newRichText += `<ul>${bulletedListItems.join('')}<\/ul>`;\n}\nif (numberedListItems.length > 0) {\n  newRichText += `<ol>${numberedListItems.join('')}<\/ol>`;\n}\n\nconst output = [{ newRichText }];\nreturn output;\n\n"
            },
            "typeVersion": 2
        },
        {
            "id": "e4ca0e5a-21bb-4d38-8448-8195b8994c12",
            "name": "Turn blocks into HTML1",
            "type": "n8n-nodes-base.code",
            "position": [
                860,
                4840
            ],
            "parameters": {
                "jsCode": "const blocks = $input.all().map(item => item.json);\nconst output = [];\n\nblocks.forEach(block => {\n  let html = '';\n  \n  switch (block.type) {\n    case 'heading_1':\n      html = block.heading_1.text.map(item => item.text.content).join(' ');\n      html = `<h1>${html}<\/h1>`;\n      break;\n    case 'heading_2':\n      html = block.heading_2.text.map(item => item.text.content).join(' ');\n      html = `<h2>${html}<\/h2>`;\n      break;\n    case 'heading_3':\n      html = block.heading_3.text.map(item => item.text.content).join(' ');\n      html = `<h3>${html}<\/h3>`;\n      break;\n    case 'paragraph':\n      html = `<p>${block.paragraph.text.map(item => {\n        let content = item.text.content.trim();\n        if (item.annotations.bold) content = `<b>${content}<\/b>`;\n        if (item.annotations.italic) content = `<i>${content}<\/i>`;\n        if (item.text.link) content = `<a href=\"${item.text.link.url}\">${content}<\/a>`;\n        return content;\n      }).join(' ') || '   '}<\/p>`; \/\/ the space inside the apostrophes is on purpose, otherwise Webflow will automatically delete the empty blocks\n      break;\n    case 'quote':\n      html = block.quote.text.map(item => item.text.content).join(' ');\n      html = `<blockquote>${html}<\/blockquote>`;\n      break;\n    case 'bulleted_list_item':\n      html = block.bulleted_list_item.text.map(item => item.text.content).join(' ');\n      html = `<li>${html}<\/li>`;\n      break;\n    case 'numbered_list_item':\n      html = block.numbered_list_item.text.map(item => item.text.content).join(' ');\n      html = `<li>${html}<\/li>`;\n      break;\n    case 'image':\n      const caption = block.image.caption.map(item => item.text.content).join(' ');\n      html = `<figure><img src=\"${block.image.file.url}\" alt=\"${caption}\" \/><figcaption>${caption}<\/figcaption><\/figure>`;\n      break;\n    case 'code':\n      const codeContent = block.code.text.map(item => item.text.content).join('\\n')\n      html = `<pre><code>${codeContent}<\/code><\/pre>`\n      break\n    default:\n      html = block.content ? `<div>${block.content}<\/div>` : '';\n  }\n\n  if (html) {\n    output.push({\n      block_id: block.id,\n      type: block.type,\n      html\n    });\n  }\n});\n\nreturn output;\n"
            },
            "typeVersion": 2
        },
        {
            "id": "719f5116-5e60-488c-81c2-d55cea2e2646",
            "name": "Get blocks1",
            "type": "n8n-nodes-base.notion",
            "position": [
                580,
                4837
            ],
            "parameters": {
                "blockId": {
                    "__rl": true,
                    "mode": "id",
                    "value": "={{ $json.id }}"
                },
                "resource": "block",
                "operation": "getAll",
                "returnAll": true,
                "simplifyOutput": false
            },
            "credentials": {
                "notionApi": {
                    "id": "rxtaEXgFPg96muhy",
                    "name": "My Notion account"
                }
            },
            "typeVersion": 2.2
        },
        {
            "id": "23f88f9c-ef4a-4158-bff5-728e2cf0383a",
            "name": "Update in \"Blog Posts\"",
            "type": "n8n-nodes-base.webflow",
            "maxTries": 3,
            "position": [
                2660,
                4780
            ],
            "parameters": {
                "itemId": "={{ $json.webflow_item_id }}",
                "siteId": "65a40576635069142ed11d7c",
                "fieldsUi": {
                    "fieldValues": [
                        {
                            "fieldId": "_draft",
                            "fieldValue": "true"
                        },
                        {
                            "fieldId": "_archived",
                            "fieldValue": "false"
                        },
                        {
                            "fieldId": "name",
                            "fieldValue": "={{ $json.name }}"
                        },
                        {
                            "fieldId": "slug",
                            "fieldValue": "={{ $json.property_slug }}"
                        },
                        {
                            "fieldId": "blog-post-richt-text",
                            "fieldValue": "={{ $json.newRichText }}"
                        },
                        {
                            "fieldId": "blog-post-featured-image-photo",
                            "fieldValue": "={{ $json.cover_url }}"
                        },
                        {
                            "fieldId": "blog-post-thumbnail-image-photo",
                            "fieldValue": "={{ $json.cover_url }}"
                        }
                    ]
                },
                "operation": "update",
                "collectionId": "65a40577635069142ed11dd8",
                "authentication": "oAuth2"
            },
            "credentials": {
                "webflowOAuth2Api": {
                    "id": "cGhEXKKL99szTUa1",
                    "name": "Webflow account"
                }
            },
            "retryOnFail": true,
            "typeVersion": 1,
            "alwaysOutputData": false
        },
        {
            "id": "6db40a4d-4acd-40f3-8830-f17e00678e39",
            "name": "Add Webflow item id to Notion data",
            "type": "n8n-nodes-base.code",
            "position": [
                2400,
                4760
            ],
            "parameters": {
                "mode": "runOnceForEachItem",
                "jsCode": "const compareResult = $json\nconst notionData = $('Final Notion post data').item.json\n\nconst output = {\n  ...notionData, \/\/ spread notion data\n  webflow_item_id: compareResult.different._id.inputB \/\/ add the webflow item id\n}\n\nreturn output"
            },
            "typeVersion": 2
        },
        {
            "id": "49e3d52c-a95a-4ac0-ae6a-69e4a722a628",
            "name": "Final Notion post data",
            "type": "n8n-nodes-base.merge",
            "position": [
                1380,
                4640
            ],
            "parameters": {
                "mode": "combine",
                "options": [],
                "combinationMode": "mergeByPosition"
            },
            "typeVersion": 2.1
        },
        {
            "id": "23755e8c-0012-4a72-ad9e-f450ceca1de4",
            "name": "Sticky Note1",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                -146,
                4720
            ],
            "parameters": {
                "width": 366.7438380520149,
                "height": 282.04364735085795,
                "content": "### No wastes\nThese nodes extract the cover image url of the Notion page to make it easy for you to use it in the collection fields."
            },
            "typeVersion": 1
        },
        {
            "id": "cb16a61b-73bc-491b-b4ce-b4dc5a5f21fc",
            "name": "Schedule Trigger",
            "type": "n8n-nodes-base.scheduleTrigger",
            "position": [
                -1480,
                4640
            ],
            "parameters": {
                "rule": {
                    "interval": [
                        []
                    ]
                }
            },
            "typeVersion": 1.2
        }
    ],
    "connections": {
        "Merge1": {
            "main": [
                [
                    {
                        "node": "Final Notion post data",
                        "type": "main",
                        "index": 0
                    },
                    {
                        "node": "Get blocks1",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Merge2": {
            "main": [
                [
                    {
                        "node": "Add slug to posts1",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Get blocks1": {
            "main": [
                [
                    {
                        "node": "Turn blocks into HTML1",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Create post1": {
            "main": [
                [
                    {
                        "node": "Merge2",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Take cover url": {
            "main": [
                [
                    {
                        "node": "Merge1",
                        "type": "main",
                        "index": 1
                    }
                ]
            ]
        },
        "Compare by slug1": {
            "main": [
                [
                    {
                        "node": "Create post1",
                        "type": "main",
                        "index": 0
                    },
                    {
                        "node": "Merge2",
                        "type": "main",
                        "index": 1
                    }
                ],
                null,
                [
                    {
                        "node": "Add Webflow item id to Notion data",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Schedule Trigger": {
            "main": [
                [
                    {
                        "node": "Get all blog posts1",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Data transporter1": {
            "main": [
                [
                    {
                        "node": "For each blog post1",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Get all page data": {
            "main": [
                [
                    {
                        "node": "Take cover url",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Is sync checked?1": {
            "main": [
                [
                    {
                        "node": "Slug uniqueness checker and differentiator1",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Add slug to posts1": {
            "main": [
                [
                    {
                        "node": "Data transporter1",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "For each blog post1": {
            "main": [
                [
                    {
                        "node": "Success message1",
                        "type": "main",
                        "index": 0
                    }
                ],
                [
                    {
                        "node": "Get simple page data",
                        "type": "main",
                        "index": 0
                    },
                    {
                        "node": "Get all page data",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Get all blog posts1": {
            "main": [
                [
                    {
                        "node": "Is sync checked?1",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Get simple page data": {
            "main": [
                [
                    {
                        "node": "Merge1",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Update slug on posts1": {
            "main": [
                [
                    {
                        "node": "Data transporter1",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Final Notion post data": {
            "main": [
                [
                    {
                        "node": "Data transporter, Notion posts to sync1",
                        "type": "main",
                        "index": 0
                    },
                    {
                        "node": "Get all collection posts1",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Turn blocks into HTML1": {
            "main": [
                [
                    {
                        "node": "Craft the rich text element1",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Update in \"Blog Posts\"": {
            "main": [
                [
                    {
                        "node": "Update slug on posts1",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Get all collection posts1": {
            "main": [
                [
                    {
                        "node": "Compare by slug1",
                        "type": "main",
                        "index": 1
                    }
                ]
            ]
        },
        "Craft the rich text element1": {
            "main": [
                [
                    {
                        "node": "Final Notion post data",
                        "type": "main",
                        "index": 1
                    }
                ]
            ]
        },
        "Add Webflow item id to Notion data": {
            "main": [
                [
                    {
                        "node": "Update in \"Blog Posts\"",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Data transporter, Notion posts to sync1": {
            "main": [
                [
                    {
                        "node": "Compare by slug1",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Slug uniqueness checker and differentiator1": {
            "main": [
                [
                    {
                        "node": "For each blog post1",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        }
    }
}
                                

Workflows Similaires

Optimisation de la gestion des Pull Requests avec Pipedrive

Ce workflow permet d'automatiser le suivi des Pull Requests GitHub en les intégrant directement dans Pipedrive. Lorsqu'...

Synchronisation Automatisée des Événements Discord et Google Calendar

Ce workflow puissant automatise la synchronisation des événements programmés sur Discord avec Google Calendar, garant...

Automatisez les commandes Squarespace vers Google Sheets

Ce workflow automatise le processus de récupération des commandes de Squarespace et leur enregistrement dans Google Sh...