Programación y automatización

Programa publicaciones para los mejores horarios y configura generación recurrente de contenido con IA.

Programar publicaciones

Puedes programar cualquier publicación para que se publique en una fecha y hora específicas. Al crear una publicación -- ya sea a través de Chat, Crear o editando un borrador -- elige Programar y selecciona la hora deseada.

Las publicaciones programadas aparecen en tu Calendario con una línea temporal visual. Puedes arrastrar para reprogramar, hacer clic para editar o pedirle al asistente de IA que reprograme describiendo el cambio (por ejemplo, "mueve mi publicación del lunes al miércoles a las 3 PM").

Vista de calendario

La página del Calendario muestra todo tu contenido de un vistazo:

  • Programadas con sus plataformas de destino
  • Publicadas con estadísticas de engagement
  • Borradores que aún necesitan atención

Alterna entre vistas de mes, semana y día. Haz clic en cualquier publicación para ver los detalles completos o hacer ediciones.

Reglas de automatización

La automatización te permite configurar generación recurrente de contenido con IA en un horario. Está disponible en el plan Business.

Para crear una automatización:

  1. Ve a Automatización en la barra lateral
  2. Haz clic en Crear programación
  3. Establece la frecuencia (diaria, días laborables, semanal o expresión cron personalizada)
  4. Escribe un prompt de IA describiendo el contenido a generar (por ejemplo, "Crea una publicación atractiva de Instagram sobre las últimas funciones de nuestro producto")
  5. Elige las plataformas de destino y las cuentas
  6. Activa la automatización

Cuando se dispara la programación, la IA genera una publicación usando tu prompt, aplica tu voz de marca y la publica automáticamente.

Requerir revisión humana

Activa el interruptor Requerir revisión humana para añadir un paso de aprobación humana antes de que las publicaciones automatizadas se publiquen. Cuando está activado:

  1. La IA genera la publicación como de costumbre
  2. En lugar de publicar inmediatamente, la publicación entra en estado de Pendiente de revisión
  3. Recibes una notificación por email de que una publicación está lista para revisión
  4. Ve a la página de Publicaciones y abre la pestaña Revisión para ver todas las publicaciones pendientes de aprobación
  5. Aprueba la publicación para programar su publicación inmediata, o Rechaza para moverla a Borradores para edición

Esto es ideal para cuentas sensibles a la marca donde quieres asistencia de IA pero deseas mantener el control editorial. También puedes aprobar o rechazar publicaciones a través del asistente de IA (por ejemplo, "aprueba la publicación [id]" o "muestra las publicaciones pendientes de revisión").

Modo de medios

Cada automatización se puede configurar con un modo de medios que controla si se adjuntan imágenes o videos generados por IA a las publicaciones automatizadas:

  • Auto (predeterminado) -- La IA analiza el prompt y el texto generado para decidir si una imagen, video o ningún medio es apropiado
  • Imagen -- Siempre generar una imagen con IA para la publicación
  • Video -- Generar una imagen principal y animarla en un clip de video corto
  • Ninguno -- Publicaciones solo de texto, sin generación de medios

Configura el modo de medios al crear o editar una automatización, ya sea desde la página de Automatización o a través del asistente de IA (por ejemplo, "crea una automatización diaria con modo imagen").

Música de fondo

Cuando una automatización genera publicaciones de video, puedes opcionalmente añadir música instrumental de fondo generada por IA:

  • Ninguna (predeterminado) -- Los videos se publican sin música de fondo
  • Auto -- La IA decide si la música de fondo mejoraría el video según el contenido
  • Siempre -- Siempre se genera música instrumental de fondo y se mezcla en el video

La música se genera usando IA (libre de derechos, solo instrumental) y se mezcla automáticamente en el video al 30% de volumen con un fundido de salida al final. Esto asegura que la música mejore en lugar de dominar el contenido.

También puedes añadir música a los videos manualmente desde la página Crear (Generar con IA > pestaña Música) o a través del asistente de IA (por ejemplo, "genera música de fondo alegre para este video").

Reciclaje de contenido (publicaciones evergreen)

Recicla tus publicaciones con mejor rendimiento con variaciones generadas por IA. En lugar de generar contenido nuevo desde cero, SonetHub reformula una publicación existente cada vez que se ejecuta -- variando el gancho de apertura, reestructurando párrafos y cambiando la llamada a la acción mientras mantiene el mismo mensaje central.

Cómo configurarlo

Desde una publicación: Ve a cualquier publicación publicada > haz clic en Reciclar > elige una frecuencia > listo.

Desde la página de Automatización: Haz clic en Nueva programación > selecciona "Reciclar publicación existente" > busca y selecciona una o más publicaciones publicadas > establece la frecuencia.

Desde el chat de IA: Di "recicla mi mejor publicación cada lunes" o "configura publicación evergreen para esta publicación".

Cómo funcionan las variaciones

Cada ejecución, la IA genera una variación única. Tú controlas la intensidad de la variación:

EstiloQué cambiaIdeal para
SutilSolo gancho de apertura y CTAPublicaciones donde la redacción exacta importa
Moderado (predeterminado)Párrafos reestructurados, nuevo gancho, CTA variadoLa mayoría del contenido evergreen
CreativoReescritura completa manteniendo el mensaje centralReciclaje de alta frecuencia donde la variedad es importante

Los medios de la publicación original se reutilizan -- no se necesita regeneración de medios.

Cola de reciclaje

Puedes añadir múltiples publicaciones a una sola automatización de reciclaje. El sistema elige una publicación diferente en cada ejecución (nunca la misma dos veces seguidas) y genera una variación fresca.

Protección contra obsolescencia

Después de 20 variaciones, la automatización se pausa automáticamente para prevenir la degradación de calidad. Serás notificado para que puedas refrescar la cola con nuevo contenido.

Frecuencia recomendada

PlataformaIntervalo seguro de reciclaje
X / TwitterCada 7-14 días
ThreadsCada 14-30 días
FacebookCada 30-60 días
LinkedInCada 30-45 días
InstagramCada 45-90 días

Gestionar automatizaciones

Ve todas tus automatizaciones en la página de Automatización. Haz clic en cualquier automatización para ver su página de detalle con publicaciones generadas, métricas de engagement, próxima ejecución programada y configuración.

Cada automatización muestra su modo (Generar o Reciclar), frecuencia, próxima hora de ejecución y estado. Puedes:

  • Activar/desactivar automatizaciones
  • Editar el prompt, la programación o las cuentas de destino desde la página de detalle
  • Eliminar automatizaciones que ya no necesites

También puedes gestionar automatizaciones a través del asistente de IA -- simplemente di "muestra mis automatizaciones" o "crea una programación de publicación diaria".

Automatizaciones

Las automatizaciones reaccionan a eventos en tus cuentas sociales conectadas — comentarios entrantes, @menciones o DMs — y ejecutan una secuencia de acciones en respuesta: responder, clasificar, etiquetar, notificar, ocultar, eliminar, o ramificarse en flujos multi-paso. Un concepto, dos superficies de origen.

Cada automatización tiene:

  1. Una fuente del disparadorcomment (comentarios + menciones) o dm (mensajes directos). Se fija al crearla; inmutable después.
  2. Un tipo de disparador — qué dentro de esa fuente la activa (palabra clave, sentimiento, autor, condición IA personalizada, etc.).
  3. Un predicado de audiencia opcional — filtrado por etiquetas sobre el contacto (solo activar para VIPs, omitir si ya es cliente).
  4. Un árbol de pasos — qué ejecutar al coincidir. Un árbol de un único paso es el caso simple; los árboles multi-paso encadenan acciones con esperas, ramas y pausas.

El disparador y los predicados de audiencia viven en la automatización; todo lo que ocurre después de la coincidencia vive en el árbol de pasos.

Selección de cuentas

Cada automatización puede dirigirse a cuentas conectadas específicas del workspace o dejar la selección vacía para aplicarse a todas.

Para automatizaciones con fuente de comentarios: las cuentas de plataformas sin gestión de comentarios (TikTok regular, Pinterest) no se pueden seleccionar.

Para automatizaciones con fuente de DMs: se aplica a todas las cuentas del workspace que soporten sincronización de DMs (Instagram, Facebook, X/Twitter, LinkedIn, TikTok Business, Bluesky).

Alcance de comentarios (Aplicar a)

Las automatizaciones de fuente de comentarios pueden dirigirse a uno de cuatro alcances:

  • Comentarios — se aplica solo a comentarios en tus propias publicaciones
  • Menciones — se aplica solo a @menciones de tu cuenta en publicaciones de otros
  • Comentarios + Menciones — se aplica a ambos (el valor histórico por defecto; "Both" en la API)
  • Respuestas a historias — se aplica a DMs que responden a una de tus historias de Instagram (ver Respuestas a historias abajo). Se trata como fuente-comentarios porque una respuesta a tu historia es interacción con tu contenido, aunque llegue como DM.

El selector de disparador en el canvas desactiva cualquier pill cuya capacidad subyacente no esté soportada por las cuentas seleccionadas. Las menciones, por ejemplo, requieren al menos una cuenta en una plataforma que rastree @menciones — consulta la Matriz de capacidades por plataforma para la tabla completa.

Las acciones destructivas (eliminar, ocultar) solo funcionan en comentarios de tus propias publicaciones. Cuando una automatización con acción de eliminar u ocultar coincide con una mención en la publicación de otra persona, la acción se omite.

Para automatizaciones de Respuestas a historias, el selector de publicaciones objetivo filtra solo a historias importadas — las publicaciones de feed y los reels no pueden tener respuestas a historia, así que el validador rechaza objetivos no coincidentes al guardar. Igualmente para Comentarios / Menciones / Ambos el selector excluye las historias (las historias no tienen comentarios).

Tipos de disparador

Compartidos entre ambas fuentes

  • Coincidencia de palabras clave — el elemento contiene (o no) palabras o frases específicas
  • Criterios del autor — basado en seguidores o estado de verificación
  • Personalizado (IA) — define una condición en lenguaje natural (ej., "el comentario es sobre una colaboración") y la IA la evalúa. Sin coste de créditos — modelo rápido de clasificación, limitado por un tope de evaluaciones por ciclo.

Solo fuente de comentarios

  • Sentimiento — el sentimiento es positivo, negativo o neutro (clasificado por IA)
  • Todos los comentarios — disparador comodín que coincide con todo comentario/mención entrante
  • Primer comentario / Comentario N — solo se activa con el primer comentario (o el N-ésimo) de un contacto en este workspace × plataforma

Solo fuente de DMs

  • Todos los mensajes — disparador comodín que coincide con todo DM entrante
  • Categoría — coincide con la categoría del mensaje clasificada por IA (collaboration, support, spam, urgent)
  • Primer DM / DM N — solo se activa con el primer DM (o el N-ésimo) de un contacto en este workspace × plataforma

Tipos de acción

Compartidas entre ambas fuentes

  • Añadir etiqueta / Quitar etiqueta — modificar la lista de etiquetas del contacto
  • Establecer campo — guardar un valor tipado en el contacto (país, score de fidelidad, fecha de última compra…)
  • Dar de baja al contacto — cambia su estado a "no suscrito"; las acciones posteriores de reply / reply_dm / auto_reply lo omiten en todo el workspace
  • Notificar al equipo — envía email a cada miembro del workspace que activó notificaciones

Solo fuente de comentarios

  • Eliminar — eliminar permanentemente el comentario. Disponible en: Instagram, Facebook, X/Twitter, LinkedIn, Threads, YouTube, TikTok Business, Bluesky
  • Ocultar — ocultar el comentario para que solo el autor lo vea. Disponible en: Instagram, Facebook, X/Twitter, Threads, TikTok Business
  • Me gusta — dar like en nombre de tu cuenta. Disponible en: Facebook, X/Twitter, LinkedIn, TikTok Business, Bluesky
  • Responder (plantilla) — respuesta pública con un mensaje predefinido. Soporta marcadores {{author}} y {{platform}}.
  • Responder (IA) — respuesta pública generada con tu voz de marca. Ver Respuestas generadas por IA abajo.
  • Responder en privado (DM) — envía un DM al autor del comentario en lugar de una respuesta pública. En Instagram, usa la API de Respuestas Privadas de Meta. También disponible en Facebook, X/Twitter y Bluesky. Funciona dentro de los 7 días en Instagram/Facebook. Permite flujos tipo ManyChat de "palabra clave en comentario → DM automático".
  • Marcar como importante — marca el elemento para revisión manual en SonetHub

Solo fuente de DMs

  • Clasificar como importante — marca el DM como importante en SonetHub (sin acción saliente)
  • Auto-respuesta — respuesta generada por IA según las instrucciones que des y tu voz de marca
  • Saltar — suprime explícitamente la evaluación posterior de automatizaciones para este evento

Si la plataforma de una cuenta seleccionada no soporta la acción elegida, esa cuenta se omite durante la ejecución.

Respuestas generadas por IA

Al usar Responder (IA) o Auto-respuesta, la respuesta se genera usando la voz de marca y las memorias de tu workspace. La IA considera el texto del comentario/mensaje, sentimiento, categoría y tus directrices de marca para producir una respuesta natural. Cada respuesta consume 1 crédito (tier fast — respuesta de un único paso, sin herramientas).

Para respuestas IA de fuente de comentarios puedes proporcionar instrucciones adicionales más allá de tu voz de marca — por ejemplo, "no mencionar precios" o "mantener un tono casual." Estas instrucciones se aplican sobre la configuración de marca.

Para auto-respuestas de fuente de DMs, el campo de instrucciones de respuesta es obligatorio — describe qué debe decir la IA y el tono a usar.

Palabras clave de spam predefinidas

Al crear una automatización con disparador por palabra clave, haz clic en "Añadir palabras de spam" para completar automáticamente patrones de spam comunes (ej. "DM me", "follow for follow", "mira mi perfil", "crypto"). Disponibles en inglés y español; se combinan con las palabras que ya hayas añadido.

Predicados de audiencia

Toda automatización (cualquier disparador, cualquier acción) puede acotarse a un segmento de tus contactos:

  • Solo activar si tiene etiqueta — la automatización solo coincide cuando el contacto tiene TODAS las etiquetas listadas
  • Omitir si tiene etiqueta — la automatización solo coincide cuando el contacto NO tiene ninguna de las etiquetas listadas

Las dos funcionan en conjunto (Y lógico).

Orden de evaluación

Las automatizaciones se evalúan en orden de prioridad (número más alto = mayor prioridad, primero). La primera automatización que coincide gana — una vez que un elemento coincide, no se evalúan más automatizaciones para ese elemento.

Como medida de seguridad, cada ciclo de sincronización aplica un máximo de 50 acciones automáticas por workspace. Los elementos que excedan este límite quedan sin procesar hasta la siguiente sincronización.

Por publicación (solo fuente de comentarios)

Por defecto, una automatización de fuente de comentarios se activa en todas las publicaciones del workspace. Puedes acotarla a publicaciones específicas cuando quieras que actúe como una automatización ligada a una campaña — "comenta PALABRA en esta publicación de lanzamiento y te enviaré el enlace por DM", "marcar comentarios de el sorteo de la semana pasada mientras esté activo."

Las automatizaciones de fuente de DMs no tienen publicación asociada; la segmentación por publicación no aplica.

Segmentar a publicaciones concretas

Abre la sección Segmentación de la automatización y selecciona una o varias publicaciones. La automatización solo se activará en los comentarios que lleguen a esas publicaciones. Deja el selector vacío para que se aplique a todo el workspace.

El selector muestra tus publicaciones publicadas e importadas (ambas pueden recibir comentarios). Puedes buscar por contenido.

Ventana de activación

Opcionalmente puedes establecer Activar desde y/o Activar hasta. Fuera de esa ventana la automatización queda en silencio. Útil para:

  • Concursos con tiempo limitado — "activa durante 48 h tras publicar el sorteo"
  • Ventanas de lanzamiento — "empieza al abrir la pre-venta, termina al cerrar"
  • Automatizaciones programadas con antelación — "se activa solo durante la campaña del mes que viene"

Ambos campos son opcionales. El formulario rechaza ventanas invertidas.

Topes

Dos topes opcionales evitan que una automatización se desboque en publicaciones virales:

  • Máximo de activaciones por publicación — tope rígido. Cuando la automatización ha disparado este número de veces en una publicación, deja de disparar en ella. Útil para "los primeros 100 comentaristas reciben un DM con descuento". Aproximado durante rachas muy intensas — puede excederse unas pocas unidades.
  • Activaciones por hora — límite por hora deslizante. Como máximo este número de disparos por publicación cada hora.

Ambos son por (automatización × publicación). Cada publicación tiene su propio contador.

Automatizaciones multi-paso

Un árbol de un único paso es el caso simple ("cuando ocurra X, dale like al comentario"). Los árboles multi-paso encadenan acciones con esperas, ramas y pausas hasta recibir una respuesta.

Tipos de paso

  • Salientes — responder (público o por DM), respuesta automática (IA), enviar mensaje nuevo
  • Moderación — eliminar, ocultar o dar like. Marcar como importante. Clasificar como importante (solo DMs). Saltar (suprime evaluación posterior).
  • Escrituras de audiencia — añadir/quitar etiquetas, establecer campo personalizado, dar de baja al contacto
  • Notificación al equipo — avisa por correo a los miembros del workspace
  • Control de flujo:
    • Delay — pausa N minutos antes del siguiente paso. Mínimo 1 minuto; precisión ±60 segundos.
    • Esperar respuesta — aparca la automatización hasta que el contacto responda O expire el tiempo. Filtro opcional de palabras clave.
    • Si/entonces — bifurcación según una condición. Los hijos se ejecutan solo en la rama coincidente.

Expresiones de condición

La bifurcación si/entonces usa un mini-lenguaje determinista (se analiza al guardar y se evalúa en ~1 ms — sin coste de IA):

{{lastReply.text}} contains "sí"
{{lastReply.text}} matches /^(comprar|adquirir)/i
{{contact.tags}} includes "vip"
{{contact.field.country}} == "ES"
{{contact.optInStatus}} == "subscribed"

Combina con &&, || y paréntesis:

{{contact.tags}} includes "vip" && {{lastReply.text}} contains "sí"

Ejemplo: comentario → DM → espera → seguimiento

Un flujo típico: alguien comenta PRECIO en tu publicación de lanzamiento, le envías un DM, esperas 24 horas y, si no responde, le mandas un descuento.

  1. Disparador — palabra clave PRECIO en la publicación de lanzamiento (fuente de comentarios)
  2. Paso 1reply_dm: "¡Hola! Aquí van los precios: …"
  3. Paso 2wait_for_reply con timeout de 1440 minutos (24h)
  4. Paso 3if_else sobre {{lastReply.text}} contains "no gracias":
    • Rama verdadera: add_tag no-interesado
    • Rama falsa (sin respuesta o cualquier otra cosa): send_message con el código de 10% de descuento y luego add_tag descuento-reclamado

Ejecución asíncrona + ventana de 24h de Meta

Los pasos que tardan (delay, wait_for_reply) aparcan la automatización en una cola. Un proceso en segundo plano la despierta cuando toca. El evento disparador abre una ventana de mensajería de 24 horas en Meta; cualquier paso tipo DM que se ejecute después falla con un error claro en lugar de intentar enviar fuera de plazo.

Si necesitas escribir a un contacto pasadas las 24h, necesitarás un nuevo evento entrante desde él.

Loop guard

El mismo par (automatización, contacto) se dispara como máximo una vez cada 30 segundos — igual que ManyChat. Esto evita que una ráfaga rápida de comentarios de la misma persona genere varios DMs.

Respuestas a historias

Las respuestas a historias son el gancho de SonetHub para el patrón más usado por creadores de Instagram: "cuando alguien responde a mi historia, envíale un DM." En Instagram, una respuesta a una historia es técnicamente un DM (llega a la bandeja del destinatario), pero está anclada a una historia específica que publicaste — esa parte es la que la hace útil como disparador.

Qué hace diferentes a las respuestas a historias

Un DM normal llega a /inbox sin contexto inherente — remitente, texto, y ya. Una respuesta a historia llega con la historia a la que estaba anclada:

  • La bandeja de entrada muestra una tarjeta "Respondió a tu historia" encima de la burbuja del mensaje, con la miniatura de la historia y un enlace "Abrir historia".
  • La página de detalle del post de la historia muestra un panel Respuestas a la historia listando cada DM de respuesta con enlace directo a la conversación correspondiente.
  • El motor de automatizaciones enruta el evento a la tabla mentions con type='story_reply' y postId vinculado al post de historia — así las condiciones del disparador pueden acotarse a historias específicas (la misma forma en que las automatizaciones de comentarios se acotan a publicaciones específicas).

Antes de Slice 2, las respuestas a historias eran solo DMs genéricos y la mayor parte de este contexto se perdía. Ahora cada respuesta a historia que importas o recibes lleva el enlace de vuelta a la historia originaria.

Configuración: de la historia a la automatización disparada

El ciclo completo, todo conectado:

  1. Publica (o importa) la historia. Las historias publicadas desde SonetHub aterrizan en posts con post_format='story' automáticamente. Las historias de Instagram creadas fuera de SonetHub se importan cada 30 minutos (o instantáneamente al reconectar una cuenta) vía la tubería de polling /me/stories. Cada fila de historia tiene un storyExpiresAt a las 24 horas — pasado el vencimiento, el post sigue en la base de datos pero la historia ya no existe en la plataforma.
  2. Construye la automatización. En /automation/canvas/new, elige Respuestas a historias como fuente del disparador. El selector de publicaciones filtra solo tus historias (vivas + archivadas). Pon un filtro de keyword si solo quieres que la automatización se dispare con ciertos textos de respuesta (PRECIO, INFO, etc.).
  3. Añade pasos. La mayoría de flujos de respuesta-a-historia tienen la misma forma que los de comment-growth: send_message con texto + una plantilla Card, wait_for_reply opcional + if_else para seguimientos. Las rutas de respuesta funcionan porque la respuesta a la historia abre la ventana de conversación de 24 horas de Meta.
  4. El destinatario responde a tu historia. Meta entrega un webhook en ~2 segundos. SonetHub escribe dos filas: una en inbox_messages (se renderiza en /inbox) y otra en mentions con type='story_reply' (dispara la evaluación de la automatización). El runner ejecuta tu automatización.

Ejemplo concreto: historia → DM → espera → seguimiento

Publicas una historia adelantando un nuevo producto con el mensaje "Responde 'LAUNCH' para el enlace." Tus seguidores responden a la historia con "LAUNCH".

  1. Disparador — keyword LAUNCH, applyTo story_replies, opcionalmente acotado a esa historia vía el selector de publicaciones
  2. Paso 1send_message: "¡Gracias! Aquí está el enlace: …" (usa una plantilla Card con la imagen del producto)
  3. Paso 2wait_for_reply con timeout 1440 minutos (24h)
  4. Paso 3if_else sobre {{lastReply.text}} contains "comprar":
    • Verdadero: add_tag lead-caliente + enviar código de descuento
    • Falso: enviar un seguimiento suave, add_tag lead-frío

Forma idéntica al flujo de comment growth de arriba. La única diferencia es la fuente del disparador.

Soporte por plataforma

Las respuestas a historias son solo Instagram y Facebook Pages. Ambas entregan DMs de respuesta-a-historia vía la pipeline de webhooks de Meta.

  • Instagram — ambas rutas de auth (Instagram Login + Facebook Login) entregan respuestas a historias. Las historias publicadas desde SonetHub Y las importadas vía /me/stories ambas disparan automatizaciones.
  • Facebook Pages — las respuestas a historias en Pages también se entregan, pero el import de historias de Pages está limitado por la API de Meta (no hay endpoint de lectura para tus propias historias de página). Slice 2 solo implementa por completo el import de historias de IG; los disparadores de respuesta-a-historia de FB Pages funcionan para historias capturadas vía lookup perezoso desde la respuesta entrante.

X / Bluesky / LinkedIn / Threads / TikTok / YouTube / Pinterest no tienen un concepto de historia que se ajuste a este modelo — el pill "Respuestas a historias" en el canvas está desactivado cuando ninguna de tus cuentas en alcance es IG/FB.

La ventana de 24 horas también se aplica aquí

Las automatizaciones de respuesta-a-historia interactúan con la ventana de mensajería de 24 horas de Meta igual que cualquier otra automatización de DM: la propia respuesta abre la ventana, así que el primer paso send_message siempre cae dentro. Si tu flujo encadena un delay o wait_for_reply más allá de 24 horas y luego intenta otro DM, el runner lo rechaza a menos que hayas configurado una etiqueta de mensaje en el paso.

Cobertura del lado bandeja

La bandeja muestra la misma tarjeta de historia tanto si una automatización se dispara como si no. Incluso sin automatización configurada, cada respuesta a historia se renderiza con el contexto de la historia originaria en /inbox. Esto está documentado por separado en la Guía de Bandeja & DMs — el comportamiento de la tarjeta + el endpoint de lazy-fetch que hidrata la miniatura.

DMs enriquecidos — multimedia, respuestas rápidas, plantillas

Cualquier paso de DM saliente (send_message, reply_dm, la parte DM de reply_comment) puede llevar más que texto plano. El drawer muestra los campos enriquecidos como toggles opcionales, desactivados por defecto — un DM de una línea sigue siendo un DM de una línea.

Adjuntar multimedia

Arrastra una imagen, vídeo, audio o documento desde tu biblioteca (el mismo selector del compositor). El drawer vuelve a firmar la ruta de almacenamiento en el momento del envío, así la URL está siempre fresca incluso meses después de construir la automatización.

Comportamiento por plataforma cuando una automatización corre sobre cuentas mixtas:

  • Instagram, Facebook Pages — entrega completa (imagen, vídeo, audio, documento). Los adjuntos de imagen se cachean en servidor para que los mismos 100 comentaristas no vuelvan a subir la imagen 100 veces.
  • Bluesky — el multimedia se descarta en silencio y el log de ejecución registra degraded: 'unsupported_by_adapter'. El drawer muestra un aviso cuando solo hay cuentas de Bluesky en alcance.
  • X / Twitter — solo texto por ahora. Los adjuntos se descartan y el log de ejecución registra degraded: 'unsupported_by_adapter'. (La ruta de subida por trozos v1.1 que v2 DM exige para multimedia queda para una iteración futura.)

Respuestas rápidas

Hasta 3 chips tocables debajo del mensaje. Cada chip es { etiqueta ≤20 chars, payload ≤256 chars }. Cuando el destinatario toca un chip, su payload llega como el siguiente mensaje entrante — perfecto para flujos wait_for_reply + if_else ("PRECIO → DM con [Sí, por favor] [No, gracias] → espera → bifurcación según el payload tocado").

  • Instagram, Facebook Pages — entregadas como chips nativos.
  • Bluesky — sintetizadas como un sufijo de texto numerado ("1. Sí, por favor\n2. No, gracias"). Los destinatarios responden con 1 / 2 o el texto de la etiqueta y la espera avanza.
  • X / Twitter — las respuestas rápidas no están soportadas en la API DM v2 y se descartan en el adaptador.

Plantillas de DM — botones o tarjeta única

Para el formato ManyChat de "caja de mensaje con botones persistentes", usa el toggle Plantilla en el drawer. Dos formas:

  • Botones — un cuerpo de texto más hasta 3 botones. Cada botón es de tipo url (abre una webview) o postback (devuelve un payload, igual que un toque en una respuesta rápida).
  • Tarjeta — imagen + título + subtítulo opcional + URL opcional al tocar la tarjeta + hasta 3 botones. El aspecto más rico de "tarjeta deslizable" en el chat.

Las plantillas sustituyen al cuerpo del mensaje cuando están activas — el campo text del paso puede estar vacío porque la plantilla lleva el contenido. Las plantillas solo se entregan como UI nativa enriquecida en Instagram y Facebook Pages. En Bluesky / X la plantilla estructurada se descarta: el destinatario ve el texto del cuerpo en una plantilla de Botones, o el título (y subtítulo, en su propia línea) en una Tarjeta. Los botones dentro de una plantilla no se entregan en esas plataformas — si necesitas opciones tocables en Bluesky, usa el campo Respuestas rápidas, que SÍ se sintetiza como un sufijo numerado de texto.

Etiqueta de mensaje — fuera de la ventana de 24h

Cuando una automatización podría dispararse fuera de la ventana de mensajería de Meta de 24 horas (delays largos, re-engagement programado), elige una Etiqueta de mensaje en el drawer. A partir del 2026-04-27 solo HUMAN_AGENT sigue siendo válida; las etiquetas legacy (CONFIRMED_EVENT_UPDATE, ACCOUNT_UPDATE, POST_PURCHASE_UPDATE) están deprecadas y el drawer muestra un aviso si eliges una. Sin etiqueta, un paso que se ejecuta fuera de la ventana falla con conversation_window_expired en el log en lugar de intentar un envío prohibido.

Gestión

Crea y gestiona automatizaciones desde la página de Automatización, o a través del asistente de IA. La misma herramienta del agente cubre ambas fuentes:

"Crea una automatización para ocultar comentarios que contengan palabras de spam" "Configura una automatización para dar like a todos los comentarios positivos en mi Instagram" "Crea una automatización para responder con IA a DMs de colaboración" "Cuando alguien comente PRECIO en mi publicación de lanzamiento, mándale un DM, espera 24h y, si no responde, envía un código de 10% de descuento."

El asistente construye el árbol directamente. Revísalo antes de activar.

Límites por plan

El presupuesto de automatizaciones es un único tope compartido entre fuente de comentarios y fuente de DMs — tú decides cómo gastarlo entre superficies.

PlanAutomatizaciones (total)Pasos por automatización
Free0
Starter61 (un único paso)
Growth205
Pro50Ilimitado
BusinessIlimitadoIlimitado

El techo del motor en tamaño por árbol es de 200 pasos sin importar el plan. Cuando alcances el tope del plan, el validador devuelve PLAN_STEP_LIMIT_EXCEEDED con una pista para subir al siguiente tier.

Matriz de capacidades por plataforma

Qué soporta realmente la API de cada plataforma conectada. El canvas desactiva pills de disparador, tipos de paso y toggles de DM enriquecido cuya capacidad subyacente no esté disponible en ninguna cuenta seleccionada, así que no puedes construir accidentalmente una automatización que nunca se dispare. El agente (manage_automations) hace la misma verificación del lado servidor.

Fuente de verdad: src/lib/social/platform-capabilities.ts. Si esta tabla y el canvas discrepan, gana el archivo — reporta el bug.

Comentarios y menciones

PlataformaRespuesta públicaLikeOcultarBorrarTracking de mencionesDM desde comentario
Instagram
Facebook Pages
X / Twitter
Bluesky
LinkedIn
Threads
YouTube
TikTok Business
Pinterest
TikTok (consumer)

Notas:

  • Tracking de menciones significa que SonetHub captura @-menciones de tu handle en publicaciones de OTROS usuarios. Sin esto, la pill "Menciones" queda gris para esa plataforma.
  • DM desde comentario = "Private Replies" en Meta. Abre la ventana de mensajería de 24h desde un comentario sin que el destinatario tenga que escribirte primero. X/LinkedIn/Threads/YouTube/TikTok no tienen equivalente — el runner cae al envío genérico de DM, que solo funciona si la cuenta del destinatario lo permite.
  • YouTube tiene un workflow de "moderar" (aprobar/rechazar pendientes) que exponemos como la acción delete — es el equivalente en YouTube.

Mensajes directos

PlataformaEnviar DMAdjuntosRespuestas rápidasPlantilla botonesPlantilla tarjetaEtiqueta fuera-24h
Instagram✓ nativo
Facebook Pages✓ nativo
X / Twitter✓ tier de pago
Bluesky✓ como texto numerado
LinkedIn
Threads
YouTube
TikTok Business
Pinterest
TikTok (consumer)

Notas:

  • DMs de X / Twitter requieren tier de pago de la API (Basic+) y solo soportan texto — sin adjuntos, sin respuestas rápidas, sin plantillas. Las cuentas en Free tier no van a entregar automatizaciones de DM.
  • Las respuestas rápidas de Bluesky se sintetizan como sufijo de texto numerado ("1. Sí\n2. No") porque el lexicon chat.bsky.convo no tiene primitivo nativo de botones. Funcionalmente equivalente para flujos wait_for_reply + if_else.
  • Las plantillas son Meta-only (Botones = texto + 3 botones; Tarjeta = imagen + título + subtítulo + botones). En Bluesky/X el cuerpo de texto de la plantilla se envía como texto plano; los botones dentro de la plantilla se descartan.
  • La etiqueta de mensaje abre envíos fuera de la ventana de 24h. A partir del 2026-04-27 solo HUMAN_AGENT es válida; las etiquetas legacy (CONFIRMED_EVENT_UPDATE, ACCOUNT_UPDATE, POST_PURCHASE_UPDATE) están deprecadas.

Eventos disparadores

PlataformaComentario recibido@mención recibidaRespuesta a historiaDM recibido
Instagram✓ webhook✓ webhook✓ webhook✓ webhook
Facebook Pages✓ webhook✓ webhook✓ webhook✓ webhook
X / Twitter⏱ poll (1h)⏱ poll (1h)⏱ poll (1h, tier de pago)
Bluesky⏱ poll (30m)⏱ poll (30m)⏱ poll (30m)
LinkedIn⏱ poll (1h)
Threads⏱ poll (1h)
YouTube⏱ poll (1h)
TikTok Business⏱ poll (1h)⏱ poll (1h)
Pinterest
TikTok (consumer)

Notas:

  • Webhook = entrega en tiempo real (~1-2 seg de latencia). Solo Meta nos da esto en tiers gratuitos.
  • Poll (Xh) = captura vía cron a la cadencia indicada. Cuentas X con tier de pago + Filtered Stream API podrían teóricamente ser casi-tiempo-real pero no lo implementamos hoy; la latencia estándar de polling de X es ~1 hora.
  • Respuesta a historia es el único evento-disparador específico-de-plataforma que exponemos — se enruta por la tabla mentions con type='story_reply', acotado a historias que el workspace posee.

Contactos y etiquetas

Un contacto es alguien que ha interactuado con una de tus cuentas sociales conectadas — comentando en tus publicaciones, mencionándote o enviándote un DM. SonetHub guarda una ficha por plataforma por persona para que puedas etiquetarlos, crear reglas que dependan del comportamiento previo (por ejemplo, "primera vez que comenta"), y revisar todas las interacciones en un solo lugar.

Lo que un contacto NO es:

  • No es un seguidor. Seguirte no es una interacción; las plataformas no nos avisan de los seguidores que nunca interactúan.
  • No es un cliente. No registramos compras a menos que añadas un campo personalizado manualmente.
  • No es un perfil unificado entre plataformas. Twitter @foo e Instagram @foo son dos contactos distintos, aunque sean la misma persona — no hay un identificador fiable entre plataformas. (Puedes vincularlos manualmente añadiendo el mismo campo email en ambas fichas.)

Contrato de alcance

Los contactos se identifican por (workspace × plataforma × usuario externo):

  • Múltiples cuentas del mismo workspace en la misma plataforma (por ejemplo, dos páginas de Instagram) comparten una sola ficha por contacto. El contacto es el usuario de la plataforma, no la página. Las etiquetas aplicadas desde cualquiera de las dos cuentas se mantienen en la misma ficha.
  • Las interacciones (comentarios, menciones, DMs) conservan la cuenta de origen, así que las analíticas pueden seguir filtrando "VIPs que interactuaron con la cuenta de la marca en español."

Dónde verlos

La página /contacts (entrada de la barra lateral, junto a Bandeja) es la superficie de audiencia:

  • Vista de lista — busca por handle/nombre, filtra por cuenta, estado de suscripción o etiqueta. Cada fila muestra el borde con el color de la plataforma, el número de seguidores, la última interacción y las etiquetas como chips.
  • Cajón de detalle — haz clic en cualquier contacto para ver el perfil completo: etiquetas + campos personalizados + un cronograma unificado de cada comentario y DM en el workspace.
  • Acciones masivas — selecciona varios contactos para etiquetarlos o cancelar la suscripción en un solo clic. La barra de acciones masivas aparece deslizándose desde abajo cuando tienes selecciones.

Etiquetas y campos personalizados

Las etiquetas son marcadores pegajosos por contacto: vip, comprador-curso, descuento-aplicado. Las aplicas manualmente desde la página, automáticamente desde reglas (acción add_tag), o vía el asistente de IA ("etiqueta a todos los que comentaron PRECIOS como interesado-precios"). Las etiquetas atraviesan reglas y flujos: una regla puede decir "salta si este contacto ya tiene la etiqueta cliente."

Los campos personalizados son pares clave/valor con tipo: pais = ES, puntuacion_lealtad = 84, ultima_compra = 2026-04-12. Úsalos cuando una etiqueta no basta — cuando necesitas recordar un valor, no solo un sí/no.

Suscripción y RGPD

Cada contacto tiene un estado de suscripción: suscrito (por defecto — interactuaron contigo, ese es su consentimiento), cancelado o pausado. Marcar un contacto como cancelado hace que todas las reglas de auto-respuesta del workspace lo omitan. El cajón de detalle del contacto también ofrece eliminación completa (borra en cascada las etiquetas, campos y el vínculo del workspace con ese contacto).

Automatizar etiquetas y campos desde reglas

Las Automatizaciones pueden leer y escribir la capa de audiencia del contacto:

  • Añadir etiqueta — aplica etiqueta(s) al contacto cuando la regla coincide
  • Quitar etiqueta — elimina etiqueta(s)
  • Establecer campo personalizado — guarda un valor con tipo en el contacto
  • Cancelar suscripción del contacto — cambia el estado de suscripción a cancelado; las reglas de auto-respuesta posteriores lo omitirán

Estas acciones están disponibles junto a las existentes (responder/ocultar/eliminar). Puedes configurarlas desde el editor de reglas o desde el asistente de IA ("cuando alguien me envíe un DM sobre una colaboración, etiquétalo como consulta-colaboracion").

Disparadores por audiencia

Además de palabras clave y sentimiento, las reglas pueden activarse según el historial del contacto:

  • Primer comentario / Primer DM — se activa solo en el primer comentario o DM del contacto en este workspace + plataforma. Útil para flujos de bienvenida y etiquetado de onboarding.
  • Comentario N / DM N — se activa en el evento N del contacto (tú eliges N). Para patrones de lealtad ("etiquetar como comprometido tras el 5º comentario") o escalación ("marcar para revisión tras el 3º DM sin respuesta").

Filtros de audiencia en cada automatización

Cualquier automatización (cualquier disparador, cualquier acción) puede limitarse a un segmento de tus contactos:

  • Solo activar si tiene la etiqueta — la automatización solo coincide cuando el contacto tiene TODAS las etiquetas listadas
  • Omitir si tiene la etiqueta — la automatización solo coincide cuando el contacto NO tiene NINGUNA de las etiquetas listadas

Ambos funcionan juntos (Y). Ejemplos:

  • "Solo responder por DM a los VIPs" → disparador de palabra clave + Solo activar si tiene la etiqueta: vip
  • "Omitir el mensaje de bienvenida con clientes ya etiquetados" → disparador de primer comentario + Omitir si tiene la etiqueta: cliente
  • "Enviar el descuento solo a personas en la newsletter que no lo hayan reclamado" → disparador de palabra clave + Solo activar si tiene la etiqueta: newsletter + Omitir si tiene la etiqueta: descuento-aplicado

Los filtros de audiencia se componen con el disparador — limitan a quién aplica la automatización, encima del cuándo existente.

Límites por plan — contactos

PlanEtiquetasCampos personalizados por contacto
Free
StarterIlimitadas5
GrowthIlimitadas10
ProIlimitadasIlimitados
BusinessIlimitadasIlimitados