CRM

Referencia de 22 endpoints generados desde mosend-wb-backend/src/modules/crm/crm.controller.ts.

Base path: /organizations/:orgId/crm·22 endpoints·Source: mosend-wb-backend/src/modules/crm/crm.controller.ts
GET/organizations/:orgId/crm/configuracion
bearer

Configuración del CRM: inactividad, avisos y dueño automático.

Path params

  • orgIdstringrequerido

Respuestas

  • 200
curl -X GET 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/crm/configuracion' \
  -H 'X-Api-Key: mk_live_<prefix>.<secret>'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "createdAt": "2026-05-01T03:42:18.123Z"
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}
PUT/organizations/:orgId/crm/configuracion
bearer

Guarda la configuración del CRM.

Path params

  • orgIdstringrequerido

Body (JSON)

  • diasParaInactivonumber

    0 = nunca marcar inactivos.

  • diasSinActividadnumber
  • asignacionDeDuenostring
    NINGUNOROTATIVOPRIMERO_QUE_RESPONDE
  • asignarEntrestring[]

Respuestas

  • 200
curl -X PUT 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/crm/configuracion' \
  -H 'X-Api-Key: mk_live_<prefix>.<secret>' \
  -H 'Content-Type: application/json' \
  -d '{"diasParaInactivo": 0,"diasSinActividad": 0,"asignacionDeDueno": "NINGUNO","asignarEntre": []}'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "name": "string",
    "description": "string"
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}
GET/organizations/:orgId/crm/campos
bearer

Campos definidos del cliente.

Path params

  • orgIdstringrequerido

Respuestas

  • 200
curl -X GET 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/crm/campos' \
  -H 'X-Api-Key: mk_live_<prefix>.<secret>'
Response · 200
{
  "data": [
    {
      "id": "00000000-0000-0000-0000-000000000000",
      "createdAt": "2026-05-01T03:42:18.123Z"
    }
  ],
  "timestamp": "2026-05-01T03:42:18.123Z"
}
GET/organizations/:orgId/crm/campos/sugeridos
bearer

Atributos sueltos que ya usan los contactos y aún no son un campo.

Path params

  • orgIdstringrequerido

Respuestas

  • 200
curl -X GET 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/crm/campos/sugeridos' \
  -H 'X-Api-Key: mk_live_<prefix>.<secret>'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "createdAt": "2026-05-01T03:42:18.123Z"
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}
POST/organizations/:orgId/crm/campos
bearer

Crea un campo del cliente.

Path params

  • orgIdstringrequerido

Body (JSON)

  • etiquetastringrequerido
  • clavestring

    Opcional: si no viene, sale de la etiqueta («Segmento» → «segmento»).

  • tipoobject
  • opcionesstring[]
  • obligatorioboolean
  • enTablaboolean
  • enFichaboolean
  • ordennumber

Respuestas

  • 201
curl -X POST 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/crm/campos' \
  -H 'X-Api-Key: mk_live_<prefix>.<secret>' \
  -H 'Content-Type: application/json' \
  -d '{"etiqueta": "<etiqueta>","clave": "<clave>","tipo": {},"opciones": [],"obligatorio": true,"enTabla": true,"enFicha": true,"orden": 0}'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "name": "string",
    "description": "string"
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}
POST/organizations/:orgId/crm/campos/unificar
bearer

Junta claves de atributos repetidas en una sola.

Path params

  • orgIdstringrequerido

Body (JSON)

  • destring[]requerido

    Claves de atributos a juntar («Numero», «Número»).

  • astringrequerido

    Clave final (un campo definido o una clave nueva).

Respuestas

  • 201
curl -X POST 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/crm/campos/unificar' \
  -H 'X-Api-Key: mk_live_<prefix>.<secret>' \
  -H 'Content-Type: application/json' \
  -d '{"de": [],"a": "<a>"}'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "name": "string",
    "description": "string"
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}
PATCH/organizations/:orgId/crm/campos/:id
bearer

Edita un campo del cliente.

Path params

  • orgIdstringrequerido
  • idstringrequerido

Body (JSON)

  • etiquetastring
  • tipoobject
  • opcionesstring[]
  • obligatorioboolean
  • enTablaboolean
  • enFichaboolean
  • ordennumber

Respuestas

  • 200
curl -X PATCH 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/crm/campos/00000000-0000-0000-0000-000000000000' \
  -H 'X-Api-Key: mk_live_<prefix>.<secret>' \
  -H 'Content-Type: application/json' \
  -d '{"etiqueta": "<etiqueta>","tipo": {},"opciones": [],"obligatorio": true,"enTabla": true,"enFicha": true,"orden": 0}'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "name": "string",
    "description": "string"
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}
DELETE/organizations/:orgId/crm/campos/:id
bearer

Archiva un campo (los valores se conservan).

Path params

  • orgIdstringrequerido
  • idstringrequerido

Respuestas

  • 200
curl -X DELETE 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/crm/campos/00000000-0000-0000-0000-000000000000' \
  -H 'X-Api-Key: mk_live_<prefix>.<secret>'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "createdAt": "2026-05-01T03:42:18.123Z"
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}
PATCH/organizations/:orgId/crm/clientes/:contactId
bearer

Cambia dueño, empresa, etapa o campos de un cliente.

Path params

  • orgIdstringrequerido
  • contactIdstringrequerido

Body (JSON)

  • duenoUserIdstring · uuid

    null = sin dueño.

  • empresaIdstring · uuid

    null = sin empresa.

  • etapaobject
  • camposobject

    Valores de campos por clave. Se MEZCLAN con los que ya tiene; null o '' borra esa clave. Los campos definidos se validan por su tipo.

Respuestas

  • 200
curl -X PATCH 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/crm/clientes/00000000-0000-0000-0000-000000000000' \
  -H 'X-Api-Key: mk_live_<prefix>.<secret>' \
  -H 'Content-Type: application/json' \
  -d '{"duenoUserId": "00000000-0000-0000-0000-000000000000","empresaId": "00000000-0000-0000-0000-000000000000","etapa": {},"campos": {}}'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "name": "string",
    "description": "string"
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}
POST/organizations/:orgId/crm/clientes/masivo
bearer

Reasigna dueño, empresa o etapa a varios clientes.

Path params

  • orgIdstringrequerido

Body (JSON)

  • contactIdsstring[]requerido
  • duenoUserIdstring · uuid
  • empresaIdstring · uuid
  • etapaobject

Respuestas

  • 201
curl -X POST 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/crm/clientes/masivo' \
  -H 'X-Api-Key: mk_live_<prefix>.<secret>' \
  -H 'Content-Type: application/json' \
  -d '{"contactIds": [],"duenoUserId": "00000000-0000-0000-0000-000000000000","empresaId": "00000000-0000-0000-0000-000000000000","etapa": {}}'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "name": "string",
    "description": "string"
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}
GET/organizations/:orgId/crm/clientes/:contactId/ficha
bearer

Ficha completa del cliente.

Path params

  • orgIdstringrequerido
  • contactIdstringrequerido

Respuestas

  • 200
curl -X GET 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/crm/clientes/00000000-0000-0000-0000-000000000000/ficha' \
  -H 'X-Api-Key: mk_live_<prefix>.<secret>'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "createdAt": "2026-05-01T03:42:18.123Z"
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}
GET/organizations/:orgId/crm/clientes/:contactId/linea-de-tiempo
bearer

Todo lo que pasó con el cliente, de lo más nuevo a lo más viejo.

Path params

  • orgIdstringrequerido
  • contactIdstringrequerido

Query params

  • antesstring

    Cursor: trae lo anterior a esta fecha.

  • limitenumber

Respuestas

  • 200
curl -X GET 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/crm/clientes/00000000-0000-0000-0000-000000000000/linea-de-tiempo' \
  -H 'X-Api-Key: mk_live_<prefix>.<secret>'
Response · 200
{
  "data": [
    {
      "id": "00000000-0000-0000-0000-000000000000",
      "createdAt": "2026-05-01T03:42:18.123Z"
    }
  ],
  "timestamp": "2026-05-01T03:42:18.123Z"
}
GET/organizations/:orgId/crm/empresas
bearer

Empresas, con sus contactos y oportunidades abiertas.

Path params

  • orgIdstringrequerido

Query params

  • qstringrequerido
  • duenoUserIdstringrequerido
  • pagestringrequerido
  • pageSizestringrequerido

Respuestas

  • 200
curl -X GET 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/crm/empresas' \
  -H 'X-Api-Key: mk_live_<prefix>.<secret>'
Response · 200
{
  "data": [
    {
      "id": "00000000-0000-0000-0000-000000000000",
      "createdAt": "2026-05-01T03:42:18.123Z"
    }
  ],
  "timestamp": "2026-05-01T03:42:18.123Z"
}
POST/organizations/:orgId/crm/empresas/consultar-nit
bearer

Datos de un NIT en la DIAN para prellenar la empresa.

Path params

  • orgIdstringrequerido

Body (JSON)

  • nitstringrequerido

Respuestas

  • 201
curl -X POST 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/crm/empresas/consultar-nit' \
  -H 'X-Api-Key: mk_live_<prefix>.<secret>' \
  -H 'Content-Type: application/json' \
  -d '{"nit": "<nit>"}'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "name": "string",
    "description": "string"
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}
POST/organizations/:orgId/crm/empresas
bearer

Crea una empresa.

Path params

  • orgIdstringrequerido

Body (JSON)

  • nombrestringrequerido
  • nitstring

    Con o sin dígito de verificación.

  • sectorstring
  • ciudadstring
  • sitioWebstring
  • telefonostring
  • correostring · email
  • duenoUserIdstring · uuid
  • notasstring
  • atributosobject

Respuestas

  • 201
curl -X POST 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/crm/empresas' \
  -H 'X-Api-Key: mk_live_<prefix>.<secret>' \
  -H 'Content-Type: application/json' \
  -d '{"nombre": "<nombre>","nit": "<nit>","sector": "<sector>","ciudad": "<ciudad>","sitioWeb": "<sitioWeb>","telefono": "<telefono>","correo": "persona@empresa.com","duenoUserId": "00000000-0000-0000-0000-000000000000","notas": "<notas>","atributos": {}}'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "name": "string",
    "description": "string"
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}
GET/organizations/:orgId/crm/empresas/:id
bearer

Ficha de la empresa.

Path params

  • orgIdstringrequerido
  • idstringrequerido

Respuestas

  • 200
curl -X GET 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/crm/empresas/00000000-0000-0000-0000-000000000000' \
  -H 'X-Api-Key: mk_live_<prefix>.<secret>'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "createdAt": "2026-05-01T03:42:18.123Z"
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}
PATCH/organizations/:orgId/crm/empresas/:id
bearer

Edita una empresa.

Path params

  • orgIdstringrequerido
  • idstringrequerido

Body (JSON)

  • nombrestring
  • nitstring
  • sectorstring
  • ciudadstring
  • sitioWebstring
  • telefonostring
  • correostring · email
  • duenoUserIdstring · uuid

    null = sin dueño.

  • notasstring
  • atributosobject

Respuestas

  • 200
curl -X PATCH 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/crm/empresas/00000000-0000-0000-0000-000000000000' \
  -H 'X-Api-Key: mk_live_<prefix>.<secret>' \
  -H 'Content-Type: application/json' \
  -d '{"nombre": "<nombre>","nit": "<nit>","sector": "<sector>","ciudad": "<ciudad>","sitioWeb": "<sitioWeb>","telefono": "<telefono>","correo": "persona@empresa.com","duenoUserId": "00000000-0000-0000-0000-000000000000","notas": "<notas>","atributos": {}}'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "name": "string",
    "description": "string"
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}
DELETE/organizations/:orgId/crm/empresas/:id
bearer

Borra una empresa (sus contactos quedan sin empresa).

Path params

  • orgIdstringrequerido
  • idstringrequerido

Respuestas

  • 200
curl -X DELETE 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/crm/empresas/00000000-0000-0000-0000-000000000000' \
  -H 'X-Api-Key: mk_live_<prefix>.<secret>'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "createdAt": "2026-05-01T03:42:18.123Z"
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}
POST/organizations/:orgId/crm/empresas/:id/contactos
bearer

Asocia contactos a la empresa.

Path params

  • orgIdstringrequerido
  • idstringrequerido

Body (JSON)

  • contactIdsstring[]requerido

Respuestas

  • 201
curl -X POST 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/crm/empresas/00000000-0000-0000-0000-000000000000/contactos' \
  -H 'X-Api-Key: mk_live_<prefix>.<secret>' \
  -H 'Content-Type: application/json' \
  -d '{"contactIds": []}'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "name": "string",
    "description": "string"
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}
POST/organizations/:orgId/crm/empresas/:id/contactos/quitar
bearer

Quita contactos de la empresa.

Path params

  • orgIdstringrequerido
  • idstringrequerido

Body (JSON)

  • contactIdsstring[]requerido

Respuestas

  • 201
curl -X POST 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/crm/empresas/00000000-0000-0000-0000-000000000000/contactos/quitar' \
  -H 'X-Api-Key: mk_live_<prefix>.<secret>' \
  -H 'Content-Type: application/json' \
  -d '{"contactIds": []}'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "name": "string",
    "description": "string"
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}
GET/organizations/:orgId/crm/duplicados
bearer

Posibles contactos duplicados (mismo correo o teléfono).

Path params

  • orgIdstringrequerido

Respuestas

  • 200
curl -X GET 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/crm/duplicados' \
  -H 'X-Api-Key: mk_live_<prefix>.<secret>'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "createdAt": "2026-05-01T03:42:18.123Z"
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}
POST/organizations/:orgId/crm/duplicados/fusionar
bearer

Junta un duplicado con el contacto principal.

Path params

  • orgIdstringrequerido

Body (JSON)

  • principalIdstring · uuidrequerido

    El que se queda.

  • duplicadoIdstring · uuidrequerido

    El que se junta con el principal y desaparece.

Respuestas

  • 201
curl -X POST 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/crm/duplicados/fusionar' \
  -H 'X-Api-Key: mk_live_<prefix>.<secret>' \
  -H 'Content-Type: application/json' \
  -d '{"principalId": "00000000-0000-0000-0000-000000000000","duplicadoId": "00000000-0000-0000-0000-000000000000"}'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "name": "string",
    "description": "string"
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}