CRM
Referencia de 22 endpoints generados desde mosend-wb-backend/src/modules/crm/crm.controller.ts.
/organizations/:orgId/crm·22 endpoints·Source: mosend-wb-backend/src/modules/crm/crm.controller.ts/organizations/:orgId/crm/configuracionConfiguració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>'
{
"data": {
"id": "00000000-0000-0000-0000-000000000000",
"createdAt": "2026-05-01T03:42:18.123Z"
},
"timestamp": "2026-05-01T03:42:18.123Z"
}/organizations/:orgId/crm/configuracionGuarda la configuración del CRM.
Path params
orgIdstringrequerido
Body (JSON)
diasParaInactivonumber0 = nunca marcar inactivos.
diasSinActividadnumberasignacionDeDuenostringNINGUNOROTATIVOPRIMERO_QUE_RESPONDEasignarEntrestring[]
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": []}'{
"data": {
"id": "00000000-0000-0000-0000-000000000000",
"name": "string",
"description": "string"
},
"timestamp": "2026-05-01T03:42:18.123Z"
}/organizations/:orgId/crm/camposCampos 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>'
{
"data": [
{
"id": "00000000-0000-0000-0000-000000000000",
"createdAt": "2026-05-01T03:42:18.123Z"
}
],
"timestamp": "2026-05-01T03:42:18.123Z"
}/organizations/:orgId/crm/campos/sugeridosAtributos 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>'
{
"data": {
"id": "00000000-0000-0000-0000-000000000000",
"createdAt": "2026-05-01T03:42:18.123Z"
},
"timestamp": "2026-05-01T03:42:18.123Z"
}/organizations/:orgId/crm/camposCrea un campo del cliente.
Path params
orgIdstringrequerido
Body (JSON)
etiquetastringrequeridoclavestringOpcional: si no viene, sale de la etiqueta («Segmento» → «segmento»).
tipoobjectopcionesstring[]obligatoriobooleanenTablabooleanenFichabooleanordennumber
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}'{
"data": {
"id": "00000000-0000-0000-0000-000000000000",
"name": "string",
"description": "string"
},
"timestamp": "2026-05-01T03:42:18.123Z"
}/organizations/:orgId/crm/campos/unificarJunta claves de atributos repetidas en una sola.
Path params
orgIdstringrequerido
Body (JSON)
destring[]requeridoClaves de atributos a juntar («Numero», «Número»).
astringrequeridoClave 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>"}'{
"data": {
"id": "00000000-0000-0000-0000-000000000000",
"name": "string",
"description": "string"
},
"timestamp": "2026-05-01T03:42:18.123Z"
}/organizations/:orgId/crm/campos/:idEdita un campo del cliente.
Path params
orgIdstringrequeridoidstringrequerido
Body (JSON)
etiquetastringtipoobjectopcionesstring[]obligatoriobooleanenTablabooleanenFichabooleanordennumber
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}'{
"data": {
"id": "00000000-0000-0000-0000-000000000000",
"name": "string",
"description": "string"
},
"timestamp": "2026-05-01T03:42:18.123Z"
}/organizations/:orgId/crm/campos/:idArchiva un campo (los valores se conservan).
Path params
orgIdstringrequeridoidstringrequerido
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>'
{
"data": {
"id": "00000000-0000-0000-0000-000000000000",
"createdAt": "2026-05-01T03:42:18.123Z"
},
"timestamp": "2026-05-01T03:42:18.123Z"
}/organizations/:orgId/crm/clientes/:contactIdCambia dueño, empresa, etapa o campos de un cliente.
Path params
orgIdstringrequeridocontactIdstringrequerido
Body (JSON)
duenoUserIdstring · uuidnull = sin dueño.
empresaIdstring · uuidnull = sin empresa.
etapaobjectcamposobjectValores 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": {}}'{
"data": {
"id": "00000000-0000-0000-0000-000000000000",
"name": "string",
"description": "string"
},
"timestamp": "2026-05-01T03:42:18.123Z"
}/organizations/:orgId/crm/clientes/masivoReasigna dueño, empresa o etapa a varios clientes.
Path params
orgIdstringrequerido
Body (JSON)
contactIdsstring[]requeridoduenoUserIdstring · uuidempresaIdstring · uuidetapaobject
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": {}}'{
"data": {
"id": "00000000-0000-0000-0000-000000000000",
"name": "string",
"description": "string"
},
"timestamp": "2026-05-01T03:42:18.123Z"
}/organizations/:orgId/crm/clientes/:contactId/fichaFicha completa del cliente.
Path params
orgIdstringrequeridocontactIdstringrequerido
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>'
{
"data": {
"id": "00000000-0000-0000-0000-000000000000",
"createdAt": "2026-05-01T03:42:18.123Z"
},
"timestamp": "2026-05-01T03:42:18.123Z"
}/organizations/:orgId/crm/clientes/:contactId/linea-de-tiempoTodo lo que pasó con el cliente, de lo más nuevo a lo más viejo.
Path params
orgIdstringrequeridocontactIdstringrequerido
Query params
antesstringCursor: 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>'
{
"data": [
{
"id": "00000000-0000-0000-0000-000000000000",
"createdAt": "2026-05-01T03:42:18.123Z"
}
],
"timestamp": "2026-05-01T03:42:18.123Z"
}/organizations/:orgId/crm/empresasEmpresas, con sus contactos y oportunidades abiertas.
Path params
orgIdstringrequerido
Query params
qstringrequeridoduenoUserIdstringrequeridopagestringrequeridopageSizestringrequerido
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>'
{
"data": [
{
"id": "00000000-0000-0000-0000-000000000000",
"createdAt": "2026-05-01T03:42:18.123Z"
}
],
"timestamp": "2026-05-01T03:42:18.123Z"
}/organizations/:orgId/crm/empresas/consultar-nitDatos 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>"}'{
"data": {
"id": "00000000-0000-0000-0000-000000000000",
"name": "string",
"description": "string"
},
"timestamp": "2026-05-01T03:42:18.123Z"
}/organizations/:orgId/crm/empresasCrea una empresa.
Path params
orgIdstringrequerido
Body (JSON)
nombrestringrequeridonitstringCon o sin dígito de verificación.
sectorstringciudadstringsitioWebstringtelefonostringcorreostring · emailduenoUserIdstring · uuidnotasstringatributosobject
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": {}}'{
"data": {
"id": "00000000-0000-0000-0000-000000000000",
"name": "string",
"description": "string"
},
"timestamp": "2026-05-01T03:42:18.123Z"
}/organizations/:orgId/crm/empresas/:idFicha de la empresa.
Path params
orgIdstringrequeridoidstringrequerido
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>'
{
"data": {
"id": "00000000-0000-0000-0000-000000000000",
"createdAt": "2026-05-01T03:42:18.123Z"
},
"timestamp": "2026-05-01T03:42:18.123Z"
}/organizations/:orgId/crm/empresas/:idEdita una empresa.
Path params
orgIdstringrequeridoidstringrequerido
Body (JSON)
nombrestringnitstringsectorstringciudadstringsitioWebstringtelefonostringcorreostring · emailduenoUserIdstring · uuidnull = sin dueño.
notasstringatributosobject
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": {}}'{
"data": {
"id": "00000000-0000-0000-0000-000000000000",
"name": "string",
"description": "string"
},
"timestamp": "2026-05-01T03:42:18.123Z"
}/organizations/:orgId/crm/empresas/:idBorra una empresa (sus contactos quedan sin empresa).
Path params
orgIdstringrequeridoidstringrequerido
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>'
{
"data": {
"id": "00000000-0000-0000-0000-000000000000",
"createdAt": "2026-05-01T03:42:18.123Z"
},
"timestamp": "2026-05-01T03:42:18.123Z"
}/organizations/:orgId/crm/empresas/:id/contactosAsocia contactos a la empresa.
Path params
orgIdstringrequeridoidstringrequerido
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": []}'{
"data": {
"id": "00000000-0000-0000-0000-000000000000",
"name": "string",
"description": "string"
},
"timestamp": "2026-05-01T03:42:18.123Z"
}/organizations/:orgId/crm/empresas/:id/contactos/quitarQuita contactos de la empresa.
Path params
orgIdstringrequeridoidstringrequerido
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": []}'{
"data": {
"id": "00000000-0000-0000-0000-000000000000",
"name": "string",
"description": "string"
},
"timestamp": "2026-05-01T03:42:18.123Z"
}/organizations/:orgId/crm/duplicadosPosibles 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>'
{
"data": {
"id": "00000000-0000-0000-0000-000000000000",
"createdAt": "2026-05-01T03:42:18.123Z"
},
"timestamp": "2026-05-01T03:42:18.123Z"
}/organizations/:orgId/crm/duplicados/fusionarJunta un duplicado con el contacto principal.
Path params
orgIdstringrequerido
Body (JSON)
principalIdstring · uuidrequeridoEl que se queda.
duplicadoIdstring · uuidrequeridoEl 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"}'{
"data": {
"id": "00000000-0000-0000-0000-000000000000",
"name": "string",
"description": "string"
},
"timestamp": "2026-05-01T03:42:18.123Z"
}