12 — Grupos de WhatsApp (3 bots de grupo)

Índice de la página
  1. 01Cliente: Martín Rieznik / LevantArte
  2. Área: Bots de grupos WA (Pre-webinar / Compradores / Miembros anuales)
  3. 020. Definición de "done" para esta checklist
  4. 031. Pre-requisitos
  5. 042. Tareas
  6. 2.1 Decisiones estratégicas (BLOQUEANTES)
  7. 2.2 Creación de grupos (manual semana 1, automatizable mes 2)
  8. 2.3 Add automático desde Supabase
  9. 2.4 Bot Grupo Pre-webinar — secuencia de mensajes
  10. 2.5 Bot Grupo Compradores Taller — secuencia mié-vie
  11. 2.6 Bot Grupo Miembros Anuales — secuencia permanente
  12. 2.7 Pivote a canal de difusión (cuando grupo excede límite)
  13. 2.8 Moderación
  14. 2.9 Métricas a trackear
  15. 2.10 Test E2E
  16. 053. Variables y posibilidades a anticipar
  17. 064. Multi-tenant: cómo se replica al cliente #2
  18. 075. Recursos y archivos relacionados
  19. 086. Notas y aprendizajes (post-mortem)
  20. 09CHANGELOG

Cliente: Martín Rieznik / LevantArte

Área: Bots de grupos WA (Pre-webinar / Compradores / Miembros anuales)

Operar 3 tipos de grupos WhatsApp con bots dedicados: (1) Pre-webinar — calienta leads días previos al lunes; (2) Compradores Taller — entrega recursos durante mié/jue/vie + warm-up para membresía; (3) Miembros Anuales — onboarding + recordatorio próximos webinars + librería. Add automático desde Supabase con evento joined_group. Pivote a canal de difusión cuando excede límite WA.

Última actualización: 2026-05-05
Responsable principal (R): Eric (infra) + Cortex (mensajes)
Aprobador (A): Jesús
Deadline: 31 may 2026 (probado E2E antes de 1 jun)
Depende de: 11_WHATSAPP_API_NUMEROS.md (BLOQUEANTE ESTRICTO — números primero), 10_BOT_WHATSAPP_1A1.md, 03_COPIES.md, 08_OFERTA_Y_STACK.md
Bloquea a: 07_WEBINAR.md (grupo pre-webinar es input al webinar lunes), 19_GO_LIVE_8_JUNIO.md


0. Definición de "done" para esta checklist

  • 3 grupos creados y nombrados consistentemente: "LevantArte — Pre-webinar [semana]", "LevantArte — Compradores Taller [semana]", "LevantArte — Miembros Anuales [permanente]".
  • Bot de grupo Pre-webinar ejecuta secuencia de mensajes diaria (lunes previo a sábado, sábado, domingo, lunes día D).
  • Bot de grupo Compradores entrega recursos + warm-up membresía durante mié/jue/vie del taller.
  • Bot de grupo Miembros Anuales hace onboarding + recordatorios + entrega librería.
  • Add automático funcional: cuando lead alcanza estado joined_group en Supabase, recibe link de invitación al grupo correcto.
  • Política de pivote a canal de difusión cuando grupo excede 256 (límite estándar) o 1024 (límite expandido).
  • Moderación activa: lista de palabras bloqueadas + auto-eliminación de spam + warning + ban en 3 strikes.
  • Métricas trackeadas: tasa de respuesta, tasa de unsubscribe del grupo, conversión grupo → comprador.

1. Pre-requisitos

# Pre-requisito Provisto por Estado
1 Checklist 11 COMPLETO — número WA Business activo + calentado + templates aprobados (BLOQUEANTE ESTRICTO) Eric (checklist 11) ⚠️
2 Bot 1:1 funcional para invitar a grupos Eric + Cortex (checklist 10) ⚠️
3 Schema Supabase con miembros_grupo y evento joined_group Eric (checklist 01) ⚠️
4 Oferta firmada (mensajes referencian SKUs y bonus) Martín (checklist 08) ⚠️
5 Copies de secuencias WA aprobados Cortex (checklist 03) ⚠️
6 Cuenta WhatsApp con permisos de admin para crear grupos Eric ⚠️
7 Decisión: grupo único permanente vs grupo nuevo cada semana Jesús ⚠️ ver § 2.1

2. Tareas

2.1 Decisiones estratégicas (BLOQUEANTES)

  • Decisión: grupo Pre-webinar nuevo cada semana O permanente acumulativo. R: Jesús. Done cuando: decisión documentada.
  • Opción A (recomendada): grupo NUEVO cada semana ("Pre-webinar 8 jun", "Pre-webinar 15 jun"). Pros: lista limpia por cohort, urgencia honesta, permite usar mismo nombre. Contras: si lead se perdió un webinar quedó "huérfano".
  • Opción B: grupo PERMANENTE rotativo ("Pre-webinar LevantArte"). Pros: comunidad acumulativa, menos overhead. Contras: leads viejos ven mensajes de webinars que ya pasaron, ruido alto.
  • Decisión asumida: A (nuevo cada semana) + grupo "huerfanos" mensual donde van los que no llegan a tiempo (re-invitación al próximo).
  • Decisión: grupo Compradores nuevo cada cohort O permanente. R: Jesús. Done cuando: decisión documentada.
  • Decisión asumida: NUEVO cada cohort (cohort = compradores de la semana del taller). Cierra al viernes 23:59 + se archiva. Razón: la entrega de recursos del taller es time-bound.
  • Decisión: grupo Miembros Anuales = permanente único. R: Jesús. Done cuando: confirmado. Done cuando: documentado.
  • Decisión: cuándo pivotar a canal de difusión (broadcast). R: Jesús. Done cuando: política documentada.
  • Decisión asumida: pre-webinar grupo bilateral hasta 256, después spawn de "Pre-webinar 8 jun #2" hasta 256, después "..." Pivote a canal de difusión solo cuando superamos 1024 leads/semana (mes 4+ probable).

2.2 Creación de grupos (manual semana 1, automatizable mes 2)

  • Crear grupo "LevantArte — Pre-webinar 8 jun" semana del 1-2 jun. R: Eric. Done cuando: grupo creado + Eric admin + bot admin + link de invitación generado.
  • Crear grupo "LevantArte — Compradores Taller 8 jun" semana del 8 jun (post-pago lunes). R: Eric. Done cuando: grupo creado + admins.
  • Crear grupo "LevantArte — Miembros Anuales" (permanente, una sola vez). R: Eric. Done cuando: grupo creado + admins.
  • Foto + descripción + reglas pinneadas en cada grupo. R: Cortex (assets) + Eric (carga). Done cuando: 3 grupos con identidad visual.
  • Permisos: solo admins envían mensajes en grupo Pre-webinar (anuncios) + chat libre habilitado en Compradores y Miembros (comunidad). R: Eric. Done cuando: permisos seteados por grupo.
  • Pinned messages iniciales: link al webinar / link al taller / link a librería. R: Cortex + Eric. Done cuando: mensajes pinneados.

2.3 Add automático desde Supabase

  • Tabla miembros_grupo activa: (id, client_id, lead_id, grupo_tipo, grupo_id, joined_at, removed_at). R: Eric (checklist 01). Done cuando: tabla operativa.
  • Trigger Supabase cuando lead.estado_funnel='registered_calificado' → bot 1:1 manda link de invitación al grupo Pre-webinar de la semana. R: Eric. Done cuando: trigger probado.
  • Trigger Supabase cuando compras.status='completed' AND sku LIKE 'TALLER_%' → bot 1:1 manda link al grupo Compradores. R: Eric. Done cuando: trigger probado.
  • Trigger Supabase cuando compras.status='completed' AND sku LIKE 'MEMBRESIA_%' → bot 1:1 manda link al grupo Miembros Anuales. R: Eric. Done cuando: trigger probado.
  • Confirmación de join: cuando lead acepta invite + entra al grupo, webhook detecta + escribe evento joined_group en Supabase. R: Eric. Done cuando: evento registrado < 60s post-join.
  • Re-invite si no acepta en 24h: bot 1:1 reenvía link con "no entraste todavía, te lo dejo de nuevo". R: Eric + Cortex. Done cuando: cron + copy listos.

2.4 Bot Grupo Pre-webinar — secuencia de mensajes

Grupo creado domingo previo al webinar del lunes (ej: webinar 8 jun → grupo creado 1 jun). Secuencia de 8 días.

  • Día -7 (lunes 1 jun) — bienvenida + reglas. R: Cortex. Done cuando: copy listo.
  • "Bienvenidos al grupo del próximo webinar. Reglas: 1) solo mensajes pre/post webinar, 2) si tenés dudas escribime al 1:1, 3) el lunes 8 a las 20hs te paso el link en este grupo."
  • Día -6 (martes 2 jun) — recordatorio fecha + valor del webinar. R: Cortex. Done cuando: copy listo.
  • "El lunes próximo te enseño [tema]. Lo que se llevan: [3 bullets]. Anótalo: lunes 8 a las 20hs."
  • Día -5 (miércoles 3 jun) — testimonio breve. R: Cortex + Martín. Done cuando: copy + screenshot.
  • "Mirá lo que dijo [persona] del último webinar." (foto/audio/quote)
  • Día -4 (jueves 4 jun) — objeción suave + re-frame. R: Cortex. Done cuando: copy listo.
  • "Sé que algunos están pensando 'no tengo tiempo'. Mirá esto: [contenido que rompe objeción en 1 párrafo]."
  • Día -3 (viernes 5 jun) — teaser de mecanismo único. R: Cortex + Martín. Done cuando: copy listo.
  • "El lunes te muestro [mecanismo] — algo que no vi en ningún otro lado. Spoiler: cambia cómo pensás [problema]."
  • Día -2 (sábado 6 jun) — recordatorio + countdown. R: Cortex. Done cuando: copy listo.
  • "2 días para el webinar. ¿Ya te anotaste el lunes en la agenda? 20hs ARG. Imperdible."
  • Día -1 (domingo 7 jun) — pre-show prep. R: Cortex. Done cuando: copy listo.
  • "Mañana es el día. Para sacarle el máximo: 1) auriculares, 2) cuaderno, 3) 90 min sin distracciones. Te leo mañana 19:30 con el link."
  • Día D 14:00 (lunes 8 jun) — recordatorio AM. R: Cortex. Done cuando: copy listo.
  • "Hoy 20hs. Cualquier duda última, escribime al 1:1."
  • Día D 19:30 (lunes 8 jun) — LINK del webinar. R: Cortex + Eric (cron). Done cuando: copy + cron listos.
  • "ACÁ está el link: [URL]. Estamos arrancando 20:00 en punto. Te espero. 🎬"
  • Día D 19:55 (lunes 8 jun) — última call. R: Cortex + Eric. Done cuando: copy listo.
  • "Arrancamos en 5 min. Entrá ahora: [URL]"
  • Implementar crons Railway para los 10 mensajes. R: Eric. Done cuando: 10 crons schedulados + test.
  • Variabilidad por semana (no copy idéntico cada cohort): A/B 3 versiones de cada mensaje, rotar. R: Cortex. Done cuando: 30 copies redactados (10 mensajes × 3 versiones).

2.5 Bot Grupo Compradores Taller — secuencia mié-vie

