{
  "id": "fXytAwTjbHWbm4r7",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Content Atomizer",
  "tags": [
    {
      "id": "xRJNyiRIpAsEzL8y",
      "name": "Olostep",
      "createdAt": "2026-01-31T11:17:46.807Z",
      "updatedAt": "2026-01-31T11:17:46.807Z"
    }
  ],
  "nodes": [
    {
      "id": "9eb8d864-860a-47dc-b792-8f85f3d25db4",
      "name": "On form submission",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        0,
        0
      ],
      "parameters": {
        "options": {},
        "formTitle": "Content Atomizer",
        "formFields": {
          "values": [
            {
              "fieldLabel": "article url"
            }
          ]
        },
        "formDescription": "Enter the article URL, please."
      },
      "typeVersion": 2.5
    },
    {
      "id": "db0ee131-25d0-4074-be6c-a4765fe1f530",
      "name": "Core Extractor",
      "type": "@n8n/n8n-nodes-langchain.googleGemini",
      "position": [
        384,
        0
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "models/gemini-2.5-flash",
          "cachedResultName": "models/gemini-2.5-flash"
        },
        "options": {},
        "messages": {
          "values": [
            {
              "role": "model",
              "content": "You are a helpful, intelligent assistant"
            },
            {
              "content": "I am providing a transcript/article from a piece of content. Extract the 5 most 'shareable' insights, 3 surprising statistics (if any), and the overall 'lesson' of the content. Summarize each in clear, simple bullet points. Avoid filler words and keep the tone objective."
            },
            {
              "content": "=Transcript/Article: {{ $json.markdown_content }}"
            }
          ]
        },
        "builtInTools": {}
      },
      "credentials": {
        "googlePalmApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "37429b45-c625-41fc-a4ac-ec6bb30d9227",
      "name": "LinkedIn",
      "type": "@n8n/n8n-nodes-langchain.googleGemini",
      "position": [
        752,
        -288
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "models/gemini-2.5-flash",
          "cachedResultName": "models/gemini-2.5-flash"
        },
        "options": {},
        "messages": {
          "values": [
            {
              "role": "model",
              "content": "You are a professional, intelligent, LinkedIn post writer."
            },
            {
              "content": "=Using the core insights provided, write a high-authority LinkedIn post.\n\nRules:\n- Start with a 'Pattern Interrupt' hook (a bold claim or a question).\n- Use a 'Problem-Agitation-Solution' structure.\n- Use bullet points for the main tips.\n- End with a 'Call to Conversation' question.\n\nTone: Professional, slightly opinionated, and helpful."
            },
            {
              "content": "=Core Insights: {{ $json.content.parts.last().text }}"
            }
          ]
        },
        "builtInTools": {}
      },
      "credentials": {
        "googlePalmApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "36e5529d-155c-4fe4-8c02-d9a3677b8c16",
      "name": "Twitter (X)",
      "type": "@n8n/n8n-nodes-langchain.googleGemini",
      "position": [
        752,
        -96
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "models/gemini-2.5-flash",
          "cachedResultName": "models/gemini-2.5-flash"
        },
        "options": {},
        "messages": {
          "values": [
            {
              "role": "model",
              "content": "You are a professional, intelligent, Twitter content writer."
            },
            {
              "content": "=Using the provided insights, create a 6-tweet Twitter thread.\n\n- Tweet 1: The 'Hook'. Must state a clear benefit of reading the thread.\n- Tweets 2-5: Each tweet must cover one specific insight. Use short sentences (under 15 words).\n- Tweet 6: A summary 'TL;DR' tweet and a CTA to follow for more. Use 1-2 relevant emojis per tweet maximum.\n\nRules:\n- Do not output an intro, start directly with the content. Do not say something like \"here's a 6-tweet twitter thread....\"."
            },
            {
              "content": "=Core Insights: {{ $json.content.parts.last().text }}"
            }
          ]
        },
        "builtInTools": {}
      },
      "credentials": {
        "googlePalmApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "8cde65d2-63ff-4447-bed2-17fdcb5c0f57",
      "name": "Reddit",
      "type": "@n8n/n8n-nodes-langchain.googleGemini",
      "position": [
        752,
        96
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "models/gemini-2.5-flash",
          "cachedResultName": "models/gemini-2.5-flash"
        },
        "options": {},
        "messages": {
          "values": [
            {
              "role": "model",
              "content": "You are an active, long-time Reddit user known for providing high-value, 'no-fluff' content. Your goal is to rewrite the provided insights into a post that feels human, slightly informal, and deeply helpful."
            },
            {
              "content": "=Using the provided insights, draft a Reddit post for a relevant community (like r/SaaS, r/Marketing, or r/Entrepreneur).\n\nStructure Requirements:\n\n- The Title: Do not use 'Clickbait'. Use 'Value-bait'. (e.g., 'What I learned after [X]', 'A simple framework for [Y]', or 'I analyzed [Z] so you don't have to').\n- The Hook: Start with a personal anecdote or a blunt realization.\n- The Meat: Use Markdown (bolding and bullet points) to make it scannable. Reddit users love lists.\n- The 'Anti-Pitch': Do not link to anything in the main post. State: 'I'll leave a link to the full breakdown in the comments if anyone is interested' (this avoids spam filters).\n\nTone: Humble, transparent, and ready for debate. Admit if something was a failure or a hard lesson.\n\nRules:\n- Do not output an intro, start with the title directly. Do not output something like \"here's a draft for....\"."
            },
            {
              "content": "=Core Insights: {{ $json.content.parts.last().text }}"
            }
          ]
        },
        "builtInTools": {}
      },
      "credentials": {
        "googlePalmApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "e9d4a38a-6ee2-4847-a3eb-0fb489478e20",
      "name": "FAQ",
      "type": "@n8n/n8n-nodes-langchain.googleGemini",
      "position": [
        752,
        288
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "models/gemini-2.5-flash",
          "cachedResultName": "models/gemini-2.5-flash"
        },
        "options": {},
        "messages": {
          "values": [
            {
              "role": "model",
              "content": "=You are a helpful, intelligent, FAQ generator."
            },
            {
              "content": "=Using the technical analysis and the raw documentation, generate a user-friendly FAQ guide.\n\nStructure:\n\n- The 'Quick Start' Answer: A 2-sentence answer to the 'Core Objective' identified in Step 3.\n- Top 5 'How-To' Questions: Transform the documentation steps into questions (e.g., 'How do I authenticate my first request?' or 'Where do I find my API key?'). Provide short, jargon-free answers for each.\n- Troubleshooting Section: Create 3 'What if...' scenarios based on the friction points (e.g., 'What if I get a 401 error?').\n- Code Snippet (Simplified): If there is code, provide a 'Minimum Viable Code' example that is commented for a beginner.\n\nTone: Helpful, patient, and clear. Avoid passive voice.\n\nRules:\n- Do not output an intro. Do not output something like \"here's a user-friendly FAQ guide for.....\"."
            },
            {
              "content": "=Article Raw Content: {{ $('Scrape Article').item.json.markdown_content }}\n\nCore Insights: {{ $json.content.parts.last().text }}\n"
            }
          ]
        },
        "builtInTools": {}
      },
      "credentials": {
        "googlePalmApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "2e404f50-43aa-4ec7-8db4-0d9a6756364e",
      "name": "Scrape Article",
      "type": "n8n-nodes-olostep.olostepScrape",
      "position": [
        192,
        0
      ],
      "parameters": {
        "url_to_scrape": "={{ $json['article url'] }}"
      },
      "credentials": {
        "olostepScrapeApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "542fefa5-1a96-40e0-b41d-c6d7841e7468",
      "name": "Markdown",
      "type": "n8n-nodes-base.markdown",
      "position": [
        1168,
        48
      ],
      "parameters": {
        "mode": "markdownToHtml",
        "options": {
          "tables": true,
          "simplifiedAutoLink": true,
          "completeHTMLDocument": true
        },
        "markdown": "={{ $json.content }}"
      },
      "typeVersion": 1
    },
    {
      "id": "fe25cfb8-fa2f-451b-af41-72206547f2ac",
      "name": "Transfer HTML to Doc",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1152,
        288
      ],
      "parameters": {
        "url": "=https://www.googleapis.com/drive/v3/files/{{ $json.id }}/copy?fields=id,name,mimeType,webViewLink",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"name\":     \"Content Atomizer Report\",\n  \"mimeType\": \"application/vnd.google-apps.document\"\n}",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "googleDriveOAuth2Api"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "8eb55892-d291-412c-945a-99fcd67f794b",
      "name": "Generate HTML Binary File",
      "type": "n8n-nodes-base.code",
      "position": [
        1360,
        48
      ],
      "parameters": {
        "jsCode": "// Loop over alle items\nreturn $input.all().map(item => {\n  const html = $input.first().json.data;            // jouw HTML-string\n  // Zet \u2018m om naar een Buffer\n  item.binary = {\n    htmlFile: {\n      data: Buffer.from(html, 'utf8').toString('base64'),\n      mimeType: 'text/html',\n      fileName: 'output.html'\n    }\n  };\n  // Je hebt verder geen JSON nodig, dus ruim op:\n  return { json: {}, binary: item.binary };\n});"
      },
      "typeVersion": 2
    },
    {
      "id": "2ae5ac03-35c6-496f-9867-7124a9b3ab19",
      "name": "Share link & email",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        1568,
        288
      ],
      "parameters": {
        "fileId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('Transfer HTML to Doc').item.json.id }}"
        },
        "options": {
          "emailMessage": "=Hey,\n\nYour \"Content Atomizer\" report is ready, find it at this link."
        },
        "operation": "share",
        "permissionsUi": {
          "permissionsValues": {
            "role": "reader",
            "type": "user",
            "emailAddress": "user@example.com"
          }
        }
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "b632dc23-d82e-479d-a3bc-4f785d181194",
      "name": "Delete html file",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        1360,
        288
      ],
      "parameters": {
        "fileId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('Upload html file').item.json.id }}"
        },
        "options": {},
        "operation": "deleteFile"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "66ed0d36-cab6-4c0d-a702-b1a4aa5ce40a",
      "name": "Upload html file",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        1552,
        48
      ],
      "parameters": {
        "name": "working isa",
        "driveId": {
          "__rl": true,
          "mode": "list",
          "value": "My Drive"
        },
        "options": {},
        "folderId": {
          "__rl": true,
          "mode": "list",
          "value": "root",
          "cachedResultUrl": "https://drive.google.com/drive",
          "cachedResultName": "/ (Root folder)"
        },
        "inputDataFieldName": "htmlFile"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "d273f134-e629-4f04-80da-25380a96c043",
      "name": "Final Document",
      "type": "n8n-nodes-base.set",
      "position": [
        1568,
        -208
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "360884f3-bf2b-49ba-9b32-6a555cc511d7",
              "name": "content",
              "type": "string",
              "value": "=# Content Atomizer Report\nthis report is generated for the article: {{ $('On form submission').item.json['article url'] }}\n\n## LinkedIn\n\n{{ $json.text[0] }}\n\n## Twitter (X)\n\n{{ $json.text[1] }}\n\n## Reddit\n\n{{ $json.text[2] }}\n\n## FAQ\n\n{{ $json.text[3] }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "156f2b61-63d1-4f93-87b2-4a961fa38f4a",
      "name": "Merge",
      "type": "n8n-nodes-base.merge",
      "position": [
        1184,
        -240
      ],
      "parameters": {
        "numberInputs": 4
      },
      "typeVersion": 3.2
    },
    {
      "id": "83b968bb-8b02-4c81-9076-7683c17d5e50",
      "name": "Aggregate",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        1376,
        -208
      ],
      "parameters": {
        "options": {},
        "fieldsToAggregate": {
          "fieldToAggregate": [
            {
              "fieldToAggregate": "content.parts[0].text"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "2084a4ab-8aa2-46c7-8494-895541f99c49",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -816,
        -384
      ],
      "parameters": {
        "width": 704,
        "height": 960,
        "content": "## Content Atomizer: Turn Any Article into a Multi-Channel Social Campaign\n\nStop spending hours manually repurposing long-form content. The **Content Atomizer.json** workflow takes a single article URL and automatically \"atomizes\" it into high-authority LinkedIn posts, Twitter (X) threads, Reddit-ready discussions, and user-friendly FAQs. Using **Gemini 2.5 Flash** and **Olostep**, it extracts the core value and formats it for maximum engagement across different platforms.\n\n---\n\n### Who\u2019s it for?\n*   **Content Marketers:** Scale your distribution without increasing your headcount.\n*   **SaaS Founders:** Turn technical documentation or blog posts into marketing collateral.\n*   **Social Media Managers:** Quickly generate platform-specific drafts that follow proven engagement frameworks.\n*   **Thought Leaders:** Maintain a consistent presence across multiple channels with minimal effort.\n\n### How it works / What it does\n1.  **Trigger:** Submit an article URL via an n8n Form.\n2.  **Scrape:** The **Olostep** node fetches the full markdown content of the article.\n3.  **Core Extraction:** Gemini identifies the 5 most shareable insights and key statistics.\n4.  **Multi-Channel Generation:** Four parallel Gemini nodes draft content tailored for:\n    *   **LinkedIn:** Uses a \"Problem-Agitation-Solution\" (PAS) structure with a pattern-interrupt hook.\n    *   **Twitter (X):** Creates a 6-tweet thread with a dedicated hook and TL;DR.\n    *   **Reddit:** Drafts a \"value-bait\" post formatted for community engagement (r/SaaS, r/Marketing).\n    *   **FAQ:** Generates a \"Quick Start\" guide and troubleshooting snippets based on the article content.\n5.  **Delivery:** The workflow aggregates all drafts, converts them into a Google Doc, and emails the link directly to you.\n\n### How to set up\n1.  **Credentials:** Connect your credentials for **Google Gemini (PaLM)**, **Olostep**, and **Google Drive**.\n2.  **Form Trigger:** Activate the workflow to generate your unique n8n form URL.\n3.  **Email Configuration:** Update the \"Share link & email\" node with your specific email address to receive the final report notifications.\n\n### Requirements\n*   **n8n version:** 1.0+\n*   **Google Gemini API Key:** For analysis and creative writing.\n*   **Olostep API Key:** For high-quality web scraping and markdown conversion.\n*   **Google Drive (OAuth2):** For document generation and sharing.\n\n### How to customize the workflow\n*   **Tone of Voice:** Modify the \"System Message\" inside the LinkedIn, Twitter, or Reddit nodes to match your personal brand or company voice.\n*   **Target Platforms:** You can easily add more branches (e.g., for Instagram Reels scripts or Newsletter summaries) by duplicating one of the Gemini nodes.\n*   **Output Format:** Instead of Google Docs, you can swap the final nodes for Slack, Discord, or a Notion database to fit your existing workspace."
      },
      "typeVersion": 1
    },
    {
      "id": "fd0ee2fb-8912-48f9-8040-676aa53a1938",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -32,
        -80
      ],
      "parameters": {
        "color": 7,
        "width": 176,
        "height": 224,
        "content": "## Input form\nEnter the article URL"
      },
      "typeVersion": 1
    },
    {
      "id": "f60eaf19-127a-4b05-b7ff-6adec0a5c308",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        144,
        -80
      ],
      "parameters": {
        "color": 7,
        "width": 192,
        "height": 224,
        "content": "## Olostep API \nScrapes the article"
      },
      "typeVersion": 1
    },
    {
      "id": "1fee9f01-eb2c-4a69-8772-dca55dfe8999",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        336,
        -128
      ],
      "parameters": {
        "color": 7,
        "width": 304,
        "height": 272,
        "content": "## Core extractor\nExtracts the most 'shareable' insights, surprising statistics (if any), and the overall 'lesson' of the content"
      },
      "typeVersion": 1
    },
    {
      "id": "e5c0a490-5357-4f26-8771-ce0d89db4291",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        640,
        -432
      ],
      "parameters": {
        "color": 7,
        "width": 432,
        "height": 864,
        "content": "## Content creation\nUses the core insights and turn it into high-authority LinkedIn posts, Twitter (X) threads, Reddit-ready discussions, and user-friendly FAQs"
      },
      "typeVersion": 1
    },
    {
      "id": "8c923f28-6e75-4a30-8bbe-1dea12ace4ef",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1072,
        -320
      ],
      "parameters": {
        "color": 7,
        "width": 656,
        "height": 288,
        "content": "## Data formating\nMerge all the content created from the last step and make it ready for the final report"
      },
      "typeVersion": 1
    },
    {
      "id": "4e80c5dc-b0ae-4532-9584-0b19a621b554",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1504,
        192
      ],
      "parameters": {
        "color": 7,
        "width": 256,
        "height": 240,
        "content": "## Share & Notify\nShares the doc and sends an email with the link."
      },
      "typeVersion": 1
    },
    {
      "id": "8261602e-f5c1-460d-ba15-e12211fa328c",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1072,
        -32
      ],
      "parameters": {
        "color": 7,
        "width": 432,
        "height": 224,
        "content": "## Markdown to HTML\nConverts Markdown content into HTML and creates an HTML binary file."
      },
      "typeVersion": 1
    },
    {
      "id": "e3797446-bcc2-4cd0-bd27-d09ac0219974",
      "name": "Sticky Note8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1072,
        192
      ],
      "parameters": {
        "color": 7,
        "width": 432,
        "height": 240,
        "content": "## Upload The File\nConverts the HTML file to google doc format and re-upload the file. And then deletes the old HTML file."
      },
      "typeVersion": 1
    },
    {
      "id": "97d99c56-1d51-4ddc-ae68-fd9deea6d6fe",
      "name": "Sticky Note9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1504,
        -32
      ],
      "parameters": {
        "color": 7,
        "width": 256,
        "height": 224,
        "content": "## Upload The File\nUploads the HTML file"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "binaryMode": "separate",
    "executionOrder": "v1"
  },
  "versionId": "a6ff9509-d869-4e41-ba2b-31db8b6a3f83",
  "connections": {
    "FAQ": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 3
          }
        ]
      ]
    },
    "Merge": {
      "main": [
        [
          {
            "node": "Aggregate",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Reddit": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 2
          }
        ]
      ]
    },
    "LinkedIn": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Markdown": {
      "main": [
        [
          {
            "node": "Generate HTML Binary File",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Aggregate": {
      "main": [
        [
          {
            "node": "Final Document",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Twitter (X)": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Core Extractor": {
      "main": [
        [
          {
            "node": "LinkedIn",
            "type": "main",
            "index": 0
          },
          {
            "node": "Reddit",
            "type": "main",
            "index": 0
          },
          {
            "node": "Twitter (X)",
            "type": "main",
            "index": 0
          },
          {
            "node": "FAQ",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Final Document": {
      "main": [
        [
          {
            "node": "Markdown",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Scrape Article": {
      "main": [
        [
          {
            "node": "Core Extractor",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Delete html file": {
      "main": [
        [
          {
            "node": "Share link & email",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Upload html file": {
      "main": [
        [
          {
            "node": "Transfer HTML to Doc",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "On form submission": {
      "main": [
        [
          {
            "node": "Scrape Article",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Transfer HTML to Doc": {
      "main": [
        [
          {
            "node": "Delete html file",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate HTML Binary File": {
      "main": [
        [
          {
            "node": "Upload html file",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}