TraceCRM

Documentación de TraceCRM

Todo lo que necesitas para usar TraceCRM como usuario de negocio y como usuario técnico que integra API y webhooks.

Primeros pasos (usuarios de negocio)

  • Crea tu espacio de trabajo e invita a tu equipo desde Settings > Team.
  • Configura los estados del ciclo de contacto en Settings > Pipeline Stages.
  • Importa contactos en Import y asigna fuentes/estados para mejor segmentación.
  • Crea oportunidades desde contactos y da seguimiento en Opportunities + Kanban.

Uso diario (equipo comercial)

  • Usa Contacts para clasificar el estado de relación y registrar llamadas, notas, archivos y actividades.
  • Usa Opportunities para pipeline y proyección de ingresos (lógica open/won/lost).
  • Usa Reports para construir paneles por fuente, estado, responsable y tendencias de conversión.

Guía de API (usuarios técnicos)

Ejemplo de base URL: /api/v1. Autentica con token Bearer o header X-API-Key.

curl -X GET "https://tracecrm.pro/api/v1/leads" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json"

Modelo de seguridad: cada API key está aislada por tenant, se aplican scopes por endpoint y existe rate limit por clave.

  • leads:read, leads:write, leads:delete
  • deals:read, deals:write, deals:delete
  • forms:read, forms:write

Recursos disponibles:

  • GET/POST/PUT/DELETE /api/v1/leads
  • GET/POST/PUT/DELETE /api/v1/deals
  • GET/POST/PUT/DELETE /api/v1/forms

Guía de Webhooks (usuarios técnicos)

Configura endpoints en Settings > API Connect. Puedes suscribirte a eventos de leads, deals y formularios.

Headers importantes:

  • X-TraceCRM-Event
  • X-TraceCRM-Delivery
  • X-TraceCRM-Timestamp
  • X-TraceCRM-Signature (HMAC SHA-256)

Verifica firmas con tu secret de endpoint y rechaza entregas expiradas/repetidas usando timestamp + delivery ID.

// Pseudo-code
$signedPayload = $timestamp . '.' . $rawBody;
$expected = hash_hmac('sha256', $signedPayload, $endpointSecret);
if (!hash_equals($expected, $signatureHeader)) reject(401);
if (abs(time() - (int)$timestamp) > 300) reject(401); // 5 min window
if (alreadyProcessed($deliveryId)) reject(409);

Eventos disponibles:

  • lead.created, lead.updated, lead.deleted, lead.stage_changed
  • deal.created, deal.updated, deal.deleted, deal.stage_changed, deal.status_changed
  • form.submission.created, webhook.ping

Buenas prácticas

  • Mantén separado el ciclo de contacto y el pipeline de oportunidades para reportes más limpios.
  • Valida siempre las firmas de webhooks antes de procesar payloads.
  • Guarda IDs de entrega de webhooks procesados para forzar idempotencia y protección anti-replay.
  • Emite API keys con el mínimo scope necesario y rótalas periódicamente.
  • Usa claves de idempotencia en tus integraciones para evitar escrituras duplicadas.
  • Revisa los logs de API/Webhooks en API Connect para depurar entregas rápidamente.