Posted: 13 Dec. 2022 4 minutos Tiempo de lectura

Ampliación de Salesforce Marketing Cloud con actividades personalizadas sincronizadas con la API

¿Cómo podría aprovechar las actividades personalizadas de Journey Builder para ampliar el alcance y las funcionalidades que ofrece Salesforce Marketing Cloud?

Salesforce Marketing Cloud es la solución más avanzada de Salesforce para abordar el marketing omnicanal ofreciendo capacidades de email, push, SMS, web y publicidad en la misma solución. Permitiendo a los profesionales del marketing, la capacidad de generar mensajes relevantes en cada etapa del viaje del cliente y por el canal más adecuado. ¿Pero qué pasa si lo que la solución trae por defecto no es suficiente? ¿Qué pasa si queremos personalizar nuestra campaña no sólo de acuerdo con el seguimiento y el compromiso de sus suscriptores, sino con la información almacenada/generada en sistemas externos? ¿Podemos personalizar nuestros mensajes según las condiciones meteorológicas en tiempo real de nuestros subscriptores? ¿Podemos crear interacciones no sólo con Marketing Cloud sino con sistemas externos como Helpdesks, sistemas/programas de fidelización o proveedores de calificación crediticia? ¿Podemos tomar decisiones con información en tiempo real? Aquí es donde entran en juego las Actividades Personalizadas (custom activities). 

¿Por dónde empiezo?

Marketing Cloud ofrece la oportunidad de mejorar la solución a través de "paquetes instalados" que permiten a los desarrolladores crear:

  • Aplicaciones para integrar otras soluciones alojadas externamente.
  • Integraciones API, para integrar la solución con otras aplicaciones/soluciones.
  • Actividades de Journey Builder o fuentes de entrada, para mejorar las capacidades OOO (out-of-the-box) de Journey Builder.
  • Bloques de contenido personalizados, para crear bloques de contenido a medida con comportamiento personalizado o características únicas.
  • Capacidad, para desarrollar soluciones específicas para la empresa o el sector y desplegarlas en todos los entornos.

(Referencia de la imagen: Salesforce Marketing Cloud, Configuración de paquetes instalados)

 

En cualquier caso, vamos a centrar nuestra atención en la opción Journey Builder Activity que es la que nos permitirá ampliar las capacidades de Journey Builder de cuatro maneras diferentes:

  • Mensajes.
  • Control de flujo.
  • Actualizaciones para clientes.
  • Personalizado.

(Referencia de la imagen: Salesforce Marketing Cloud, Configuración de paquetes instalados)

 

  1. Mensajes: Permitirá comunicar Marketing Cloud con sistemas externos. Por ejemplo, podríamos crear clientes potenciales en nuestro CRM, crear y facturar en el ERP o incluso realizar un servicio para enviar una carta postal a nuestro cliente.
  2. Control de Flujo, crea una nueva forma de guiar a nuestros suscriptores a través del Journey en lugar de solo centrarse en su interacción / reacción. Marketing Cloud permite tomar decisiones sobre el camino del subscriptor dentro del Journey mirando el seguimiento (aperturas / clics / cancelaciones de suscripción) pero podría agregar otras decisiones basadas en otros factores como ganar/perder apuestas, canjeo de cupones/puntos de lealtad, ¡lo que sea!
  3. Actualizaciones para cliente, proporciona una forma de actualizar los datos almacenados en el modelo de datos de Contact Builder desde Marketing Cloud. Una de las mejores características de Marketing Cloud es la oportunidad de traer tantos datos como deseemos al modelo de datos dentro de Marketing Cloud. De esta manera, podemos generar segmentos más ricos y con mayor detalle. La actividad de actualización para cliente nos permitirá actualizar cualquier dato que podamos tener en este modelo, como el estado del suscriptor, las preferencias o las actividades completadas/realizadas.
  4. Personalizado, ¿Tienes algo diferente en mente? 

Independientemente del tipo de actividad personalizada que seleccionemos para desplegar, éstas se componen de 3 bloques básicos:

  • Config. json, que contiene lo que nuestra aplicación personalizada debe hacer.
  • Index.html, que será el frontend de nuestra aplicación.
  • CustomActivity.js, que contiene los eventos de Postmonger que se sitúa entre el frontend de la aplicación y el Journey Builder de Marketing Cloud.

Podemos seguir el procedimiento descrito en esta documentación para configurar la estructura básica de la actividad personalizada, así como este videotutorial proporcionado por Salesforce.

Pero volviendo a la toma de decisiones en tiempo real dentro de Journey Builder, ¿te has preguntado alguna vez cómo recuperar información de un sistema externo y reaccionar a ello guiando a los suscriptores en diferentes caminos del Journey? Los eventos estándar de Postmonger en el activity.js permiten llamadas a la API ASYNC, pero ¿qué pasa si ASYNC no es suficiente? ¿Hay alguna manera? Claro. La clave para poder actuar sobre eventos en tiempo real en Journey builder reside en 2 elementos clave en el archivo Config.json y en el activity.js. 

En primer lugar, debemos configurar los resultados, la ramificación del Journey builder, en función del mensaje recuperado del sistema externo. Este podría ser un ejemplo de dicha ramificación, en dos ramas, una para el mensaje de éxito y otra para el mensaje de error:

CONFIG.JSON

               "outcomes": [

                              {

                                            "arguments": {

                                                           "branchResult": "success"

                                            },

                                            "metaData": {

                                                           "label": "success"

                                            }

                              },

                              {

                                            "arguments": {

                                                           "branchResult": "error"

                                            },

                                            "metaData": {

                                                           "label": "error"

                                            }

                              } 

               ],

(Referencia de la imagen: Salesforce Marketing Cloud, Ejemplo de bifurcación de actividades personalizadas)

 

Los otros cambios radican en el archivo activity.js, donde se ejecuta la llamada real a la API y donde se recupera la respuesta y se deriva a las ramas previamente definidas. A continuación, hay un esquema de la estructura básica:

Activity.js

exports.execute = async function (req, res) {

[ … ]

const response = [[your api call function goes in here]]                                                   

        if(response.toString().trim() == '000'){                      

                 return res.status(200).json({branchResult: "success"});

                  }

                  Else {

                  return res.status(200).json({branchResult: "error"})                    

                  }

}

 

Con todos estos elementos en su lugar, deberíamos de ser capaces de diseñar y crear Journeys de subscriptores teniendo en cuenta los eventos externos que ocurren en tiempo real para lograr una experiencia más atractiva para nuestros suscriptores.

 

 

Autor del artículo:

Berenguer Vidal, Edgard

Specialist Lead