Industrial Nodes

INDUSTRIAL NODES

AI Content Pipeline Configurator — Guía Completa
Manual de operaciones del configurador visual de agentes de producción de contenido en video. Cubre la herramienta al 100%: desde la identidad del agente hasta el despliegue del workflow en n8n, con todos los módulos, presets y APIs documentados.
12 Pasos
JSON Auto-generado
16+ Presets de Influencers
Pipeline Drag & Drop
Memoria de Proyectos
Cloud-native (n8n Cloud)
Shotstack / Creatomate
OpenAI Whisper STT
Brand Kit del Creador
Actualizada: Julio 2026

INDUSTRIAL NODES es un Content Production Control Panel — una herramienta visual que permite configurar completamente un agente de inteligencia artificial de producción de video sin escribir código. Toda la configuración se exporta como un JSON estructurado que alimenta directamente un workflow de n8n multi-nodo de producción audiovisual.

Diferencia clave vs. Consultor Agents: Este agente NO es conversacional. No atiende clientes en tiempo real. Es un agente de procesos batch — recibe un video, ejecuta una pipeline de transformación (transcripción → cortes → subtítulos → SEO → publicación) y entrega el resultado.
Analogía: INDUSTRIAL NODES es como una cadena de montaje cinematográfica automatizada. Tú defines el proceso (cortar en 10 clips virales, estilo Hormozi, subtítulos en español, publicar en TikTok e Instagram). El agente ejecuta esa línea de producción sin supervisión.

¿Para quién es?

RolQué hacePasos
CreadorDefine identidad del canal, estilo de contenido, presets de influencer, plataformas destino, triggers y orden del pipelinePasos 1-6
AdminConfigura infraestructura técnica: modelos de IA, APIs de video, almacenamiento y memoriaPasos 7-9
AmbosConfiguran notificaciones, revisan el pipeline visual, validan el workflow y exportan el ZIP finalPasos 10-12

¿Qué logra?

Los 12 Pasos

Identidad del Agente

Nombre, canal, nicho, idioma, plataformas destino

Módulos Activos

Transcripción, corte, subtítulos, SEO, publicación y más

Presets de Estilo

16 influencers como base: Hormozi, MrBeast, GaryVee...

Entrada de Video

Fuente (YouTube, Drive, URL), duración, formato de salida

Triggers Personalizados

Cron, formulario, email, webhook propio en paralelo

Pipeline

Orden de ejecución drag & drop de los módulos activos

Motor de IA

LLM, transcripción, motor de imágenes, motor de video

Accesos & APIs

Credenciales de video, storage, redes sociales e IA

Memoria del Agente

Qué recuerda, dónde lo guarda, Brand Kit del creador

10 Notificaciones

Canales de aviso, plantilla de mensaje, config Buffer

11 Revisión Visual

Diagrama del workflow n8n, resumen ejecutivo, estimador

12 Exportar

ZIP con workflow n8n, JSON config, presets y README

#SistemaMecánicaPlataformasDetalle
1 Generador de Reels y Shorts virales LLM script viral + voz ElevenLabs + B-roll auto + auto-cut beats + publish multi-plataforma Instagram Reels, TikTok, YouTube Shorts, FB Reels, LinkedIn Video
2 Editor de podcast con clip generator Long-form → Whisper → LLM identifica clips virales → captions sincronizados → distribuye Spotify, Apple Podcasts, YouTube, IG, TikTok, X, LinkedIn
3 Calendario evergreen con SEO orgánico Research Tavily + cluster keywords + LLM 30 piezas/mes (blog+social+email) + Buffer schedule Blog/web, LinkedIn, X, Newsletter, Medium, Substack, Ghost
4 Newsletter inteligente con personalización por segmento Pool noticias filtradas + LLM resume por audiencia + variantes A/B + envío via Beehiiv/ConvertKit Beehiiv, ConvertKit, Substack, Mailchimp, Brevo, MailerLite
5 Carruseles educativos con design system LLM estructura 8 slides + imágenes Stable Diffusion/Banana con brand DNA + exporta carrusel Instagram, LinkedIn, TikTok carousel, Pinterest, X
6 Testimoniales sintéticos con avatar Feedback real → LLM quote → video con avatar Heygen/Synthesia → publica con consent Landing pages, IG, LinkedIn ads, YouTube ads, Meta ads, TikTok ads
7 Repurposing engine: 1 input → 20 outputs 1 video YouTube → transcribe → LLM expande a 5 tweets + 3 LI posts + 1 blog + 2 reels + 1 newsletter X, LinkedIn, Blog, IG, TikTok, Newsletter, Threads
8 Community management tono-aware Monitorea menciones + LLM responde con tu tono StoryBrand + escala humano si crítica X, IG DMs, LinkedIn, Facebook Pages, Discord, Reddit
9 Ads creative + variantes A/B masivas Brand DNA + objetivo → 30 headlines + 30 descriptions + 10 imágenes → exporta a Meta+Google Ads Meta Ads (FB/IG), Google Ads, TikTok Ads, LinkedIn Ads, X, Pinterest Ads
10 Estudio de podcast solo automatizado Outline → LLM guion + voces ElevenLabs por rol + mezcla jingles + publish + transcripción SEO Spotify, Apple, Google, YouTube, Anchor, Pocket Casts, web embed
Recursos relacionados:
  • El pipeline de contenido cubre transcripción, edición, clips, subtítulos, publicación multi-red y SEO — cada módulo se documenta en su paso correspondiente de esta guía.

INDUSTRIAL NODES
Configurador visual

JSON content_config
11 secciones

Plataforma n8n
Ejecuta el workflow

APIs de Video
Shotstack / Creatomate

Video de entrada
URL / Drive / Upload

STT
Transcripción

LLM análisis
Detecta clips

Corte
API / FFmpeg

Subtítulos

Efectos

Miniatura

SEO

Publicar
La magia está en la configuración: Industrial Nodes genera un paquete de workflows perfectamente estructurado y listo para producción — la cadena completa (guion, voz, video, edición, clips, publicación multi-red y SEO). Puedes exportarlo como ZIP o desplegarlo directo a tu n8n — cloud o local — desde el propio wizard. n8n es el motor que orquesta todas las APIs 24/7.

Cada agente se construye con prácticas de ingeniería de confiabilidad orientadas a producción, con objetivo de 99.99% de disponibilidad en la entrega de tus assets.

Pipeline sin fallos silenciosos

El orden del pipeline es crítico. El configurador permite definir el orden exacto de los módulos con drag & drop, previniendo flujos incoherentes mediante validaciones automáticas:

Cloud-Native First (Eliminación de FFmpeg Local)

El workflow nunca se detiene por dependencias locales: Al seleccionar n8n Cloud como entorno de ejecución, el sistema delega 100% del procesamiento de video a APIs cloud (Shotstack, Creatomate), eliminando la dependencia crítica de FFmpeg en el servidor.

Si Shotstack falla, el sistema puede conmutar automáticamente a Creatomate. Si ambas APIs de video fallan, el workflow almacena la tarea en cola para reintento. Siempre hay continuidad operativa.

Sistema de Presets como Protocolo de Producción

En lugar de configurar manualmente cada parámetro de edición, se usan Presets — perfiles técnicos basados en los estilos de edición de los creadores de contenido más exitosos del mundo. Cada preset es un JSON técnico con parámetros de:

Antes de empezar: Ten preparado: nombre del canal, nichos, lista de plataformas donde publicas, referencias de creadores cuyo estilo te gusta, y las API Keys de las plataformas usar.

Checklist de preparación

Recuerda: Este agente NO atiende clientes. Es un agente de procesos que ejecuta pipelines de edición de video autónomamente dentro de n8n.

Campos a llenar (Explicación a detalle)

CampoDescripciónEjemplo
Nombre del agenteCómo se llama el agente internamente en el workflowContent AI Pro, VideoAgent, ViralBot
Nombre del canal / creadorNombre del canal o marca para el que trabajaCanal de Juan Pérez, TechWith Alex
Industria / NichoCategoría de contenido — afecta el prompt del LLM de análisis viralNegocios, Motivación, Fitness, Tech, Real Estate...
País e idioma principalIdioma en que se generarán los textos (títulos, descripciones, subtítulos)Español, Inglés, Bilingüe
Estilo de comunicación del creadorDescribe el tono, vocabulario y energía del creador. El LLM lo usa para generar títulos y captions alineados a la voz del canal"Energético, directo, usa muchos ejemplos. Habla de tú a tú. Vocabulario de negocios sin ser corporativo."
Plataformas destinoDónde se publicará el contenido. Determina el formato de salida y los módulos de publicación disponiblesYouTube, TikTok, Instagram Reels, YouTube Shorts, LinkedIn

Súper-Prompt Plantilla (Estilo del Creador)

Para que el LLM genere títulos, captions y guiones con la voz exacta del creador, copia esta plantilla de razonamiento estructurado, pégala en el campo 'Estilo de comunicación del creador' y sustituye los valores entre corchetes [ ]:

Soy [Nombre del Creador], creador de contenido en el nicho de [Nicho].
Mi audiencia: [Descripción demográfica, ej: emprendedores 25-40 años en Latinoamérica].
Tono: [ej: Directo, práctico, con humor inteligente. Nunca corporativo].
Vocabulario clave: [ej: "implementa", "sistema", "resultados", "cash flow"].
Estructura de mis ganchos: [ej: siempre empieza con una pregunta retórica o una cifra impactante].
CTA recurrente: [ej: "Suscríbete si quieres más estrategias como esta"].
Consejo: Puedes combinar módulos tácticamente: subir un video largo → cortarlo en clips → añadir subtítulos → generar portadas → programar publicación. ¡O crear el guión desde cero y después editarlo!

Catálogo completo de módulos

MóduloDescripciónAPIs/Herramientas requeridas
Transcripción con TimestampsTranscribe el video completo con marcas de tiempo precisas por palabra/oración. Base para todos los módulos de análisis y subtítulos.OpenAI Whisper, AssemblyAI o Deepgram
Detector de Clips ViralesAnaliza la transcripción con LLM y detecta los N momentos más potentes para clips cortos, basándose en el preset seleccionado y el nicho.GPT-4o / Claude / Gemini
Corte Automático de VideosCorta el video en clips individuales según los timestamps detectados. En n8n Cloud usa Shotstack/Creatomate; en self-hosted usa FFmpeg.Shotstack API o Creatomate API (cloud) / FFmpeg (local)
Subtítulos EstilizadosGenera archivos SRT e integra subtítulos al video con el estilo visual del preset (fuente, color, animación, posición).Shotstack / Creatomate / FFmpeg
Edición con EfectosAplica zooms, transiciones, música de fondo e intros/outros según el estilo del preset de influencer activo.Shotstack API o Creatomate API
Generación de MiniaturaGenera prompts optimizados para el nicho y los envía a la IA de imágenes configurada (DALL-E 3, Ideogram, Stable Diffusion).DALL-E 3 / Ideogram / Stable Diffusion XL
Títulos y Descripciones SEOGenera 3 opciones de título, descripción SEO para YouTube, tags y captions para Instagram/TikTok/LinkedIn, con la voz del creador.GPT-4o / Claude (LLM principal)
Guión desde Cero / MejoraSi no hay video de entrada, genera un guión optimizado para el estilo del preset y el nicho. También puede mejorar guiones existentes.GPT-4o / Claude / Gemini
Upload a NubeRegistra/organiza los clips, miniaturas y SRT por proyecto. OJO con el modo (ver "Modo de subida"): por defecto (Referenciada) el vídeo se queda en el CDN del render y NO se copia a tu Drive/S3; para copiarlo de verdad elige Cloudinary o worker externo.Google Drive OAuth2 / AWS S3 / Cloudinary / worker
Programación y PublicaciónPrograma la publicación en múltiples redes con captions, hashtags y horario óptimo via Buffer, Meta API, TikTok API o YouTube API.Buffer Token / Meta Access Token / TikTok Token
Research de MultimediaBusca en internet referencias sobre los temas mencionados en el video para enriquecer el guión o la descripción SEO con datos actuales.API de búsqueda web
Dependencias entre módulos: El Detector de Clips Virales requiere que la Transcripción esté activa. El Corte Automático requiere que el Detector esté activo. Los Subtítulos requieren que el Corte esté activo. Si activas un módulo dependiente sin su prerrequisito, el configurador mostrará una advertencia.
Sincronizar efectos al beat (opcional): en el paso de Efectos hay un toggle "Sincronizar efectos al beat del audio". n8n no puede analizar audio (n8n Cloud bloquea child_process), así que lo hace un worker externo que despliegas — implementación de referencia en workers/beat-detect/ (Python + librosa, con Dockerfile para Railway). Contrato: POST {audio_url} → {beats, bpm}. Activas el toggle y pegas la URL del worker; sin ella el toggle no hace nada. Con beats, los SFX y el B-roll se alinean al ritmo en vez de a un timing fijo.
Filtro de licencia de música/SFX: los módulos de música y efectos de sonido tienen un filtro de licencia (CC0 = dominio público, sin atribución · CC BY = requiere atribución · Cualquiera = incluye premium). Por defecto cc0 (seguro para monetizar). El filtro aplica sobre todo a Freesound; Pixabay/Pexels son uniformemente libres.
Cómo funcionan los presets: Cada preset es un JSON técnico con parámetros de edición del estilo de ese creador. Si seleccionas 2 presets, el LLM genera una mezcla de ambos estilos. Cuanto más diferentes sean (ej: MrBeast + GaryVee), más creativo e impredecible es el resultado. Cuanto más similares (ej: Hormozi + Andy Elliott), el resultado es más coherente.

Catálogo de presets disponibles

PresetCategoríaEstilo técnicoMejor para
MrBeastViralidad ExtremaCorte cada 2s, subtítulos Impact/pop_word, música extrema, gancho en 1 segContenido de entretenimiento puro, challenges, listas
Alex HormoziRetención & Marca PersonalZoom agresivo, subtítulos Montserrat/dorado, ritmo aggressive, gancho 3 segNegocios, marketing, emprendimiento, ventas
GaryVeeRetención & Marca PersonalDocumental/raw, sin zoom, Helvetica, ritmo orgánico, gancho 8 segEntrepreneurship, emprendimiento, mentalidad
Tony RobbinsDesarrollo Personal & MotivaciónÉpico, crossfade, Trajan Pro/amarillo, música épica en crescendoMotivación, transformación personal, liderazgo
Dean GraziosiDesarrollo Personal & MotivaciónÍntimo, sin zoom, Open Sans, ritmo relajado, ambient musicCoaching, comunidad, mentalidad de éxito
Mel RobbinsDesarrollo Personal & MotivaciónEnérgico, zoom suave, Poppins Bold/rosa, bounce_in, música upbeatProductividad, hábitos, desarrollo femenino
Andy ElliottVentas & AutoridadMáxima intensidad, Bebas Neue/rojo, slam transitions, urgencia extremaVentas, closers, force de ventas
Brad LeaVentas & AutoridadPodcast sofisticado, Montserrat/cian, efectos de sonido puntualesVentas consultivas, podcast clips, entrevistas
Myron GoldenVentas & AutoridadEducativo high-value, Georgia/dorado, ritmo educational, pauses respetadasPrincipios de riqueza, negocios basados en valores
Ali AbdaalEducativo MinimalistaMinimalista, Inter/cian, lofi music, crossfade, 10 seg de ganchoProductividad, estudio, tecnología, tutoriales
Casey NeistatLifestyle CinematográficoCortes al ritmo de jazz, Courier New, timelapses, storytelling visualVlog, travel, day-in-the-life, documentales
MKBHDTech & ReviewsUltra pulido, SF Pro, electronic ambient, b-roll cinematográfico premiumTech reviews, gadgets, comparativas
Ryan SerhantInversión & Real EstateLujo extremo, Playfair Display/dorado, luxury_wipe, cinematicReal estate, propiedades, lujo
Grant CardoneInversión & Real Estate10X energy, Oswald/verde, jets y mansiones en broll, ultra agresivoInversiones, mentalidad 10X, real estate
Marie ForleoLiderazgo FemeninoElegante vibrante, Lato Bold/rosa, energético, upbeat, emojis en subsMarketing para mujeres, liderazgo femenino, negocios
Barbara CorcoranLiderazgo FemeninoAutoridad con humor, Georgia Bold/rojo, cifras resaltadas, bounce_inNegocios, inversiones, shark tank clips

Presets Personalizados

Si ninguno de los 16 presets predefinidos encaja exactamente con tu estilo, puedes crear un Preset Personalizado subiendo archivos de referencia de tu creador:

Modelo para entrenar el preset: Se recomienda usar Claude Sonnet para analizar archivos de referencia y extraer parámetros de edición. GPT-4o y Gemini Pro son alternativas también efectivas. El resultado es un JSON técnico con todos los parámetros de edición equivalentes a los presets predefinidos.

Entorno de Ejecución

EntornoDescripciónVentajasLimitaciones
n8n Cloud (API-only)Sin instalación local. TODO el procesamiento de video se delega a Shotstack o Creatomate.No requiere FFmpeg, fácil configuración, escalable, ideal para equipos remotosCosto por renderizado en API de video (~$0.015/seg Shotstack)
Self-hosted (con FFmpeg)Tu servidor tiene FFmpeg instalado. El workflow usa ffmpeg directamente para cortar y subtitular.Sin costo por renderizado, mayor control, videos muy largos sin límiteRequiere servidor con FFmpeg, mantenimiento técnico
Crítico: Si eliges n8n Cloud y no configuras Shotstack o Creatomate, el agente no podrá cortar ni subtitular videos. Asegúrate de tener al menos una API de video configurada antes de exportar.

Fuentes de Video

FuenteCómo funcionaNota
URL YouTube / VimeoEl workflow extrae el audio/video directamente de la URL usando yt-dlp en el servidor o via APIRequiere yt-dlp o acceso a YouTube Data API. La más común en self-hosted.
URL directa de archivoUna URL directa que apunta a un archivo .mp4 o .mov descargableIdeal para videos alojados en tu propio CDN o servidor
Google Drive (link)El workflow accede al archivo usando las credenciales OAuth2 de Google Drive configuradasRequiere OAuth2 configurado. El video debe ser compartido o estar en una carpeta del mismo OAuth2
Upload ManualEl operador sube el archivo directamente al webhook del workflow antes de iniciarPara videos que ya están en disco. Requiere webhook configurado para recibir multipart
Carpeta Drive (Trigger)El workflow se activa automáticamente cuando se sube un nuevo archivo a una carpeta específica de Google DriveModo de producción continua. Ideal para pipelines recurrentes automatizados

Parámetros de Clips

ParámetroDescripciónRecomendado
Número de clips a extraerCuántos clips cortos generará el detector viral. Default: 10.5-10 para videos de 30-60 min. 15-25 para videos de 2h+
Duración mínima por clipLos clips detectados no pueden ser más cortos que este valor (en segundos)30s para TikTok/Reels. 60s para YouTube Shorts
Duración máxima por clipLos clips detectados no pueden ser más largos que este valor (en segundos)60-90s para TikTok/Reels. 60s para Shorts. 3-5 min para YouTube largo
Formato de salidaRelación de aspecto del video exportado. Puede ser múltiple (corta en varios formatos a la vez).9:16 para TikTok/Reels/Shorts. 16:9 para YouTube horizontal. 1:1 para feed de Instagram
Calidad de salidaResolución del video de salida1080p Full HD para la mayoría. 4K solo si el video original es 4K y las plataformas lo soportan
¿Para qué sirven? Además del webhook que recibe un video nuevo, puedes agregar otras formas de disparar el flujo: un horario programado, un formulario web, un correo entrante u otro workflow. Cada trigger se exporta como un módulo del pipeline y corre por su cuenta.

Tipos disponibles

TipoCuándo se disparaQué configuras
Trigger manualCuando lo ejecutas a mano desde n8n (ideal para pruebas).Nada.
Cron personalizadoEn un horario recurrente que tú defines (ej. procesar la cola cada mañana).Expresión cron (ej. 0 9 * * 1).
Formulario web públicoCuando alguien envía un formulario alojado por n8n (ej. subir un video).Título del formulario.
Evento del workflowAl activarse el workflow.Nada.
Sub-workflowCuando otro flujo de n8n lo invoca.Los inputs se definen en n8n.
Email (IMAP)Cuando llega un correo a una casilla (ej. un cliente manda material).Carpeta/mailbox (requiere credencial IMAP).
Webhook con path propioCuando un sistema externo llama a una URL tuya.Path + método (POST/GET).

Crear uno personalizado

Si necesitas un disparador que no está en la lista, el botón "Crear personalizado…" te deja definir cualquier nodo trigger de n8n: nombre, tipo de nodo, versión, parámetros en JSON e ícono.

¿Qué ejecuta cada trigger?

Por cada trigger eliges su destino: el pipeline completo (igual que un video entrante) o un módulo específico (por ejemplo, solo la publicación o solo la generación de clips).

Ejemplo: un cron que cada lunes revisa una carpeta de Drive y procesa los videos nuevos, mientras el webhook principal sigue disponible para subidas manuales.
Drag & Drop: En la pantalla del configurador, arrastra los módulos para cambiar su orden de ejecución. El agente los ejecuta estrictamente de arriba hacia abajo. Este orden determina qué datos tiene disponibles cada módulo cuando corre.

Lógica del Pipeline

INCORRECTO:
Generar Subtítulos
Cortar Video
Transcribir
CORRECTO:
1. Transcribir
2. Detectar Clips
3. Cortar
4. Subtítulos → SEO → Upload → Publicar

