Centro de preferencias de Salesforce Marketing Cloud: AMPScript y ejemplo de página en la nube

Código de página de preferencias de AMPscript Salesforce-Integrated Marketing Cloud

Historia verdadera ... mi carrera realmente despegó hace más de una década cuando comencé un puesto como consultor de integración para ExactTarget (ahora Salesforce Marketing Cloud). Mi trabajo me llevó por todo el mundo ayudando a las empresas a desarrollar integraciones profundas con la plataforma y acumulé tanto conocimiento institucional de la plataforma que me ascendieron a Product Manager.

Los desafíos de Product Manager para una organización que anteriormente era propiedad de un desarrollador finalmente me llevaron a seguir adelante. Fue una gran organización, pero nunca realmente propiedad el producto. Entonces, mientras mis pares en soporte, ventas y marketing de productos me buscaban para hacer un cambio real ... la realidad era que el equipo de desarrollo a menudo implementaba una solución diferente y yo lo descubriría días antes del lanzamiento.

Uno de mis últimos proyectos fue trabajar en una plataforma de secuencias de comandos interna que permitiría a nuestros clientes agregar secuencias de comandos a sus correos electrónicos. Trabajé con otro Gerente de Producto e hicimos un montón de investigación ... finalmente decidimos desarrollar un enfoque de estilo JQuery con nuestras propias funciones, pero incluida la capacidad de pasar y consumir arreglos, utilizar JSON, etc. solución ... hasta que llegue al desarrollo. Al principio del ciclo del producto, mi biblioteca se eliminó y un desarrollador senior la reemplazó con AMPscript.

Años después, el Socio de Salesforce La empresa en la que soy socio ahora realiza integraciones empresariales complejas, y me encuentro atascado en AMPscript a diario, ya sea mejorando la lógica del contenido del correo electrónico o implementando Cloud Pages. Por supuesto, la frustración de trabajar día tras día con AMPscript me asegura que se tomó la decisión equivocada en aquellos días… mi solución habría sido mucho más elegante. Siento que he vuelto a programar un TRS-80 en BASIC.

El editor que usas para Cloud Pages es implacable. No detecta problemas simples como declarar variables o errores de sintaxis con su código. De hecho, puede publicar una página que simplemente generará un error de servidor 500. También hay dos campos de nombres para sus páginas ... no me pregunte por qué.

Pro-tip: Si una página en la nube nunca devuelve datos de muestra cuando está a punto de publicar y parece que se está procesando para siempre ... arrojará un error. Si publica de todos modos, probablemente tendrá que eliminar la página en la nube por completo y comenzar de nuevo. Supongo que la infraestructura sobre la que se basa no es lo suficientemente inteligente como para identificar un cambio de código y simplemente sigue procesando el código en caché.

Aparte de eso, le alegrará saber que muchos de los ejemplos de código documentados tienen sus propios errores de sintaxis. ¡Hurra! Es una experiencia horrible ... pero aún puede y debe usarla porque proporciona una flexibilidad asombrosa.

Nota al margen: Hay una nueva página en la nube Experiencia… Donde parece que acaban de cambiar la apariencia de la página y no proporciona ninguna información adicional. De hecho, me gusta más la versión anterior para la secuencia de publicación de varios pasos.

Mientras mi empresa Highbridge crea soluciones complejas habilitadas para Ajax que integran múltiples sistemas e incorporan extensiones de datos con AMPscript, SSJS, Cloud Pages y correo electrónico ... Quería compartir un ejemplo simple de cómo puede comenzar a usar AMPscript para consultar su instancia de Salesforce y extraer datos de respaldo. En este caso, un campo booleano simple que conserva un indicador de cancelación de suscripción maestro. Por supuesto, puede ampliar este código para crear una página de preferencias completa o un centro de perfiles que pueda utilizar.

Genere un enlace de página en la nube con datos de suscriptor

Si ve los detalles de su página en la nube, puede adquirir el ID de página único para la página que puede incluir en sus correos electrónicos.

ID de página en la nube

La sintaxis es la siguiente:

<a href="%%=RedirectTo(CloudPagesURL(361))=%%">View My Preferences</a>

AMPscript para datos de Salesforce a través de páginas en la nube a través de extensiones de datos

El primer paso es crear su AMPscript para declarar variables y recuperar los datos de Salesforce para usarlos en su página. En este ejemplo, mi campo booleano de Salesforce que contiene el verdadero o falso se llama OptedOut:

