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:
- Ve a Automatización en la barra lateral
- Haz clic en Crear programación
- Establece la frecuencia (diaria, días laborables, semanal o expresión cron personalizada)
- 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")
- Elige las plataformas de destino y las cuentas
- 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:
- La IA genera la publicación como de costumbre
- En lugar de publicar inmediatamente, la publicación entra en estado de Pendiente de revisión
- Recibes una notificación por email de que una publicación está lista para revisión
- Ve a la página de Publicaciones y abre la pestaña Revisión para ver todas las publicaciones pendientes de aprobación
- 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:
| Estilo | Qué cambia | Ideal para |
|---|---|---|
| Sutil | Solo gancho de apertura y CTA | Publicaciones donde la redacción exacta importa |
| Moderado (predeterminado) | Párrafos reestructurados, nuevo gancho, CTA variado | La mayoría del contenido evergreen |
| Creativo | Reescritura completa manteniendo el mensaje central | Reciclaje 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
| Plataforma | Intervalo seguro de reciclaje |
|---|---|
| X / Twitter | Cada 7-14 días |
| Threads | Cada 14-30 días |
| Cada 30-60 días | |
| Cada 30-45 días | |
| Cada 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:
- Una fuente del disparador —
comment(comentarios + menciones) odm(mensajes directos). Se fija al crearla; inmutable después. - Un tipo de disparador — qué dentro de esa fuente la activa (palabra clave, sentimiento, autor, condición IA personalizada, etc.).
- Un predicado de audiencia opcional — filtrado por etiquetas sobre el contacto (solo activar para VIPs, omitir si ya es cliente).
- 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.
- Disparador — palabra clave
PRECIOen la publicación de lanzamiento (fuente de comentarios) - Paso 1 —
reply_dm: "¡Hola! Aquí van los precios: …" - Paso 2 —
wait_for_replycon timeout de 1440 minutos (24h) - Paso 3 —
if_elsesobre{{lastReply.text}} contains "no gracias":- Rama verdadera:
add_tagno-interesado - Rama falsa (sin respuesta o cualquier otra cosa):
send_messagecon el código de 10% de descuento y luegoadd_tagdescuento-reclamado
- Rama verdadera:
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
mentionscontype='story_reply'ypostIdvinculado 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:
- Publica (o importa) la historia. Las historias publicadas desde SonetHub aterrizan en
postsconpost_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 unstoryExpiresAta las 24 horas — pasado el vencimiento, el post sigue en la base de datos pero la historia ya no existe en la plataforma. - 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.). - Añade pasos. La mayoría de flujos de respuesta-a-historia tienen la misma forma que los de comment-growth:
send_messagecon texto + una plantilla Card,wait_for_replyopcional +if_elsepara seguimientos. Las rutas de respuesta funcionan porque la respuesta a la historia abre la ventana de conversación de 24 horas de Meta. - 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 enmentionscontype='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".
- Disparador — keyword
LAUNCH, applyTostory_replies, opcionalmente acotado a esa historia vía el selector de publicaciones - Paso 1 —
send_message: "¡Gracias! Aquí está el enlace: …" (usa una plantilla Card con la imagen del producto) - Paso 2 —
wait_for_replycon timeout 1440 minutos (24h) - Paso 3 —
if_elsesobre{{lastReply.text}} contains "comprar":- Verdadero:
add_taglead-caliente+ enviar código de descuento - Falso: enviar un seguimiento suave,
add_taglead-frío
- Verdadero:
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/storiesambas 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/2o 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) opostback(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.
| Plan | Automatizaciones (total) | Pasos por automatización |
|---|---|---|
| Free | 0 | — |
| Starter | 6 | 1 (un único paso) |
| Growth | 20 | 5 |
| Pro | 50 | Ilimitado |
| Business | Ilimitado | Ilimitado |
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
| Plataforma | Respuesta pública | Like | Ocultar | Borrar | Tracking de menciones | DM desde comentario |
|---|---|---|---|---|---|---|
| ✓ | — | ✓ | ✓ | ✓ | ✓ | |
| Facebook Pages | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| X / Twitter | ✓ | ✓ | ✓ | ✓ | ✓ | — |
| Bluesky | ✓ | ✓ | — | ✓ | ✓ | ✓ |
| ✓ | ✓ | — | ✓ | — | — | |
| Threads | ✓ | — | ✓ | ✓ | — | — |
| YouTube | ✓ | — | — | ✓ | — | — |
| TikTok Business | ✓ | ✓ | ✓ | ✓ | ✓ | — |
| — | — | — | — | — | — | |
| 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
| Plataforma | Enviar DM | Adjuntos | Respuestas rápidas | Plantilla botones | Plantilla tarjeta | Etiqueta fuera-24h |
|---|---|---|---|---|---|---|
| ✓ | ✓ | ✓ nativo | ✓ | ✓ | ✓ | |
| Facebook Pages | ✓ | ✓ | ✓ nativo | ✓ | ✓ | ✓ |
| X / Twitter | ✓ tier de pago | — | — | — | — | — |
| Bluesky | ✓ | — | ✓ como texto numerado | — | — | — |
| — | — | — | — | — | — | |
| Threads | — | — | — | — | — | — |
| YouTube | — | — | — | — | — | — |
| TikTok Business | — | — | — | — | — | — |
| — | — | — | — | — | — | |
| 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.convono tiene primitivo nativo de botones. Funcionalmente equivalente para flujoswait_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_AGENTes válida; las etiquetas legacy (CONFIRMED_EVENT_UPDATE, ACCOUNT_UPDATE, POST_PURCHASE_UPDATE) están deprecadas.
Eventos disparadores
| Plataforma | Comentario recibido | @mención recibida | Respuesta a historia | DM recibido |
|---|---|---|---|---|
| ✓ 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) |
| ⏱ poll (1h) | — | — | — | |
| Threads | ⏱ poll (1h) | — | — | — |
| YouTube | ⏱ poll (1h) | — | — | — |
| TikTok Business | ⏱ poll (1h) | ⏱ poll (1h) | — | — |
| — | — | — | — | |
| 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
mentionscontype='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
emailen 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
comprometidotras 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
| Plan | Etiquetas | Campos personalizados por contacto |
|---|---|---|
| Free | — | — |
| Starter | Ilimitadas | 5 |
| Growth | Ilimitadas | 10 |
| Pro | Ilimitadas | Ilimitados |
| Business | Ilimitadas | Ilimitados |