Saltar al contenido principal

Handoff Core + CMS → CRM

Contratos listos para construir SaaSCol CRM sin inventar storage/bus propios.

APIs de deals

MétodoRutaUso
GET/api/v1/crm/dealsPipeline / listado
POST/api/v1/crm/dealsAlta manual (title obligatorio; stage default new_lead)
PATCH/api/v1/crm/deals/{dealId}Actualizar; si stage pasa a won/converted → evento

Schema UAP: crm.deal (seed SAMI).

Entrada desde CMS (ya cableada)

POST /api/v1/public/tenant/{tenantId}/forms/{formId}/submit
Content-Type: application/json

{ "name": "…", "email": "…", "message": "…" }

→ Evento cms.form.submitted → worker Core crea crm.deal (source: cms_form).

El template Healthcare incluye nodo ContactForm en /contacto.

Eventos que el CRM debe usar

Acción CRMEvento a publicar
Lead ganado / convertidocrm.opportunity.converted
(futuro) lead desde Botconsumir bot.interaction.lead_captured

Publicar vía POST /api/v1/events/publish con product: "crm".

Primeros pasos recomendados

  1. El browser nunca llama a Core: el admin CRM habla con el BFF (saas-col-crm en :3012). El BFF usa CORE_API_URL hacia Core.
  2. UI pipeline vía BFF → GET/POST/PATCH …/crm/deals en Core.
  3. No montar MinIO ni Redis de plataforma propios (cache = creds provisionadas por Core si hace falta).
  4. Reutilizar Keycloak / JWT Core (tenant_id en claims). Chart: deploy/helm/saascol-crm/. Postgres compartido schema crm.

Detalle en repo: architecture/37-handoff-core-cms-hacia-crm.md · contracts: architecture/42-service-contracts-y-postgres-compartido.md.