Générateur de contenu

Avancé

Ceci est unContent Creation, Multimodal AIworkflow d'automatisation du domainecontenant 22 nœuds.Utilise principalement des nœuds comme Set, Code, Webhook, Agent, OpenAi. Générateur de contenu de médias sociaux basé sur l'IA, utilisant une approche de stratégie avec le modèle GPT-4

Prérequis
  • Point de terminaison HTTP Webhook (généré automatiquement par n8n)
  • Clé API OpenAI
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": "JjMWwStuPbtjBfyk",
  "meta": {
    "instanceId": "3c35a703d75886d08705c211ee107a7513430dd05494ec0c569f28570a3768fa"
  },
  "name": "Content Generator",
  "tags": [
    {
      "id": "TOmp11D0RTZnlXKe",
      "name": "Creator Hub",
      "createdAt": "2025-07-27T06:39:31.509Z",
      "updatedAt": "2025-07-27T06:39:31.509Z"
    }
  ],
  "nodes": [
    {
      "id": "54370848-f544-4e92-a669-ed3d77832a8a",
      "name": "Générer du Contenu",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        1872,
        1056
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o",
          "cachedResultName": "GPT-4O"
        },
        "options": {
          "topP": 0.9,
          "temperature": 0.6,
          "presence_penalty": 0.6,
          "frequency_penalty": 0.3
        },
        "messages": {
          "values": [
            {
              "role": "system",
              "content": "=# System Prompt for Generate Content Block\n\n## Context\nYou are an elite AI content strategist specializing in both social media and blog content creation for creators, coaches, solopreneurs, and small business owners. Your users struggle with limited time, creative blocks, and posting confidence. They depend on you to produce ONE emotionally resonant, platform-native piece of content that feels authentic, engaging, and ready to publish without any editing required.\n\n## Role\nYou are not a template generator or draft creator. You are a seasoned digital content creator who understands:\n- Human psychology and emotional triggers\n- Platform-specific best practices and engagement patterns\n- Current social media trends and content rhythm\n- Authentic storytelling that builds audience trust\n- What makes content perform well and drive meaningful reactions\n\n## Task\nUsing the structured inputs provided, generate **ONE complete, fully polished piece of content** that matches the specified platform requirements:\n\n**For Social Media Platforms** (Instagram, LinkedIn, X, Facebook, TikTok):\n- Create a ready-to-publish social media post\n- Follow platform-specific word count guidelines\n- Include engaging hook, narrative, value, and CTA\n- Add relevant hashtags\n\n**For Blog Posts**:\n- Create a complete blog article with proper structure\n- Include compelling headline, introduction, body sections, and conclusion\n- Follow blog word count guidelines (700-1,500 words standard)\n- Maintain educational and engaging tone throughout\n\n### Input Variables:\n- **Intent**: `{{ $json.intent }}`\n- **Strategic Reasoning**: `{{ $json.strategicreasioning }}`\n- **Emotional Framing**: `{{ $json.emotional_summary }}`\n- **Platform**: `{{ $json.Platform }}`\n- **Niche**: `{{ $json.Niche }}`\n- **Tone**: `{{ $json.Tone }}`\n- **Objective**: '{{ $json.objective }}',\n- **key_details**: '{{ $json.key_details }}'\n\n**Content Outline Components:**\n- **Hook Idea**: `{{ $json.HookIdea }}`\n- **Story/Idea Summary**: `{{ $json.IdeaSummary }}`\n- **Pivot/Punchline**: `{{ $json.Punchline }}`\n- **CTA Idea**: `{{ $json.cta_idea }}`\n\n### Output Requirements:\n\n**Platform-Specific Word Count Guidelines:**\n- **Instagram**: 125-150 words (optimal engagement), max 2,200 characters\n- **LinkedIn**: 150-300 words (professional posts), max 3,000 characters  \n- **X (Twitter)**: 40-50 words, max 280 characters\n- **Facebook**: 40-80 words (highest engagement), up to 500 words acceptable\n- **TikTok**: 100-150 characters (brief and punchy)\n- **YouTube**: 125-175 words (video descriptions)\n- **Blog Posts**: 700-1,500 words (standard), 300-600 words (short-form), 1,500+ words (long-form)\n\n**Content Creation Strategy:**\n1. **Use the Hook Idea** as your opening to immediately capture attention\n2. **Build from the Story/Idea Summary** to develop your main content body\n3. **Incorporate the Pivot/Punchline** as your key insight or turning point\n4. **End with the CTA Idea** to drive engagement and interaction\n5. **Match the Platform, Niche, and Tone** specifications exactly\n\n**Quality Standards:**\n- Deliver ONE polished, publication-ready piece of content\n- Sound human, not AI-generated\n- Be platform-optimized and engaging\n- Include natural flow and proper formatting\n- Use emojis only when they enhance readability (social media only)\n- Avoid generic filler phrases or overly academic tone\n- No section labels in final output - deliver seamless content\n- For social media: Include 3-5 trending, niche-relevant hashtags\n- For blogs: Use proper headings, subheadings, and paragraph structure\n\n**Hashtag Guidelines:**\n- Use smart, trending hashtags relevant to the niche\n- Avoid overused tags like #love, #instagood, #followme\n- Simulate current trends if specific tags aren't provided\n- Add tags {{ $json.HashtagThemes }}, but **DO NOT** duplicate\n\n**Tone Matching:**\n- **Raw & Relatable**: Unfiltered, personal, authentically messy\n- **Fun & Bold**: Confident, witty, rebellious energy\n- **Inspirational**: Uplifting, purpose-driven, emotional\n- **Professional**: Polished, value-rich, LinkedIn-appropriate\n- **Educational**: Informative, clear, helpful guidance\n\n## Format Rules\n- Output ONE complete, polished piece of content ready for immediate publication\n- No explanatory text, section headers, or multiple options in your response\n- Match the exact Platform, Niche, and Tone specifications from inputs\n- Use the provided outline components strategically in your content structure\n- Ensure the content delivers maximum engagement potential for the specified platform\n- Include strategic emotional elements from the framing provided\n- Content should be copy-paste ready with perfect formatting\n- For blogs: Include proper markdown formatting with headers and structure\n- For social media: Follow platform-specific formatting conventions\n\n## Example Output Structure:\n\n**For Social Media Posts:**\n```\n[Hook from hook_idea - attention-grabbing opener]\n\n[Content body inspired by story_or_idea_summary - 2-5 lines of narrative/insight]\n\n[Pivot/punchline integration - key takeaway that delivers value]\n\n[CTA from cta_idea - encouraging interaction]\n\n#RelevantHashtag #NicheTrend #EngagementTag\n```\n\n**For Blog Posts:**\n```\n# [Compelling Headline Based on Hook Idea]\n\n[Opening paragraph using hook_idea to draw readers in]\n\n[Main content sections developing the story_or_idea_summary with proper subheadings and detailed explanations]\n\n[Integration of pivot_or_punchline as key insight]\n\n[Conclusion incorporating cta_idea for reader engagement]\n```\n\nTransform the provided strategic inputs and outline components into ONE compelling, authentic, fully polished piece of content that your target audience will engage with, share, and remember. This should be publication-ready content that requires no further editing."
            }
          ]
        }
      },
      "credentials": {
        "openAiApi": {
          "id": "PzzLblAykQPFIDZf",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.8
    },
    {
      "id": "b0a2fc7d-7e0f-4cb8-8560-2147a4d9fe29",
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "position": [
        16,
        576
      ],
      "webhookId": "4a5295e0-b881-4696-8b06-00c97eb12c7a",
      "parameters": {
        "path": "4a5295e0-b881-4696-8b06-00c97eb12c7a",
        "options": {
          "ignoreBots": true,
          "allowedOrigins": "*"
        },
        "httpMethod": "POST",
        "responseMode": "responseNode"
      },
      "typeVersion": 2
    },
    {
      "id": "2c3bce39-d35b-4ebd-9656-3c491b82bbdb",
      "name": "Modifier les Champs",
      "type": "n8n-nodes-base.set",
      "position": [
        352,
        576
      ],
      "parameters": {
        "options": {
          "ignoreConversionErrors": true
        },
        "assignments": {
          "assignments": [
            {
              "id": "94334cd1-6a44-4a0d-9c00-bd59e57b8081",
              "name": "webInput",
              "type": "array",
              "value": "={{ $item(\"0\").$node[\"Webhook\"].json[\"body\"][\"webInput\"]}}"
            },
            {
              "id": "975005e9-b372-422e-a84d-97e992d930cb",
              "name": "sessionId",
              "type": "string",
              "value": "={{ Date.now() + Math.random().toString(36).substring(2, 15) }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "f4f61a04-93e5-44c0-b1bd-88462edc2d02",
      "name": "Plan",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        2864,
        512
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1",
          "cachedResultName": "GPT-4.1"
        },
        "options": {
          "topP": 0.9,
          "maxTokens": 400,
          "temperature": 0.7,
          "presence_penalty": 0.3,
          "frequency_penalty": 0.1
        },
        "messages": {
          "values": [
            {
              "content": "={{ $('Generate Intent').item.json.output.intent }}\n{{ $('Format Emotional Data').item.json.emotional_summary }}\n{{ $json.objective }}\n{{ $json.key_details }}"
            },
            {
              "role": "system",
              "content": "=You are a copy strategist planning the structure of a high-performing post.\n\nUsing the intent and emotional framing, create a post outline with:\n- Hook idea (short, scroll-stopping)\n- Story or idea summary\n- Pivot or punchline\n- CTA idea (engagement-driven)\n- Hashtag themes or inspiration, only when the platform requested is for X or LinkedIn. Or, unless specifically asked for.\n\n{{ $('Generate Intent').item.json.output.intent }}\n{{ $('Format Emotional Data').item.json.emotional_summary }}\n\n\n**DO NOT** generate the full content\n** DO NOT** hallucinate\n\nAdd the below fields to the JSON response\n\nsessionId: {{ $json.sessionId }}\nPlatform: {{ $json.platform }}\nNiche: {{ $json.niche }}\nTone: {{ $json.tone }}\n\nUse below JSON key names when outputing the data\n\n\"Hook idea\"\n\"Story or idea summary\"\n\"Pivot or punchline\"\n\"CTA idea\"\n\"Hashtag themes\"\n\"Key Phrases\"\n\"Emotional Journey\"\n\"Core Emotion\"\n\n\n\n \n\n\n\n\n"
            }
          ]
        },
        "jsonOutput": true
      },
      "credentials": {
        "openAiApi": {
          "id": "PzzLblAykQPFIDZf",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.8
    },
    {
      "id": "7f06f9bb-d850-4691-b579-136ee318bb15",
      "name": "Cadrage Émotionnel",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        2112,
        560
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1",
          "cachedResultName": "GPT-4.1"
        },
        "options": {
          "topP": 0.9,
          "temperature": 0.3
        },
        "messages": {
          "values": [
            {
              "role": "system",
              "content": "=You are a copywriter skilled in emotional marketing. Given the reasoning below, define how the post should emotionally connect with the reader.\n\n\n\nUse the below parameters when creating the emotional framing\n{{ $json.message.content }}\n\n\nUsing the user’s prompt and reasoning, define:\n- Core emotion to evoke (e.g. hope, frustration, courage, belonging)\n- Emotional arc (e.g. pain → relief, stuck → empowered)\n- Tone modifiers (e.g. raw, bold, warm, sarcastic)\n- A few emotionally charged phrases that match this feeling\n\nThis framing will help shape the voice and depth of the post.\n\n\nAdd the below fields to the response output\n\nplatform: {{ $json.message.content.platform }}\nniche: {{ $json.message.content.niche }}\ntone:  {{ $json.message.content.tone }}\nobjective: {{ $json.message.content.objective }}\ndurations: {{ $json.message.content.durations }}\nkey_details: {{ $json.message.content.key_details }}\nsessionId: {{ $json.message.content.sessionId }}\n\n"
            }
          ]
        },
        "jsonOutput": true
      },
      "credentials": {
        "openAiApi": {
          "id": "PzzLblAykQPFIDZf",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.8
    },
    {
      "id": "fddb6445-c98c-483d-aee5-9ed7ffcf828b",
      "name": "Répondre à Webhook",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        2640,
        1056
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 1.4
    },
    {
      "id": "56fa1304-59ff-4468-bc2e-47e62aea60b4",
      "name": "stringifyJSON",
      "type": "n8n-nodes-base.code",
      "position": [
        2336,
        1056
      ],
      "parameters": {
        "jsCode": "// Loop over input items and stringify the JSON of each one\nfor (const item of $input.all()) {\n  item.json.myStringifiedField = JSON.stringify(item.json.someObject);\n}\nreturn $input.all();"
      },
      "typeVersion": 2
    },
    {
      "id": "8400cde3-f59b-4eec-bb07-6347fd85aef8",
      "name": "Extracteur d'Informations",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        672,
        560
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini",
          "cachedResultName": "GPT-4.1-MINI"
        },
        "options": {
          "topP": 0.8,
          "maxTokens": 300,
          "temperature": 0.4,
          "presence_penalty": 0.1,
          "frequency_penalty": 0.1
        },
        "messages": {
          "values": [
            {
              "content": "={{ $json.webInput }}"
            },
            {
              "role": "system",
              "content": "=You are a brand strategist helping clarify a user's content goal.\n\nFrom the input, extract the following clearly:\n- Platform (Instagram, LinkedIn, X, etc.)\n- Niche or industry (e.g. fitness coach, skincare, SaaS)\n- Type of post (e.g. story, tip, motivation, carousel)\n- Brand tone (e.g. raw, witty, bold, inspirational)\n- Audience type (e.g. solopreneurs, moms, Gen Z, founders)\n- Objective (e.g. engagement, trust, relatability, sales)\n- durations (e.g. 2 minutes, 1 week, 1 month, 1 year)\n- key details (e.g. scroll-stopping, eye-catching, high-tech)\n\nInclude the original user prompt\nInclude the sessionId = {{ $json.sessionId || Date.now() + Math.random().toString(36).substring(2, 15)}} in the response\n\n\nOutput example:\n\n{\n\n  \"original_prompt\": \"generate a linkedin post about n8n workflow I just created on How to generate content using AI\",\n  \"sessionId\": \"{{ $json.sessionId }}\",\n  \"platform\": \"LinkedIn\",\n  \"niche_or_industry\": \"Technology / Automation / AI Content Creation\",\n  \"type_of_post\": \"Informative / Educational\",\n  \"brand_tone\": \"Professional\",\n  \"audience_type\": \"Professionals, Marketers, Content Creators, Automation Enthusiasts\",\n  \"objective\": \"Engagement and Trust Building\"\n\n}\n\n\n"
            },
            {
              "role": "assistant",
              "content": "Tone:Raw & Relatable\t\t\t\nWriting Style: Unfiltered, personal, messy-in-a-good-way\n\nTone: Fun & Bold\t\t\nWriting Style: Confident, witty, rebellious\n\nTone: Inspirational\t\nWriting Style: Uplifting, purpose-driven, emotional\n\nTone: Professional\nWriting Style: Polished, value-rich, LinkedIn-style\n\nTone: Educational \nWriting Style: Informative, clear, helpful"
            }
          ]
        },
        "jsonOutput": true
      },
      "credentials": {
        "openAiApi": {
          "id": "PzzLblAykQPFIDZf",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.8
    },
    {
      "id": "50849995-f5f1-419d-8a6a-506408fab2af",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        1152,
        896
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1",
          "cachedResultName": "gpt-4.1"
        },
        "options": {
          "topP": 0.7,
          "maxRetries": 2,
          "temperature": 0.2,
          "presencePenalty": 0,
          "frequencyPenalty": 0
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "5527e9da-4415-4295-a90a-2990640d7272",
      "name": "Générer l'Intention",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        1168,
        560
      ],
      "parameters": {
        "text": "={{ $json.message.content.original_prompt }}",
        "options": {
          "systemMessage": "=You are a helpful assistant who can create the **intent** from the prompt into a paragraph format. Use platform, niche, type of post, audience, objective when creating the intent.\n\nUse the following parameters when generating the intent\n\n{{ $json.message.content.platform }}\n{{ $json.message.content.niche_or_industry }}\n{{ $json.message.content.type_of_post }}\n{{ $json.message.content.brand_tone }}\n{{ $json.message.content.audience_type }}\n{{ $json.message.content.objective }}\n{{ $json.message.content.durations || ''}}\n{{ $json.message.content.key_details || ''}}\n\nconstraints:\nDO NOT change the context\nDO NOT hallucinate\nDo Not generate the content\n**ONLY** create the intent and return. \n**USE** the structured output to respond\n\nsessionID = {{ $json.message.content.sessionId }}\noriginal_prompt = {{ $json.message.content.original_prompt }}\n\naudience_type = {{ $json.message.content.audience_type }}\nobjective = {{ $json.message.content.objective }}",
          "returnIntermediateSteps": true
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 2.1
    },
    {
      "id": "1ba2ef19-bc82-40fe-9b9d-dd34a9bcce1c",
      "name": "Analyseur de Sortie Structurée",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        1344,
        880
      ],
      "parameters": {
        "jsonSchemaExample": "{\n\t\"intent\": \"<paragraph generated by AI>\",\n    \"platform\": \"<include from original message>\",\n    \"niche\": \"<include from original message>\",\n    \"tone\": \"<Include from original message>\",\n\t\"user_prompt\": \"<original user prompt>\",\n    \"objective\": \"<objective>\",\n    \"durations\": \"<durations>\",\n    \"key_details\": \"<key details>\",\n    \"audience_type\": \"<audience_type>\",\n    \"sessionId\": \"<include the sessionId>\"\n}"
      },
      "typeVersion": 1.3
    },
    {
      "id": "f4a93ee4-6220-4aa7-81f0-202ec7a896b3",
      "name": "Stratégie",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        1664,
        560
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1",
          "cachedResultName": "GPT-4.1"
        },
        "options": {
          "topP": 0.9,
          "maxTokens": 400,
          "temperature": 0.6,
          "presence_penalty": 0.3,
          "frequency_penalty": 0.2
        },
        "messages": {
          "values": [
            {
              "content": "={{ $json.output.intent }}"
            },
            {
              "role": "system",
              "content": "=You are a content strategist thinking through the \"why\" behind a post.\n\nUse the below parameters when creating the reasoning\n\n{{ $json.output.intent }}\n{{ $json.output.user_prompt }}\n{{ $json.output.objective }}\n{{ $json.output.key_details }}\n\nUsing the user prompt and intent, answer:\n- What key belief or pain point are we addressing?\n- What myth or limiting mindset can we challenge?\n- What takeaway should the reader walk away with?\n- What shift in thinking will make this valuable?\n\nBe strategic and reflective — like a seasoned creator planning a meaningful post.\n**DO NOT** output the questions and answers type format.\n**THINK** and compile your response into a meaningful paragraph\n**Remember** the key details like dates, times, durations\n\n\noutput format:\n\n{\n  \"strategicreasioning\": \"<reasoning generated by AI>\",\n  \"platform\": '{{ $json.output.platform }}',\n  \"niche\": '{{ $json.output.niche }}',\n  \"tone\": '{{ $json.output.tone }}',\n  \"audience_type\": '{{ $json.output.audience_type }}',\n  \"objective\": '{{ $json.output.objective }}',\n  \"durations\": '{{ $json.output.durations }}',\n  \"key_details\": '{{ $json.output.key_details }}',\n  \"sessionId\": '{{ $json.output.sessionId }}'\n}\n\n\n\n\n\n\n"
            }
          ]
        },
        "jsonOutput": true
      },
      "credentials": {
        "openAiApi": {
          "id": "PzzLblAykQPFIDZf",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.8
    },
    {
      "id": "506e960c-b879-4517-927b-e4d7a390566b",
      "name": "Formater les Données Émotionnelles",
      "type": "n8n-nodes-base.set",
      "position": [
        2576,
        336
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "27e62464-f696-40f7-a972-3a69749fd851",
              "name": "emotional_summary",
              "type": "string",
              "value": "=Core Emotion: {{ $json.message.content.emotional_framing.core_emotion_to_evoke }}\nEmotional Journey: {{ $json.message.content.emotional_framing.emotional_arc }}\nTone Style: {{ $json.message.content.emotional_framing.tone_modifiers }}\nKey Phrases: {{ $json.message.content.emotional_framing.emotionally_charged_phrases }}"
            },
            {
              "id": "6ff43031-b3a8-4151-a4b8-cb6ec4817957",
              "name": "platform",
              "type": "string",
              "value": "={{ $json.message.content.platform }}"
            },
            {
              "id": "ed335b84-923a-41b8-9f42-dbcb2b8e845e",
              "name": "niche",
              "type": "string",
              "value": "={{ $json.message.content.niche }}"
            },
            {
              "id": "63b4614a-8dc2-4d41-9438-6557a5b7e58f",
              "name": "tone",
              "type": "string",
              "value": "={{ $json.message.content.tone }}"
            },
            {
              "id": "b6c88f76-0649-4d89-a8c3-07a40c521dc9",
              "name": "sessionId",
              "type": "string",
              "value": "={{ $json.message.content.sessionId }}"
            },
            {
              "id": "5e939d19-f5b1-4aa6-89b8-465279c0ccd6",
              "name": "durations",
              "type": "string",
              "value": "={{ $json.message.content.durations }}"
            },
            {
              "id": "6f7a87f8-2a3e-43d8-9303-c4de98ee2f2e",
              "name": "objective",
              "type": "string",
              "value": "={{ $json.message.content.objective }}"
            },
            {
              "id": "8fe107c5-043b-4b9f-9c74-587d930eb5fc",
              "name": "key_details",
              "type": "string",
              "value": "={{ $json.message.content.key_details }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "241984c1-83a1-464c-af39-c362f94d8567",
      "name": "Note Adhésive",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        0
      ],
      "parameters": {
        "width": 576,
        "height": 192,
        "content": "## 🎯 **WORKFLOW OVERVIEW**\n**Purpose**: AI-powered content creation pipeline that transforms user prompts into polished, platform-optimized content  \n**Output**: Ready-to-publish social media posts or blog articles  \n**Users**: Creators, coaches, solopreneurs, small business owners"
      },
      "typeVersion": 1
    },
    {
      "id": "dd3a2415-3ae0-4e6b-b5cc-6fddf6dacd64",
      "name": "Note Adhésive1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -16,
        240
      ],
      "parameters": {
        "width": 576,
        "height": 496,
        "content": "### 🔗 **Webhook Node**\n\n- **Purpose**: Receives content requests via HTTP POST\n- **Path**: 4a5295e0-b881-4696-8b06-00c97eb12c7a\n- **Method**: POST\n- **Response**: Use \"Respond to Webhook\" node\n- Input variables expected\n```\n{\n  \"webInput\": \"generate a LinkedIn post about n8n workflow I just created on How to generate content using AI\",\n}\n```\n\n\n\n\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "6e72012a-0a33-44e9-9471-7b795c74be9b",
      "name": "Note Adhésive2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        608,
        240
      ],
      "parameters": {
        "width": 400,
        "height": 496,
        "content": "### 🔍 **Information Extractor Node**\n\n- **Model**: GPT-4.1-Mini (cost-effective for extraction)\n- **Temperature**: 0.4 (balanced accuracy/creativity)\n- **JSON Output**: ✅ Enabled\n\n**Extracts**:\n- Platform (Instagram, LinkedIn, X, etc.)\n- Niche/Industry \n- Post Type\n- Brand Tone\n- Audience Type\n- Objective"
      },
      "typeVersion": 1
    },
    {
      "id": "22f12aad-7291-4016-ac03-87fec2f16882",
      "name": "Note Adhésive3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1104,
        240
      ],
      "parameters": {
        "color": 5,
        "width": 416,
        "height": 496,
        "content": "### 🎯 **Generate Intent Node**\n\n- **Type**: AI Agent with Structured Output Parser\n- **Model**: OpenAI Chat Model (GPT-4.1)\n- **Temperature**: 0.2 (high accuracy)\n"
      },
      "typeVersion": 1
    },
    {
      "id": "b05a1287-c940-45d3-af3e-8c38a34cae27",
      "name": "Note Adhésive4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1552,
        240
      ],
      "parameters": {
        "width": 464,
        "height": 496,
        "content": "### 📋 **Strategy Node**\n\n\n- **Model**: Choose a model suitable for you\n- **Temperature**: 0.6 (balanced reasoning)\n- **JSON Output**: ✅ Enabled\n\n\n**Purpose**: Develops strategic reasoning for content approach  \n**Key Questions Addressed**:\n- What belief/pain point to address?\n- What myth to challenge?\n- What takeaway for reader?\n- What mindset shift needed?"
      },
      "typeVersion": 1
    },
    {
      "id": "03fb8828-50a5-4c88-b01f-ebc5124960c4",
      "name": "Note Adhésive5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2048,
        240
      ],
      "parameters": {
        "color": 4,
        "width": 448,
        "height": 496,
        "content": "### ❤️ **Emotional Framing Node**\n\n- **Model**: Choose a model suitable for you \n- **Temperature**: 0.3 (consistent emotional tone)\n- **JSON Output**: ✅ Enabled\n\n\n\n**Output Structure**:\n- Core emotion to evoke\n- Emotional arc (journey)\n- Tone modifiers (array)\n- Emotionally charged phrases (array)"
      },
      "typeVersion": 1
    },
    {
      "id": "666a5f26-9075-41db-8393-7e614a41d8db",
      "name": "Note Adhésive6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2768,
        192
      ],
      "parameters": {
        "width": 464,
        "height": 512,
        "content": "### 📝 **Outline Node**\n\n\n- **Model**: Choose a model suitable for you\n- **Temperature**: 0.7 (creative structure)\n- **JSON Output**: ✅ Enabled\n\n**Output Components**:\n- `hook_idea`: Attention-grabbing opener\n- `story_or_idea_summary`: Main content guide\n- `pivot_or_punchline`: Key insight\n- `cta_idea`: Engagement driver"
      },
      "typeVersion": 1
    },
    {
      "id": "968c0fee-7789-4b0c-ac8a-96ef4c6423a0",
      "name": "Note Adhésive7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1840,
        800
      ],
      "parameters": {
        "color": 2,
        "width": 384,
        "height": 400,
        "content": "### ✨ **Generate Content Node**\n\n\n- **Model**: GPT-4O or higher (premium for final output)\n- **Temperature: 0.9 (high creativity)\n- **Frequency Penalty**: 0.3\n- **Presence Penalty**: 0.6\n\n\n**Purpose**: Creates final polished content using all previous inputs"
      },
      "typeVersion": 1
    },
    {
      "id": "451adeb0-95b5-4f71-b879-81d9e869cbff",
      "name": "Formater l'Entrée",
      "type": "n8n-nodes-base.set",
      "position": [
        1632,
        1056
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "e580d4b9-0429-4c83-ac53-cf925218a454",
              "name": "HookIdea",
              "type": "string",
              "value": "={{ $json.message.content[\"Hook idea\"] }}"
            },
            {
              "id": "729f509c-e787-4671-8830-d027c8fef03a",
              "name": "IdeaSummary",
              "type": "string",
              "value": "={{ $json.message.content[\"Story or idea summary\"] }}"
            },
            {
              "id": "5cfce3a1-29a8-42dc-bd79-35ff3d17949a",
              "name": "Punchline",
              "type": "string",
              "value": "={{ $json.message.content[\"Pivot or punchline\"] }}"
            },
            {
              "id": "d5bca11c-2bbd-4d5a-9809-625616602369",
              "name": "HashtagThemes",
              "type": "array",
              "value": "={{ $json.message.content[\"Hashtag themes\"] || [] }}"
            },
            {
              "id": "ad379413-d7b9-459d-958d-8f22fe543713",
              "name": "cta_idea",
              "type": "string",
              "value": "={{ $json.message.content[\"CTA idea\"] }}"
            },
            {
              "id": "ae2dba2d-9f44-4117-8135-0a2d7baa70b4",
              "name": "sessionId",
              "type": "string",
              "value": "={{ $json.message.content.sessionId }}"
            },
            {
              "id": "2b490195-bc94-4aad-a414-34e5c4d2b671",
              "name": "Platform",
              "type": "string",
              "value": "={{ $json.message.content.Platform }}"
            },
            {
              "id": "5ec56c08-1e99-4c10-b59d-74ced53bdf8d",
              "name": "Niche",
              "type": "string",
              "value": "={{ $json.message.content.Niche }}"
            },
            {
              "id": "e0e2b1dd-8a11-4137-8df5-a4975f9436a7",
              "name": "Tone",
              "type": "string",
              "value": "={{ $json.message.content.Tone }}"
            },
            {
              "id": "5e9be033-08c3-4825-b1de-da40016bea8c",
              "name": "intent",
              "type": "string",
              "value": "={{ $('Generate Intent').item.json.output.intent }}"
            },
            {
              "id": "12a1022e-11c4-4ca1-8bb7-52c7a2529812",
              "name": "strategicreasioning",
              "type": "string",
              "value": "={{ $('Strategy').item.json.message.content.strategicreasioning }}"
            },
            {
              "id": "aad96887-5c45-481e-85e1-cbc1ec652377",
              "name": "emotional_summary",
              "type": "string",
              "value": "={{ $('Format Emotional Data').item.json.emotional_summary }}"
            },
            {
              "id": "05348e56-7a68-4e75-9c62-9e8c2143b36e",
              "name": "objective",
              "type": "string",
              "value": "={{ $('Format Emotional Data').item.json.objective }}"
            },
            {
              "id": "ad76add3-0b5f-47bf-881e-189a019372fc",
              "name": "key_details",
              "type": "string",
              "value": "={{ $('Format Emotional Data').item.json.key_details }}"
            },
            {
              "id": "1c2913a7-ec68-44f8-9f21-0a21056e17e9",
              "name": "durations",
              "type": "string",
              "value": "={{ $('Format Emotional Data').item.json.durations }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "d60a5d1c-5e30-4f61-b463-87f443840199",
  "connections": {
    "f4f61a04-93e5-44c0-b1bd-88462edc2d02": {
      "main": [
        [
          {
            "node": "451adeb0-95b5-4f71-b879-81d9e869cbff",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "b0a2fc7d-7e0f-4cb8-8560-2147a4d9fe29": {
      "main": [
        [
          {
            "node": "2c3bce39-d35b-4ebd-9656-3c491b82bbdb",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "f4a93ee4-6220-4aa7-81f0-202ec7a896b3": {
      "main": [
        [
          {
            "node": "7f06f9bb-d850-4691-b579-136ee318bb15",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "2c3bce39-d35b-4ebd-9656-3c491b82bbdb": {
      "main": [
        [
          {
            "node": "8400cde3-f59b-4eec-bb07-6347fd85aef8",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "451adeb0-95b5-4f71-b879-81d9e869cbff": {
      "main": [
        [
          {
            "node": "54370848-f544-4e92-a669-ed3d77832a8a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "56fa1304-59ff-4468-bc2e-47e62aea60b4": {
      "main": [
        [
          {
            "node": "fddb6445-c98c-483d-aee5-9ed7ffcf828b",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "5527e9da-4415-4295-a90a-2990640d7272": {
      "main": [
        [
          {
            "node": "f4a93ee4-6220-4aa7-81f0-202ec7a896b3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "54370848-f544-4e92-a669-ed3d77832a8a": {
      "main": [
        [
          {
            "node": "56fa1304-59ff-4468-bc2e-47e62aea60b4",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "7f06f9bb-d850-4691-b579-136ee318bb15": {
      "main": [
        [
          {
            "node": "506e960c-b879-4517-927b-e4d7a390566b",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "50849995-f5f1-419d-8a6a-506408fab2af": {
      "ai_languageModel": [
        [
          {
            "node": "5527e9da-4415-4295-a90a-2990640d7272",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "506e960c-b879-4517-927b-e4d7a390566b": {
      "main": [
        [
          {
            "node": "f4f61a04-93e5-44c0-b1bd-88462edc2d02",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "8400cde3-f59b-4eec-bb07-6347fd85aef8": {
      "main": [
        [
          {
            "node": "5527e9da-4415-4295-a90a-2990640d7272",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "1ba2ef19-bc82-40fe-9b9d-dd34a9bcce1c": {
      "ai_outputParser": [
        [
          {
            "node": "5527e9da-4415-4295-a90a-2990640d7272",
            "type": "ai_outputParser",
            "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.

Workflows recommandés

💥 Automatisation des publicités vidéo avec NanoBanana, Seedream 4, ChatGPT Image et Veo 3 - VIDE
Utiliser l'IA (NanoBanana, Seedream, GPT-4o, Veo 3) pour automatiser et publier des campagnes publicitaires vidéo
Set
Code
Wait
+
Set
Code
Wait
63 NœudsDr. Firas
Création de contenu
Automatisation de courts métrages sans visage avec OpenAI, RunwayML et ElevenLabs
Automatisation de courts métrages sans visage : du script aux réseaux sociaux avec OpenAI, RunwayML et ElevenLabs
Set
Code
Wait
+
Set
Code
Wait
56 NœudsLeeWei
Création de contenu
Flux de travail automatisé SEO pour blog de mots-clés à WordPress avec GPT-5 et images fal.ai
Automatisation du flux de blog SEO des mots-clés vers WordPress avec GPT-5 et les images fal.ai
Set
Code
Wait
+
Set
Code
Wait
96 NœudsPaul
Création de contenu
Automatisation de la création de contenu viral avec OpenAI, ElevenLabs et Fal.ai pour les vidéos, les podcasts et l'ASMR
Automatiser la création de contenu viral pour la vidéo, les podcasts et l'ASMR avec OpenAI, ElevenLabs et Fal.ai
Set
Code
Wait
+
Set
Code
Wait
97 NœudsAdam Crafts
Création de contenu
Publication autonome de blog basée sur des vidéos YouTube
Publication autonome de blog à partir de vidéos YouTube avec ChatGPT, Sheets, Apify, Pexels et WordPress
If
Set
Code
+
If
Set
Code
80 NœudsOriol Seguí
Création de contenu
Guide de débutant pour l'automatisation des workflows avec OpenAI, LangChain et l'intégration d'API
Guide débutant pour l'automatisation des workflows avec OpenAI, LangChain et intégration d'API
If
Set
Code
+
If
Set
Code
33 NœudsMeelioo
Création de contenu
Informations sur le workflow
Niveau de difficulté
Avancé
Nombre de nœuds22
Catégorie2
Types de nœuds9
Description de la difficulté

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

Auteur
inderjeet Bhambra

inderjeet Bhambra

@idsinghbhambra

I am on a journey to learn and spread the automations through n8n workflows.

Liens externes
Voir sur n8n.io

Partager ce workflow

Catégories

Catégories: 34