ALEPH CRM — State Machine

Propósito

Definir de forma explícita los estados posibles de un prospecto y sus transiciones dentro del flujo:

Gemelo → ALEPH → CRM → ALEPH → Gemelo


Estados principales

1. PENDING_COMPANY_DATA

Falta información para crear empresa.

Condición:

  • company_nit es null o inválido

Salida:

  • Asignar NIT


2. CREATE_COMPANY

Empresa lista para ser creada en ALEPH.

Condición:

  • NIT válido

  • Empresa no existe en ALEPH

Salida:

  • ejecutar company_writer


3. COMPANY_CREATED

Empresa ya existe en ALEPH.

Condición:

  • fetch_empresa_by_nit devuelve resultado


4. ENRICH_CONTACTS

Falta contacto para gestión CRM.

Condición:

  • contacts = 0

Salida:

  • agregar contacto


5. CREATE_CONTACT_AND_ACTIVITY

Listo para CRM operativo.

Condición:

  • empresa existe

  • contacto existe

  • next_action existe


6. PENDING_PROJECT

Falta proyecto interno.

Condición:

  • internal_commercial_project_id = None

Salida:

  • asignar proyecto interno


7. CRM_READY

Listo para escritura en ALEPH.

Condición:

  • empresa existe

  • contacto válido

  • proyecto interno existe


8. CRM_ALREADY_SYNCED

Ya existe en ALEPH.

Condición:

  • PERSONA existe

  • PERSONA_PROYECTO existe


Estados auxiliares

Vendor Registration

No es un estado principal, sino un atributo:

  • vendor_registration_required

  • vendor_registration_status

Estados posibles:

  • NOT_STARTED

  • IN_PROGRESS

  • SUBMITTED

  • APPROVED

  • REJECTED

Regla:

  • no bloquea CRM inicial

  • sí afecta madurez comercial


Transiciones

Flujo de empresa

PENDING_COMPANY_DATA
    ↓ (asignar NIT)
CREATE_COMPANY
    ↓ (company_writer)
COMPANY_CREATED