Identificador de quien llama

Como las personas reconocen los nombres más fácilmente que los números, es una buena práctica que tu integración obtenga la identidad de quien llama. Esto puede implementarse de dos formas:

  • Añadir una notificación sobre la llamada usando el método Evento de llamada. Este método realiza una búsqueda del identificador de llamada y crea una notificación vinculada a la tarjeta con ese número telefónico, si existe.
  • Usar la solicitud Obtener lista de contactos filtrando por número de teléfono mediante un parámetro query:
curl --request GET \
     --url 'https://subdomain.kommo.com/api/v4/contacts?query=$phone_number' \
     --header 'accept: application/json' \
     --header 'authorization: Bearer XXXX'

Cada método utiliza un algoritmo distinto para realizar la búsqueda y toma una cantidad diferente de dígitos del número telefónico como entrada para el proceso. El Evento de llamada utiliza los últimos 8 dígitos y busca primero un contacto y luego una compañía. Según el caso, también puede retornar un lead. Por otro lado, el método Obtener contactos por teléfono utiliza los últimos 7 dígitos y busca primero una compañía y luego un contacto. También puede retornar un lead, según diferentes consideraciones.

const FALLBACK_FN = () => undefined;
const PHONE_CUSTOM_FIELD_CODE = "PHONE";

const searchContactByPhone = async (phone, callbacks = {}) => {
  const { onSuccess = FALLBACK_FN, onError = FALLBACK_FN } = callbacks;

  if (!phone) {
    return;
  }

  try {
    const contactsData = await $.ajax(`/api/v4/contacts?query=${phone}`, {
      method: "GET",
    });

    onSuccess(contactsData);

    return contactsData._embedded.contacts;
  } catch (error) {
    onError(error);
  }
};