%%[

/* Declare EVERY variable */
VAR @contactKey,@agent,@referrer,@unsub
VAR @rs,@updateRecord,@checked
 
/* Request your ContactKey from the querystring */
Set @contactKey = Iif(Empty([_subscriberKey]),RequestParameter("contactKey"),[_subscriberKey])

/* Set unsub to false unless it is passed in the querystring */
SET @unsub = Iif(Not Empty(RequestParameter('unsub')),RequestParameter('unsub'),'false')
 
/* If unsub, then update the Salesforce field OptedOut */ 
IF NOT Empty(@unsub) THEN
  SET @updateRecord = UpdateSingleSalesforceObject('contact',@contactKey,'OptedOut', @unsub)
ENDIF

/* Retrieve the Salesforce Contact record */
Set @rs = RetrieveSalesforceObjects('contact', 'FirstName,LastName,OptedOut', 'Id', '=', @contactKey);
 
/* Get the fields from the record */
 IF RowCount(@rs) == 1 then
  var @record, @firstName, @lastName, @optout
  set @record = Row(@rs, 1)
  set @firstName = Field(@record, "FirstName")
  set @lastName = Field(@record, "LastName")
  set @optout = Field(@record, "OptedOut")
ENDIF

/* Build a string for your checkbox to be checked or not
 set @checked = '';
 IF (@optout == 'true') THEN
  set @checked = 'checked'
 ENDIF
 
]%%

Ahora puede construir su HTML y formulario que procesa la solicitud:

<!DOCTYPE html>
<html>
   <title>Profile Center</title>
   <body>
      <h2>Your Profile:</h2>
      %%[ if RowCount(@rs) == 1 then ]%%
      <ul>
         <li><strong>First Name:</strong> %%=v(@firstName)=%%</li>
         <li><strong>Last Name:</strong> %%=v(@lastName)=%%</li>
         <li><strong>Unsubcribed:</strong> %%=v(@optout)=%%</li>
      </ul>
      <form method="get">
       <div>
         <input type="hidden" id="contactKey" name="contactKey" value="%%=v(@contactKey)=%%">
         <input type="checkbox" id="unsub" name="masterUnsub" value="true" %%=v(@checked)=%%>
         <label for="masterUnsub">Unsubscribe From All</label>
        </div>
       <div>
         <button type="submit">Update</button>
        </div>
     </form>
      %%[ else ]%%
      <p>You don't have a record.</p>
      %%[ endif ]%%
   </body>
</html>

Eso es todo ... júntelo todo y obtendrá una página de preferencias que se actualiza con su registro de suscriptor y pasa una solicitud para actualizar un campo booleano (verdadero / falso) en Salesforce. ¡Ahora puede crear consultas personalizadas en ese campo para garantizar siempre que los contactos que se excluyan no reciban ningún correo electrónico!

Cómo mejorar su página de preferencias o centro de perfiles

Por supuesto, esto es solo un adelanto de lo que es posible con una página de preferencias. Mejoras en las que quizás desee pensar:

  • Complete el texto real de otra extensión de datos para que su equipo de marketing pueda actualizar el contenido de la página cuando lo desee sin tocar el código.
  • Complete una extensión de datos de la lista de publicaciones y recorra las publicaciones para ofrecer la opción de participar o no en las preferencias, además de una cancelación de suscripción principal.
  • Complete una extensión de datos de motivo para capturar por qué sus suscriptores son maestros para cancelar la suscripción.
  • Complete otra información de perfil del registro de Salesforce para proporcionar información de perfil adicional.
  • Procese la página con Ajax para que pueda completarla sin problemas.
  • Ofrezca un medio de registro para que su usuario pueda acceder a su centro de perfiles personales en cualquier momento.

Recursos adicionales para AMPscript

Si está buscando ayuda adicional para aprender e implementar AMPscript, aquí tiene algunos recursos excelentes:

  • Guía de AMPscripte - organizada por algunos empleados de Salesforce, esta es una base de datos bastante completa de sintaxis AMPscript, aunque los ejemplos son realmente ligeros. Si fuera más robusto, valdría la pena la inversión.
  • Trailhead AMPscript - Trailhead de Salesforce es un recurso de aprendizaje gratuito y puede guiarlo a través de los conceptos básicos del idioma con AMPscript, SSJS y cómo los dos pueden interactuar.
  • Stack Exchange para Salesforce - una gran comunidad en línea para solicitar ayuda con una tonelada de muestras de código AMPscript.

Hay muchas oportunidades al integrar sus páginas en la nube con Salesforce para brindar una experiencia de usuario superior. Y si su empresa tiene problemas, ¡siempre puede contactarnos para ayudarlo!

Contacto Highbridge

¿Qué piensas?

Este sitio usa Akismet para reducir el correo no deseado. Descubra cómo se procesan los datos de sus comentarios.