Consultar conversaciones por identificador de contacto
Los sistemas externos pueden consultar los ID de las conversaciones normales asociadas a un contacto, sus fechas de creación y sus estados actuales mediante el identificador de negocio, la dirección de correo electrónico o el número de teléfono completo del contacto. Los ID de conversación devueltos se pueden utilizar directamente con las API V2 existentes para obtener detalles de conversaciones, mensajes y otros datos.
Método de solicitud
GET
URL de la solicitud
https://livedesk-api.engagelab.com/api/v2/accounts/conversations/lookup
Autenticación
Esta API utiliza autenticación HTTP Basic. Incluya Authorization en la cabecera de la solicitud, con la clave de API como nombre de usuario y el secreto de API como contraseña. El proyecto asociado a las credenciales define el ámbito de la consulta, por lo que no es necesario incluir el ID del proyecto en la ruta. Para obtener más información, consulte Descripción general de la API.
Si se incluye account_id en la solicitud, su valor debe coincidir con el proyecto asociado a las credenciales; de lo contrario, se devuelve 401.
Solicitud
Ejemplo de solicitud
curl -X GET 'https://livedesk-api.engagelab.com/api/v2/accounts/conversations/lookup?type=identifier&value=Customer_123&page=1&page_size=20' \
-H 'Content-Type: application/json' \
-H 'Authorization: Basic base64(api_key:api_secret)'
Al consultar por número de teléfono, + debe codificarse para URL:
GET /api/v2/accounts/conversations/lookup?type=phone&value=%2B15551234567
Parámetros de la cabecera de la solicitud
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
Authorization |
string | Sí | Autentíquese mediante Authorization: Basic base64(API Key:API Secret). Una la clave de API y el secreto de API con dos puntos y codifique el resultado en Base64. |
Parámetros de consulta
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
type |
string | Sí | Tipo de atributo de consulta. Solo se permiten identifier, email y phone. |
value |
string | Sí | Una cadena no vacía que se compara de forma exacta con el atributo del contacto correspondiente a type. |
page |
integer | No | Un entero positivo. El valor predeterminado es 1. |
page_size |
integer | No | Un entero positivo. El valor predeterminado es 20; los valores superiores a 50 se tratan como 50. |
account_id |
integer | No | ID del proyecto. Normalmente no es necesario proporcionarlo. Si se proporciona, debe coincidir con el proyecto asociado a las credenciales; de lo contrario, se devuelve 401. |
Reglas de coincidencia
identifier: Distingue entre mayúsculas y minúsculas. Se conserva el valor original y no se admiten coincidencias por subcadenas ni comodines.email: Se eliminan los espacios en blanco iniciales y finales y se valida el formato del correo electrónico antes de realizar una coincidencia exacta que no distingue entre mayúsculas y minúsculas.phone: Primero se eliminan los espacios en blanco iniciales y finales. El número debe estar completo, incluir+y el código de país, y coincidir con el formato dephone_numberdel contacto. La API no añade un código de país predeterminado ni admite coincidencias por los últimos dígitos de un número.- Los parámetros GET deben codificarse correctamente para URL. En particular,
+en los números de teléfono debe codificarse como%2B.
Ámbito de consulta y ordenación
Los contactos y las conversaciones se consultan únicamente dentro del proyecto asociado a las credenciales. La API devuelve todas las conversaciones normales asociadas al contacto en todas las bandejas de entrada del proyecto (conversation_category=chat), excluidas las conversaciones de tickets y sin filtrar por el agente actual, el responsable asignado ni la bandeja de entrada.
Se devuelven las conversaciones normales en todos los estados: open, resolved, pending, snoozed y closed. Esta API no permite filtrar por estado; aunque se proporcione status, los resultados no se restringen.
Los resultados se ordenan por fecha de creación de la conversación en orden descendente. Cuando las fechas de creación son iguales, se ordenan por la clave primaria interna de la conversación en orden descendente. El orden de paginación permanece estable mientras los datos no cambien. La paginación por páginas no garantiza una instantánea coherente mientras se crean o eliminan conversaciones simultáneamente.
Respuesta
Respuesta correcta
HTTP 200:
{
"meta": {
"count": 2,
"current_page": 1,
"page_size": 20,
"total_pages": 1
},
"payload": [
{
"id": 202609000000002,
"created_at": 1788739200,
"status": "closed",
"inbox_id": 12,
"contact_id": 901
},
{
"id": 202609000000001,
"created_at": 1788652800,
"status": "open",
"inbox_id": 10,
"contact_id": 901
}
]
}
Parámetros de respuesta
| Campo | Tipo | Descripción |
|---|---|---|
| meta | object | Metadatos de paginación. |
| count | integer | Número total de conversaciones normales coincidentes, incluidos todos los estados y sin verse afectado por la paginación. |
| current_page | integer | Número de la página actual. |
| page_size | integer | Número real de elementos por página; 50 cuando el valor solicitado es superior a 50. |
| total_pages | integer | Número total de páginas; 0 cuando no hay resultados. |
| payload | array | Lista de conversaciones de la página actual. |
| id | integer | ID externo de la conversación, es decir, conversations.display_id; se puede utilizar directamente con las API V2 existentes para obtener detalles de conversaciones, mensajes y otros datos. |
| created_at | integer | Fecha de creación de la conversación como marca de tiempo Unix en segundos. |
| status | string | Estado actual de la conversación, que puede ser open, resolved, pending, snoozed o closed. |
| inbox_id | integer | ID de la bandeja de entrada asociada. |
| contact_id | integer | ID del contacto coincidente. |
Si el contacto no existe, no tiene conversaciones normales o la página solicitada supera el número total de páginas, se devuelve HTTP 200. En los tres casos, payload es un array vacío; meta.count conserva siempre el número total real de resultados.
La respuesta contiene únicamente los campos indicados anteriormente y no devuelve mensajes, archivos adjuntos ni información personal del contacto.
Respuesta de error
Las respuestas de error utilizan la siguiente estructura. Las descripciones de error no reproducen el valor de consulta:
{
"error": "Error description"
}
| Código de estado HTTP | Escenario |
|---|---|
401 |
Las credenciales no son válidas, están deshabilitadas o han caducado, o el account_id de la solicitud no coincide con el proyecto asociado a las credenciales. |
409 |
Los datos históricos han provocado que varios contactos coincidan dentro del mismo proyecto. La API no selecciona uno de ellos de forma arbitraria; utilice el identifier único para la consulta. |
422 |
Falta type o no se admite; falta value, está en blanco, no es una cadena o tiene un formato incorrecto; o un parámetro de paginación no es un entero positivo. |
Notas de uso
- Esta API solo añade la función de consulta y no modifica los datos de contactos ni de conversaciones.
- La API no permite buscar contactos mediante coincidencias aproximadas. Asegúrese de que el
identifier, la dirección de correo electrónico o el número de teléfono almacenados por el sistema externo coincidan con el atributo correspondiente del contacto en LiveDesk. - Para procesar las conversaciones de los resultados de consulta, utilice
payload[].idde la respuesta como ID externo de la conversación al llamar a las API V2 correspondientes.










