Identificação do chamador

Como as pessoas reconhecem nomes mais facilmente do que números, é uma boa prática que a sua integração recupere a identidade de quem está ligando, o que pode ser implementado de duas maneiras:

  • Adicionando uma notificação sobre a chamada usando o método de Notificação de Chamada. Esse método realiza uma busca pelo ID da chamada e cria uma notificação vinculada ao cartão que contém esse número de telefone, caso exista.
  • Usando a requisição Lista de Contatos filtrando pelo número de telefone com o parâmetro de consulta query:
curl --request GET \
     --url 'https://subdomain.kommo.com/api/v4/contacts?query=$phone_number' \
     --header 'accept: application/json' \
     --header 'authorization: Bearer XXXX'

Cada abordagem utiliza um algoritmo diferente para executar a busca, e cada uma considera uma quantidade distinta de dígitos do número de telefone como entrada no processo.

O evento de chamada utiliza os últimos 8 dígitos e busca primeiro por um contact e depois por uma company. Ele também pode retornar um lead, dependendo do caso.

Já o método Get contacts by phone utiliza os últimos 7 dígitos e busca primeiro por uma company e depois por um contact. Ele também pode retornar um lead conforme diferentes critérios.

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);
  }
};