Integración con Empathy

Integra Connectif con Empathy para utilizar los datos de búsqueda generados por cada contacto en los workflows de Connectif.

En este artículo, aprenderás cómo integrar Empathy con Connectif y cómo guardar en campos personalizados del contacto los filtros de búsqueda de precio mínimo y máximo 

  

Tiempo de implementación: 1 hora.
Dificultad: Intermedio
¿Cuándo utilizarlo?: Para almacenar la información recolectada por Empathy y utilizarla en tus estrategias.

 

Por qué implementar la extensión

1. Casos de uso que podrás crear tras esta integración

Aquí te dejamos algunas ideas que pueden servirte para implementar diferentes estrategias en la aplicación de Empathy tras activar en tu Tienda de Connectif la extensión con Empathy .

  • Incluir un recomendador en tu web con productos populares en tu eCommerce que se encuentren en el mismo rango de precios que el indicado por el contacto en Empathy.
  • Enviar un email con productos recomendados que se incluyan en el mismo rango de precios a los contactos que hayan realizado una búsqueda en Empathy y no hayan hecho nada más.

 

2. ¿Qué data podrás traer de Empathy a Connectif?

Con esta extensión, Connectif recibirá desde Empathy  la información de:

  • El término de búsqueda que un contacto utilice en Empathy.
  • La limitación de precio mínimo y máximo, filtrada  por el contacto en su búsqueda.

 

PASO 1: Creación de la integración personalizada en Connectif

1. Accede a Configuración de tienda en el menú lateral izquierdo.

2. En el selector de pestaña, ve a "Integraciones > Integraciones personalizadas (webhooks)" y haz clic en   Crear nueva integración.


 

3. Establece el campo "Nombre de la integración" para identificar la integración.

 

4. (Opcional) Personaliza el color, incluye una descripción o categoriza la integración.

5. Haz clic en   Guardar.

 

PASO 2: Creación del evento de recepción 

2.1. Creación del evento de recepción de la búsqueda, precio y marca

(En este apartado se explica cómo crear y configurar el evento que se recibirá desde Empathy).

6. En la pestaña Recibir datos, haz clic en  Crear nuevo evento de recepción y selecciona el tipo Web/App Móvil.

7. Asígnale un nombre y el alias "empathy-search". 

 

Deberás asignarle este alias para que coincida con el del Script de Connectif. 

 

8. Haz clic en    Añadir un nuevo campo para crear cada uno de los campos personalizados y completa su información:

  • Crea un campo con el nombre "PriceFrom" y el ID "priceFrom" de tipo Decimal para recoger el delimitador de precio mínimo.
  • Crea un campo con el nombre "PriceUpTo" y el ID "priceUpTo" de tipo Decimal para recoger el delimitador de precio máximo.

 

9. Haz clic en   Guardar.

 

PASO 3: Creación del workflow para activar el evento durante la navegación del contacto

(En este apartado se va a crear el workflow que recogerá la actividad del contacto durante su navegación por el buscador de Empathy dentro del eCommerce. Esta actividad se recogerá mediante un script que se insertará en el eCommerce mediante un inline).

10. Dirígete a Workflows y crea un nuevo workflow en blanco.

11. En la configuración del nodo "Inicio", en el área Selecciona una limitación escoge Toda mi lista y, en Selecciona una fuente de datos marca Todos los existentes y los nuevos.

Integración con EcomApp- 4-min.png
 

12. Añade el nodo disparador "Al visitar página" para que el workflow se active en el momento que un contacto visite la web.

 

13. Accede a su configuración y, en la pestaña Limitaciones, elimina todas las limitaciones.

14. Añade el nodo "Enviar contenido web" para insertar el Script que comprobará la actividad del contacto en Empathy.

 

15. Accede a su configuración y crea un nuevo contenido de tipo Inline.

16. Dentro del editor de contenido, añade un componente de tipo HTML.


 

17. Edítalo, copiando y pegando el siguiente 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. Guarda el contenido y continúa para finalizar la configuración del nodo.

19. Selecciona el contenido Inline que acabas de crear y haz clic en Siguiente .


 

20. En la siguiente pantalla, añade el selector adecuado para mostrar el contenido. Este debe ser un elemento que se encuentre en tu página. En nuestro ejemplo, hemos emplazado el selector en el footer de la página, para que siempre se active el contenido, es decir, el script.


 

21. En la pestaña Limitaciones, elimina todas las limitaciones del nodo y guarda la configuración del mismo.

22. Guarda y activa el Workflow.

  

De este modo, cada vez que un contacto visite una página del eCommerce, este contenido estará a la espera de que se lance alguno de los eventos desde Empathy, para recoger los datos de navegación del contacto.

 

PASO 4: Almacenaje de la información en la ficha de contacto de Connectif

4.1. Creación de los campos personalizados en Connectif

(En este apartado se van a crear los campos personalizados que recogerán la información enviada desde Empathy, como la marca y los filtros de precio máximo y minimo utilizados por el contacto durante su navegación).  

23. Dirígete a "Contactos > Campos del Contacto" y haz clic en    Añadir nuevo campo personalizado.

Integración con Empathy- 1-min.png
 

24. Asígnale el tipo Decimal y haz clic en Ir al editor.

27. Asígnale el Nombre "priceFrom" y el ID "proceFrom" y haz clic en   Guardar. Este valor recogerá el precio mínimo indicado por el contacto.


 

28. Crea un segundo campo, también de tipo Decimal.

29. Asígnale el Nombre "priceUpTo" y el ID "priceUpTo" y haz clic en   Guardar. Este valor recogerá el precio máximo contacto.

 

4.2. Creación del workflow para actualizar los campos

(En este apartado se explica cómo almacenar los datos enviados por Empathy en la ficha del contacto en Connectif a través de un workflow).

30. Accede desde el menú lateral izquierdo a la Workflows y crea un nuevo Workflow Personalizado.

31. En la configuración del nodo "Inicio", en el área Selecciona una limitación escoge Toda mi lista y, en Selecciona una fuente de datos marca Todos los existentes y los nuevos.

32. Conecta al nodo "Inicio" el nodo de tipo Disparador que has creado para recibir la marca y el precio de Empathy.


 

33. Conecta al nodo de tipo Disparador el nodo "Establecer campo".


 

34. Accede a su configuración y, dentro de su interfaz, arrastra los campos que acabas de crear, con origen de datos Contacto, de la columna de la izquierda hacia el bloque central, de modo que coincidan con los campos homónimos de la columna derecha.


 

35. Guarda la configuración del nodo. 

36. Guarda y activa tu workflow.

 

 

¡Éxito!
La integración de tu cuenta de Connectif con Empathy está lista.

 


¡Sigue aprendiendo!

Para aprovechar todo el potencial de tu cuenta en Connectif, te recomendamos continuar con los siguientes artículos: