mirlo

Contactos

CRUD de contactos con identidades (telefono, email)

Endpoints

MetodoRutaDescripcion
GET/crm/organizations/{organization_id}/contactsListar contactos
POST/crm/organizations/{organization_id}/contactsCrear un contacto
GET/crm/organizations/{organization_id}/contacts/:idObtener contacto por ID
PATCH/crm/organizations/{organization_id}/contacts/:idActualizar contacto
DELETE/crm/organizations/{organization_id}/contacts/:idEliminar contacto (soft delete)

Crear contacto

POST /crm/organizations/{organization_id}/contacts

Body

CampoTipoRequeridoDescripcion
first_namestringNoNombre
last_namestringNoApellido
identitiesarrayNoIdentidades (telefono, email, etc.)
identities[].channelstringSiwhatsapp, phone, email, sms, webchat, messenger
identities[].addressstringSiNumero, email, etc.
account_idstringNoUUID de la cuenta vinculada
propertiesobjectNoPropiedades personalizadas (JSON libre)

Ejemplo

curl -X POST https://api.mirlo.com/v1/crm/organizations/{organization_id}/contacts \
  -H "X-API-Key: <YOUR_API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{
    "first_name": "Juan",
    "last_name": "Perez",
    "identities": [
      { "channel": "whatsapp", "address": "+525512345678" },
      { "channel": "email", "address": "juan@empresa.com" }
    ],
    "properties": {
      "company": "Acme Corp",
      "city": "CDMX"
    }
  }'

Respuesta

{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "first_name": "Juan",
  "last_name": "Perez",
  "identities": [
    {
      "id": "...",
      "channel": "whatsapp",
      "address_raw": "+525512345678",
      "address_normalized": "525512345678",
      "is_primary": true
    }
  ],
  "properties": { "company": "Acme Corp", "city": "CDMX" },
  "created_at": "2026-07-06T00:00:00.000Z"
}

Listar contactos

GET /crm/organizations/{organization_id}/contacts

Query Parameters

ParametroTipoDescripcion
searchstringBusqueda por nombre, telefono o email
label_idstringFiltrar por etiqueta
account_idstringFiltrar por cuenta
channelstringFiltrar por canal de identidad
limitnumberMaximo de resultados (default: 20)
offsetnumberOffset para paginacion
curl "https://api.mirlo.com/v1/crm/organizations/{organization_id}/contacts?search=juan&limit=10" \
  -H "X-API-Key: <YOUR_API_KEY>"

Actualizar contacto

PATCH /crm/organizations/{organization_id}/contacts/:id

Todos los campos son opcionales. Solo se actualizan los campos enviados.

CampoTipoDescripcion
first_namestringNombre
last_namestringApellido
account_idstringUUID de la cuenta (null para desvincular)
propertiesobjectPropiedades personalizadas

Eliminar contacto

DELETE /crm/organizations/{organization_id}/contacts/:id

Soft delete — el contacto se marca como eliminado pero no se borra de la base de datos.

En esta pagina