Súper-Prompt Plantilla (Pipeline Lógico)

Si necesitas instruir al LLM sobre el orden de prioridades dentro del análisis viral, usa este prompt en el campo de instrucciones del Módulo de Detección de Clips:

EJECUCIÓN SECUENCIAL DEL ANÁLISIS VIRAL:
PRIORIDAD 1 (GANCHO): Identifica el primer momento impactante en los primeros 0-30 segundos.
PRIORIDAD 2 (VALOR): Detecta los N-1 momentos con mayor densidad de información útil para el nicho [NICHO].
PRIORIDAD 3 (CTA): Si existe, incluye el momento final donde el speaker da el call-to-action.
Aplica el estilo editorial del preset seleccionado para evaluar el ritmo de corte ideal.

Orden recomendado para cada caso de uso

Caso de usoPipeline recomendado
Video largo → Clips viralesTranscripción → Detector Viral → Corte → Subtítulos → Efectos → SEO → Miniatura → Upload → Publicar
Solo SEO y textoTranscripción → Títulos & SEO
Guión desde ceroResearch → Guión desde Cero → Títulos & SEO
Video ya editado → Solo publicarUpload → Publicar
Pipeline completo (producción full)Transcripción → Detector → Corte → Subtítulos → Efectos → Miniatura → SEO → Upload → Publicar

Motor de Transcripción (STT)

MotorFortalezaCoste aprox.Nota
OpenAI WhisperMuy preciso, multilingüe, excelente español$0.006/minRecomendado. Parte del OpenAI API Key
AssemblyAISpeaker diarization, timestamps de alta precisión$0.0037/minMejor para podcasts multi-speaker
DeepgramUltra rápido, baja latencia, streaming$0.0043/minMejor si el tiempo de procesamiento es crítico
Rev.aiAlta precisión en inglés, soporte humano$0.02/minPara contenido en inglés donde la precisión es crítica
Google SpeechIntegración nativa con GCP, muchos idiomas$0.009/minIdeal si ya usas GCP

Modelo LLM Principal

ModeloFortalezaCoste aprox.
GPT-4oEl más versátil. Excelente para análisis viral y generación de títulos creativos$$
GPT-4o MiniRápido y económico. Adecuado para SEO y captions simples$
Claude Sonnet 4.5Razonamiento largo, texto muy natural. Ideal para guiones y análisis de presets$$
Claude Haiku 3.5Ultra rápido, bajo costo, bueno para tareas repetitivas$
Gemini 2.0 FlashMuy rápido, multimodal, buen análisis de video$
Gemini 2.5 ProEl más potente de Google. Excelente para contenido largo y análisis multimodal$$$
Selector en 3 niveles. El modelo se elige con tres desplegables separados: Servicio (OpenAI, Anthropic, Google…), Modelo (GPT-4o, Claude Sonnet, Gemini…) y Versión. Elige el servicio primero y la lista de modelos se filtra sola. Aplica también al "Modelo para entrenar el preset" al crear un preset personalizado.

Motor de Imágenes (para Miniaturas)

MotorFortalezaNota
DALL-E 3Integrado con OpenAI. Composición excelente, texto legible en imagenRecomendado. Usa el mismo OPENAI_API_KEY
Nano Banana (Gemini Imagen)Google Imagen 3. Alta calidad fotorrealistaRequiere GOOGLE_AI_API_KEY de AI Studio
Stable Diffusion XL (Replicate)Altamente controlable, prompts técnicos avanzadosRequiere REPLICATE_API_KEY
Midjourney (Replicate)Estética artística premium, estilos únicosRequiere REPLICATE_API_KEY + acceso a Midjourney
IdeogramGenera texto integrado dentro de la imagen, ideal para miniaturas con textoRequiere IDEOGRAM_API_KEY. Mejor para thumbnails con títulos
Grok (xAI)Generación ultrarrápida, estética modernaRequiere XAI_API_KEY de console.x.ai
Canva APIPlantillas branded, coherencia visual con el canalRequiere CANVA_API_KEY. Ideal si el canal tiene templates en Canva

Motor de Edición de Video

MotorTipoFortalezaNota
Shotstack APICloud-nativeCorte, subtítulos, efectos, música — todo via JSON. Sin FFmpeg.Recomendado para n8n Cloud. ~$0.015/seg renderizado
Creatomate APICloud-nativeSimilar a Shotstack, con más plantillas de animaciónAlternativa a Shotstack. Precios similares
RunwayMLIA generativaEfectos generativos de IA sobre video (Gen-3 Alpha)Para efectos artísticos, no edición estándar
Kapwing APINube + manualSubtítulos automáticos de alta calidad, fácil integraciónBuena opción para subtítulos cloud sin FFmpeg
Seguridad: Las credenciales se exportan como nombres de variables de entorno ($env.VARIABLE), nunca como valores reales en el JSON. Configúralas directamente en n8n (Settings → Variables de entorno).

APIs Obligatorias

API / VariablePara quéDónde obtenerla
OPENAI_API_KEYWhisper (transcripción) + GPT-4o (análisis viral, SEO) + DALL-E 3 (miniaturas) platform.openai.com/api-keys

APIs de Edición de Video (Elige al menos 1 si usas n8n Cloud)

API / VariableServicioDónde obtenerla
SHOTSTACK_API_KEYShotstack — Edición y renderizado cloudshotstack.io → Dashboard → API Keys
CREATOMATE_API_KEYCreatomate — Alternativa a Shotstackcreatomate.com → Dashboard → API
FFMPEG_PATHFFmpeg — Solo si usas self-hostedRuta en el servidor, ej: /usr/bin/ffmpeg

APIs de Transcripción Alternativas

API / VariableServicioDónde obtenerla
ASSEMBLYAI_API_KEYAssemblyAI — Transcripción de alta precisión con speaker diarizationassemblyai.com → Dashboard
DEEPGRAM_API_KEYDeepgram — Transcripción ultrarrápidaconsole.deepgram.com

Almacenamiento en Nube

API / VariableServicioNota
GDRIVE_CLIENT_ID / GDRIVE_CLIENT_SECRETGoogle Drive OAuth2 — Para subir clips procesadosCrear en Google Cloud Console → APIs & Credentials
AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEYAWS S3 — Alternativa a Google DriveAWS IAM → Crear usuario con permisos S3
CLOUDINARY_URLCloudinary — El más fácil de configurar, CDN integradocloudinary.com → Account Settings → API Keys

APIs de Publicación en Redes Sociales

API / VariableServicioDónde obtenerla
BUFFER_TOKEN / BUFFER_PROFILE_IDSBuffer — Publicación multi-red (la opción más sencilla)buffer.com/developers/api
META_ACCESS_TOKEN / META_PAGE_IDMeta API — Instagram & Facebook (publicación nativa)developers.facebook.com → App → Tokens
TIKTOK_ACCESS_TOKENTikTok API — Publicación directa en TikTokdevelopers.tiktok.com
YOUTUBE_API_KEY / YOUTUBE_CHANNEL_IDYouTube Data API v3 — Subir videos a YouTubeGoogle Cloud Console → YouTube Data API v3 → API Key
LINKEDIN_ACCESS_TOKENLinkedIn — Publicación en feed profesionalLinkedIn Developer Portal → OAuth 2.0

APIs de Generación de Imágenes (Opcionales)

API / VariableMotorNota
OPENAI_API_KEYDALL-E 3 — No requiere key extraUsa la misma key de OpenAI ya configurada
GOOGLE_AI_API_KEYGoogle Gemini Imagen (Nano Banana)aistudio.google.com
REPLICATE_API_KEYStable Diffusion XL / Midjourney unofficialreplicate.com/account/api-tokens
IDEOGRAM_API_KEYIdeogram — Texto integrado en imagenideogram.ai/api
XAI_API_KEYGrok (xAI)console.x.ai
Memoria contextual: Con el preset y la memoria activos, el agente aprende el estilo del creador con cada proyecto procesado y mejora sus resultados con el tiempo. Después de 10 proyectos, el agente ya conoce perfectamente el tono, estructura y preferencias del canal.

Qué recuerda el agente

Categoría de MemoriaQué almacenaPara qué sirve
Videos procesadosID del video, URL origen, timestamp de proceso, módulos ejecutadosEvitar reprocesar el mismo video dos veces
Preferencias de ediciónAjustes manuales que el creador hizo sobre los clips (cambiar duración, rechazar subtítulos)Aprendizaje continuo del estilo preferido del creador
Métricas de engagementVistas, likes, CTR de los clips publicados por el agenteOptimizar futuros clips basándose en qué funcionó mejor
Brand Kit del creadorColores de marca, fuentes, eslogan, logo URL, tone of voice, keywords del nichoAsegurar coherencia visual y verbal en todos los clips
Presets por proyectoQué presets se usaron en cada proyecto y cuáles dieron mejores resultadosSeleccionar automáticamente el preset más efectivo según el tipo de video

Estrategias de Almacenamiento

PlataformaIdeal paraComplejidad
SupabasePostgreSQL + API REST. La más recomendada. Tablas structured para proyectos y presetsBaja-Media
RedisCache ultra-rápido para datos temporales (job queue, estado del pipeline en curso)Media
AirtableInterfaz visual para el equipo creativo. Ideal para revisar proyectos manualmenteBaja
NotionSi el equipo ya usa Notion para content planning. Integración via APIBaja
Google SheetsLa opción más simple y gratuita. Sin backend extraMínima

Almacenamiento de archivos y media

Distinto de la memoria: aquí eliges dónde se guardan los videos, clips e imágenes que genera el agente (no el estado del pipeline). Es un selector aparte del método de memoria.

OpciónIdeal para
Supabase StorageTodo en un mismo lugar si ya usas Supabase para la memoria.
Cloudflare R2Sin costos de egreso — económico cuando manejas mucho video.
Amazon S3El estándar de la industria, máxima compatibilidad.
CloudinaryTransformaciones de imagen y video sobre la marcha.

Modo de subida (importante)

El destino de arriba dice a dónde; el modo dice cómo. n8n 2.16.1 no puede pasar un binario descargado a un PUT, así que en el paso de Efectos eliges uno de tres modos:

ModoQué haceQué necesitas
Referenciada (por defecto)El vídeo NO se copia a tu storage: se queda en el CDN del servicio de render (Shotstack/Creatomate) y el agente registra esa URL. Es lo honesto — n8n no puede subir el binario solo.Nada extra.
Cloudinary (fetch por URL)Cloudinary hace fetch server-side de la URL del render → subida real sin que n8n toque el binario.CLOUDINARY_CLOUD_NAME + CLOUDINARY_UPLOAD_PRESET (unsigned).
Worker externoUn worker que despliegas mueve el binario del CDN a tu storage.Desplegar el worker (contrato POST {video_url,target_path,bucket,public} → {public_url}) y poner su URL en el wizard.
Por defecto (Referenciada) el clip vive en el CDN del render, no en tu Google Drive/S3/Supabase. Si necesitas el archivo copiado a TU storage, elige Cloudinary o worker externo. PASOS_MANUALES.md detalla lo que pide el modo que elijas.

Brand Kit del Creador

El Brand Kit es un JSON que el agente usa para mantener coherencia visual y editorial en todos los clips. Los campos configurables incluyen:

CampoField IDEjemplo
Nombre del canal/creadorchannel_nameCanal de Alex Hernández
Colores de marca (hex)brand_colors#FFD700, #000000, #FFFFFF
Fuente de marcabrand_fontMontserrat Black, Bebas Neue
Eslogan o frase de marcabrand_slogan"Negocios sin filtros"
URL del logologo_urlhttps://drive.google.com/logo.png
Tone of voicetone_of_voiceDirecto, práctico, empático
Keywords del nichoniche_keywordsnegocios, emprendimiento, ventas, cash flow

Canales de Notificación

CanalCuándo usarloRequisito
EmailSiempre. Canal principal para notificaciones detalladas con el resumen completoOWNER_EMAIL configurado como variable de entorno
WhatsAppPara notificaciones rápidas al creador en su teléfono. Incluye el resumen en texto y links de DriveWhatsApp Business API o Twilio
TelegramIdeal para equipos que usan Telegram. Permite enviar el clip directamente al chatToken de Telegram Bot
SlackPara equipos de producción que usan Slack. Avisa en el canal del proyectoSlack Webhook de canal

Notificaciones por módulo

Puedes configurar si el agente te notifica cada vez que un módulo termina (útil para pipelines largos), o solo una vez al finalizar todo el proceso. Las opciones por módulo son:

Plantilla de Notificación

La plantilla de notificación soporta variables dinámicas que se reemplazan automáticamente:

VariableValor
{{clips_generados}}Número de clips producidos en este proceso
{{duracion_total}}Duración total del video de entrada procesado
{{plataformas_publicadas}}Lista de plataformas donde se programó la publicación
{{drive_link}}URL de la carpeta de Google Drive con todos los clips
{{processing_time}}Tiempo total que tardó el pipeline en completarse
{{preset_usado}}Nombre del preset (o presets) de influencer aplicados
{{errores}}Lista de errores o advertencias encontradas durante el proceso (si aplica)
{{agent_name}}Nombre del agente que procesó el video

Configuración de Buffer para Publicación

Si usas Buffer para programar publicaciones, debes configurar los Profile IDs — los identificadores únicos de cada cuenta de red social conectada a tu Buffer. Los encuentras en la URL del Dashboard de Buffer al seleccionar cada perfil.

Múltiples perfiles: Si publicas en varios canales (YouTube + TikTok + Instagram), ingresa todos los IDs separados por coma. El agente publicará en todos simultáneamente con el caption y hashtags adaptados a cada plataforma.

Vista del Workflow n8n

En este paso el configurador muestra un diagrama visual de los nodos de n8n que serán incluidos en el ZIP exportado, reflejando todos los módulos activos y sus conexiones. Sirve para:

Diagrama mejorado. Todos los módulos activos aparecen con su nombre e icono reales —incluidos los más nuevos (Director de Edición, Generador Cognitivo, A/B Testing, Búsqueda de Música/B-roll, etc.)— con un diseño de tarjetas más claro para leer el flujo de un vistazo.

Resumen Ejecutivo

El resumen ejecutivo muestra un cuadro de métricas con la configuración actual:

MétricaDescripción
Módulos activosNúmero total de módulos seleccionados y en qué orden se ejecutarán
Presets seleccionadosLos presets de influencer activos y la mezcla de estilos resultante
Plataformas de salidaRedes sociales destino configuradas
Entorno de ejecuciónn8n Cloud (API-only) o Self-hosted (con FFmpeg)
APIs configuradas / faltantesResumen de qué APIs están listas y cuáles faltan por configurar
Estimación de costo por videoEstimación del costo de APIs por video de 1 hora procesado completamente

Estimador de Carga del Sistema

El estimador calcula dinámicamente el rendimiento esperado del pipeline:

Contenido del ZIP (24 sub-workflows + soporte)

El agente de contenido se entrega troceado. No es un solo archivo: son 24 sub-workflows6 de orquestación en workflows/ (main_webhook, rag_pipeline, llm_router, post_actions, health_check, error_handler_content) y un dispatcher + 17 módulos en workflows/pipeline/ (transcripción, detección de clips, subtítulos, research, publicación, thumbnails, SEO, generador cognitivo…). El dispatcher enruta cada módulo por executeWorkflow: importas todos y activas solo lex_main_webhook.json. El paso final muestra el panel «El ZIP contiene» con el desglose real.

workflows/ + workflows/pipeline/
24 sub-workflows n8n importables (6 orquestación + dispatcher + 17 módulos).
Incluye Error Handler y reintentos.

agent_config_reference.json
Tu configuración completa del formulario: identidad, módulos, presets, APIs, memoria, notificaciones.

README.txt
Guía de instalación: configuración de APIs, variables de entorno, cómo triggear el primer video.

style_presets.json
Los parámetros completos de los presets seleccionados, listos para inyectar en el nodo de edición.
Separación de datos y lógica: El workflow es la "máquina" (genérica, podría procesar cualquier canal). El config JSON es el "ADN" (único para cada creador). Cambia el JSON → cambia el agente, sin tocar el workflow.
Dos formas de implementar: (A) Deploy directo — con el botón Deploy a n8n del paso final, conecta la URL y API key de tu n8n (cloud o local) y el wizard sube el workflow por ti, adaptándolo automáticamente a tu versión de n8n. (B) Importar manualmente — descarga el ZIP y sigue los pasos de abajo.

El enlace entre sub-workflows se resuelve solo

El pipeline se entrega en varios sub-workflows que se llaman entre sí (dispatcher + módulos). Cuando usas el Deploy directo, la herramienta detecta el ID que n8n le asigna a cada uno y los conecta automáticamenteno configuras ninguna variable de enlace a mano (las LEX_CONTENT_*_WF_ID). Funciona igual en n8n gratis o de pago. Si descargas el ZIP e importas a mano, el README te lo explica.

Tipo de cuenta de n8n (Community vs Con Variables)

En el paso final eliges qué tipo de cuenta de n8n tienes. Eso decide cómo se ponen tus credenciales (OpenAI, Shotstack, etc.):

Tipo de cuentaCómo se ponen las variables
Community (gratis)
para tu n8n gratis o self-hosted
Los workflows usan variables de entorno ($env). Las pones una vez en Settings → Environment Variables (o el .env del host). El README trae los nombres y valores.
Con Variables (pago)Los workflows usan $vars. Al hacer Deploy directo, la herramienta sube tus credenciales por ti como Variables de n8n. Cero configuración manual.
Si no estás seguro, deja Community: es lo que aplica a las cuentas gratis (incluida la de prueba de n8n.cloud).

Proceso de implementación en n8n

1
Importar el workflow

En n8n, ve a Workflows → Import from File. Selecciona content_agent_workflow.json del ZIP (más los sub-workflows incluidos, si tu pipeline los genera). Atajo: usa el Deploy directo del wizard y omite este paso.

2
Configurar variables de entorno

En n8n, ve a Settings → Environment Variables. Crea al menos: OPENAI_API_KEY, SHOTSTACK_API_KEY (o CREATOMATE_API_KEY), GDRIVE_CLIENT_ID, GDRIVE_CLIENT_SECRET. Opcionalmente: BUFFER_TOKEN, OWNER_EMAIL.

3
Pegar la configuración del agente

Abre el nodo "Cargar Config del Agente" en n8n y pega el contenido completo de agent_config_reference.json. Reemplaza TODO el objeto de ejemplo.

4
Inyectar los presets de estilo

Abre el nodo "Presets de Edición" y pega el contenido de style_presets.json. Este JSON define todos los parámetros de edición del workflow.

5
Activar y probar con tu primer video

Activa el workflow. Envía un POST al webhook de entrada (/webhook/lex-content-agent-trigger) con el body: {"video_url": "https://youtube.com/watch?v=..."}. Monitorea la ejecución en n8n y verifica que los clips aparecen en Google Drive.

Validación pre-exportación (campos críticos)

Opciones avanzadas del paso Exportar

Antes de generar el ZIP, el paso Exportar incluye cuatro tarjetas opcionales. Ninguna es obligatoria: si no tocas nada, el workflow se genera igual.

(a) Adapter Providers

Reorganizado. Los dos selectores que generan nodos reales se movieron a su paso natural: Research ahora vive en el paso «Motor de IA» y Conversiones en el paso «Notificaciones». El resto (Storage, Mensajería, Email, LLM, PDF, Acortador de URLs) quedó en una tarjeta colapsada del paso final, usada solo como destino de autocompletado al importar un Blueprint MCP. El destino de despliegue se elige en Exportar.

Fija explícitamente qué servicio usa cada categoría:

SelectorOpciones
StorageSupabase · AWS S3 · Cloudflare R2 · Cloudinary
MensajeríaMeta WhatsApp · Twilio WhatsApp · Facebook Messenger · Slack · Telegram
EmailBrevo · Resend
LLMAnthropic · OpenAI · Gemini
PDFPDFShift · Gotenberg
ConversionesMeta CAPI · Google Ads · TikTok Events. Multi-selección: se genera un flujo de tracking por cada red elegida.
ResearchBrave · Tavily · Perplexity · OpenAI (LLM) · Anthropic (LLM) · Gemini (LLM)
Acortador de URLsTinyURL · Bitly
Destino de despliegueSelf-hosted · Cloud
En el pipeline de contenido estos selectores son reales: Research configura el proveedor del módulo de research del pipeline (Perplexity por defecto, o Brave / Tavily / OpenAI-LLM / Anthropic / Gemini), Conversiones emite un sub-workflow isla en el ZIP por cada red elegida, y el destino de despliegue también genera configuración real —no es solo "staging de blueprint".

(b) Credenciales (opcional)

Si quieres, puedes pegar tus credenciales aquí y el wizard las inyecta en el .env.example del ZIP. Se agrupan por servicio:

Solo en tu sesión: las credenciales que escribes aquí viven únicamente en la memoria del navegador (no se guardan). El botón para borrarlas las limpia al instante.

(c) Features industriales (opcional)

Capacidades extra opcionales que se inyectan al workflow solo si las activas (algunas son transversales, pensadas para agentes que además conversan con clientes). Si no enciendes ninguna, el ZIP queda idéntico.

FeatureQué agrega
Logs estructuradosRegistra cada evento (inicio/fin/error) en Supabase, listo para dashboards de analytics.
Persistencia conversacionalGuarda el estado en Redis con TTL, para que sobreviva entre mensajes. Requiere Redis.
Router por intenciónUn LLM clasifica cada mensaje y lo enruta con un Switch. Requiere API key de LLM.
Intérprete de "no"Clasifica los rechazos del cliente en categorías (sin presupuesto, más tarde, no interesado…) para decidir el seguimiento.
Handoff resume (HMAC)Webhook firmado para que un operador libere al bot tras un handoff. Requiere una variable secreta.
Validador de salidaRevisa la salida del LLM contra términos prohibidos y bloques faltantes; inyecta logos y assets.

(d) Modo de despliegue del workflow

Cambia cómo se generan los nodos de render de video:

ModoQué implica
Self-hostedTu propio n8n en Docker/localhost con ffmpeg local. Sin costos extra de render.
Cloudn8n.cloud u otro host sin ffmpeg. El render de subtítulos y video se delega a la API de Shotstack.

Video
de entrada

Webhook
Trigger

Cargar
Config

Transcripción
(Whisper)

Detector Viral

Corte API

Subtítulos

Efectos

Miniatura

Títulos SEO

Upload

Publicar

Notificar al creador
Email / WhatsApp / Telegram

Flujo de decisión por módulo

Módulo N
inicia
¿Éxito?

Pasar al módulo N+1
NO
Reintento (hasta 3x)
→ Notificar error
→ Continuar o abortar

Manejo de errores por módulo

MóduloError típicoAcción del agente
TranscripciónVideo muy largo, formato no soportado, API caídaReintenta hasta 3 veces. Si falla, aborta el pipeline y notifica al creador con el error específico.
Detector ViralLLM excede tokens, respuesta malformadaReintenta con un modelo de fallback (GPT-4o Mini). Si falla, usa timestamps equidistantes para cortar.
Corte de VideoAPI de video caída, créditos agotadosSi Shotstack falla, intenta con Creatomate. Si ambos fallan, almacena en cola para reintento.
SubtítulosArchivo SRT malformado, fuente no encontradaUsa subtítulos de fallback con parámetros por defecto del preset.
UploadDrive sin espacio, credenciales expiradasNotifica al creador. Guarda los clips localmente si hay failover de almacenamiento.
PublicaciónToken de red social expirado, límite de publicacionesGuarda el clip en cola para publicación manual. Notifica al creador con el enlace de Drive.
Principio of continuity: El pipeline nunca se detiene silenciosamente. Si un módulo falla de forma irrecuperable, el agente siempre notifica al creador con el estado exacto: qué falló, en qué paso, y qué clips sí se procesaron correctamente.
Preset(s) seleccionados
JSON de parámetros
técnicos de edición
editing_prompt
(Natural Language)
API de video
ejecuta instrucciones

¿Qué pasa al combinar dos presets?

Cuando seleccionas 2 presets, el LLM analiza ambos editing_prompt y los style_params, luego genera un prompt sintetizado que mezcla ambos estilos. El sistema hace una media ponderada de los parámetros numéricos:

// Ejemplo: MrBeast (ultra agresivo) + GaryVee (orgánico)
preset_A.max_silence_cut_ms = 100  // MrBeast
preset_B.max_silence_cut_ms = 500  // GaryVee
// Resultado mezclado:
merged.max_silence_cut_ms = 300    // Media: ritmo moderado-agresivo

// GaryVee no usa zoom. MrBeast sí. Resultado:
merged.zoom_effect = true          // Se activa
merged.zoom_intensity = 0.10       // Intensidad reducida (media de 0.20 y 0.0)

Anatomía de un Preset (JSON completo)

{
  "id": "hormozi",
  "name": "Alex Hormozi",
  "cat": "Retención & Marca Personal",
  "emoji": "",
  "desc": "...",
  "style_params": {
    "max_silence_cut_ms": 200,
    "zoom_effect": true,
    "zoom_intensity": 0.15,
    "subtitle_style": {
      "font": "Montserrat Black",
      "size": 72,
      "color": "#FFFFFF",
      "stroke_color": "#000000",
      "highlight_keywords": true,
      "highlight_color": "#FFD700",
      "animation": "pop_word",
      "position": "center"
    },
    "cut_rhythm": "aggressive",
    "music_energy": "high",
    "hook_aggressive": true,
    "opening_seconds_max": 3
  },
  "editing_prompt": "Edit in the style of Alex Hormozi: remove all silences over 200ms..."
}
{
  "content_agent_config": {
    "identity": { agent_name, channel_name, niche, language, creator_style, platforms },
    "active_modules": [ "transcription", "clip_detection", "auto_cut", "subtitles",
                         "effects", "thumbnail", "seo_text", "script", "upload", "publish" ],
    "pipeline_order": [ /* mismo array que active_modules en el orden de ejecución */ ],
    "active_presets": [ "hormozi", "garyvee" ],
    "preset_params": { /* estilo mezclado de los presets activos */ },
    "video_input": { exec_mode, source_type, max_duration, video_lang,
                        num_clips, min_clip_s, max_clip_s, output_formats, quality },
    "ai_engines": { transcription, llm_model, llm_temperature, output_lang,
                       image_engine, video_engine },
    "memory": { content_types, storage_type, brand_kit },
    "notifications": { channels, owner_email, owner_phone, per_module, template },
    "apis": { mandatory: [], video: [], transcription: [], storage: [], publish: [], images: [] }
  },
  "_meta": { generator: "INDUSTRIAL NODES", created, validation }
}

Nodos incluidos en el workflow

NodoTipo n8nFunción
Webhook Trigger PrincipalWebhook v2Recibe el video_url y parámetros de configuración para iniciar el pipeline
Cargar Config del AgenteCode v2Extrae el content_agent_config e inicializa el estado del pipeline
Descargar / Acceder VideoHTTP Request v4.2Descarga el video desde la URL o accede a Google Drive según la fuente configurada
Transcribir con WhisperHTTP Request v4.2Envía el audio a OpenAI Whisper API y recibe la transcripción con timestamps
Detectar Clips Virales (LLM)HTTP Request v4.2Envía transcripción + preset + nicho al LLM. Recibe JSON con timestamps de clips
Iterar sobre ClipsSplitInBatches v3Itera sobre cada clip detectado para procesarlo individualmente
Cortar Video (Shotstack / Creatomate)HTTP Request v4.2Envía job de renderizado a la API de video seleccionada
Esperar RenderizadoWait v1Polling hasta que la API de video confirme que el renderizado completó
Añadir SubtítulosHTTP Request v4.2Job de subtítulos a la API de video con el estilo del preset activo
Aplicar EfectosHTTP Request v4.2Job de efectos (zoom, música, transiciones) según el preset
Generar MiniaturaHTTP Request v4.2Envía prompt de imagen al motor de IA configurado (DALL-E 3, etc.)
Generar SEOHTTP Request v4.2Envía prompt al LLM con el transcript del clip y el estilo del creador. Recibe título + descripción + tags
Subir a Google DriveHTTP Request v4.2Sube el clip final + miniatura + SRT a la carpeta del proyecto en Drive
Programar Publicación (Buffer)HTTP Request v4.2Envía el video, caption y horario a Buffer para publicación programada
Guardar en MemoriaHTTP Request v4.2Registra el proyecto y los clips en Supabase/Airtable para memoria del agente
Notificar al CreadorCode v2 + HTTPPrepara y envía la notificación de resumen por los canales configurados
Error HandlerError Trigger v1Captura errores de cualquier nodo y notifica al creador con detalles del fallo

Variables de entorno necesarias

VariablePara quéRequerida
$env.OPENAI_API_KEYWhisper + GPT-4o + DALL-E 3
$env.SHOTSTACK_API_KEYRenderizado de video en la nubeSí (si n8n Cloud)
$env.CREATOMATE_API_KEYAlternativa a ShotstackOpcional
$env.GDRIVE_CLIENT_IDGoogle Drive OAuth2Sí (si usa Drive)
$env.GDRIVE_CLIENT_SECRETGoogle Drive OAuth2Sí (si usa Drive)
$env.BUFFER_TOKENPublicación multi-redOpcional
$env.SUPABASE_URLBase de datos de memoria del agenteOpcional
$env.SUPABASE_SERVICE_KEYAcceso a SupabaseOpcional
$env.OWNER_EMAILEmail del creador para notificacionesOpcional
$env.FFMPEG_PATHRuta de FFmpeg en servidor (solo self-hosted)Opcional
Seguridad: carga tus API keys y credenciales reales en el wizard solo si vas a mantener total privacidad sobre los documentos generados — el ZIP y el .env.example pueden incluirlas. Si vas a compartir esos archivos, deja los campos vacíos y configura las claves directamente en n8n (Settings → Variables), donde se manejan como variables de entorno y nunca quedan dentro del workflow.
ServicioTipoEndpoint / AcciónNota
Trigger principal del workflowWebhook IN/webhook/lex-content-agent-triggerPOST con {"video_url": "..."}
ShotstackAPI OUTPOST https://api.shotstack.io/v1/renderEnvía job de renderizado de video
Shotstack pollingAPI OUTGET https://api.shotstack.io/v1/render/{id}Verifica si el renderizado completó
OpenAI WhisperAPI OUTPOST https://api.openai.com/v1/audio/transcriptionsTranscribe el audio del video
OpenAI ChatAPI OUTPOST https://api.openai.com/v1/chat/completionsAnálisis viral, SEO, guiones
Google DriveAPI OUTGoogle Drive API v3Subir clips procesados
BufferAPI OUTPOST https://api.bufferapp.com/1/updates/create.jsonProgramar publicación
Notificación de EmailSMTP / API OUTMailgun, SendGrid o SMTP propioResumen de procesamiento al creador

Para el Creador

¿Puedo usar el agente con videos que no son míos (ej: una entrevista)?

Sí. El agente procesa cualquier video que le pases, sin importar quién lo grabó. Asegúrate de tener los derechos de uso del contenido antes de publicar los clips.

¿Cuántos clips puede generar por video?

El configurador permite de 1 a 30 clips por video. Para videos de 30-60 min, 10 clips es el estándar recomendado. Para podcasts de 2h+, 20-25 clips maximizan el ROI del procesamiento.

¿Puedo cambiar el preset después de exportar?

Sí. Vuelve al configurador, cambia los presets y re-exporta. El workflow de n8n usa el style_presets.json que puedes reemplazar sin importar el workflow de nuevo.

¿El agente puede crear contenido en inglés aunque el video sea en español?

Sí. Configura el idioma del video de entrada en Paso 4 y el idioma de los outputs de texto en Paso 6 de forma independiente. El agente traducirá los títulos, descripciones y captions al idioma objetivo.

¿Puedo usar varios presets personalizados para diferentes tipos de video?

Sí. Crea múltiples presets personalizados (uno para entrevistas, otro para tutoriales, otro para clips motivacionales) y selecciona el apropiado antes de cada ejecución.


Para el Admin

¿Qué pasa si se agota el crédito de Shotstack durante un procesamiento?

El workflow tiene un fallback a Creatomate si ambas claves están configuradas. Si ninguna está disponible, el job se almacena en cola para reintento. El creador recibe una notificación con el estado.

¿Cómo funciona el trigger automático por carpeta de Drive?

En n8n puedes configurar un nodo de Google Drive trigger que monitorea una carpeta específica. Cada vez que se sube un nuevo archivo .mp4, .mov o .mkv, el workflow se ejecuta automáticamente sobre ese video.

¿Se puede ejecutar el workflow manualmente sin webhook?

Sí. En n8n puedes ejecutar el workflow manualmente desde el editor pasando los parámetros directamente en el nodo de inicio. Útil para tests o producciones puntuales.

¿Cómo conecto la autenticación OAuth2 de Google Drive en n8n?

En n8n, ve a Credentials → New → Google OAuth2 API. Ingresa el Client ID y Secret de tu Google Cloud Console. Completa el flujo de autenticación. El token se renueva automáticamente.

¿Puedo procesar múltiples videos en paralelo?

Sí. Cada ejecución del workflow es independiente. puedes enviar múltiples videos al webhook simultáneamente y n8n los procesará en workers paralelos (limitado por tu plan de n8n y los rate limits de las APIs).


Solución de Problemas

El workflow no procesa el video — error en el nodo de descarga

Verifica que la URL del video sea pública o que las credenciales OAuth2 de Google Drive tengan los permisos correctos. Para videos de YouTube, verifica que yt-dlp esté instalado y actualizado en el servidor (self-hosted) o que uses un servicio de descarga cloud.

Los subtítulos no aparecen en el video final

Verifica que el motor de edición de video (Shotstack / Creatomate) esté configurado con las credenciales correctas. Para ver el error específico, revisa los logs de ejecución en n8n del nodo "Añadir Subtítulos".

Los títulos SEO no reflejan el estilo del creador

Revisa el campo "Estilo de comunicación del creador" en el Paso 1. Debe ser muy específico: incluye ejemplos de frases que el creador usa, su vocabulario particular y su estructura de CTA. Cuanto más detallado, más preciso será el LLM.

La publicación en Buffer falla

Verifica que el BUFFER_TOKEN no haya expirado y que los BUFFER_PROFILE_IDS sean correctos. Los Profile IDs se encuentran en la URL del Dashboard de Buffer al seleccionar cada cuenta de red social.

El agente procesa el mismo video dos veces

Activa el módulo de Memoria del agente con Supabase o Google Sheets. El agente registrará los IDs de videos procesados y los filtrará en futuras ejecuciones para evitar reprocesar.

Industrial Nodes está construido bajo prácticas de ingeniería de confiabilidad orientadas a producción: objetivo de 99.99% de disponibilidad (máximo 52.56 minutos de downtime al año) y seis mecanismos de tolerancia a fallos activos en cada agente. No perseguimos un sello estadístico — construimos los sistemas que evitan que el negocio se caiga.

Los 6 pilares de confiabilidad

  1. Rate Limiting Distribuido: vía RPC rate_limit_check en Supabase con degradación gracil. Si Supabase no responde, el sistema entra en modo degradado con flag _rate_degraded en lugar de fallar.
  2. Health Check /health: endpoint público que verifica env vars críticas, estado del circuit breaker LLM, ping a OpenAI y Supabase. Persistido en tabla system_health_log.
  3. Circuit Breaker LLM: estado CLOSED → OPEN → HALF_OPEN → CLOSED con contador de fallos en $getWorkflowStaticData('global').llmFails. Si el LLM falla N veces, el circuit pasa a OPEN y los siguientes requests reciben respuesta degradada sin gastar tokens.
  4. DLQ + Retry Exponencial: webhooks externos con wh_retry: 3 y fallback a Dead Letter Queue (media_dlq) si todos los reintentos fallan.
  5. Idempotency Dual: header Idempotency-Key + tabla de tracking (generated_content_log) con TTL 24h. Previene duplicados en la generación de contenido y operaciones del pipeline.
  6. Audit Log Universal: cada transición de estado crítica queda registrada en un log de auditoría (audit_log) con nivel (info/warn/error), servicio, tipo de evento y contexto — para diagnosticar en producción cualquier cosa que pase.

Query SQL Error Budget

SELECT date_trunc('minute', timestamp) AS minute,
       COUNT(*) FILTER (WHERE overall_status IN ('unhealthy','degraded')) AS down_minutes
FROM system_health_log
WHERE timestamp > now() - interval '30 days'
GROUP BY minute
ORDER BY minute DESC;

Calidad de lo que exportas

Cada agente que generas pasa por una validación automatizada antes de entregártelo —schema n8n 1.x/2.x, typeVersions, expresiones y conexiones— para que importe limpio en tu instancia, sin los errores típicos de un JSON armado a mano.

Cuando exportas o despliegas, Industrial Nodes valida automáticamente el workflow contra la especificación de n8n (1.x/2.x) — schema, typeVersions, expresiones y conexiones — para que importe limpio sin que revises nada a mano. No tienes que correr ninguna herramienta.

Exit codes

Qué valida

Tabla de node types n8n 1.x soportados (2026)

TypetypeVersion actualVersions válidasDocs
n8n-nodes-base.webhook2[1, 1.1, 2]Docs
n8n-nodes-base.httpRequest4.4[1, 2, 3, 4, 4.1, 4.2, 4.3, 4.4]Docs
n8n-nodes-base.code2[1, 2]Docs
n8n-nodes-base.switch3[1, 2, 3]Docs
n8n-nodes-base.if2[1, 2]Docs
n8n-nodes-base.merge3[1, 2, 2.1, 3]Docs
n8n-nodes-base.wait1.1[1, 1.1]Docs
n8n-nodes-base.scheduleTrigger1.2[1, 1.1, 1.2]Docs
n8n-nodes-base.respondToWebhook1.5[1, 1.1, 1.2, 1.3, 1.4, 1.5]Docs
n8n-nodes-base.splitInBatches3[1, 2, 3]Docs
n8n-nodes-base.executeWorkflow1.2[1, 1.1, 1.2]Docs
n8n-nodes-base.formTrigger2.2[1, 2, 2.1, 2.2, 2.3]Docs
n8n-nodes-base.manualTrigger1[1]Docs
n8n-nodes-base.emailReadImap1[1]Docs
n8n-nodes-base.workflowTrigger1[1]Docs

n8n Core

