Publicación final de LinkedIn (con copia de la imagen)

Avanzado

Este es unContent Creation, Multimodal AIflujo de automatización del dominio deautomatización que contiene 25 nodos.Utiliza principalmente nodos como Set, Code, Wait, FormTrigger, HttpRequest. Usar contenido de Gemini e imágenes de Imagen para generar publicaciones de LinkedIn listas para publicar

Requisitos previos
  • Pueden requerirse credenciales de autenticación para la API de destino
  • Clave de API de Google Gemini
Vista previa del flujo de trabajo
Visualización de las conexiones entre nodos, con soporte para zoom y panorámica
Exportar flujo de trabajo
Copie la siguiente configuración JSON en n8n para importar y usar este flujo de trabajo
{
  "id": "RFldRNPrwo9SKlfl",
  "meta": {
    "instanceId": "2258ec685869ceb3853cc84bc91464933b5223a91d4836b2fde76106a442d5c4",
    "templateCredsSetupCompleted": true
  },
  "name": "Final-Linkein-post with image copy",
  "tags": [],
  "nodes": [
    {
      "id": "c857bae2-9915-4c76-8171-3847dc610092",
      "name": "Al enviar el formulario",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        512,
        304
      ],
      "webhookId": "60f5ee52-0a91-4e25-8e16-14c3a58a5f49",
      "parameters": {
        "options": {},
        "formTitle": "LinkedIn Post Generator ",
        "formFields": {
          "values": [
            {
              "fieldLabel": "Topic",
              "placeholder": "Enter prompt here....",
              "requiredField": true
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "b545a052-851c-4bfb-9a4c-6c343d45821d",
      "name": "Mapper",
      "type": "n8n-nodes-base.set",
      "position": [
        768,
        304
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "694a158d-53fd-425c-9a42-be4288c17ac9",
              "name": "chatInput",
              "type": "string",
              "value": "={{ $json.Topic }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "ddafb2fd-1326-4131-9ef3-7fe19ad00666",
      "name": "Agente de IA",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        1008,
        304
      ],
      "parameters": {
        "options": {
          "systemMessage": "=I need help creating a professional LinkedIn post for the topic: \"{{ $json.chatInput }}\". The output should include:\n\n1. **LinkedIn Post Content**:\n   - Write an engaging and informative LinkedIn post on the topic \" {{ $json.chatInput }}\".\n   - Start with an attention-grabbing hook that entices readers to read further.\n   - Provide valuable insights or actionable tips related to the topic.\n   - The tone should be professional, clear, and concise, using language that's easy to understand.\n   - End with a call to action (CTA) encouraging the audience to engage, reflect, or share their thoughts.\n   - Include relevant hashtags to increase engagement and visibility on LinkedIn. Make sure these hashtags are specific to the topic and aligned with trending keywords for LinkedIn posts.\n\n2. Image Generation Prompt:\n\nVisual Aesthetic:\nThe image should align with LinkedIn's professional and corporate atmosphere. Make sure it conveys sophistication, modernity, and relevance to the topic. Avoid overly busy designs.\n\nColor Palette:\nStick to corporate tones such as blues, whites, and grays to maintain a professional and clean look. Consider using gradients for depth or subtle contrasts to highlight key elements.\n\nImagery:\n\nFocus on visualizing the topic of the post. For AI in Business, this could involve:\n\nA futuristic office or workspace setting, highlighting cutting-edge technologies.\n\nIcons or symbols that represent data analysis, AI, or automation.\n\nVisuals of humans interacting with AI systems (e.g., robots working alongside humans or using AI tools).\n\nAbstract representations of neural networks or digital data flows.\n\nNo Text Overlay:\n\nDo not include any text in the image, ensuring it remains clean and focuses solely on the visuals.\n\nText overlays or titles are not necessary in this case to keep the professional look intact.\n\nStyle and Tone:\n\nThe design should be minimalist, modern, and sleek. Use a balanced layout with a focus on professional imagery that resonates with business-minded audiences.\n\nAvoid overly complex or distracting backgrounds—keep it clean and visually appealing.\n\nFont Style (if applicable):\n\nIf any text were used in future visuals or branding (though none should appear in this image), use clean, modern fonts like Helvetica, Arial, or Roboto—sans-serif fonts that are readable and professional.\n\nimage prompt can be like this short and simple\nA modern co-working space where AI assistants and human employees brainstorm around a digital whiteboard. The scene shows innovation and teamwork, with a multicultural group, smart gadgets, and subtle futuristic elements. Warm natural lighting and a balanced, professional layout ideal for a LinkedIn audience.\n the JSON output would look like this:\n{\n  \"post_content\": {\n    \"text\": \"The Future of AI in Business: How It is Transforming Industries 🚀\\n\\nAI in Business is no longer just a buzzword; it's revolutionizing the way businesses operate today. From improving efficiency to driving innovation, AI is an essential tool for modern companies.\\n\\nHere are some key insights on how AI in Business is shaping the future of industries:\\n1. Enhanced Data Analytics: AI helps businesses make data-driven decisions with greater accuracy.\\n2. Automation of Tasks: AI is automating repetitive tasks, improving operational efficiency.\\n3. Personalized Experiences: AI is enabling personalized customer experiences in real-time.\\n\\nIs your business ready to embrace AI in Business? Let's discuss how it can help drive growth and innovation.\\n\\n#AIinBusiness #Innovation #FutureOfWork #BusinessGrowth #TechnologyTrends #DigitalTransformation\"\n  },\n  \"image_prompt\": {\n    \"description\": \"Create an image for a LinkedIn post on the topic of AI in Business. The image should:\\n- Feature modern, sleek visuals that align with the corporate tone of LinkedIn.\\n- Visualize AI in Business through elements like a futuristic office, AI-powered systems, or human-robot collaboration.\\n- Use a professional color palette like blues, whites, and grays.\\n- The optional text overlay (if relevant) could be something like 'The Future of AI in Business' or 'Driving Innovation with AI'.\\n- The design should use clean, modern fonts that are easily readable and match the professional style of LinkedIn posts.\"\n  }\n}\n"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "6dd0d0ed-abe7-4508-b7cc-ff98a7d2000f",
      "name": "Google Gemini Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        960,
        544
      ],
      "parameters": {
        "options": {},
        "modelName": "models/gemini-2.5-pro"
      },
      "credentials": {
        "googlePalmApi": {
          "id": "PkawEPumgac59Gta",
          "name": "Google Gemini(PaLM) Api account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "33a57e05-34f6-46ab-bb86-47f09a2e3a80",
      "name": "Normalizador",
      "type": "n8n-nodes-base.code",
      "position": [
        1392,
        304
      ],
      "parameters": {
        "jsCode": "const input = $input.first().json.output\n\nconst cleanedInput = input.replace(/```json|```/g, '').trim();\n\n// Parse the cleaned JSON\nconst parsedOutput = JSON.parse(cleanedInput);\n\n// Extract the `post_content.text` and `image_prompt.description` details\nconst postContent = parsedOutput.post_content.text;\nconst imagePrompt = parsedOutput.image_prompt.description;\n\n// Prepare the final output in the desired JSON structure\nreturn {\n  post_content: postContent,\n  image_prompt: imagePrompt\n};"
      },
      "typeVersion": 2
    },
    {
      "id": "10af428c-b536-4986-a63a-41e5007f542e",
      "name": "Nota adhesiva",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        0
      ],
      "parameters": {
        "height": 700,
        "content": "> **AI-Powered LinkedIn Post Automation**  \n>  \n> This workflow automates the process of creating LinkedIn posts based on user-submitted topics. It generates both **content** and a **professional image** using AI, and automatically publishes the post to LinkedIn.\n>  \n> - **Trigger**: Activated when a user submits a form with a topic for a LinkedIn post.\n> - **AI Content Generation**: Uses Google Gemini to generate an engaging post and image prompt.\n> - **Image Creation**: The prompt is sent to **[Google's Imagen 4 API](https://cloud.google.com/vertex-ai/generative-ai/docs/model-reference/imagen-api?hl=en)** for image generation.\n> - **Post Creation**: The generated text and image are posted directly to LinkedIn.\n>  \n> **Key Features**:  \n> 1. Automated post creation for LinkedIn.  \n> 2. Professional image generation with an AI-driven prompt.  \n> 3. Instant publishing to your LinkedIn feed.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "6a4d1be6-b0fd-4ec2-a60d-e02389fdea79",
      "name": "Nota adhesiva1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        448,
        144
      ],
      "parameters": {
        "height": 320,
        "content": "**On Form Submission**  \n> Triggered when a user submits a topic through the form. This starts the workflow and captures the topic to generate a LinkedIn post.\n  "
      },
      "typeVersion": 1
    },
    {
      "id": "f8ce4e8b-f8b2-4212-af3c-72c8d89a6892",
      "name": "Nota adhesiva2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        704,
        144
      ],
      "parameters": {
        "height": 320,
        "content": "> **Mapper**  \n> Maps the user-submitted topic from the form and prepares it for the next step by assigning it to a variable (`chatInput`).\n"
      },
      "typeVersion": 1
    },
    {
      "id": "a013df4a-9249-4db4-93d7-f195fb2f7c0a",
      "name": "Nota adhesiva3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        992,
        144
      ],
      "parameters": {
        "width": 300,
        "height": 320,
        "content": "**AI Agent**  \n> Uses the **Google Gemini** model to generate professional content for the LinkedIn post, including text and an image prompt based on the given topic.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "648ceed3-1f37-4700-bf95-75d583294797",
      "name": "Nota adhesiva4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1328,
        144
      ],
      "parameters": {
        "height": 320,
        "content": " **Normalizer**  \n> Cleans and formats the AI-generated output into a readable structure for the next steps, extracting both the post text and image prompt.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "c0cfcf0d-0fbf-4c7f-9862-784e2e6ff356",
      "name": "Nota adhesiva5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1600,
        144
      ],
      "parameters": {
        "height": 320,
        "content": "> **Text to Image**  \n> Sends the image prompt to the **[Google's Imagen API](https://cloud.google.com/vertex-ai/generative-ai/docs/model-reference/imagen-api?hl=en)** to generate a professional image for the LinkedIn post based on the given topic.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "f3d297b7-d750-4499-a017-4f09852a78b2",
      "name": "Nota adhesiva6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2160,
        144
      ],
      "parameters": {
        "height": 320,
        "content": "**Decoder**  \n> Decodes the image from its base64 format into a usable binary buffer that can be uploaded to LinkedIn.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "0b407f2a-1920-42bb-96f6-76866127ea48",
      "name": "Nota adhesiva7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3248,
        144
      ],
      "parameters": {
        "height": 320,
        "content": "> **LinkedIn**  \n> Publishes the generated LinkedIn post, including the text and the newly created image, directly to the user's LinkedIn profile.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "2f088968-5974-4d5a-ba92-c5246f7300d0",
      "name": "HTTP Request",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        3328,
        304
      ],
      "parameters": {
        "url": "https://api.linkedin.com/v2/ugcPosts",
        "body": "={\n  \"author\": \"urn:li:person:WimBNoaqJp\",\n  \"lifecycleState\": \"PUBLISHED\",\n  \"specificContent\": {\n    \"com.linkedin.ugc.ShareContent\": {\n      \"shareCommentary\": {\n        \"text\": {{ $json.linkedin_content ? JSON.stringify($json.linkedin_content) : \"\\\"\\\"\"}}\n      },\n      \"shareMediaCategory\": \"IMAGE\",\n      \"media\": [\n        {\n          \"media\": \"{{ $('Register Image Upload').item.json.value.asset }}\",\n          \"status\": \"READY\",\n          \"thumbnails\": []\n        }\n      ]\n    }\n  },\n  \"visibility\": {\n    \"com.linkedin.ugc.MemberNetworkVisibility\": \"PUBLIC\"\n  }\n}",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "contentType": "raw",
        "sendHeaders": true,
        "authentication": "genericCredentialType",
        "rawContentType": "=application/json",
        "genericAuthType": "httpBearerAuth",
        "headerParameters": {
          "parameters": [
            {
              "name": "X-Restli-Protocol-Version",
              "value": "2.0.0"
            },
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        }
      },
      "credentials": {
        "httpBearerAuth": {
          "id": "zWWjfYgBt3AcglIq",
          "name": "Linkedin Auth Token"
        },
        "linkedInOAuth2Api": {
          "id": "dDzA3FtByj49nm1b",
          "name": "LinkedIn account"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "bf60b9f5-fe3a-465c-81ea-c1a393924362",
      "name": "Registrar carga de imagen",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1936,
        304
      ],
      "parameters": {
        "url": "https://api.linkedin.com/v2/assets?action=registerUpload",
        "body": "={\n  \"registerUploadRequest\": {\n    \"recipes\": [\n      \"urn:li:digitalmediaRecipe:feedshare-image\"\n    ],\n    \"owner\": \"urn:li:person:WimBNoaqJp\",\n    \"serviceRelationships\": [\n      {\n        \"relationshipType\": \"OWNER\",\n        \"identifier\": \"urn:li:userGeneratedContent\"\n      }\n    ],\n    \"supportedUploadMechanism\": [\n      \"SYNCHRONOUS_UPLOAD\"\n    ]\n  }\n}",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "contentType": "raw",
        "sendHeaders": true,
        "authentication": "genericCredentialType",
        "rawContentType": "application/json",
        "genericAuthType": "httpBearerAuth",
        "headerParameters": {
          "parameters": [
            {
              "name": "X-Restli-Protocol-Version",
              "value": "2.0.0"
            }
          ]
        }
      },
      "credentials": {
        "httpBearerAuth": {
          "id": "zWWjfYgBt3AcglIq",
          "name": "Linkedin Auth Token"
        },
        "linkedInOAuth2Api": {
          "id": "dDzA3FtByj49nm1b",
          "name": "LinkedIn account"
        }
      },
      "typeVersion": 4
    },
    {
      "id": "ec7cc327-dd4d-45bd-b05e-92cff72b2452",
      "name": "Texto a imagen1",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1664,
        304
      ],
      "parameters": {
        "url": "https://us-central1-aiplatform.googleapis.com/v1/projects/absolute-hub-464011-c1/locations/us-central1/publishers/google/models/imagen-4.0-generate-preview-06-06:predict",
        "body": "={\n \"endpoint\": \"projects/absolute-hub-464011-c1/locations/us-central1/publishers/google/models/imagen-4.0-generate-preview-06-06\",\n \"instances\": [\n {\n \"prompt\": \"{{ $json.image_prompt }}\"\n }\n ],\n \"parameters\": {\n \"aspectRatio\": \"1:1\",\n \"sampleCount\": 1,\n \"negativePrompt\": \"\",\n \"enhancePrompt\": false,\n \"personGeneration\": \"allow_all\",\n \"safetySetting\": \"block_few\",\n \"addWatermark\": true,\n \"includeRaiReason\": true,\n \"language\": \"auto\"\n }\n}",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "contentType": "raw",
        "authentication": "genericCredentialType",
        "rawContentType": "application/json",
        "genericAuthType": "httpBearerAuth"
      },
      "credentials": {
        "httpBearerAuth": {
          "id": "z2K4qf4BOXRy4LVJ",
          "name": "Gcloud Auth Token"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "a5980d83-bd72-4db4-b902-a9876781eea1",
      "name": "Cargar imagen en LinkedIn1",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2496,
        304
      ],
      "parameters": {
        "url": "={{ $('Register Image Upload').item.json.value.uploadMechanism['com.linkedin.digitalmedia.uploading.MediaUploadHttpRequest'].uploadUrl }}",
        "method": "PUT",
        "options": {},
        "sendBody": true,
        "contentType": "binaryData",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "Bearer Redacted"
            },
            {
              "name": "Content-Type",
              "value": "image/png"
            }
          ]
        },
        "inputDataFieldName": "data"
      },
      "typeVersion": 4
    },
    {
      "id": "da0925bc-93f5-41bb-ba33-a0c988736b3a",
      "name": "Convertir a búfer binario",
      "type": "n8n-nodes-base.code",
      "position": [
        2224,
        304
      ],
      "parameters": {
        "jsCode": "const base64 = $('Text to image1').first().json.predictions[0].bytesBase64Encoded;\nconst uploadUrl = $input.first().json.value.uploadMechanism['com.linkedin.digitalmedia.uploading.MediaUploadHttpRequest'].uploadUrl;\nconst asset = $input.first().json.value.asset;\nconst post_content = $('Normalizer').first().json.post_content || '';\n\n// Validate input fields\nif (!base64 || !uploadUrl || !asset) {\n  throw new Error(\"Missing one of: decoded_image_buffer, uploadUrl, or asset.\");\n}\n\n// Convert base64 string to binary buffer\nconst buffer = Buffer.from(base64, 'base64');\n\nreturn [{\n  binary: {\n    data: {\n      data: buffer,\n      mimeType: 'image/png', // or 'image/jpeg' if needed\n      fileName: 'image.png'\n    }\n  },\n  json: {\n    uploadUrl,\n    asset,\n    post_content\n  }\n}];\n"
      },
      "typeVersion": 2
    },
    {
      "id": "2f0be0b9-50a2-4835-bcfc-c844d85d3cae",
      "name": "Código",
      "type": "n8n-nodes-base.code",
      "position": [
        2768,
        304
      ],
      "parameters": {
        "jsCode": "// n8n Code Node: Convert Markdown to LinkedIn Format\n// This code processes markdown content from a specific field and converts it to LinkedIn-compatible format\n\n// Get the markdown content from the specific field\nlet markdownContent = $('Convert to binary buffer').first().json.post_content || '';\n  \n  // Function to convert markdown to LinkedIn format\n  function convertMarkdownToLinkedIn(content) {\n    let linkedinContent = content;\n    \n    // 1. Handle bold text: **text** or __text__ -> text (LinkedIn doesn't support markdown bold)\n    // But we can use Unicode bold characters or just keep it as regular text\n    linkedinContent = linkedinContent.replace(/\\*\\*(.*?)\\*\\*/g, '$1');\n    linkedinContent = linkedinContent.replace(/__(.*?)__/g, '$1');\n    \n    // 2. Handle italic text: *text* or _text_ -> text\n    linkedinContent = linkedinContent.replace(/\\*(.*?)\\*/g, '$1');\n    linkedinContent = linkedinContent.replace(/_(.*?)_/g, '$1');\n    \n    // 3. Handle numbered lists: convert 1️⃣, 2️⃣, 3️⃣ format or regular numbered lists\n    // Keep emoji numbers as they are, but handle regular numbered lists\n    linkedinContent = linkedinContent.replace(/^\\d+\\.\\s/gm, '• ');\n    \n    // 4. Handle bullet points: convert - or * to •\n    linkedinContent = linkedinContent.replace(/^[\\-\\*]\\s/gm, '• ');\n    \n    // 5. Handle line breaks: convert \\n to actual line breaks\n    linkedinContent = linkedinContent.replace(/\\\\n/g, '\\n');\n    \n    // 6. Handle headers: remove # symbols but keep the text prominent\n    linkedinContent = linkedinContent.replace(/^#{1,6}\\s/gm, '');\n    \n    // 7. Handle links: [text](url) -> text (url) or just text\n    linkedinContent = linkedinContent.replace(/\\[([^\\]]+)\\]\\(([^\\)]+)\\)/g, '$1 ($2)');\n    \n    // 8. Handle code blocks: remove ``` or ` formatting\n    linkedinContent = linkedinContent.replace(/```[\\s\\S]*?```/g, (match) => {\n      return match.replace(/```/g, '');\n    });\n    linkedinContent = linkedinContent.replace(/`([^`]+)`/g, '$1');\n    \n    // 9. Clean up excessive line breaks (more than 2 consecutive)\n    linkedinContent = linkedinContent.replace(/\\n{3,}/g, '\\n\\n');\n    \n    // 10. Trim whitespace from start and end\n    linkedinContent = linkedinContent.trim();\n    \n    // 11. Handle special LinkedIn formatting\n    // LinkedIn supports emojis, so keep them as they are\n    // LinkedIn supports line breaks, so maintain paragraph structure\n    \n    return linkedinContent;\n  }\n  \n  // Function to add LinkedIn-specific enhancements\n  function enhanceForLinkedIn(content) {\n    let enhanced = content;\n    \n    // Add extra line break before emoji bullets for better readability\n    enhanced = enhanced.replace(/([.!?])\\s*([1-9]️⃣)/g, '$1\\n\\n$2');\n    \n    // Ensure proper spacing around key sections\n    enhanced = enhanced.replace(/(:)\\n\\n([1-9]️⃣)/g, '$1\\n\\n$2');\n    \n    // Handle hashtag formatting - ensure they're on a new line\n    const hashtagPattern = /#\\w+/g;\n    const hashtags = enhanced.match(hashtagPattern);\n    \n    if (hashtags) {\n      // Remove hashtags from content\n      enhanced = enhanced.replace(hashtagPattern, '').trim();\n      \n      // Add hashtags at the end with proper spacing\n      enhanced += '\\n\\n' + hashtags.join(' ');\n    }\n    \n    return enhanced;\n  }\n  \n// Process the content\nlet processedContent = convertMarkdownToLinkedIn(markdownContent);\nprocessedContent = enhanceForLinkedIn(processedContent);\n\n// Return the single processed item\nreturn {\n  json: {\n    original_content: markdownContent,\n    linkedin_content: processedContent,\n    processed_at: new Date().toISOString(),\n    character_count: processedContent.length\n  }\n};\n\n/* \nUSAGE INSTRUCTIONS:\n1. Add this code to an n8n Code Node\n2. Make sure you have a previous node named \"Convert to binary buffer\" \n3. The code will read from the \"post_content\" field of that node\n4. The output will include:\n   - original_content: The original markdown content\n   - linkedin_content: The processed LinkedIn-ready content\n   - processed_at: Timestamp of processing\n   - character_count: Length of the processed content\n\nEXAMPLE INPUT from \"Convert to binary buffer\" node:\n{\n  \"post_content\": \"Forget just asking AI questions. The next evolution is here: AI agents that *take action*. 🤖\\\\n\\\\nWe're moving beyond conversational AI...\"\n}\n\nEXAMPLE OUTPUT:\n{\n  \"original_content\": \"Forget just asking AI questions...\",\n  \"linkedin_content\": \"Forget just asking AI questions. The next evolution is here: AI agents that take action. 🤖\\n\\nWe're moving beyond conversational AI...\",\n  \"processed_at\": \"2024-01-15T10:30:00.000Z\",\n  \"character_count\": 1250\n}\n*/"
      },
      "typeVersion": 2
    },
    {
      "id": "85b1e201-fdc5-4c89-b517-46247dd87fbe",
      "name": "Nota adhesiva8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1872,
        144
      ],
      "parameters": {
        "height": 320,
        "content": "> **Register Image on Linkedin**  \n> Register an image on linkedin [Linkidin API](https://learn.microsoft.com/en-us/linkedin/marketing/community-management/shares/images-api?view=li-lms-2025-07&tabs=http)\n"
      },
      "typeVersion": 1
    },
    {
      "id": "4d71376f-6a23-4e30-bea9-a78bb9a902c8",
      "name": "Nota adhesiva9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2432,
        144
      ],
      "parameters": {
        "height": 320,
        "content": "**Upload Binary buffer**  \n> Upload binary buffer  to LinkedIn [Linkidin API](https://learn.microsoft.com/en-us/linkedin/marketing/community-management/shares/images-api?view=li-lms-2025-07&tabs=http)\n.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "9619d25a-79a6-4274-b5e2-2c0b4f7e4f1e",
      "name": "Nota adhesiva10",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2704,
        144
      ],
      "parameters": {
        "height": 320,
        "content": "**Curate content**  \n> LLM generally output with MD format, this node curates output of generated contents."
      },
      "typeVersion": 1
    },
    {
      "id": "c884458a-d440-4bf7-a70e-410e96b9591f",
      "name": "Nota adhesiva11",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2976,
        144
      ],
      "parameters": {
        "height": 320,
        "content": "**Wait for uploading the image**  \n> Wait 30-60 seconds between image upload and post creation."
      },
      "typeVersion": 1
    },
    {
      "id": "47e5f253-8096-4afd-ba9e-e5db91199aa9",
      "name": "Esperar",
      "type": "n8n-nodes-base.wait",
      "position": [
        3040,
        304
      ],
      "webhookId": "931a20ed-0390-41e9-8a7e-ac68588c4a29",
      "parameters": {
        "amount": 60
      },
      "typeVersion": 1.1
    },
    {
      "id": "99af8bab-3eb4-4d31-8d9e-8e88efc2fb9c",
      "name": "Nota adhesiva12",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        16,
        752
      ],
      "parameters": {
        "color": 5,
        "width": 460,
        "height": 140,
        "content": "### Geo Restrictions!\nPlease note at time of writing, the Gemini Image Generation model is restricted to certain countries and regions. If you're getting model not found errors, it's possible the model may not be available in your country!"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "8c9e1d4a-71d5-457d-90c1-7ddd1ae7ad51",
  "connections": {
    "2f0be0b9-50a2-4835-bcfc-c844d85d3cae": {
      "main": [
        [
          {
            "node": "47e5f253-8096-4afd-ba9e-e5db91199aa9",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "47e5f253-8096-4afd-ba9e-e5db91199aa9": {
      "main": [
        [
          {
            "node": "2f088968-5974-4d5a-ba92-c5246f7300d0",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "b545a052-851c-4bfb-9a4c-6c343d45821d": {
      "main": [
        [
          {
            "node": "ddafb2fd-1326-4131-9ef3-7fe19ad00666",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ddafb2fd-1326-4131-9ef3-7fe19ad00666": {
      "main": [
        [
          {
            "node": "33a57e05-34f6-46ab-bb86-47f09a2e3a80",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "33a57e05-34f6-46ab-bb86-47f09a2e3a80": {
      "main": [
        [
          {
            "node": "ec7cc327-dd4d-45bd-b05e-92cff72b2452",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ec7cc327-dd4d-45bd-b05e-92cff72b2452": {
      "main": [
        [
          {
            "node": "bf60b9f5-fe3a-465c-81ea-c1a393924362",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "c857bae2-9915-4c76-8171-3847dc610092": {
      "main": [
        [
          {
            "node": "b545a052-851c-4bfb-9a4c-6c343d45821d",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "bf60b9f5-fe3a-465c-81ea-c1a393924362": {
      "main": [
        [
          {
            "node": "da0925bc-93f5-41bb-ba33-a0c988736b3a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "da0925bc-93f5-41bb-ba33-a0c988736b3a": {
      "main": [
        [
          {
            "node": "a5980d83-bd72-4db4-b902-a9876781eea1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "6dd0d0ed-abe7-4508-b7cc-ff98a7d2000f": {
      "ai_languageModel": [
        [
          {
            "node": "ddafb2fd-1326-4131-9ef3-7fe19ad00666",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "a5980d83-bd72-4db4-b902-a9876781eea1": {
      "main": [
        [
          {
            "node": "2f0be0b9-50a2-4835-bcfc-c844d85d3cae",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Preguntas frecuentes

¿Cómo usar este flujo de trabajo?

Copie el código de configuración JSON de arriba, cree un nuevo flujo de trabajo en su instancia de n8n y seleccione "Importar desde JSON", pegue la configuración y luego modifique la configuración de credenciales según sea necesario.

¿En qué escenarios es adecuado este flujo de trabajo?

Avanzado - Creación de contenido, IA Multimodal

¿Es de pago?

Este flujo de trabajo es completamente gratuito, puede importarlo y usarlo directamente. Sin embargo, tenga en cuenta que los servicios de terceros utilizados en el flujo de trabajo (como la API de OpenAI) pueden requerir un pago por su cuenta.

Información del flujo de trabajo
Nivel de dificultad
Avanzado
Número de nodos25
Categoría2
Tipos de nodos8
Descripción de la dificultad

Adecuado para usuarios avanzados, flujos de trabajo complejos con 16+ nodos

Autor
Naitik Joshi

Naitik Joshi

@niks23

IT professional with over 14 years experience helping IT services and teams to streamline their projects/product processes.

Enlaces externos
Ver en n8n.io

Compartir este flujo de trabajo

Categorías

Categorías: 34