Tickets de soporte
Listar tickets
GET /api/v1/crm/tickets
Parámetros:
| Nombre | Tipo | Descripción |
|---|---|---|
cursor | string | Cursor de paginación |
limit | int | Items por página (default 25, máx 100) |
filter[status] | string | open, in_progress, waiting_customer, waiting_internal, resolved, closed |
filter[priority] | string | low, medium, high, urgent |
filter[assigned_to] | string | UUID del agente asignado |
filter[source] | string | manual, email, whatsapp, web_form, api |
filter[contact_id] | string | UUID del contacto |
search | string | Búsqueda por asunto o número |
sort | string | -created_at, priority, resolution_due_at |
Respuesta 200:
{
"data": [
{
"id": "uuid",
"number": "TK-2026-0042",
"subject": "Producto dañado en envío",
"description": "El producto llegó con un daño en la caja...",
"status": "in_progress",
"priority": "high",
"source": "whatsapp",
"contact_id": "uuid",
"account_id": "uuid",
"assigned_to": "uuid",
"deal_id": null,
"order_id": "uuid",
"sla_policy_id": "uuid",
"response_due_at": "2026-04-10T14:00:00Z",
"resolution_due_at": "2026-04-11T12:00:00Z",
"first_response_at": "2026-04-10T13:30:00Z",
"resolved_at": null,
"closed_at": null,
"tags": ["envío", "daño"],
"metadata": {},
"created_by": "uuid",
"created_at": "2026-04-10T12:00:00Z",
"updated_at": "2026-04-10T13:30:00Z"
}
],
"meta": { "pagination": { "cursor": "eyJ...", "has_next": true, "limit": 25 } }
}
Crear ticket
POST /api/v1/crm/tickets
{
"subject": "Producto dañado en envío",
"description": "El producto llegó con un daño en la caja...",
"priority": "high",
"source": "api",
"contact_id": "uuid",
"order_id": "uuid",
"tags": ["envío"]
}
Respuesta 201: objeto Ticket completo.
Obtener ticket
GET /api/v1/crm/tickets/:id
Actualizar ticket
PATCH /api/v1/crm/tickets/:id
Mismos campos que crear. Omite los campos que no quieras cambiar.
Asignar ticket
POST /api/v1/crm/tickets/:id/assign
{ "assigned_to": "uuid" }
Resolver ticket
POST /api/v1/crm/tickets/:id/resolve
Cerrar ticket
POST /api/v1/crm/tickets/:id/close
Reabrir ticket
POST /api/v1/crm/tickets/:id/reopen
Escalar ticket
POST /api/v1/crm/tickets/:id/escalate
Comentarios del ticket
Listar comentarios
GET /api/v1/crm/tickets/:id/comments
Agregar comentario
POST /api/v1/crm/tickets/:id/comments
{
"body": "Le enviamos uno hoy mismo, con tracking #ABC123",
"is_internal": false
}