VariableDescripciónDónde obtenerlaRequerida
WEBHOOK_URLURL base de tu instancia n8nTu dominio n8n (ej: https://n8n.tudominio.com)
EXECUTIONS_TIMEOUTTimeout global de ejecuciones (segundos)Valor recomendado: 3600Opcional
NODE_FUNCTION_ALLOW_BUILTINMódulos Node.js permitidos en Code nodesValor: crypto,buffer,urlOpcional

Supabase (REQUIRED)

VariableDescripciónDónde obtenerlaRequerida
SUPABASE_URLURL del proyecto SupabaseSupabase Dashboard → Settings → API → Project URL
SUPABASE_KEYService role key de SupabaseSupabase Dashboard → Settings → API → service_role (secret)
SUPABASE_STORAGE_BUCKETNombre del bucket de storageCrear en Supabase Storage. Default: lex-contentOpcional

LLM Providers (al menos uno)

VariableDescripciónDónde obtenerlaRequerida
OPENAI_API_KEYAPI key de OpenAI (GPT-4o, Whisper, DALL-E, embeddings)platform.openai.com/api-keysSí (recomendado)
ANTHROPIC_API_KEYAPI key de Anthropic (Claude)console.anthropic.comAlternativa
GOOGLE_AI_API_KEYAPI key de Google AI (Gemini)aistudio.google.comAlternativa

Media APIs (Content Pipeline)

VariableDescripciónDónde obtenerlaRequerida
ELEVENLABS_API_KEYVoz IA / TTS premium para voiceoverelevenlabs.io → Profile → API KeyOpcional
FREESOUND_API_KEYEfectos de sonido gratuitosfreesound.orgOpcional
EPIDEMIC_SOUND_API_KEYMúsica de fondo premiumEpidemic Sound Partner APIOpcional
ARTLIST_API_KEYMúsica y SFX premiumArtlist Enterprise APIOpcional
PIXABAY_API_KEYImágenes/videos stock gratuitospixabay.com/apiOpcional
PEXELS_API_KEYImágenes/videos stock gratuitospexels.com/apiOpcional
UNSPLASH_API_KEYFotografía stock premiumunsplash.com/developersOpcional
SHUTTERSTOCK_API_KEYStock media premiumshutterstock.com/developersOpcional

Image Generation

VariableDescripciónDónde obtenerlaRequerida
STABILITY_API_KEYStable Diffusion API (miniaturas, banners)platform.stability.aiOpcional
REPLICATE_API_TOKENModelos open-source via APIreplicate.comOpcional
NANO_BANANA_API_KEYGPU serverless para modelos customBanana.dev / Fal.ai dashboardOpcional
DALL_E_API_KEYDALL-E 3 (usa OPENAI_API_KEY si es la misma)Misma que OPENAI_API_KEYOpcional

Notificaciones

VariableDescripciónDónde obtenerlaRequerida
OWNER_EMAILEmail del creador para alertasTu emailRecomendado
OWNER_PHONETeléfono del creador para alertas SMSTu número personalOpcional
SENDGRID_API_KEYAPI key de SendGrid para emailsapp.sendgrid.comOpcional
SLACK_WEBHOOK_URLWebhook de Slack para notificacionesSlack App → Incoming WebhooksOpcional
TELEGRAM_BOT_TOKENToken del bot de Telegram@BotFather en TelegramOpcional
TELEGRAM_CHAT_IDChat ID para notificaciones Telegram@userinfobot o API getUpdatesOpcional
RESEND_API_KEYAlternativa a SendGridresend.comOpcional

Storage & Video Cloud

VariableDescripciónDónde obtenerlaRequerida
GOOGLE_CLOUD_STORAGE_BUCKETBucket GCS para clips procesadosGoogle Cloud Console → StorageOpcional
R2_BUCKETBucket Cloudflare R2Cloudflare Dashboard → R2Opcional
R2_ENDPOINTEndpoint de Cloudflare R2Cloudflare R2 → SettingsOpcional
SHOTSTACK_API_KEYAPI de renderizado de video clouddashboard.shotstack.ioSí (si n8n Cloud)
CREATOMATE_API_KEYAlternativa a Shotstack para videocreatomate.comOpcional

Búsqueda Web (Content Research)

VariableDescripciónDónde obtenerlaRequerida
TAVILY_API_KEYBúsqueda web IA para researchtavily.comOpcional
SERPAPI_KEYGoogle Search API wrapperserpapi.comOpcional
BRAVE_API_KEYBrave Search APIbrave.com/search/apiOpcional
Seguridad: NUNCA subas el archivo .env a Git. Asegúrate de que .gitignore lo excluya. En n8n, configura las variables en Settings → Variables.

URL del Endpoint

GET {{WEBHOOK_URL}}/webhook/lex-health

Response Payload (200 OK - Healthy)

{
  "status": "healthy",
  "overall_status": "healthy",
  "timestamp": "2026-04-11T12:00:00.000Z",
  "checks": {
    "env_vars": { "status": "ok", "missing": [] },
    "circuit_breaker": { "status": "CLOSED", "fail_count": 0 },
    "openai_ping": { "status": "ok", "latency_ms": 120 },
    "supabase_ping": { "status": "ok", "latency_ms": 45 },
    "video_api": { "status": "ok", "provider": "shotstack" }
  },
  "version": "1.0",
  "uptime_seconds": 86400
}

Response Payload (503 - Degraded/Unhealthy)

{
  "status": "degraded",
  "overall_status": "degraded",
  "timestamp": "2026-04-11T12:05:00.000Z",
  "checks": {
    "env_vars": { "status": "ok", "missing": [] },
    "circuit_breaker": { "status": "OPEN", "fail_count": 5 },
    "openai_ping": { "status": "timeout", "latency_ms": null },
    "supabase_ping": { "status": "ok", "latency_ms": 50 },
    "video_api": { "status": "ok", "provider": "shotstack" }
  },
  "version": "1.0",
  "uptime_seconds": 86400
}

Códigos HTTP

CódigoEstadoSignificado
200healthyTodos los checks pasan. Pipeline operativo.
503degradedAl menos un check falla pero el pipeline sigue operando con limitaciones.
503unhealthyChecks críticos fallan. El pipeline no puede procesar videos.

Query SQL para Monitoreo

-- Últimas 24h de health checks
SELECT timestamp, overall_status, checks
FROM system_health_log
WHERE timestamp > now() - interval '24 hours'
ORDER BY timestamp DESC
LIMIT 100;

-- Uptime % últimos 30 días
SELECT
  ROUND(
    100.0 * COUNT(*) FILTER (WHERE overall_status = 'healthy') / COUNT(*),
    4
  ) AS uptime_pct
FROM system_health_log
WHERE timestamp > now() - interval '30 days';

Integración con Servicios de Monitoreo

ServicioConfiguración
Uptime RobotNew Monitor → HTTP(s) → URL: {{WEBHOOK_URL}}/webhook/lex-health → Interval: 5 min → Alert on 503
PingdomAdd Check → HTTP → URL del health endpoint → Check interval: 1 min → Alert contacts
Healthchecks.ioNew Check → Cron: */5 * * * * → Ping URL desde n8n Schedule Trigger cada 5 min
Better StackMonitors → New → HTTP → URL + Expected status 200 → Alertas por Slack/Email

Checklist de Despliegue

  1. Clonar/instalar n8n: npx n8n (local) o desplegar en n8n Cloud, Railway, o Docker. Verificar que sea n8n 1.x+.
  2. Importar workflow JSON: En n8n, ir a Workflows → Import from File → seleccionar el JSON exportado por el configurador.
  3. La validación ya ocurrió: el wizard verifica cada workflow automáticamente al exportarlo, así que puedes importarlo directo. Si editaste el JSON a mano, re-expórtalo desde el wizard para re-validarlo.
  4. Configurar credenciales en n8n: Settings → Variables → agregar cada variable del .env.example. Mínimo: OPENAI_API_KEY, SUPABASE_URL, SUPABASE_KEY, SHOTSTACK_API_KEY o CREATOMATE_API_KEY.
  5. Ejecutar SQL setup en Supabase: Ejecutar los scripts SQL de tablas necesarias (system_health_log, audit_log, generated_content_log, etc.) en el SQL Editor de Supabase.
  6. Configurar Google Drive (opcional): Si usas Drive como fuente de video, configurar OAuth2 en n8n: Credentials → New → Google OAuth2 API.
  7. Activar workflow: En n8n, toggle "Active" en la esquina superior derecha del workflow.
  8. Test request: Enviar un video de prueba al webhook:
    curl -X POST {{WEBHOOK_URL}}/webhook/lex-content-agent-trigger \
      -H "Content-Type: application/json" \
      -d '{"video_url":"https://example.com/test-video.mp4"}'
  9. Verificar /health:
    curl {{WEBHOOK_URL}}/webhook/lex-health
    Debe retornar {"status":"healthy"}.
  10. Configurar monitoreo: Conectar Uptime Robot, Pingdom o Healthchecks.io al endpoint /health.
  11. Backup del workflow: Guardar una copia del JSON en un repositorio Git.
Listo para producción: Una vez completados todos los pasos, tu pipeline de contenido estará operativo con monitoreo de /health, circuit breaker, rate limiting, y audit logging activos.

Campo: Estilo de Comunicación del Creador (f_creatorStyle)

Superprompt: Estilo del Creador
PERFIL DE COMUNICACIÓN DEL CREADOR:

NOMBRE: {{NOMBRE_CREADOR}}
PLATAFORMAS: {{PLATAFORMAS}} (ej: YouTube, TikTok, Instagram)
NICHO: {{NICHO}} (ej: finanzas personales, fitness, tecnología)

TONO Y ENERGÍA:
- Nivel de energía: {{NIVEL_ENERGÍA: ej: Alto y motivacional / Calmado y reflexivo / Intenso y directo}}
- Vocabulario: {{VOCABULARIO: ej: Usa jerga técnica / Lenguaje casual con slang / Formal pero accesible}}
- Muletillas frecuentes: "{{MULETILLA_1}}", "{{MULETILLA_2}}", "{{MULETILLA_3}}"
- Frases de apertura típicas: "{{FRASE_APERTURA}}"
- CTAs habituales: "{{CTA_HABITUAL}}"

ESTRUCTURA DE CONTENIDO:
- Hook típico: {{TIPO_HOOK: ej: Pregunta provocativa / Dato impactante / Historia personal}}
- Duración promedio de clips: {{DURACIÓN_CLIPS}} segundos
- Ritmo de edición: {{RITMO: ej: Cortes rápidos cada 2-3s / Tomas largas de 10-15s / Mixto}}

EJEMPLOS DE TÍTULOS QUE USA:
1. "{{EJEMPLO_TÍTULO_1}}"
2. "{{EJEMPLO_TÍTULO_2}}"
3. "{{EJEMPLO_TÍTULO_3}}"

TEMAS QUE NUNCA TOCA: {{TEMAS_PROHIBIDOS}}
AUDIENCIA TARGET: {{AUDIENCIA}} (ej: Hombres 25-35, emprendedores digitales)

Cuanto más detallado sea el perfil, mejor replicará el LLM el estilo del creador en títulos, descripciones y guiones.

Campo: Descripción del Preset Personalizado (cp_desc)

Superprompt: Descripción de Preset Personalizado
PRESET: {{NOMBRE_PRESET}}
INSPIRADO EN: {{CREADOR_REFERENCIA}} (ej: MrBeast, Alex Hormozi, Marques Brownlee)
PROPÓSITO: {{PROPÓSITO}} (ej: clips virales para TikTok, highlights de podcast, tutoriales cortos)

ESTILO VISUAL:
- Ritmo de corte: {{RITMO_CORTE: ultra_aggressive / fast / medium / organic / luxury}}
- Zoom: {{ZOOM: ej: Sí, intensidad 1.3x en puntos clave / No zoom}}
- Subtítulos: {{ESTILO_SUBTITULOS: ej: Bold centered, 2 palabras por línea, amarillo con outline negro}}
- Transiciones: {{TRANSICIONES: ej: Hard cut / Swipe / Fade / Glitch}}

ESTILO DE AUDIO:
- Música de fondo: {{MUSICA: ej: Lo-fi hip hop suave / Épica cinematográfica / Sin música}}
- Energía musical: {{ENERGIA_MUSICA: low / medium / high / cinematic}}
- SFX: {{SFX: ej: Whoosh en transiciones, pop en texto, risas enlatadas / Minimal / Ninguno}}

OUTPUT ESPERADO:
- Plataforma principal: {{PLATAFORMA}} (ej: TikTok 9:16, YouTube Shorts 9:16, Instagram Reels)
- Duración target: {{DURACION_MIN}}-{{DURACION_MAX}} segundos
- Cantidad de clips por video: {{NUM_CLIPS}}

Este preset se convierte en el JSON técnico que controla todos los parámetros de edición del pipeline.

Campo: Prompt de Entrenamiento del Preset (cp_prompt)

Superprompt: Training Prompt del Preset
Eres un editor de video profesional especializado en contenido {{NICHO}} para {{PLATAFORMA}}.

Tu tarea es analizar la transcripción de un video largo y detectar los mejores momentos para convertir en clips cortos virales.

CRITERIOS DE SELECCIÓN DE CLIPS:
1. HOOK FUERTE: Los primeros 3 segundos del clip deben capturar atención inmediata. Busca:
   - Afirmaciones impactantes o contraintuitivas
   - Preguntas retóricas poderosas
   - Datos o estadísticas sorprendentes
   - Inicio de una historia intrigante

2. CONTENIDO DE VALOR: El clip completo debe entregar:
   - Una idea completa (no cortar a mitad de explicación)
   - Información accionable o entretenimiento puro
   - Conexión emocional (humor, inspiración, sorpresa, controversia)

3. CIERRE NATURAL: El clip debe terminar en un punto de resolución o CTA orgánico

FORMATO DE OUTPUT (JSON):
{
  "clips": [
    {
      "start_time": "MM:SS",
      "end_time": "MM:SS",
      "hook": "Primeras palabras del clip",
      "topic": "Tema principal del clip",
      "viral_score": 1-10,
      "emotion": "{{EMOCION: humor/inspiración/sorpresa/educativo/controversia}}",
      "suggested_title": "Título SEO optimizado para {{PLATAFORMA}}",
      "suggested_hashtags": ["#tag1", "#tag2", "#tag3"]
    }
  ]
}

REGLAS:
- Detectar máximo {{MAX_CLIPS}} clips
- Duración de cada clip: {{DURACION_MIN}}-{{DURACION_MAX}} segundos
- Priorizar clips con viral_score >= 7
- NO incluir introducciones genéricas ("Hola chicos, bienvenidos...")
- NO incluir secciones de sponsors o anuncios
- Los títulos deben usar el estilo de {{CREADOR}}: {{ESTILO_TÍTULOS}}

Este es el prompt más crítico del pipeline. Define cómo el LLM detecta y recorta los clips virales.

Campo: Instrucciones LLM del Pipeline (pipeLogicCustom)

Superprompt: Instrucciones Custom del Nodo LLM
CONTEXTO: Eres el motor de IA del pipeline de producción de contenido de {{NOMBRE_CANAL}}.

MÓDULO ACTUAL: {{MÓDULO: ej: Detección de clips / Generación SEO / Guión de voiceover / Análisis de engagement}}

INSTRUCCIONES ESPECÍFICAS:
{{INSTRUCCIONES_MÓDULO}}

REGLAS GLOBALES:
- Idioma de output: {{IDIOMA_OUTPUT}}
- Tono: Debe coincidir con el estilo de {{NOMBRE_CREADOR}} ({{TONO_BREVE}})
- Si el input está vacío o corrupto, retornar JSON con "error": "input_invalid" en lugar de inventar contenido
- Tiempo máximo de procesamiento esperado: {{TIMEOUT_SEGUNDOS}}s
- Si el contenido del video es inapropiado o viola guidelines de la plataforma, marcar como "flagged": true

FORMATO DE RESPUESTA:
Siempre JSON válido. Sin texto antes o después del JSON. Sin markdown code fences.
{{SCHEMA_JSON_ESPERADO}}

Personaliza por cada nodo del pipeline que use LLM.

Campo: Template de Notificación (f_notifTemplate)

Superprompt: Template de Notificación al Creador
RESUMEN DE PRODUCCIÓN - {{NOMBRE_CANAL}}

Video procesado: "{{TÍTULO_VIDEO}}"
Duración original: {{DURACIÓN_ORIGINAL}}
Fecha de procesamiento: {{FECHA}}

CLIPS GENERADOS: {{NUM_CLIPS}}
{{LISTA_CLIPS:
  1. "{{TÍTULO_CLIP_1}}" ({{DURACIÓN_1}}s) - Score viral: {{SCORE_1}}/10
  2. "{{TÍTULO_CLIP_2}}" ({{DURACIÓN_2}}s) - Score viral: {{SCORE_2}}/10
  ...
}}

ASSETS ENTREGADOS:
- {{NUM_CLIPS}} clips editados con subtítulos y efectos
- {{NUM_CLIPS}} miniaturas generadas
- {{NUM_CLIPS}} archivos SRT de subtítulos
- {{NUM_CLIPS}} sets de títulos + descripciones + hashtags SEO

ALMACENAMIENTO:
- Google Drive: {{LINK_CARPETA_DRIVE}}
- Publicación programada en Buffer: {{ESTADO_BUFFER}}

PRÓXIMOS PASOS:
1. Revisar clips en {{LINK_CARPETA_DRIVE}}
2. Aprobar o ajustar títulos/descripciones
3. Confirmar programación de publicación

¿Necesitas reprocesar algún clip? Responde con el número del clip.

Las variables con doble llave son inyectadas por el workflow automáticamente.

Campo: Prompt de SEO (seo_prompt — nodo interno del pipeline)

Superprompt: Generación de SEO para Clips
Eres un experto en SEO de {{PLATAFORMA}} especializado en el nicho de {{NICHO}}.

Genera el paquete SEO completo para el siguiente clip de video:

TRANSCRIPCIÓN DEL CLIP:
{transcript}

ESTILO DEL CREADOR: {{ESTILO_CREADOR}}
PLATAFORMA TARGET: {{PLATAFORMA}}

GENERA (JSON):
{
  "title": "Título optimizado (max {{MAX_CHARS_TITULO}} chars). Debe ser {{ESTILO_TÍTULO: ej: provocativo y con números / educativo y directo / clickbait moderado}}",
  "description": "Descripción de {{MAX_CHARS_DESC}} chars con keywords naturales. Incluir CTA: {{CTA_ESTÁNDAR}}",
  "hashtags": ["30 hashtags ordenados por relevancia. Mezcla de: {{NUM_TRENDING}} trending + {{NUM_NICHO}} de nicho + {{NUM_BRAND}} de marca"],
  "thumbnail_prompt": "Prompt para DALL-E 3: miniatura {{ESTILO_MINIATURA: ej: cara sorprendida con texto bold / producto en primer plano / antes/después}}. Texto overlay: máx 4 palabras en {{IDIOMA}}. Colores: {{PALETA_COLORES}}.",
  "best_posting_time": "Hora óptima basada en la audiencia de {{ZONA_HORARIA}} para {{PLATAFORMA}}",
  "content_category": "Categoría de la plataforma más relevante"
}

REGLAS:
- NO usar emojis en el título (baja CTR en YouTube)
- Hashtags en {{IDIOMA}}, sin espacios dentro del hashtag
- Description debe incluir al menos 3 keywords de cola larga
- Thumbnail prompt debe producir imagen que contraste con el feed típico de {{PLATAFORMA}}

La variable {transcript} es inyectada automáticamente. NO cambiar.

Campo: Prompt de Voiceover (voiceover_prompt — nodo interno)

Superprompt: Guión de Voiceover
Eres un guionista de voiceover para contenido de {{NICHO}} en {{PLATAFORMA}}.

A partir de la siguiente transcripción de clip, genera un voiceover narrado que:
1. Mantenga el mensaje core del clip original
2. Adapte el lenguaje al estilo de {{NOMBRE_CREADOR}}: {{ESTILO_BREVE}}
3. Sea natural para TTS (sin abreviaturas, sin símbolos, números escritos como palabras)
4. Dure aproximadamente {{DURACIÓN_TARGET}} segundos al ser narrado (~150 palabras/minuto)

TRANSCRIPCIÓN ORIGINAL:
{transcript}

GENERA (JSON):
{
  "voiceover_script": "El guión completo, listo para TTS",
  "estimated_duration_seconds": número,
  "emotion_markers": ["Lista de emociones para modular la voz TTS"],
  "pause_points": ["Puntos donde insertar pausa de 0.5s para naturalidad"]
}

REGLAS:
- Máximo {{MAX_PALABRAS}} palabras
- Idioma: {{IDIOMA}}
- NO incluir instrucciones de dirección ("(pausa)", "(énfasis)") dentro del script
- Las pause_points van en array separado con timestamps relativos

Usado cuando el módulo de voiceover está activo en el pipeline.

Campo: Prompt de Miniatura (thumbnail_prompt — nodo interno)

Superprompt: Generación de Miniaturas
Genera una miniatura profesional para un video de {{PLATAFORMA}} sobre {{NICHO}}.

TÍTULO DEL VIDEO: {title}
RESUMEN: {summary}

ESTILO VISUAL:
- Tipo: {{TIPO_MINIATURA: ej: Cara con expresión exagerada + texto / Producto en acción / Antes y después / Dato impactante}}
- Paleta de colores: {{COLORES: ej: Rojo y amarillo sobre fondo oscuro / Azul corporativo / Colores neón}}
- Texto overlay: Máximo 4 palabras, fuente {{FUENTE: bold sans-serif / handwritten / impact}}, tamaño grande
- Composición: {{COMPOSICION: ej: Regla de tercios, sujeto a la izquierda / Centrado / Split screen}}

REGLAS:
- Resolución: 1280x720 (16:9) para YouTube, 1080x1920 (9:16) para TikTok/Reels
- Alto contraste para legibilidad en móvil
- NO incluir texto pequeño que no se lea en thumbnail
- Estilo consistente con la marca de {{NOMBRE_CANAL}}
- NO generar caras reales de personas (usar ilustración si necesario)

Las variables {title} y {summary} son inyectadas por el pipeline.

Campo: Prompt de Detección de Highlights (highlight_prompt — nodo interno)

Superprompt: Detección de Momentos Clave
Analiza la siguiente transcripción de un video de {{DURACIÓN}} minutos sobre {{TEMA}} y detecta los {{MAX_CLIPS}} mejores momentos para clips cortos.

TRANSCRIPCIÓN CON TIMESTAMPS:
{transcript_with_timestamps}

CRITERIOS DE DETECCIÓN:
1. ENGAGEMENT HOOK (peso 40%): ¿Los primeros 3 segundos capturan atención?
   - Pregunta retórica = +3 puntos
   - Dato sorprendente = +4 puntos
   - Afirmación contraintuitiva = +5 puntos
   - Historia personal = +3 puntos

2. VALOR STANDALONE (peso 30%): ¿El clip tiene sentido sin contexto?
   - Idea completa = +5 puntos
   - Requiere contexto previo = -3 puntos
   - Tip/consejo accionable = +4 puntos

3. CIERRE NATURAL (peso 20%): ¿El clip termina en un punto satisfactorio?
   - Conclusión clara = +4 puntos
   - Corte abrupto = -3 puntos
   - CTA orgánico = +3 puntos

4. SHAREABILITY (peso 10%): ¿La gente lo compartiría?
   - Opinión polarizante = +3 puntos
   - Humor = +4 puntos
   - Relatabilidad = +3 puntos

OUTPUT (JSON):
{
  "highlights": [
    {
      "start": "HH:MM:SS",
      "end": "HH:MM:SS",
      "score": 1-10,
      "hook_text": "Primeras 10 palabras",
      "category": "{{CATEGORÍAS: educativo/humor/inspiracional/controversial/storytelling}}",
      "confidence": 0.0-1.0
    }
  ]
}

FILTROS:
- Solo clips de {{DURACION_MIN}}-{{DURACION_MAX}} segundos
- Excluir secciones de: sponsors, outros, "like y suscríbete", silencios > 3s
- Mínimo {{DISTANCIA_MINIMA}} segundos entre clips (evitar solapamiento)

La variable {transcript_with_timestamps} es generada por Whisper. NO modificar.

Campo: Prompt de Traducción/Localización (localization_prompt — nodo interno)

Superprompt: Localización de Contenido
Traduce y localiza el siguiente contenido de video de {{IDIOMA_ORIGEN}} a {{IDIOMA_DESTINO}} para la audiencia de {{REGIÓN_TARGET}}.

CONTENIDO ORIGINAL:
- Título: {title}
- Descripción: {description}
- Subtítulos: {srt_content}
- Hashtags: {hashtags}

REGLAS DE LOCALIZACIÓN:
1. NO traducción literal. Adaptar expresiones idiomáticas al equivalente local.
2. Mantener el tono {{TONO}} del creador original.
3. Si hay referencias culturales específicas, adaptar al equivalente en {{REGIÓN_TARGET}}.
4. Los hashtags deben ser los trending en {{IDIOMA_DESTINO}} para {{PLATAFORMA}}, no traducciones directas.
5. Los subtítulos SRT deben respetar el timing original (no cambiar timestamps).
6. Números y unidades: convertir a sistema local si aplica (ej: millas a km).

OUTPUT (JSON):
{
  "title": "título localizado",
  "description": "descripción localizada",
  "srt": "contenido SRT localizado con timestamps originales",
  "hashtags": ["hashtags localizados"],
  "cultural_notes": ["notas sobre adaptaciones culturales realizadas"]
}

Activar solo si el pipeline tiene módulo de localización. Las variables son inyectadas automáticamente.

INDUSTRIAL NODES
AI Content Pipeline Configurator — Guía Completa
16+ presets de creadores · Pipeline drag & drop · Shotstack / Creatomate · Cloud-native · Memoria persistente · Brand Kit · Publicación multi-red