Grupo creado lunes 21:30 post-pitch + lleno con compradores entre lunes 22:00 y miércoles 19:00.

  • Mensaje al unirse (auto) cuando lead entra al grupo. R: Cortex + Eric. Done cuando: copy + trigger.
  • "¡Bienvenido/a! Ya sos parte del taller. Mié/Jue/Vie 20hs ARG, estoy ahí. Mientras tanto, te dejo el primer recurso: [PDF]."
  • Martes 9 jun 10:00 — pre-warmup. R: Cortex. Done cuando: copy + recursos PDF.
  • "Mañana arrancamos. Para que aproveches al máximo: 1) leé este PDF [link], 2) hacé este ejercicio breve, 3) traé tu pregunta más urgente."
  • Miércoles 10 jun 14:00 — recordatorio clase 1. R: Cortex + Eric. Done cuando: copy + cron.
  • "Hoy 20hs arranca el taller. Link: [URL]. Workbook adjunto."
  • Miércoles 10 jun 19:30 — link clase 1. R: Cortex + Eric. Done cuando: copy + cron.
  • Miércoles 10 jun 22:30 — recap clase 1 + tarea. R: Cortex + Martín. Done cuando: copy + tarea.
  • Jueves 11 jun 14:00 — recordatorio clase 2 + apertura membresía $97. R: Cortex. Done cuando: copy + warm-up.
  • "Hoy 20hs clase 2. Spoiler: al final te abro la membresía anual a $97 (precio que no se repite). Detalles en clase."
  • Jueves 11 jun 19:30 — link clase 2. R: Cortex + Eric.
  • Jueves 11 jun 22:30 — recap + link a /martin/membresia. R: Cortex + Eric.
  • Viernes 12 jun 14:00 — recordatorio clase 3 + apertura cuotas membresía. R: Cortex.
  • Viernes 12 jun 19:30 — link clase 3. R: Cortex + Eric.
  • Viernes 12 jun 22:30 — última chance membresía + cierre ventana 23:59. R: Cortex + Eric.
  • "1.5h para que cierre la ventana de membresía. Si dudás, escribime al 1:1 ahora."
  • Sábado 13 jun 11:00 — agradecimiento + invite al grupo Miembros (a quienes compraron membresía). R: Cortex.
  • Sábado 13 jun: archive del grupo (no eliminar, archivar para historial). R: Eric. Done cuando: grupo en estado "archived" + acceso de lectura para Cortex.
  • Implementar crons + crear copies con variabilidad. R: Eric + Cortex. Done cuando: secuencia completa schedulada.

2.6 Bot Grupo Miembros Anuales — secuencia permanente

Grupo evergreen. Mensajes mensuales + onboarding inicial + acceso a librería.

  • Mensaje al unirse (onboarding). R: Cortex. Done cuando: copy + recursos.
  • "Bienvenido/a a la comunidad anual de LevantArte. Te dejo: 1) link a la librería completa [URL], 2) calendario de webinars del año [link], 3) acceso al Q&A mensual [link calendly]."
  • Recordatorio próximo webinar mensual (1er lunes de cada mes 14:00). R: Cortex + Eric. Done cuando: cron + copy genéricos.
  • Q&A grupal mensual con Martín (90 min, 3er jueves del mes 20hs). Recordatorio 24h antes + 1h antes + link al join. R: Cortex + Eric + Martín. Done cuando: cron mensual.
  • Drop de bonus mensual: contenido nuevo exclusivo para miembros. R: Cortex + Martín. Done cuando: drop schedule definido (1 bonus/mes).
  • Mensajes de comunidad: prompt de discusión semanal ("¿Cuál fue tu progreso esta semana?"). R: Cortex. Done cuando: 4 prompts mensuales con variabilidad.
  • Onboarding de nuevos miembros mid-year: re-introducción al grupo, recursos catch-up. R: Cortex. Done cuando: secuencia "te uniste mid-year" lista.
  • Política anti-spam: el grupo Miembros NO recibe pitches del taller (ya son miembros, regla no_canibalizar_dias checklist 08 § 2.8). R: Cortex + Eric. Done cuando: regla escrita.

2.7 Pivote a canal de difusión (cuando grupo excede límite)

  • Monitor de tamaño: alerta cuando grupo > 200 (advierte) o > 250 (spawn). R: Eric. Done cuando: alerta automática.
  • Spawn de grupo #2: si grupo Pre-webinar 8 jun excede 256 → crear "Pre-webinar 8 jun #2" + actualizar trigger de add para repartir. R: Eric. Done cuando: lógica de spawn implementada.
  • Política de pivote a canal de difusión cuando spawn > 4 grupos (1024 leads): R: Jesús. Done cuando: documentado.
  • Crear "Canal LevantArte" (broadcast list) + migrar comunicación 1-way ahí.
  • Mantener grupos pequeños temáticos para alta interacción.
  • Templates específicos para canal (Meta los trata distinto). R: Cortex + Eric. Done cuando: templates marcados como "broadcast".

2.8 Moderación

  • Lista de palabras bloqueadas: spam, links externos a competidores, insultos, números de tel personales (anti-doxxing). R: Cortex. Done cuando: lista en _CONFIG.md > grupos.moderacion.banned_words.
  • Auto-eliminación: bot detecta palabra bloqueada → elimina mensaje + warning al usuario por 1:1. R: Eric + Cortex. Done cuando: bot probado.
  • 3 strikes = ban: tracking en Supabase de strikes por lead/grupo. Al 3ro, bot expulsa + marca lead banned_from_groups. R: Eric. Done cuando: lógica probada.
  • Excepción admin override: Eric/Cortex/Jesús pueden anular un strike injusto. R: Eric. Done cuando: comando admin disponible.
  • Reporte de spam por usuarios: detectar mensaje reportado por > 3 miembros → eliminación + revisión humana. R: Eric. Done cuando: lógica + alerta.
  • Tono de la moderación: warnings en español, calmo, "esto no se permite acá, gracias" — no agresivo. R: Cortex. Done cuando: textos de warning aprobados.

2.9 Métricas a trackear

  • Por grupo: R: Eric + Cortex. Done cuando: dashboard con KPIs.
  • Tamaño actual + curva de crecimiento
  • Tasa de respuesta (mensajes generados por miembros / mensajes del bot) — proxy de engagement
  • Tasa de unsubscribe (lead deja grupo) — semanal
  • Mensajes baneados / strikes / bans
  • Conversión: % de miembros del grupo que avanzan a próximo estado del funnel
  • Específicos Pre-webinar: % asistencia al webinar de los del grupo vs los que no entraron. R: Cortex. Done cuando: métrica activa.
  • Específicos Compradores: % conversión a membresía (cohort). R: Cortex. Done cuando: tabla por cohort.
  • Específicos Miembros: retención mensual (% que sigue activo) + churn anual. R: Cortex. Done cuando: dashboard.
  • Reporte semanal del grupo parte del weekly status (viernes 17hs) y reporte sábado a Martín. R: Cortex. Done cuando: template incluido.

2.10 Test E2E

  • Test 1: lead califica → recibe invite Pre-webinar → entra → recibe secuencia diaria. R: Cortex + Eric. Done cuando: flow completo OK.
  • Test 2: lead compra taller → recibe invite Compradores → entra → recibe recursos. R: Cortex + Eric. Done cuando: flow OK.
  • Test 3: lead compra membresía → recibe invite Miembros → onboarding. R: Cortex + Eric. Done cuando: flow OK.
  • Test 4: usuario manda spam → strike → 3 strikes → ban. R: Eric. Done cuando: probado.
  • Test 5: grupo Pre-webinar llega a 256 → spawn automático de #2. R: Eric. Done cuando: simulación pasa.
  • Test 6: lead da unsubscribe en 1:1 → removido de TODOS los grupos. R: Eric + Cortex. Done cuando: probado.

3. Variables y posibilidades a anticipar

Escenario Plan B
WhatsApp limita la creación de grupos al número (rate limit) Crear grupos manualmente con cuenta de admin (no via API) la primera semana. Automatizar mes 2+.
Lead no puede aceptar el link de invitación (privacidad de WA) Bot 1:1 detecta falta de joined_group en 24h → reenvía + sugiere "abrí el link, agregame primero a contactos".
Spam masivo en grupo (alguien comparte link a otro curso) Auto-eliminación + ban inmediato (no esperar 3 strikes para spam comercial). Anuncio en grupo "removimos un mensaje, sigamos".
Conversaciones se desvían a temas no relacionados Bot interviene cada 24h con prompt re-foco "volviendo al tema, pregunta del taller…". Si persistente, anuncio Cortex modera.
Grupo cae en silencio (low engagement) Cortex postea prompt de discusión + Martín dropea audio breve. Si sigue muerto, considerar archivar antes de tiempo.
Lead se queja en grupo del precio o garantía Cortex contiene en grupo + handoff a closer 1:1 para resolver privadamente. NUNCA discutir precio en grupo.
Miembro reporta que otro miembro lo molesta privadamente (uso del grupo para pickup) Política clara pinneada: "no se permite contactar a otros miembros con fines comerciales/personales no relacionados al taller". Ban inmediato si verificado.
Bot dispara mensaje cuando Martín está hablando live en webinar Pausar bot durante webinars (silencio del bot 19:55 a 22:00 lunes + 19:55 a 22:00 mié-vie). R: Eric (cron quiet hours).
Lead no quiere estar en grupo pero sí recibir contenido Opt-out solo grupo, mantener bot 1:1. Lead marca preferencia. R: Cortex (config).
Grupo Compradores incluye refunders (lead pidió reembolso post-compra) Trigger refund → remover de grupo + actualizar lead status. R: Eric.
Cambio de admin: Eric no disponible y nadie modera 2 admins fijos (Eric + Cortex via cuenta dedicada). Política de que admin se pasa con 24h aviso.
WhatsApp bloquea funciones masivas por sospecha Reducir velocidad de operaciones grupales (joins, anuncios). Comunicar al lead via 1:1 "estamos teniendo problemas técnicos, paciencia".
Lead duplicado (entró 2 veces al mismo grupo con 2 números) Detectar duplicado por lead_id + remover el más reciente + mensaje 1:1 "ya estabas en el grupo".
Cumple ventana de cierre del taller pero quedan compradores tardíos Reabrir grupo Compradores al "rezagado" hasta sábado 12:00 (gracia operativa). Después no.
Miembros Anuales escala a > 1024 (target mes 6+) Pivote a canal de difusión "Comunidad LevantArte" + grupos temáticos pequeños (regional, por nivel).

