🔧 Bikans Asesores — Workflow Templates

10 workflows aplicables (subconjunto del catálogo base de 13). Armar a mano en GHL Automation → Workflows, en Draft. La API no crea la lógica interna.
Fuera de alcance (3 del catálogo base): WF3 (descalificado por sistema — redundante con WF2/WF7) · WF4 (descalificado + pixel — requiere Google Ads) · WF13 (conversiones Google Ads — borrador, requiere crear conversiones primero). Documentados para una fase futura.

WF1 — Actualizar estado cuando IA agenda reunión

Cuando el bot agenda la videollamada, avanza la oportunidad. Invocado por el bot (acción "Activar flujo de trabajo" → "Mover a Oportunidad"). Sin trigger nativo.
⚡ TRIGGER Invocado por el bot (acción "Mover a Oportunidad") — sin trigger nativo → Update Contact Field: bot_status = "cita_agendada" → Add/Remove Contact Tag: + ia-qualified, + appointment-scheduled, − qualifying → Update Opportunity: mover a etapa Llamada Agendada → Send Internal Notification: "{{contact.name}} agendó videollamada de diagnóstico vía IA" ■ END

WF2 — Actualizar estado cuando IA descalifica

Cuando el bot cierra con salida suave (TIPO A/B), mueve a Lost con motivo. Invocado por el bot (acción "No encaja"). Sin trigger nativo.
⚡ TRIGGER Invocado por el bot (acción "No encaja") — sin trigger nativo 🔀 IF / ELSE ¿qué tipo de salida? TIPO A → tag dq-budget-too-low · TIPO B → tag dq-wrong-profile → Add/Remove Contact Tag: + ia-disqualified, + dq-*, + stop-bot → Update Contact Field: disqualification_reason = "TIPO A/B — descripción" → Update Opportunity: mover a Lost → Update conversation AI bot and status: bot Inactive para este contacto ■ END

WF5 — Leads fríos (inactividad)

Marcar como fríos los leads que no avanzan en N días. Usa el trigger real "Stale Opportunities" (por pipeline + etapa), no Scheduler.
⚡ TRIGGER Stale Opportunities — pipeline "Ventas Bikans", etapas "Nuevo Lead" + "En Calificación" (un trigger por etapa) 🔀 CONDITION tag cold NO presente · tag stop-bot NO presente → Add/Remove Contact Tag: + cold, + nurturing → Update Opportunity: mantener etapa, registrar bot_status = "frio" → Go To: WF11 — Seguimiento ■ END

WF6 — Negocio ganado

Cuando un negocio pasa a Won: celebración, onboarding y notificación.
⚡ TRIGGER Opportunity Changed — filtro "In pipeline = Ventas Bikans" + "Estado = Won" → Add/Remove Contact Tag: + won, + onboarding-start, − appointment-scheduled, − qualifying → Send Internal Notification: "🎉 {{contact.company}} ganado" → Send WhatsApp: mensaje de bienvenida/gracias → Add Task: "Llamada de kickoff con {{contact.name}}" ■ END

WF7 — Negocio perdido

Manejar deals perdidos con gracia (no vía descalificación).
⚡ TRIGGER Opportunity Changed — filtro "Estado = Lost" 🔀 CONDITION tag ia-disqualified NO presente (para no pisar WF2) → Add/Remove Contact Tag: + lost → Update Opportunity Field: registrar motivo de pérdida → Go To: WF11 — Seguimiento (si es rescatable) ■ END

WF8 — Duplicar info de contacto a oportunidad

Copiar campos clave al crear la oportunidad. Regla inviolable: "Allow Duplicate Opportunity = NO" + "Allow Re-Entry = ON".
⚡ TRIGGER Opportunity Created → Create/Update Opportunity (combinada) — sección "Campos": company_name → opportunity.company_name email → opportunity.email necesidad_principal → opportunity.bot_conversation_summary Allow Duplicate Opportunity = NO → Add/Remove Contact Tag: + bot-created ■ END
⚠️ Incidente conocido: usar "Create" en vez de "Update" crea oportunidades duplicadas. Usar la combinada con Allow Duplicate = NO.

WF9 — Recordatorio de reunión

Enviar recordatorio por WhatsApp antes de la cita.
⚡ TRIGGER Appointment Status — filtro "Appointment status = confirmed" + "In calendar = Diagnóstico Contable Gratuito — Bikans" ⏱ WAIT "Until a scheduled date/time" → "Appointment/calendar event" → "Before" 24h (fallback: skip outbound si la fecha ya pasó) → Send WhatsApp: template recordatorio_24h → Add/Remove Contact Tag: + meeting-reminder-sent ■ END

WF10 — Desactivar IA al descalificar

Detener el bot para leads descalificados.
⚡ TRIGGER Contact Tag — ia-disqualified → Update conversation AI bot and status: bot Inactive para este contacto → Add/Remove Contact Tag: + stop-bot → Update Contact Field: bot_status = "no_encaja" ■ END

WF11 — Seguimiento leads (72h+)

Re-enganchar leads que no respondieron. Invocado por el bot (último toque del Seguimiento automático) o por WF5/WF7.
⚡ TRIGGER Invocado por el bot (último toque del follow-up) o Go To desde WF5/WF7 → Send WhatsApp: template seguimiento_3_dias ⏱ WAIT "Until the contact replies" (rama nativa: reply / timeout) reply → notificar + fin timeout → continuar → Send Email: template seguimiento_dia_5 ⏱ WAIT "Until the contact replies" → Add Task: llamar a {{contact.name}} → Add/Remove Contact Tag: + no-reply (tras el último timeout) ■ END

WF12 — Creación de leads (multicanal)

Un lead entra por varios canales y todos terminan en la misma lógica: tag de origen → asignar → activar bot → crear oportunidad.
⚡ TRIGGER múltiple (mergeado): Customer Replied (WhatsApp) + Form Submitted + Facebook Lead Form Submitted 🔀 CONDITION/FORK N ramas nombradas por "Workflow trigger" (origen del lead) Rama WhatsApp → tag source-whatsapp Rama Form → tag source-form Rama Facebook→ tag source-facebook → Assign to User: round-robin (Paola) — "only apply to unassigned contacts" → Update conversation AI bot and status: bot Active (para arrancar el bot) → Create Opportunity: pipeline "Ventas Bikans", etapa "Nuevo Lead" → Add Owner to Opportunity ■ END
⚠️ Localización de la UI: los nombres de trigger/action están verificados en inglés. En una cuenta en español, GHL muestra "La oportunidad ha cambiado" (Opportunity Changed), "Contacto tag", "Contacto created", etc. Si hay duda, pedir screenshot del picker antes de confirmar un nombre.