Oportunidades (Deals) Crear, listar y gestionar oportunidades de venta con pipelines, etapas, productos y conversaciones
Metodo Ruta Descripcion GET/crm/organizations/{organization_id}/dealsListar oportunidades con filtros POST/crm/organizations/{organization_id}/dealsCrear una oportunidad GET/crm/organizations/{organization_id}/deals/:idObtener oportunidad por ID PATCH/crm/organizations/{organization_id}/deals/:idActualizar una oportunidad PATCH/crm/organizations/{organization_id}/deals/:id/stageMover de etapa DELETE/crm/organizations/{organization_id}/deals/:idEliminar (soft delete) POST/crm/organizations/{organization_id}/deals/:id/line-itemsAgregar producto PATCH/crm/organizations/{organization_id}/deals/:id/line-items/:itemIdActualizar producto DELETE/crm/organizations/{organization_id}/deals/:id/line-items/:itemIdEliminar producto POST/crm/organizations/{organization_id}/deals/:id/conversationsVincular conversacion DELETE/crm/organizations/{organization_id}/deals/:id/conversations/:linkIdDesvincular conversacion GET/crm/organizations/{organization_id}/deals/:id/stage-timesTiempo por etapa
POST /crm/organizations/{organization_id}/deals
Campo Tipo Requerido Descripcion namestring Si Nombre de la oportunidad pipeline_idstring Si UUID del pipeline stage_idstring Si UUID de la etapa inicial amountnumber No Monto estimado currencystring No Codigo ISO 4217 (default: MXN). Soportados: MXN, USD, EUR, COP, ARS, BRL, CLP, PEN, UYU, BOB, PYG, CRC, DOP, GTQ, HNL, NIO, PAB, GBP, CAD statusstring No open (default), won, lostowner_idstring No UUID del miembro responsable account_idstring No UUID de la cuenta vinculada expected_close_datestring No Fecha ISO (YYYY-MM-DD) conversation_idsstring[] No IDs de conversaciones a vincular contactsarray No Contactos: [{ contact_id, role?, is_primary? }]
curl -X POST https://api.mirlo.com/v1/crm/organizations/{organization_id}/deals \
-H "X-API-Key: <YOUR_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"name": "Plan Enterprise Acme Corp",
"pipeline_id": "878132de-d23d-4ee8-afd4-92835b92632d",
"stage_id": "c2a2e188-216d-4695-b356-aa6b1d13b878",
"amount": 85000,
"currency": "MXN",
"owner_id": "dee2b7d5-1069-4580-bc5b-aa84d9899c5f",
"expected_close_date": "2026-08-15"
}'
{
"id" : "deal_5a8509f7-9066-4ab0-8255-e8d7577f71f1" ,
"number" : 3 ,
"reference" : "VNT-3" ,
"name" : "Plan Enterprise Acme Corp" ,
"amount" : "85000" ,
"currency" : "MXN" ,
"status" : "open" ,
"pipeline_id" : "878132de-d23d-4ee8-afd4-92835b92632d" ,
"stage_id" : "c2a2e188-216d-4695-b356-aa6b1d13b878" ,
"expected_close_date" : "2026-08-15T00:00:00.000Z" ,
"created_at" : "2026-07-12T00:00:00.000Z" ,
"pipeline" : { "id" : "..." , "name" : "Ventas" , "key" : "VNT" },
"stage" : { "id" : "..." , "name" : "Prospecto" , "stage_order" : 0 }
}
GET /crm/organizations/{organization_id}/deals
Parametro Tipo Descripcion searchstring Busqueda por nombre pipeline_idstring Filtrar por pipeline stage_idstring Filtrar por etapa owner_idstring Filtrar por responsable statusstring open, won, lostaccount_idstring Filtrar por cuenta product_idstring Filtrar por producto asociado amount_minnumber Monto minimo amount_maxnumber Monto maximo unassignedboolean true para deals sin responsablecurrencystring Filtrar por moneda expected_close_beforestring Fecha cierre esperada antes de (YYYY-MM-DD) expected_close_afterstring Fecha cierre esperada despues de (YYYY-MM-DD) created_afterstring Fecha creacion desde (YYYY-MM-DD) created_beforestring Fecha creacion hasta (YYYY-MM-DD) sort_bystring Ordenar por: amount, created_at, updated_at, name, expected_close_date sort_dirstring asc o desctimezonestring Ej: America/Mexico_City limitnumber Maximo de resultados (default: 100) offsetnumber Offset para paginacion
curl "https://api.mirlo.com/v1/crm/organizations/{organization_id}/deals?status=open&sort_by=amount&sort_dir=desc&limit=20" \
-H "X-API-Key: <YOUR_API_KEY>"
PATCH /crm/organizations/{organization_id}/deals/:id/stage
Mueve el deal a una nueva etapa del pipeline. Si la etapa destino tiene status won o lost, el deal se actualiza automaticamente.
curl -X PATCH https://api.mirlo.com/v1/crm/organizations/{organization_id}/deals/:id/stage \
-H "X-API-Key: <YOUR_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"stage_id": "ba6a8df0-5e2b-42de-abe2-575c888b4232"
}'
PATCH /crm/organizations/{organization_id}/deals/:id
Campo Tipo Descripcion namestring Nombre amountnumber Monto currencystring Moneda statusstring open, won, lostowner_idstring Responsable account_idstring Cuenta vinculada expected_close_datestring Fecha cierre esperada pipeline_idstring Cambiar de pipeline stage_idstring Cambiar de etapa
curl -X PATCH https://api.mirlo.com/v1/crm/organizations/{organization_id}/deals/:id \
-H "X-API-Key: <YOUR_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"amount": 95000,
"status": "won"
}'
Cada oportunidad puede tener productos asociados con cantidad, precio unitario y descuento. El monto del deal se recalcula automaticamente como la suma de los line items.
POST /crm/organizations/{organization_id}/deals/:id/line-items
Campo Tipo Requerido Descripcion namestring Si Nombre del producto product_idstring No UUID del producto del catalogo quantitynumber Si Cantidad unit_pricenumber Si Precio unitario discountnumber No Descuento fijo (default: 0) currencystring No Moneda (default: MXN) skustring No SKU del producto notesstring No Notas adicionales
curl -X POST https://api.mirlo.com/v1/crm/organizations/{organization_id}/deals/:id/line-items \
-H "X-API-Key: <YOUR_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"name": "Plan Enterprise",
"product_id": "prod-uuid",
"quantity": 10,
"unit_price": 8500,
"discount": 0
}'
{
"id" : "item-uuid" ,
"deal_id" : "deal_..." ,
"product_id" : "prod-uuid" ,
"name" : "Plan Enterprise" ,
"quantity" : 10 ,
"unit_price" : "8500" ,
"discount" : "0" ,
"total" : "85000" ,
"currency" : "MXN"
}
DELETE /crm/organizations/{organization_id}/deals/:id/line-items/:itemId
POST /crm/organizations/{organization_id}/deals/:id/conversations
Campo Tipo Requerido Descripcion conversation_idstring Si ID de la conversacion o llamada channelstring No whatsapp, voice, email, sms, webchatlinked_bystring No UUID del miembro que vincula
Al vincular, el sistema captura automaticamente el resumen de IA de la conversacion o llamada y lo almacena en la actividad.
curl -X POST https://api.mirlo.com/v1/crm/organizations/{organization_id}/deals/:id/conversations \
-H "X-API-Key: <YOUR_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"conversation_id": "conv-uuid",
"channel": "whatsapp"
}'
DELETE /crm/organizations/{organization_id}/deals/:id/conversations/:linkId
GET /crm/organizations/{organization_id}/deals/:id/stage-times
Retorna cuanto tiempo estuvo el deal en cada etapa del pipeline.
curl "https://api.mirlo.com/v1/crm/organizations/{organization_id}/deals/:id/stage-times" \
-H "X-API-Key: <YOUR_API_KEY>"
{
"deal_id" : "deal_..." ,
"stages" : [
{
"stage_id" : "..." ,
"stage_name" : "Prospecto" ,
"stage_order" : 0 ,
"duration_ms" : 64800000 ,
"is_current" : false
},
{
"stage_id" : "..." ,
"stage_name" : "Contactado" ,
"stage_order" : 1 ,
"duration_ms" : 21600000 ,
"is_current" : true
}
]
}