Marketing de contenidoCRM y plataformas de datosMarketing por correo electrónico y automatización

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

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 averiguaba días antes del lanzamiento.

Uno de mis últimos proyectos fue trabajar en una plataforma interna de secuencias de comandos que permitiría a nuestros clientes agregar secuencias de comandos a sus correos electrónicos. Trabajé con otro Gerente de Producto e investigamos mucho... finalmente decidimos desarrollar un enfoque de estilo JQuery con nuestras propias funciones, pero que incluía la capacidad de pasar y consumir arreglos, utilizar JSON, etc. Iba a ser todo un solución... hasta que llegó al desarrollo. Al principio del ciclo del producto, mi biblioteca fue descartada y un desarrollador senior la reemplazó con secuencia de comandos AMP.

Años después, el Salesforce La empresa asociada de la que soy socio ahora realiza integraciones empresariales complejas, y me encuentro atascado en AMPscript todos los días, ya sea mejorando la lógica del contenido del correo electrónico o implementando páginas en la nube. Por supuesto, la frustración de trabajar día tras día con AMPscript me asegura que en esos días se tomó la decisión equivocada... mi solución habría sido mucho más elegante. Siento que volví 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 DK New Media 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 Excluido:

%%[

/* 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 secuencias de comandos de AMP – organizada por algunos empleados de Salesforce, esta es una base de datos bastante completa de la sintaxis de AMPscript, aunque los ejemplos son realmente ligeros. Si fuera más robusto, podría valer la pena la inversión.
  • Trailhead AMP script - 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 DK New Media

Douglas Karr

Douglas Karr es CMO de AbrirINSIGHTS y el fundador de la Martech Zone. Douglas ha ayudado a docenas de nuevas empresas exitosas de MarTech, ha colaborado en la diligencia debida de más de $5 mil millones en adquisiciones e inversiones de Martech y continúa ayudando a las empresas a implementar y automatizar sus estrategias de ventas y marketing. Douglas es un orador y experto en transformación digital y MarTech reconocido internacionalmente. Douglas también es autor de una guía para principiantes y de un libro sobre liderazgo empresarial.

Artículos Relacionados

Volver al botón superior
Cerrar

Adblock detectado

Martech Zone puede proporcionarle este contenido sin costo porque monetizamos nuestro sitio a través de ingresos publicitarios, enlaces de afiliados y patrocinios. Le agradeceríamos que elimine su bloqueador de anuncios mientras visita nuestro sitio.