4. Multi-tenant: cómo se replica al cliente #2

Qué hay que parametrizar para que esto sea reusable. Esta sección alimenta el SOP sop/lanzar-cliente/.

  • Variables a externalizar (en clients.config_json > grupos):
  • grupos.tipos[]: array de { tipo (pre_webinar|compradores|miembros), naming_template, permanente (bool), spawn_threshold (int) }
  • grupos.pre_webinar.secuencia[]: array de { dia_offset, hora, mensaje_template_id, variabilidad[] }
  • grupos.compradores.secuencia[]: similar
  • grupos.miembros.secuencia_mensual[]: similar
  • grupos.moderacion.banned_words[]
  • grupos.moderacion.strikes_to_ban (default 3)
  • grupos.moderacion.warning_template
  • grupos.moderacion.ban_template
  • grupos.spawn_threshold (default 256)
  • grupos.canal_difusion_threshold (default 1024)
  • grupos.quiet_hours[]: array de { dia_semana, desde_hora, hasta_hora } para silenciar bot durante lives
  • grupos.no_canibalizar.{aplica_a_grupo, dias_post_compra} (regla checklist 08)
  • Tabla miembros_grupo (ya en checklist 01) con client_id para aislamiento.
  • Templates a guardar en sop/lanzar-cliente/templates/grupos/:
  • secuencia_pre_webinar_8_dias.md.template (los 10 mensajes con placeholders)
  • secuencia_compradores_3_dias.md.template
  • secuencia_miembros_mensual.md.template
  • bienvenida_grupos.md.template (mensaje al unirse por tipo)
  • moderacion_warnings.md.template (textos de strike + ban)
  • politica_grupos.md.template (reglas pinneadas)
  • pivote_canal_difusion_runbook.md
  • Sustituciones automáticas (clone_client.py):
  • Crear placeholder de grupos con naming del cliente nuevo (ej: "ClienteX — Pre-webinar [semana]")
  • Generar links de invitación nuevos
  • Inicializar grupos.spawn_threshold y quiet_hours según horario del cliente
  • Adaptar templates con marca + voz del cliente
  • Lo que NO se replica (cliente-específico): contenido de mensajes (tono propio), recursos PDF que se entregan, lista exacta de banned_words por nicho.

5. Recursos y archivos relacionados


6. Notas y aprendizajes (post-mortem)

Llenar después del primer ciclo. Estos aprendizajes son los que se llevan al SOP.

  • Vacío hasta primera ejecución (semana del 1-13 jun 2026).

CHANGELOG

  • 2026-05-05 — JT/Cortex — Creación inicial. 3 grupos (pre-webinar nuevo cada semana / compradores por cohort / miembros permanente) + secuencias automatizadas + add desde Supabase + moderación + pivote a canal de difusión + métricas.
  • 2026-05-05 — JT — Reforzada dependencia ESTRICTA del checklist 11 (números primero, esta checklist no arranca hasta 11 verde).