ReferenciaContacts
Contacts
Crear, buscar, upsert por email/teléfono.
Crea con al menos display_name. Email es recomendado. Teléfono con menos de 7 o más de 15 dígitos es 400. PATCH no cambia email ni phone.
| HTTP | Path | Scope |
|---|---|---|
| GET | /api/v1/contacts | rest.crm.contacts.read |
| POST | /api/v1/contacts | rest.crm.contacts.write |
| POST | /api/v1/contacts/upsert | rest.crm.contacts.write |
| GET | /api/v1/contacts/{id} | rest.crm.contacts.read |
| PATCH | /api/v1/contacts/{id} | rest.crm.contacts.write |
Query
| Parámetro | Tipo | Notas |
|---|---|---|
| string | Lookup del email primario. Miss es data: [], no 404. | |
| phone | string | Lookup del teléfono primario. Miss es data: []. |
| q | string | Busca nombre, email, phone y empresa. |
| limit / cursor | number / string | Página de cursor. limit 1–100, default 20. |
Campos
| Campo | Tipo | Create | PATCH | Notas |
|---|---|---|---|---|
| id | UUID | — | não | Inmutable. |
| display_name | string | null | sim | sim | Obligatorio en create. Se parte en first + last. |
| string | null | sim | não | Email primario. Solo en create. | |
| phone | string | null | sim | não | 7–15 dígitos. Day 1 guarda como BR +55. |
| company_id | UUID | null | sim | sim | Empresa de esta org, o null. |
| owner_id | UUID | null | sim | sim | El mismo id de GET /members. |
| tag_ids | UUID[] | sim | sim | Replace total. [] limpia. |
| created_at / updated_at | datetime | — | não | ISO-8601 UTC. |
Upsert casa email, luego phone. created: true y 201 al insertar; created: false y 200 al actualizar. Email/phone no cambian en el update. No hace falta Idempotency-Key para no duplicar — el upsert es el contrato de identidad.