Integrazione con Motive

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

In questo articolo, imparerai come integrare Motive con Connectif e come salvare nei campi personalizzati del contatto il marchio e/o i filtri di ricerca del prezzo minimo e massimo 

  

Tempo di implementazione: 1 ora.
Difficoltà: Intermedio
Quando usarlo?: Per memorizzare le informazioni raccolte da Motive e utilizzarle nelle tue strategie.

 

Perché implementare l'estensione

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

Qui ti lasciamo alcune idee che potrebbero esserti utili per implementare diverse strategie nell'applicazione Motive dopo aver attivato l'estensione Motive nel tuo negozio Connectif.

  • Aggiungere un raccomandatore nella Home basato sul marchio e sugli intervalli di prezzo che il contatto ha indicato in Motive.
  • Inviare un'email con prodotti adattati alle loro ricerche ai contatti che hanno effettuato una ricerca in Motive includendo marchio e prezzi e non hanno fatto nient'altro.

 

2. Quali dati puoi portare da Motive a Connectif?

Con questa estensione, Connectif riceverà da Motive le informazioni di:

  • Il termine di ricerca che un contatto utilizza in Motive.
  • Il marchio e, se utilizzato, la limitazione del prezzo minimo e massimo, filtrato dal contatto nella sua ricerca.

 

PASSO 1: Creazione dell'integrazione personalizzata in Connectif

1. Accedi a Impostazioni 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 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, prezzo e marchio

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

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 "motive-search". 

 

Devi assegnare questo alias per farlo corrispondere con quello dello Script di Connectif. 

 

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

  • Crea un campo con il nome "Brand" e l'ID "brand" di tipo Testo per raccogliere il marchio.
  • 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 di Motive all'interno dell'eCommerce. Questa attività verrà 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", nell'area Scegli una limitazione seleziona Tutta la mia lista e, in Scegli una fonte di dati seleziona Tutti i nuovi e quelli esistenti.

Integrazione con EcomApp- 4-min.png
 

12. Aggiungi il nodo attivante "Visita pagina" perché il workflow si attivi quando un contatto visita il sito.

 

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 su Motive.

 

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

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


 

17. Modifica il contenuto, copiando e incollando il seguente codice:

<script>
(function () {
 var searchEventAlias = "motive-search";
 var tempQuery = null;
 var tempPriceFrom = null;
 var tempPriceUpTo = null;
 var tempFirstBrand = 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.price &&
             data.filters.price[0] &&
             data.filters.price[0].range &&
             data.filters.price[0].range.min) ||
           null;
         var priceUpTo =
           (data &&
             data.filters &&
             data.filters.price &&
             data.filters.price[0] &&
             data.filters.price[0].range &&
             data.filters.price[0].range.max) ||
           null;
         var firstBrand =
           (data &&
             data.filters &&
             data.filters.brand &&
             data.filters.brand[0] &&
             data.filters.brand[0].label) ||
           null;
         
         var query = data.query;
         var queryHasChanged = query !== tempQuery;
         var brandHasChanged = firstBrand !== tempFirstBrand;
         var priceRangeHasChanged =
           priceFrom !== tempPriceFrom || priceUpTo !== tempPriceUpTo;
         if (!queryHasChanged && !priceRangeHasChanged && !brandHasChanged) {
           return;
         }
         tempQuery = query;
         tempPriceFrom = priceFrom;
         tempPriceUpTo = priceUpTo;
         tempFirstBrand = firstBrand;
         function trackSearch() {
           var events = [];
           if (queryHasChanged) {
             events.push({
               type: "search",
               searchText: query,
             });
           }
           if (priceRangeHasChanged || brandHasChanged) {
             events.push({
               type: "custom",
               eventAlias: searchEventAlias,
               payload: {
                 priceFrom: priceFrom || 0,
                 priceUpTo: priceUpTo || 0,
                 brand: firstBrand
               },
             });
           }
           sendConnectifEventsWhenReady(events);
         }
         trackSearch();
       }, 1000)
     );
   })
   .catch(console.error);
})();
</script>


 

18. Salva il contenuto e continua per completare la configurazione del nodo.

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


 

20. Nella schermata successiva, aggiungi il selettore appropriato per mostrare il contenuto. Questo deve essere un elemento che si trova sulla tua pagina. Nel nostro esempio, abbiamo collocato il selettore nel footer della pagina, in modo che il contenuto (ovvero lo script) venga sempre attivato.


 

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

22. Salva e attiva il Workflow.

  

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

 

PASSO 4: Archiviazione delle informazioni nel foglio contatti di Connectif

4.1. Creazione dei campi personalizzati in Connectif

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

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

Integrazione con Motive- 1-min.png
 

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

25. Assegna il Nome "Brand" e l'ID "brand" e fai clic su   Salva. Questo valore raccoglierà il marchio del prodotto cercato.


 

26. Crea un secondo campo, questa volta di tipo Decimale.

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 terzo campo, anch'esso di tipo Decimale.

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

 

4.2. Creazione del workflow per aggiornare i campi

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

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

31. Nella configurazione del nodo "Inizio", nell'area Scegli una limitazione, scegli Tutta la mia lista e, in Scegli una fonte di dati seleziona Tutti i nuovi e quelli esistenti.

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


 

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


 

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


 

35. Salva la configurazione del nodo. 

36. Salva e attiva il tuo workflow.

 

 

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

 


Continua a imparare!

Per sfruttare al meglio il tuo account Connectif, ti consigliamo di continuare con i seguenti articoli: