Contacts
Contacts API v3
Documentación de la API de Contacts
API Versión v3
Todos los endpoints estan disponibles bajo el prefijo /v3, con respuestas que siguen el estandar AIP.
Servidor base: https://services.leadconnectorhq.com
Endpoints
- POST /contacts/search — Buscar contactos
- GET /contacts/search/duplicate — Obtener contacto duplicado
- GET /contacts/{contactId}/tasks — Obtener todas las tareas
- POST /contacts/{contactId}/tasks — Crear tarea
- GET /contacts/{contactId}/tasks/{taskId} — Obtener tarea
- PUT /contacts/{contactId}/tasks/{taskId} — Actualizar tarea
- DELETE /contacts/{contactId}/tasks/{taskId} — Eliminar tarea
- PUT /contacts/{contactId}/tasks/{taskId}/completed — Actualizar Task Completed
- GET /contacts/{contactId}/appointments — Obtener Appointments for Contact
- POST /contacts/{contactId}/tags — Agregar etiquetas
- DELETE /contacts/{contactId}/tags — Quitar etiquetas
- GET /contacts/{contactId}/notes — Obtener todas las notas
- POST /contacts/{contactId}/notes — Crear nota
- GET /contacts/{contactId}/notes/{id} — Obtener nota
- PUT /contacts/{contactId}/notes/{id} — Actualizar nota
- DELETE /contacts/{contactId}/notes/{id} — Eliminar nota
- POST /contacts/bulk/tags/update/{type} — Actualizar Contacts Tags
- POST /contacts/bulk/business — Add/Remove Contacts From Business
- DELETE /contacts/{contactId} — Eliminar contacto
- GET /contacts/{contactId} — Obtener contacto
- PUT /contacts/{contactId} — Actualizar contacto
- POST /contacts/upsert — Crear o actualizar contacto
- GET /contacts/business/{businessId} — Obtener Contacts By BusinessId
- POST /contacts/{contactId}/followers — Agregar seguidores
- DELETE /contacts/{contactId}/followers — Quitar seguidores
- POST /contacts/{contactId}/campaigns/{campaignId} — Agregar Contact to Campaign
- DELETE /contacts/{contactId}/campaigns/{campaignId} — Quitar Contact From Campaign
- DELETE /contacts/{contactId}/campaigns/remove-all — Quitar Contact From Every Campaign
- POST /contacts/{contactId}/workflow/{workflowId} — Agregar Contact to Workflow
- DELETE /contacts/{contactId}/workflow/{workflowId} — Eliminar Contact from Workflow
- POST /contacts/ — Crear contacto
POST /contacts/search
Buscar contactos Search contacts based on combinations of advanced filters. Documentation Link - https://doc.clickup.com/8631005/d/h/87cpx-158396/6e629989abe7fad
Scopes requeridos: contacts.readonly
Parametros:
- Versión (header, string) (requerido) — Versión de la API
Cuerpo de la peticion (application/json): - (ver esquema en la fuente original)
Respuestas:
- 200 — Exitosa
- 400 — Peticion invalida
- 401 — No autorizado
GET /contacts/search/duplicate
Obtener contacto duplicado
Get Duplicate Contact.
If Allow Duplicate Contact is disabled under Settings, the global unique identifier will be used for searching the contact. If the setting is enabled, first priority for search is email and the second priority will be phone.
Scopes requeridos: contacts.readonly
Parametros:
- Versión (header, string) (requerido) — Versión de la API
- locationId (query, string) (requerido) — Id de sede
- number (query, string) — Phone Number — URL-encoded. E.g. +1423164516 → %2B1423164516
- email (query, string) — Email — URL-encoded. E.g. test+abc@gmail.com → test%2Babc%40gmail.com
Respuestas:
- 200
- 400 — Peticion invalida
- 401 — No autorizado
GET /contacts/{contactId}/tasks
Obtener todas las tareas Scopes requeridos: contacts.readonly
Parametros:
- Versión (header, string) (requerido) — Versión de la API
- contactId (path, string) (requerido) — Id de contacto
Respuestas:
- 200 — Respuesta exitosa
- 400 — Peticion invalida
- 401 — No autorizado
POST /contacts/{contactId}/tasks
Crear tarea Scopes requeridos: contacts.write
Parametros:
- Versión (header, string) (requerido) — Versión de la API
- contactId (path, string) (requerido) — Id de contacto
Cuerpo de la peticion (application/json):
- title (requerido) — string — Title of the task
- body — string — Body or description of the task
- dueDate (requerido) — string — Due date of the task (ISO 8601 format)
- completed (requerido) — boolean — Whether the task is completed
- assignedTo — string — User Id to whom the task is assigned
Respuestas:
- 201 — Respuesta exitosa
- 400 — Peticion invalida
- 401 — No autorizado
- 422 — Entidad no procesable
GET /contacts/{contactId}/tasks/{taskId}
Obtener tarea Scopes requeridos: contacts.readonly
Parametros:
- Versión (header, string) (requerido) — Versión de la API
- contactId (path, string) (requerido) — Id de contacto
- taskId (path, string) (requerido) — Id de tarea
Respuestas:
- 200 — Respuesta exitosa
- 400 — Peticion invalida
- 401 — No autorizado
PUT /contacts/{contactId}/tasks/{taskId}
Actualizar tarea Scopes requeridos: contacts.write
Parametros:
- Versión (header, string) (requerido) — Versión de la API
- contactId (path, string) (requerido) — Id de contacto
- taskId (path, string) (requerido) — Id de tarea
Cuerpo de la peticion (application/json):
- title — string — Title of the task
- body — string — Body or description of the task
- dueDate — string — Due date of the task (ISO 8601 format)
- completed — boolean — Whether the task is completed
- assignedTo — string — User Id to whom the task is assigned
Respuestas:
- 200 — Respuesta exitosa
- 400 — Peticion invalida
- 401 — No autorizado
- 422 — Entidad no procesable
DELETE /contacts/{contactId}/tasks/{taskId}
Eliminar tarea Scopes requeridos: contacts.write
Parametros:
- Versión (header, string) (requerido) — Versión de la API
- contactId (path, string) (requerido) — Id de contacto
- taskId (path, string) (requerido) — Id de tarea
Respuestas:
- 200 — Respuesta exitosa
- 400 — Peticion invalida
- 401 — No autorizado
PUT /contacts/{contactId}/tasks/{taskId}/completed
Actualizar Task Completed Scopes requeridos: contacts.write
Parametros:
- Versión (header, string) (requerido) — Versión de la API
- contactId (path, string) (requerido) — Id de contacto
- taskId (path, string) (requerido) — Id de tarea
Cuerpo de la peticion (application/json):
- completed (requerido) — boolean — Whether the task is completed
Respuestas:
- 200 — Respuesta exitosa
- 400 — Peticion invalida
- 401 — No autorizado
- 422 — Entidad no procesable
GET /contacts/{contactId}/appointments
Obtener Appointments for Contact Scopes requeridos: contacts.readonly
Parametros:
- Versión (header, string) (requerido) — Versión de la API
- contactId (path, string) (requerido) — Id de contacto
Respuestas:
- 200 — Respuesta exitosa
- 400 — Peticion invalida
- 401 — No autorizado
- 422 — Entidad no procesable
POST /contacts/{contactId}/tags
Agregar etiquetas Scopes requeridos: contacts.write
Parametros:
- Versión (header, string) (requerido) — Versión de la API
- contactId (path, string) (requerido) — Id de contacto
Cuerpo de la peticion (application/json):
- tags (requerido) — array — List of tags to add or remove
Respuestas:
- 201 — Respuesta exitosa
- 400 — Peticion invalida
- 401 — No autorizado
- 422 — Entidad no procesable
DELETE /contacts/{contactId}/tags
Quitar etiquetas Scopes requeridos: contacts.write
Parametros:
- Versión (header, string) (requerido) — Versión de la API
- contactId (path, string) (requerido) — Id de contacto
Cuerpo de la peticion (application/json):
- tags (requerido) — array — List of tags to add or remove
Respuestas:
- 200 — Respuesta exitosa
- 400 — Peticion invalida
- 401 — No autorizado
- 422 — Entidad no procesable
GET /contacts/{contactId}/notes
Obtener todas las notas Scopes requeridos: contacts.readonly
Parametros:
- Versión (header, string) (requerido) — Versión de la API
- contactId (path, string) (requerido) — Id de contacto
Respuestas:
- 200 — Respuesta exitosa
- 400 — Peticion invalida
- 401 — No autorizado
POST /contacts/{contactId}/notes
Crear nota Scopes requeridos: contacts.write
Parametros:
- Versión (header, string) (requerido) — Versión de la API
- contactId (path, string) (requerido) — Id de contacto
Cuerpo de la peticion (application/json):
- userId — string — User Id of the note author
- body (requerido) — string — Body content of the note
- title — string — Title of the note
- color — string — Hex color code for the note
- pinned — boolean — Whether the note is pinned
Respuestas:
- 201 — Respuesta exitosa
- 400 — Peticion invalida
- 401 — No autorizado
- 422 — Entidad no procesable
GET /contacts/{contactId}/notes/{id}
Obtener nota Scopes requeridos: contacts.readonly
Parametros:
- Versión (header, string) (requerido) — Versión de la API
- contactId (path, string) (requerido) — Id de contacto
- id (path, string) (requerido) — Id de nota
Respuestas:
- 200 — Respuesta exitosa
- 400 — Peticion invalida
- 401 — No autorizado
- 422 — Entidad no procesable
PUT /contacts/{contactId}/notes/{id}
Actualizar nota Scopes requeridos: contacts.write
Parametros:
- Versión (header, string) (requerido) — Versión de la API
- contactId (path, string) (requerido) — Id de contacto
- id (path, string) (requerido) — Id de nota
Cuerpo de la peticion (application/json):
- userId — string — User Id of the note author
- body — string — Body content of the note
- title — string — Title of the note
- color — string — Hex color code for the note
- pinned — boolean — Whether the note is pinned
Respuestas:
- 200 — Respuesta exitosa
- 400 — Peticion invalida
- 401 — No autorizado
- 422 — Entidad no procesable
DELETE /contacts/{contactId}/notes/{id}
Eliminar nota Scopes requeridos: contacts.write
Parametros:
- Versión (header, string) (requerido) — Versión de la API
- contactId (path, string) (requerido) — Id de contacto
- id (path, string) (requerido) — Id de nota
Respuestas:
- 200 — Respuesta exitosa
- 400 — Peticion invalida
- 401 — No autorizado
- 422 — Entidad no procesable
POST /contacts/bulk/tags/update/{type}
Actualizar Contacts Tags Allows you to update tags to multiple contacts at once, you can add or remove tags from the contacts
Parametros:
- Versión (header, string) (requerido) — Versión de la API
Cuerpo de la peticion (application/json):
- contacts (requerido) — array — list of contact ids to be processed
- tags (requerido) — array — list of tags to be added or removed
- locationId (requerido) — string — location id from where the bulk request is executed
- removeAllTags — boolean — Option to implement remove all tags. if true, all tags will be removed from the contacts. Can only be used with remove type.
Respuestas:
- 201 — Respuesta exitosa
- 400 — Peticion invalida
- 422 — Entidad no procesable
POST /contacts/bulk/business
Add/Remove Contacts From Business
Add/Remove Contacts From Business . Passing a null businessId will remove the businessId from the contacts
Parametros:
- Versión (header, string) (requerido) — Versión de la API
Cuerpo de la peticion (application/json):
- locationId (requerido) — string — Location Id
- ids (requerido) — array — List of contact Ids to update (maximum 50)
- businessId (requerido) — string — Business Id to assign to contacts. Pass null to remove business association.
Respuestas:
- 200 — Respuesta exitosa
- 422 — Entidad no procesable
DELETE /contacts/{contactId}
Eliminar contacto Scopes requeridos: contacts.write
Parametros:
- Versión (header, string) (requerido) — Versión de la API
- contactId (path, string) (requerido) — Id de contacto
Respuestas:
- 200 — Respuesta exitosa
- 400 — Peticion invalida
- 401 — No autorizado
- 422 — Entidad no procesable
GET /contacts/{contactId}
Obtener contacto Retrieves a contact by its unique identifier.
Scopes requeridos: contacts.readonly
Parametros:
- Versión (header, string) (requerido) — Versión de la API
- contactId (path, string) (requerido) — Unique identifier of the contact
Respuestas:
- 200 — Respuesta exitosa
- 400 — Peticion invalida
- 401 — No autorizado
- 422 — Entidad no procesable
PUT /contacts/{contactId}
Actualizar contacto Update a contact using contactId
Scopes requeridos: contacts.write
Parametros:
- Versión (header, string) (requerido) — Versión de la API
- contactId (path, string) (requerido) — Unique identifier of the contact
Cuerpo de la peticion (application/json):
- firstName — string — First name of the contact
- lastName — string — Last name of the contact
- name — string — Full name of the contact
- email — string — Email address of the contact
- phone — string — Phone number of the contact
- address1 — string — Street address of the contact
- city — string — City of the contact
- state — string — State of the contact
- postalCode — string — Postal code of the contact
- website — string — Website URL of the contact
- timezone — string — Timezone of the contact
- dnd — boolean — Whether Do Not Disturb is enabled for the contact
- inboundDndSettings — — Inbound DND settings per channel for the contact
- tags — array — This field will overwrite all current tags associated with the contact. To update a tags, it is recommended to use the Add Tag or Remove Tag API instead.
- customFields — array — List of custom field values to assign to the contact
- source — string — Source from which the contact was updated
- dateOfBirth — object — The birth date of the contact. Supported formats: YYYY/MM/DD, MM/DD/YYYY, YYYY-MM-DD, MM-DD-YYYY, YYYY.MM.DD, MM.DD.YYYY, YYYY_MM_DD, MM_DD_YYYY
- country — string — Country code of the contact (ISO 3166-1 alpha-2), Refer country list from documentaion, documentation has list of all countries
- assignedTo — string — User's Id
- dndSettings — — Per-channel DND settings for the contact
Respuestas:
- 200 — Respuesta exitosa
- 400 — Peticion invalida
- 401 — No autorizado
- 422 — Entidad no procesable
POST /contacts/upsert
Crear o actualizar contacto
The Upsert API will adhere to the configuration defined under the "Allow Duplicate Contact" setting at the Location level. If the setting is configured to check both Email and Phone, the API will attempt to identify an existing contact based on the priority sequence specified in the setting, and will create or update the contact accordingly.
If two separate contacts already exist—one with the same email and another with the same phone—and an upsert request includes both the email and phone, the API will update the contact that matches the first field in the configured sequence, and ignore the second field to prevent duplication.
Scopes requeridos: contacts.write
Parametros:
- Versión (header, string) (requerido) — Versión de la API
Cuerpo de la peticion (application/json):
- firstName — string — First name of the contact
- lastName — string — Last name of the contact
- name — string — Full name of the contact
- email — string — Email address of the contact
- locationId (requerido) — string — Location Id the contact should be created under
- gender — string — Gender of the contact
- phone — string — Phone number of the contact
- address1 — string — Street address of the contact
- city — string — City of the contact
- state — string — State of the contact
- postalCode — string — Postal code of the contact
- website — string — Website URL of the contact
- timezone — string — Timezone of the contact
- dnd — boolean — Whether Do Not Disturb is enabled for the contact
- inboundDndSettings — — Inbound DND settings per channel for the contact
- tags — array — This field will overwrite all current tags associated with the contact. To update a tags, it is recommended to use the Add Tag or Remove Tag API instead.
- customFields — array — List of custom field values to assign to the contact
- source — string — Source from which the contact was created
- dateOfBirth — object — The birth date of the contact. Supported formats: YYYY/MM/DD, MM/DD/YYYY, YYYY-MM-DD, MM-DD-YYYY, YYYY.MM.DD, MM.DD.YYYY, YYYY_MM_DD, MM_DD_YYYY
- country — string — Country code of the contact (ISO 3166-1 alpha-2)
- companyName — string — Company name of the contact
- assignedTo — string — User's Id
- createNewIfDuplicateAllowed — boolean — Controls whether to create a new contact or update an existing duplicate. Scenario 1: If this value is true and the location allows duplicate contacts, a new contact will be created immediately without checking for duplicates. Scenario 2: If this value is true but the location does not allow duplicate contacts, this field is ignored and the normal upsert behavior applies: the API will search for an existing duplicate contact, update it if found, or create a new contact if not found. Scenario 3: If this value is false or not provided, the normal upsert behavior applies regardless of the location's duplicate contact setting.
- dndSettings — — Per-channel DND settings for the contact
Respuestas:
- 200 — Respuesta exitosa
- 400 — Peticion invalida
- 401 — No autorizado
- 422 — Entidad no procesable
GET /contacts/business/{businessId}
Obtener Contacts By BusinessId Scopes requeridos: contacts.readonly
Parametros:
- Versión (header, string) (requerido) — Versión de la API
- businessId (path, string) (requerido) — Id de empresa
- limit (query, string) — Maximum number of records per page (up to 100, default 25)
- locationId (query, string) (requerido) — Id de sede
- skip (query, string) — Número de registros a omitir
- query (query, string) — Search query (name, email, phone)
- startAfter (query, array) — Cursor for pagination (comma-separated name,id pair)
Respuestas:
- 200 — Respuesta exitosa
- 400 — Peticion invalida
- 401 — No autorizado
- 422 — Entidad no procesable
POST /contacts/{contactId}/followers
Agregar seguidores Scopes requeridos: contacts.write
Parametros:
- Versión (header, string) (requerido) — Versión de la API
- contactId (path, string) (requerido) — Id de contacto
Cuerpo de la peticion (application/json):
- followers (requerido) — array — List of user Ids to follow or unfollow the contact
Respuestas:
- 201 — Respuesta exitosa
- 400 — Peticion invalida
- 401 — No autorizado
- 422 — Entidad no procesable
DELETE /contacts/{contactId}/followers
Quitar seguidores Scopes requeridos: contacts.write
Parametros:
- Versión (header, string) (requerido) — Versión de la API
- contactId (path, string) (requerido) — Id de contacto
Cuerpo de la peticion (application/json):
- followers (requerido) — array — List of user Ids to follow or unfollow the contact
Respuestas:
- 200 — Respuesta exitosa
- 400 — Peticion invalida
- 401 — No autorizado
- 422 — Entidad no procesable
POST /contacts/{contactId}/campaigns/{campaignId}
Agregar Contact to Campaign Add contact to Campaign
Scopes requeridos: contacts.write
Parametros:
- Versión (header, string) (requerido) — Versión de la API
- contactId (path, string) (requerido) — Id de contacto
- campaignId (path, string) (requerido) — Id de campaña
Cuerpo de la peticion (application/json): - (ver esquema en la fuente original)
Respuestas:
- 201 — Respuesta exitosa
- 400 — Peticion invalida
- 401 — No autorizado
- 422 — Entidad no procesable
DELETE /contacts/{contactId}/campaigns/{campaignId}
Quitar Contact From Campaign Scopes requeridos: contacts.write
Parametros:
- Versión (header, string) (requerido) — Versión de la API
- contactId (path, string) (requerido) — Id de contacto
- campaignId (path, string) (requerido) — Id de campaña
Respuestas:
- 200 — Respuesta exitosa
- 400 — Peticion invalida
- 401 — No autorizado
- 422 — Entidad no procesable
DELETE /contacts/{contactId}/campaigns/remove-all
Quitar Contact From Every Campaign Removes the contact from every campaign it is enrolled in.
Scopes requeridos: contacts.write
Parametros:
- Versión (header, string) (requerido) — Versión de la API
- contactId (path, string) (requerido) — Id de contacto
Respuestas:
- 200 — Respuesta exitosa
- 400 — Peticion invalida
- 401 — No autorizado
- 422 — Entidad no procesable
POST /contacts/{contactId}/workflow/{workflowId}
Agregar Contact to Workflow Scopes requeridos: contacts.write
Parametros:
- Versión (header, string) (requerido) — Versión de la API
- contactId (path, string) (requerido) — Id de contacto
- workflowId (path, string) (requerido) — Id de flujo de trabajo
Cuerpo de la peticion (application/json):
- eventStartTime — string — Start time of the workflow event (ISO 8601 format)
Respuestas:
- 200 — Respuesta exitosa
- 400 — Peticion invalida
- 401 — No autorizado
- 422 — Entidad no procesable
DELETE /contacts/{contactId}/workflow/{workflowId}
Eliminar Contact from Workflow Scopes requeridos: contacts.write
Parametros:
- Versión (header, string) (requerido) — Versión de la API
- contactId (path, string) (requerido) — Id de contacto
- workflowId (path, string) (requerido) — Id de flujo de trabajo
Cuerpo de la peticion (application/json):
- eventStartTime — string — Start time of the workflow event (ISO 8601 format)
Respuestas:
- 200 — Respuesta exitosa
- 400 — Peticion invalida
- 401 — No autorizado
- 422 — Entidad no procesable
POST /contacts/
Crear contacto Create a new contact
Scopes requeridos: contacts.write
Parametros:
- Versión (header, string) (requerido) — Versión de la API
Cuerpo de la peticion (application/json):
- firstName — string — First name of the contact
- lastName — string — Last name of the contact
- name — string — Full name of the contact
- email — string — Email address of the contact
- locationId (requerido) — string — Location Id the contact should be created under
- gender — string — Gender of the contact
- phone — string — Phone number of the contact
- address1 — string — Street address of the contact
- city — string — City of the contact
- state — string — State of the contact
- postalCode — string — Postal code of the contact
- website — string — Website URL of the contact
- timezone — string — Timezone of the contact
- dnd — boolean — Whether Do Not Disturb is enabled for the contact
- inboundDndSettings — — Inbound DND settings per channel for the contact
- tags — array — List of tags to assign to the contact
- customFields — array — List of custom field values to assign to the contact
- source — string — Source from which the contact was created
- dateOfBirth — object — The birth date of the contact. Supported formats: YYYY/MM/DD, MM/DD/YYYY, YYYY-MM-DD, MM-DD-YYYY, YYYY.MM.DD, MM.DD.YYYY, YYYY_MM_DD, MM_DD_YYYY
- country — string — Country code of the contact (ISO 3166-1 alpha-2)
- companyName — string — Company name of the contact
- assignedTo — string — User's Id
- dndSettings — — Per-channel DND settings for the contact
Respuestas:
- 201 — Respuesta exitosa
- 400 — Peticion invalida
- 401 — No autorizado
- 422 — Entidad no procesable
