Contactos
Buscar, leer la ficha y dar de alta.
Busca por teléfono en E.164, por correo o por nombre: uno de los tres. Si no hay nadie, la respuesta es 200 con la lista vacía; si hay varios, llegan todos, por páginas, y decide tu sistema.
curl -G https://plataforma.ndx-one.com/api/v1/crm/contacts \ -H "Authorization: Bearer $NDX_LLAVE" \ --data-urlencode "email=ana@ejemplo.test"Buscando por teléfono, en la URL el «+» se escribe %2B. Sin codificar, llega como un espacio y el número deja de ser E.164.
Con su id, GET /api/v1/crm/contacts/{id} trae la ficha: nombre, teléfonos, correos, cuenta y responsable, con un ETag para no volver a descargarla si no ha cambiado. Y GET /api/v1/crm/contacts/{id}/context, lo esencial para trabajar con él: sus oportunidades abiertas, lo último que se habló y sus tareas pendientes.
CONTACTO="6f1c2d3e-4b5a-4c6d-8e7f-90a1b2c3d4e5" # el id de la fichacurl https://plataforma.ndx-one.com/api/v1/crm/contacts/$CONTACTO \ -H "Authorization: Bearer $NDX_LLAVE"Para dar de alta, busca antes: el teléfono no cuenta como duplicado. Si ya hay una ficha con ese correo, la respuesta es 409 duplicate y, si la llave puede verla, trae su id. La llave necesita «Editar» en Clientes.
curl https://plataforma.ndx-one.com/api/v1/crm/contacts \ -H "Authorization: Bearer $NDX_LLAVE" \ -H "Content-Type: application/json" \ -H "Idempotency-Key: $(uuidgen)" \ -d '{ "firstName": "Ana", "lastName": "Ejemplo", "phones": [ { "number": "+34600000000" } ], "emails": [ "ana@ejemplo.test" ] }'