Ir al contenido

Etapas del ciclo de vida (lifecycle)

El lifecycle stage es la etapa del cliente en su relación con tu negocio. Es ortogonal al pipeline de tickets (que es por conversación): una persona puede ser customer (ya pagó) y tener un ticket abierto en nuevo simultáneamente.

Pipeline kanban vs Lifecycle funnel — la diferencia

Sección titulada «Pipeline kanban vs Lifecycle funnel — la diferencia»

Brote tiene dos vistas que se parecen pero son distintas:

Pipeline kanbanLifecycle funnel
PorTicket (una conversación)Contacto (la persona)
StagesDefinidos por la org (Nuevo, Calificado, Cerrado-ganado/perdido…)Canon Brote (Lead → MQL → SQL → Opportunity → Customer → Evangelist → Churned)
MultiplicidadUna persona puede tener N tickets en N stagesUna persona = un solo lifecycle stage
PropósitoWorkflow operativo de una conversación específicaEtapa relacional del cliente con tu negocio
URL/app/pipelines/.../app/contacts/funnel

No tienes que actualizar el lifecycle manualmente cuando un ticket cierra:

Cuando pasa estoLifecycle del contacto se actualiza así
Ticket pasa a stage is_won = trueBumpea de Lead/MQL/SQL/Opportunity → Customer
Pago aprobado en Mercado Pago, Flow o KhipuBumpea a Customer

Si el contacto ya está en Customer, Evangelist o Churned, no se degrada — Brote no pisa estados manuales con automáticos.

El cambio queda registrado en contact_lifecycle_history con source = 'workflow' para distinguir de los cambios manuales (source = 'manual') y de imports (source = 'csv_import').

Si tu org tiene Meta Conversions API conectado, cada transición de lifecycle también dispara un evento server-side:

Stage destinoEvento Meta
MQL / SQLLead
OpportunityInitiateCheckout
CustomerPurchase (vía webhook de pago)
EvangelistCompleteRegistration

Esto cierra el funnel completo de atribución: Meta sabe qué ad generó cada Lead, MQL, SQL, Opportunity y Purchase, no solo la conversión final.

EtapaColorCuándo
LeadgrisEntró al chat pero todavía no calificó
MQLazulMarketing Qualified — interés expresado
SQLvioletaSales Qualified — intención clara de comprar
OportunidadámbarNegociando precio/términos
ClienteverdePagó al menos una vez
EvangelistacyanCliente que refiere a otros
ChurnedrojoCliente perdido o inactivo

Desde el pipeline visual (/app/contacts/funnel)

Sección titulada «Desde el pipeline visual (/app/contacts/funnel)»

La vista kanban del funnel muestra todos tus contactos agrupados por etapa. Arrastra una card de una columna a otra para mover el contacto. La conversión entre etapas (% que pasa de N → N+1) se calcula en vivo arriba de cada columna.

Casos típicos:

  • Lead que respondió interés concreto → MQL.
  • MQL que pidió precio → SQL.
  • SQL al que mandaste cotización → Opportunity.
  • Opportunity que pagó → Customer.
  • Customer inactivo 3+ meses → Churned.

La columna “Sin etapa” agrupa contactos que todavía no clasificaste. Arrastra de ahí a la columna que corresponda.

Filtro de texto arriba del board: busca por nombre, teléfono, email o tag. Acelera el trabajo cuando tienes 500+ contactos.

En cualquier conversación del inbox, en el panel derecho hay un picker “Etapa del cliente”. Click → eliges la etapa nueva. Brote guarda el cambio + registra quién lo hizo y cuándo en contact_lifecycle_history (para reporting + auditoría).

Incluye la columna lifecycle, stage o etapa en tu CSV. Valores válidos: lead, mql, sql, opportunity, customer, evangelist, churned.

Estamos trabajando en una tool del agente set_lifecycle_stage para que la IA mueva al contacto cuando detecta señales claras (ej: cliente dice “ya pagué” → mover a customer automático).

Las etapas alimentan:

  • Funnel de conversión: lead → mql → sql → customer (cuántos pasan de cada etapa a la siguiente).
  • Tiempo promedio en cada etapa: para detectar cuellos de botella.
  • Segmentación de campañas: enviar broadcast solo a customer o excluir churned.

Por ahora estas vistas viven en el dashboard general; en una próxima update vamos a tener un funnel dedicado en /app/analytics/funnel.

Cada cambio queda registrado:

contact_lifecycle_history (
contact_id,
from_stage,
to_stage,
changed_by,
source ('manual' | 'csv_import' | 'workflow' | 'api'),
created_at
)

Útil para auditoría y para detectar reversiones (cliente vuelve de churned a customer = recompra).