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_nites 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_nitdevuelve 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_requiredvendor_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