Generador de títulos para Twitter

Intermedio

Este es unContent Creation, Multimodal AIflujo de automatización del dominio deautomatización que contiene 13 nodos.Utiliza principalmente nodos como EmailSend, GoogleDrive, HttpRequest, ChainLlm, GoogleDriveTrigger. Generar títulos para Twitter/X a partir de imágenes de Google Drive con Cloudinary y GPT-4o-mini

Requisitos previos
  • Credenciales de API de Google Drive
  • Pueden requerirse credenciales de autenticación para la API de destino
  • Clave de API de OpenAI
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": "AaKfljggy90pXuZs",
  "meta": {
    "instanceId": "8443f10082278c46aa5cf3acf8ff0f70061a2c58bce76efac814b16290845177"
  },
  "name": "Twitter caption generator",
  "tags": [],
  "nodes": [
    {
      "id": "406e4913-92c2-4619-9c96-64a9d1ddb556",
      "name": "Cadena básica de LLM",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        672,
        0
      ],
      "parameters": {
        "text": "={{ $json.secure_url }} || Analyze this automation image and generate a classy and attractive caption for Twitter (X) based on the instructions in the system prompt.",
        "batching": {},
        "messages": {
          "messageValues": [
            {
              "message": "=You are a professional Twitter (X) content strategist and email designer.\n\nWhen given an image url , dashboard, or visual automation, analyze it deeply and return the following two outputs:\n\nA short, professional subject line (max 60 characters).\n\nA complete HTML email body with inline CSS that includes:\n\nThe image (use {{ $json.secure_url }} in the src attribute).\n\nA Twitter (X)-style post block (formatted like a professional social copy within the email) that contains:\n• Headline (bold, 1 line)\n• Primary tweet — one tweet, punchy, <= 280 characters, optimized for engagement (clear hook + value + CTA).\n• Tweet thread — 3 short tweets (each <= 280 characters) that expand the idea: Hook → Insight → Action. Number the tweets (1/3, 2/3, 3/3).\n• Alt text for the image (1–2 lines, descriptive, <120 characters).\n• Suggested first-reply (one short reply to pin under the tweet/thread, e.g., resources or link).\n• 10–12 relevant Twitter/X hashtags (high-signal, platform-appropriate — avoid over-stuffing; pick the most relevant).\n• Suggested @mentions (1–3 accounts types to mention, e.g., partner, tool, or community handles; leave as placeholders if unknown).\n• Recommended posting windows (IST) — 3 time slots ideal for engagement.\n\nA compact, professional summary section inside the email with:\n• 2–3 sentence overview of the visual\n• Bullet list of Key features (3–6 bullets)\n• Bullet list of Ideal users (2–5 bullets)\n• “Built with” list (tools/tech stack; 3–6 items)\n• Single-line CTA (e.g., “Try it”, “Request demo”, “Reply to learn more”)\n\nDesign & accessibility:\n• Use {{ $json.secure_url }} for the image src.\n• Include the alt text near the image tag (use the same alt text as in the Twitter block).\n• Max width 600px, centered content.\n• White content card on a light gray background, soft box shadow, clean spacing, readable bullets.\n• Inline CSS only (no external styles).\n• Fonts: Arial or Helvetica.\n• Email must render well in Gmail & Outlook.\n• Keep markup simple and robust: tables are allowed if needed for Outlook compatibility, but keep it clean.\n\nStyle & length rules:\n\nSubject line ≤ 60 characters.\n\nPrimary tweet and each thread tweet ≤ 280 characters (include a character count comment next to each tweet inside the email as a small, parenthetical note).\n\nHeadline: single bold line inside the email.\n\nHashtags: 10–12 total.\n\nKeep the whole email concise — one glance should tell the reader what the visual does and how to share it on X.\n\n🎯 Your response must follow this exact format — do not include code blocks or markdown:\n\nSubject: [your subject line here]\nBody: [your full HTML content here — one line or multiline]\n\nDo not return JSON. Do not use ``` or Markdown formatting."
            }
          ]
        },
        "promptType": "define"
      },
      "typeVersion": 1.7
    },
    {
      "id": "891fb13d-10e5-4f9e-aaca-d1f8529b299f",
      "name": "Modelo de chat Azure OpenAI",
      "type": "@n8n/n8n-nodes-langchain.lmChatAzureOpenAi",
      "position": [
        768,
        224
      ],
      "parameters": {
        "model": "gpt-4o-mini",
        "options": {}
      },
      "credentials": {
        "azureOpenAiApi": {
          "id": "C3WzT18XqF8OdVM6",
          "name": "Azure Open AI account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "1d3b6dc1-e7f2-4577-b17f-c2872831d5ad",
      "name": "Enviar correo electrónico",
      "type": "n8n-nodes-base.emailSend",
      "position": [
        1072,
        0
      ],
      "webhookId": "20066331-0f47-48ec-8ad5-77cb26504344",
      "parameters": {
        "html": "={{ $json.text }}",
        "options": {},
        "subject": "Twitter Post",
        "toEmail": "<RECIEVER_EMAIL",
        "fromEmail": "<YOUR_EMAIL>"
      },
      "credentials": {
        "smtp": {
          "id": "gJdU446NGTfpXScn",
          "name": "SMTP account 2"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "4d7f5f02-0d0d-44e6-90b9-738b5779596e",
      "name": "Subir fotogramas a Cloudinary",
      "type": "n8n-nodes-base.httpRequest",
      "maxTries": 5,
      "position": [
        448,
        0
      ],
      "parameters": {
        "url": "https://api.cloudinary.com/v1_1/dpuvigpmt/image/upload",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "contentType": "multipart-form-data",
        "authentication": "genericCredentialType",
        "bodyParameters": {
          "parameters": [
            {
              "name": "file",
              "parameterType": "formBinaryData",
              "inputDataFieldName": "data"
            },
            {
              "name": "upload_preset",
              "value": "upload"
            }
          ]
        },
        "genericAuthType": "httpBasicAuth"
      },
      "credentials": {
        "httpBasicAuth": {
          "id": "JU8RVqLrd8GnIY3j",
          "name": "Unnamed credential"
        }
      },
      "retryOnFail": true,
      "typeVersion": 4.2
    },
    {
      "id": "cda8a3ff-4b61-4d68-8fca-580b10750baf",
      "name": "Nota adhesiva 1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1072,
        -320
      ],
      "parameters": {
        "color": 3,
        "height": 304,
        "content": "Type: n8n-nodes-base.emailSend\n\nPurpose: Delivers generated captions via email\n\nWhat it does:\n\nSends email with generated captions\nIncludes file links and AI suggestions\nOutput: Email notification with results"
      },
      "typeVersion": 1
    },
    {
      "id": "8ef3c770-d420-49a2-a6d1-ffa0592e5abb",
      "name": "Nota adhesiva 2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        736,
        -352
      ],
      "parameters": {
        "color": 4,
        "height": 336,
        "content": "Type: n8n-nodes-base.langchain\n\nPurpose: Generates Twitter captions using AI\n\nWhat it does:\n\nAnalyzes uploaded content\nCreates engaging Twitter captions\n\nAdds hashtags and optimizes for social media\n\nOutput: Generated caption text"
      },
      "typeVersion": 1
    },
    {
      "id": "809d5a50-725c-46ce-a28a-ad4ade39cf50",
      "name": "Nota adhesiva 3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        368,
        -336
      ],
      "parameters": {
        "color": 5,
        "height": 320,
        "content": "Type: n8n-nodes-base.httpRequest \n\nPurpose: Uploads files to Cloudinary storage\nWhat it does:\n\nTakes file from Google Drive\n\nUploads to Cloudinary cloud storage \n\nCreates public URLs for AI processing\nOutput: Cloudinary URLs and file links"
      },
      "typeVersion": 1
    },
    {
      "id": "d55c6928-f5ab-487c-a560-6df24b23c1f4",
      "name": "Nota adhesiva 4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        96,
        176
      ],
      "parameters": {
        "color": 6,
        "height": 240,
        "content": "Type: n8n-nodes-base.googleDrive\n\nPurpose: Downloads file content from Google Drive \n\nWhat it does: Gets the actual file data for processing \n\nOutput: File content ready for upload"
      },
      "typeVersion": 1
    },
    {
      "id": "37e94fb7-07c1-4268-bd70-90aa250f9e63",
      "name": "Nota adhesiva 5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -192,
        -272
      ],
      "parameters": {
        "color": 7,
        "height": 256,
        "content": "Type: n8n-nodes-base.googleDriveTrigger\n\nPurpose: Monitors Google Drive for new files \n\nWhat it does: Automatically starts workflow when new file is uploaded\n\nOutput: File information (name, URL, metadata)"
      },
      "typeVersion": 1
    },
    {
      "id": "0fc331db-8dae-4974-a19a-bbfea8d3107b",
      "name": "Nota adhesiva",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        528,
        352
      ],
      "parameters": {
        "color": 4,
        "height": 224,
        "content": "Type: n8n-nodes-base.azureOpenAi\n\nPurpose: Alternative AI for caption generation\nWhat it does: Backup AI service for creating captions\n\nOutput: Additional caption suggestions\n"
      },
      "typeVersion": 1
    },
    {
      "id": "eb3add42-5770-45c0-a2e7-2958def4a8eb",
      "name": "Obtener archivos de Drive",
      "type": "n8n-nodes-base.googleDriveTrigger",
      "position": [
        0,
        0
      ],
      "parameters": {
        "event": "fileUpdated",
        "options": {},
        "pollTimes": {
          "item": [
            {
              "mode": "everyMinute"
            }
          ]
        },
        "triggerOn": "specificFolder",
        "folderToWatch": {
          "__rl": true,
          "mode": "list",
          "value": "1GDkSI9txB88oOcu_jr1tXEzkT0_FoGmC",
          "cachedResultUrl": "https://drive.google.com/drive/folders/1GDkSI9txB88oOcu_jr1tXEzkT0_FoGmC",
          "cachedResultName": "Instagram "
        }
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "gQtjXVGUgZru29qC",
          "name": "Google Drive account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "535f3639-dcc5-4fd3-9c14-ca740ed3b138",
      "name": "Descargar archivos de Drive",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        224,
        0
      ],
      "parameters": {
        "fileId": "={{ $json[\"id\"] }}",
        "options": {},
        "operation": "download"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "gQtjXVGUgZru29qC",
          "name": "Google Drive account"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "47369773-409f-4a02-8b4b-22e5c19c0d2a",
      "name": "Nota adhesiva 6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -608,
        -80
      ],
      "parameters": {
        "color": 4,
        "width": 336,
        "height": 592,
        "content": "Pre-conditions & API Requirements\n\nGoogle Drive\n\nNeeds OAuth2 credentials (googleDriveOAuth2Api)\n\nAccess must be granted to the folder being monitored.\n\nCloudinary\n\nRequires Cloudinary API key & secret (used in HTTP Request node for uploads).\n\nEnsure an upload_preset is configured in your Cloudinary account.\n\nAzure OpenAI\n\nRequires an Azure OpenAI endpoint and API key.\n\nModel: gpt-4o-mini (already configured in the JSON).\n\nSMTP Email\n\nYou’ll need an SMTP credential to send the generated captions to your email."
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "383087ac-19f2-452d-a452-0d553ac7c581",
  "connections": {
    "406e4913-92c2-4619-9c96-64a9d1ddb556": {
      "main": [
        [
          {
            "node": "1d3b6dc1-e7f2-4577-b17f-c2872831d5ad",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "eb3add42-5770-45c0-a2e7-2958def4a8eb": {
      "main": [
        [
          {
            "node": "535f3639-dcc5-4fd3-9c14-ca740ed3b138",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "891fb13d-10e5-4f9e-aaca-d1f8529b299f": {
      "ai_languageModel": [
        [
          {
            "node": "406e4913-92c2-4619-9c96-64a9d1ddb556",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "535f3639-dcc5-4fd3-9c14-ca740ed3b138": {
      "main": [
        [
          {
            "node": "4d7f5f02-0d0d-44e6-90b9-738b5779596e",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "4d7f5f02-0d0d-44e6-90b9-738b5779596e": {
      "main": [
        [
          {
            "node": "406e4913-92c2-4619-9c96-64a9d1ddb556",
            "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?

Intermedio - 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.

Flujos de trabajo relacionados recomendados

Información del flujo de trabajo
Nivel de dificultad
Intermedio
Número de nodos13
Categoría2
Tipos de nodos7
Descripción de la dificultad

Adecuado para usuarios con experiencia intermedia, flujos de trabajo de complejidad media con 6-15 nodos

Autor
Rahul Joshi

Rahul Joshi

@rahul08

Rahul Joshi is a seasoned technology leader specializing in the n8n automation tool and AI-driven workflow automation. With deep expertise in building open-source workflow automation and self-hosted automation platforms, he helps organizations eliminate manual processes through intelligent n8n ai agent automation solutions.

Enlaces externos
Ver en n8n.io

Compartir este flujo de trabajo

Categorías

Categorías: 34