Integrazione con Empathy

Integra Connectif con Empathy per utilizzare i dati di ricerca generati da ogni contatto nei workflow di Connectif.

In questo articolo, imparerai come integrare Empathy con Connectif e come salvare nei campi personalizzati del contatto i filtri di ricerca di prezzo minimo e massimo 

  

Tempo di implementazione: 1 ora.
Difficoltà: Intermedio
Quando utilizzarlo?: Per archiviare le informazioni raccolte da Empathy e utilizzarle nelle tue strategie.

 

Perché implementare l'estensione

1. Casi d'uso che puoi creare dopo questa integrazione

Ecco alcune idee che possono aiutarti a implementare diverse strategie nell'applicazione di Empathy dopo aver attivato l'estensione con Empathy nel tuo negozio Connectif.

  • Includere un raccomandatore nel tuo sito web con prodotti popolari nel tuo eCommerce che si trovano nella stessa fascia di prezzo indicata dal contatto in Empathy.
  • Inviare un'email con prodotti raccomandati che rientrano nella stessa fascia di prezzo ai contatti che hanno effettuato una ricerca in Empathy e non hanno fatto nulla di più.

 

2. Quali dati puoi importare da Empathy a Connectif?

Con questa estensione, Connectif riceverà da Empathy le seguenti informazioni:

  • Il termine di ricerca che un contatto utilizza in Empathy.
  • La limitazione del prezzo minimo e massimo, filtrata dal contatto nella sua ricerca.

 

PASSO 1: Creazione dell'integrazione personalizzata in Connectif

1. Accedi a Impostazioni del negozio nel menu laterale sinistro.

2. Nel selettore di schede, vai su "Integrazioni > Integrazioni personalizzate (webhook)" e fai clic su   Crea nuova integrazione.


 

3. Imposta il campo "Nome dell'integrazione" per identificare l'integrazione.

 

4. (Opzionale) Personalizza il colore, aggiungi una descrizione o categorizza l'integrazione.

5. Fai clic su   Salva.

 

PASSO 2: Creazione dell'evento di ricezione 

2.1. Creazione dell'evento di ricezione della ricerca, del prezzo e del marchio

(In questa sezione, spieghiamo come creare e configurare l'evento che verrà ricevuto da Empathy).

6. Nella scheda Ricevi dati, fai clic su  Crea nuovo evento di ricezione e seleziona il tipo Web/App mobile.

7. Assegna un nome e l'alias "empathy-search". 

 

Devi assegnargli questo alias per farlo corrispondere a quello dello script di Connectif. 

 

8. Fai clic su    Aggiungi un nuovo campo per creare ciascuno dei campi personalizzati e completa le sue informazioni:

  • Crea un campo con il nome "PriceFrom" e l'ID "priceFrom" di tipo Decimale per raccogliere il delimitatore del prezzo minimo.
  • Crea un campo con il nome "PriceUpTo" e l'ID "priceUpTo" di tipo Decimale per raccogliere il delimitatore del prezzo massimo.

 

9. Fai clic su   Salva.

 

PASSO 3: Creazione del workflow per attivare l'evento durante la navigazione del contatto

(In questa sezione, creeremo il workflow che raccoglierà l'attività del contatto durante la sua navigazione nel motore di ricerca Empathy all'interno dell'eCommerce. Questa attività sarà raccolta tramite uno script che sarà inserito nell'eCommerce tramite un inline).

10. Vai su Workflows e crea un nuovo workflow vuoto.

11. Nella configurazione del nodo "Inizio", nella zona Scegli una limitazione, seleziona Tutta la mia lista e, in Scegli una fonte di dati seleziona Tutti gli esistenti e i nuovi.

Integrazione con EcomApp- 4-min.png
 

12. Aggiungi il nodo di attivazione "Alla visita della pagina" perché il workflow si attivi quando un contatto visita il sito web.

 

13. Accedi alla sua configurazione e, nella scheda Limitazioni, rimuovi tutte le limitazioni.

14. Aggiungi il nodo "Invia contenuto web" per inserire lo script che verificherà l'attività del contatto in Empathy.

 

15. Accedi alla sua configurazione e crea un nuovo contenuto di tipo Inline.

16. Nell'editor di contenuti, aggiungi un componente di tipo HTML.


 

17. Modificalo, copiando e incollando il seguente codice:

<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. Salva il contenuto e continua per terminare la configurazione del nodo.

19. Seleziona il contenuto Inline che hai appena creato e fai clic su Successivo .


 

20. Nella schermata successiva, aggiungi il selettore appropriato per visualizzare il contenuto. Deve essere un elemento che si trova nella tua pagina. Nel nostro esempio, abbiamo posizionato il selettore nel footer della pagina, per fare in modo che il contenuto, cioè lo script, venga sempre attivato.


 

21. Nella scheda Limitazioni, rimuovi tutte le limitazioni del nodo e salva la configurazione del nodo.

22. Salva e attiva il Workflow.

  

In questo modo, ogni volta che un contatto visita una pagina dell'eCommerce, questo contenuto attenderà che uno degli eventi di Empathy venga lanciato, per raccogliere i dati di navigazione del contatto.

 

PASSO 4: Archiviazione delle informazioni nella scheda del contatto Connectif

4.1. Creazione di campi personalizzati in Connectif

(In questa sezione, creeremo campi personalizzati che raccoglieranno le informazioni inviate da Empathy, come il marchio e i filtri di prezzo massimo e minimo utilizzati dal contatto durante la navigazione).

23. Vai su "Contatti > Campi del contatto" e fai clic su    Aggiungi nuovo campo personalizzato.

Integrazione con Empathy- 1-min.png
 

24. Assegna il tipo Decimale e fai clic su Vai all'editor.

27. Assegna il Nome "priceFrom" e l'ID "priceFrom" e fai clic su   Salva. Questo valore raccoglierà il prezzo minimo indicato dal contatto.


 

28. Crea un secondo campo, anche di tipo Decimale.

29. Assegna il Nome "priceUpTo" e l'ID "priceUpTo" e fai clic su   Salva. Questo valore raccoglierà il prezzo massimo del contatto.

 

4.2. Creazione del workflow per aggiornare i campi

(In questa sezione spieghiamo come archiviare i dati inviati da Empathy nella scheda del contatto in Connectif tramite un workflow).

30. Accedi dal menu laterale a Workflows e crea un nuovo Workflow personalizzato.

31. Nella configurazione del nodo "Inizio", nella sezione Scegli una limitazione, seleziona Tutta la mia lista e, in Scegli una fonte di dati seleziona Tutti gli esistenti e i nuovi.

32. Collega il nodo "Inizio" al nodo Trigger che hai creato per ricevere il marchio e il prezzo da Empathy.


 

33. Collega il nodo Trigger al nodo "Imposta campo".


 

34. Accedi alla sua configurazione e, all'interno della sua interfaccia, trascina i campi che hai appena creato, con origine dati Contatto, dalla colonna di sinistra al blocco centrale in modo che corrispondano ai campi omonimi nella colonna di destra.


 

35. Salva la configurazione del nodo. 

36. Salva e attiva il tuo workflow.

 

 

Successo!
L'integrazione del tuo account Connectif con Empathy è pronta.

 


Continua a imparare!

Per sfruttare appieno il potenziale del tuo account Connectif, ti consigliamo di continuare con i seguenti articoli: