Integração com Empathy

Integre o Connectif com o Empathy para utilizar os dados de busca gerados por cada contato nos workflows do Connectif.

Neste artigo, você aprenderá como integrar o Empathy com o Connectif e como salvar nos campos personalizados do contato os filtros de busca de preço mínimo e máximo 

  

Tempo de implementação: 1 hora.
Dificuldade: Intermediário
Quando utilizá-lo?: Para armazenar as informações coletadas pelo Empathy e utilizá-las em suas estratégias.

 

Por que implementar a extensão

1. Casos de uso que você poderá criar após esta integração

Aqui estão algumas ideias que podem ajudar a implementar diferentes estratégias no aplicativo Empathy após ativar a extensão com Empathy em sua loja Connectif.

  • Incluir um recomendador em seu site com produtos populares no seu eCommerce que estejam no mesmo intervalo de preços indicados pelo contato no Empathy.
  • Enviar um e-mail com produtos recomendados que estão no mesmo intervalo de preços para os contatos que realizaram uma busca no Empathy e não fizeram mais nada.

 

2. Quais dados você pode trazer do Empathy para o Connectif?

Com esta extensão, o Connectif receberá do Empathy as seguintes informações:

  • O termo de busca que um contato utilizar no Empathy.
  • A limitação do preço mínimo e máximo, filtrada pelo contato em sua busca.

 

PASSO 1: Criação da integração personalizada no Connectif

1. Acesse Configuração da loja no menu lateral esquerdo.

2. No seletor de abas, vá para "Integrações > Integrações personalizadas (webhooks)" e clique em   Criar nova integração.


 

3. Estabeleça o campo "Nome da integração" para identificar a integração.

 

4. (Opcional) Personalize a cor, inclua uma descrição ou categorize a integração.

5. Clique em   Salvar.

 

PASSO 2: Criação do evento de recepção 

2.1. Criação do evento de recepção da busca, preço e marca

(Nesta seção, explicamos como criar e configurar o evento que será recebido do Empathy).

6. Na aba Receber dados, clique em  Criar novo evento de recepção e selecione o tipo Web/App móvel.

7. Atribua um nome e o alias "empathy-search". 

 

Você deve atribuir este alias para que ele coincida com o do Script do Connectif. 

 

8. Clique em    Adicionar um novo campo para criar cada um dos campos personalizados e complete as informações:

  • Crie um campo com o nome "PriceFrom" e o ID "priceFrom" do tipo Decimal para coletar o delimitador de preço mínimo.
  • Crie um campo com o nome "PriceUpTo" e o ID "priceUpTo" do tipo Decimal para coletar o delimitador de preço máximo.

 

9. Clique em   Salvar.

 

PASSO 3: Criação do workflow para ativar o evento durante a navegação do contato

(Nesta seção, vamos criar o workflow que capturará a atividade do contato durante sua navegação pela busca do Empathy dentro do eCommerce. Esta atividade será capturada por meio de um script que será inserido no eCommerce usando um inline).

10. Acesse Workflows e crie um novo workflow em branco.

11. Na configuração do nó "Início", na seção Selecione uma limitação, escolha Toda a minha lista e, em Selecione uma fonte de dados marque Todos os existentes e os novos.

Integração com EcomApp- 4-min.png
 

12. Adicione o nó disparador "Ao visitar página" para que o workflow seja ativado quando um contato visitar o site.

 

13. Acesse sua configuração e, na aba Limitações, remova todas as limitações.

14. Adicione o nó "Enviar conteúdo web" para inserir o Script que verificará a atividade do contato no Empathy.

 

15. Acesse sua configuração e crie um novo conteúdo do tipo Inline.

16. Dentro do editor de conteúdo, adicione um componente do tipo HTML.


 

17. Edite-o, copiando e colando o seguinte código:

<script>
  (function () {
  var searchEventAlias = "empathy-search";
  var tempQuery = null;
  var tempPriceFrom = null;
  var tempPriceUpTo = null;

  function sendConnectifEventsWhenReady(events) {
    if (
      window.connectif &&
      window.connectif.managed &&
      window.connectif.managed.isInitialized()
    ) {
      window.connectif.managed.sendEvents(events);
    } else {
      document.addEventListener(
        "connectif.managed.initialized",
        function onConnectifInitialized() {
          window.connectif.managed.sendEvents(events);
        },
        { once: true }
      );
    }
  }

  function debounce(func, timeout) {
    var timer;
    return function (data) {
      if (timer) {
        clearTimeout(timer);
      }
      timer = setTimeout(function () {
        func(data);
      }, timeout);
    };
  }

  function isInterfaceXDefined() {
    return !!window.InterfaceX;
  }

  function whenInterfaceXReady() {
    if (isInterfaceXDefined()) {
      return Promise.resolve();
    }
    var numberOfChecks = 50;
    var count = 0;
    return new Promise((resolve, reject) => {
      function check() {
        setTimeout(function () {
          if (isInterfaceXDefined()) {
            resolve();
          } else {
            count++;
            if (count === numberOfChecks) {
              reject(new Error("InterfaceX cannot found after timeout"));
            } else {
              check();
            }
          }
        }, 100);
      }
      check();
    });
  }

  whenInterfaceXReady()
    .then(function onInterfaceXDefined() {
      window.InterfaceX.bus.on("SearchResponseChanged", true).subscribe(
        debounce(function onSearch(payload) {
          var data = payload.eventPayload.request;
          // ignore page navigation
          if (data.page > 1) {
            return;
          }

          var priceFrom =
            (data &&
              data.filters &&
              data.filters.facetPrice &&
              data.filters.facetPrice[0] &&
              data.filters.facetPrice[0].range &&
              data.filters.facetPrice[0].range.min) ||
            null;

          var priceUpTo =
            (data &&
              data.filters &&
              data.filters.facetPrice &&
              data.filters.facetPrice[0] &&
              data.filters.facetPrice[0].range &&
              data.filters.facetPrice[0].range.max) ||
            null;

          var query = data.query;
          var queryHasChanged = query !== tempQuery;
          var priceRangeHasChanged =
            priceFrom !== tempPriceFrom || priceUpTo !== tempPriceUpTo;
          if (!queryHasChanged && !priceRangeHasChanged) {
            return;
          }

          tempQuery = query;
          tempPriceFrom = priceFrom;
          tempPriceUpTo = priceUpTo;

          function trackSearch() {
            var events = [];
            if (queryHasChanged) {
              events.push({
                type: "search",
                searchText: query,
              });
            }
            if (priceRangeHasChanged) {
              events.push({
                type: "custom",
                eventAlias: searchEventAlias,
                payload: {
                  priceFrom: priceFrom || 0,
                  priceUpTo: priceUpTo || 0,
                },
              });
            }
            sendConnectifEventsWhenReady(events);
          }
          trackSearch();
        }, 1000)
      );
    })
    .catch(console.error);
})();
</script>  


 

18. Salve o conteúdo e continue para finalizar a configuração do nó.

19. Selecione o conteúdo Inline que você acabou de criar e clique em Seguinte .


 

20. Na tela seguinte, adicione o seletor adequado para mostrar o conteúdo. Este deve ser um elemento que esteja em sua página. No nosso exemplo, colocamos o seletor no rodapé da página, para que o conteúdo, ou seja, o script, seja sempre ativado.


 

21. Na aba Limitações, remova todas as limitações do nó e salve a configuração do mesmo.

22. Salve e ative o Workflow.

  

Dessa forma, sempre que um contato visitar uma página do eCommerce, esse conteúdo aguardará o lançamento de algum dos eventos do Empathy para capturar os dados de navegação do contato.

 

PASSO 4: Armazenamento das informações na ficha de contato do Connectif

4.1. Criação dos campos personalizados no Connectif

(Neste passo, vamos criar os campos personalizados que irão armazenar as informações enviadas pelo Empathy, como a marca e os filtros de preço máximo e mínimo usados pelo contato durante sua navegação).

23. Vá em "Contatos > Campos de Contato" e clique em    Adicionar novo campo personalizado.

Integração com Empathy- 1-min.png
 

24. Atribua o tipo Decimal e clique em Ir para o editor.

27. Atribua o Nome "priceFrom" e o ID "priceFrom" e clique em   Salvar. Este valor irá coletar o preço mínimo indicado pelo contato.


 

28. Crie um segundo campo, também do tipo Decimal.

29. Atribua o Nome "priceUpTo" e o ID "priceUpTo" e clique em   Salvar. Este valor irá coletar o preço máximo indicado pelo contato.

 

4.2. Criação do workflow para atualizar os campos

(Neste passo, vamos explicar como armazenar os dados enviados pelo Empathy na ficha de contato do Connectif através de um workflow).

30. Acesse no menu lateral esquerdo a Workflows e crie um novo Workflow Personalizado.

31. Na configuração do nó "Início", na área Selecione uma limitação, escolha Toda minha lista e, em Selecione uma fonte de dados marque Todos os existentes e os novos.

32. Conecte ao nó "Início" o nó do tipo Disparador que você criou para receber a marca e o preço do Empathy.


 

33. Conecte ao nó do tipo Disparador o nó "Estabelecer campo".


 

34. Acesse sua configuração e, dentro de sua interface, arraste os campos que você acabou de criar, com origem de dados Contato, da coluna esquerda para o bloco central, de forma que coincidam com os campos homônimos da coluna direita.


 

35. Salve a configuração do nó. 

36. Salve e ative seu workflow.

 

 

Sucesso!
A integração de sua conta do Connectif com o Empathy está pronta.

 


Continue aprendendo!

Para aproveitar todo o potencial de sua conta no Connectif, recomendamos que continue com os seguintes artigos: