AMPscript: Las principales funciones que debes conocer – Parte II

Lo prometido es deuda. Y un Cloud Coacher siempre paga sus deudas 😉 Así que ya estamos aquí otra vez con unos cuantos consejillos más de lo que espero se esté convirtiendo en tu nuevo mejor amigo en Salesforce Marketing Cloud a la hora de montar tus personalizaciones de email en Content Builder: el código AMPscript.

Por si alguno no ha podido leerse el anterior artículo, os dejo aquí el enlace a AMPscript: Las principales funciones que debes conocer – Parte I. En esta secuela, que como El Padrino II, será incluso mejor que su primera parte ;), continuaremos justo donde lo dejamos. Así que venga, os doy unos minutos para poneros al día y arrancamos con el Volumen II . 😛

…….tic, toc…
…….tic, toc….
…….tic, toc…

¡¡¡RIIIINGG!!!

¿Listos? ¡Pues vamos allá!

En el primer episodio de esta saga codificada, dejamos nuestro mail personalizado con los datos de nuestro usuario. Vamos, que mostrábamos a cada usuario su nombre, así como su deporte favorito y el estado en que reside. Que no está nada mal. Dirigirse a alguien por su nombre, síntoma de educación. Y además preocuparnos por sus aficiones y por dónde vive. ¡No está mal para romper el hielo! Ahora toca continuar esa conversación. ¿Cómo, os preguntaréis? Pues así, a bote pronto… ya que sabemos lo que le gusta y dónde vive, vamos a mostrarle dónde puede devolvernos un poco del cariño que le hemos dado, ofreciéndole las tiendas más cercanas de nuestra marca 😉

3) Indicar las tiendas que hay en su estado con la función LookupRows

¡Vamos allá! Para mostrar la tienda o tiendas disponibles para nuestro usuario, tendremos que remangarnos y buscar los datos de todas las tiendas que están en el estado del subscriber. ¿Y cómo hacemos esto en Salesforce Marketing Cloud? Para ello vamos a utilizar la función AMPScript LookupRows. Esta función nos devuelve un conjunto de registros, de filas de datos, que cumplen la condición que queremos. En este caso, pues todas las tiendas de un determinado estado, que es en lo que estamos.

Para usar correctamente la función AMPScript LookupRows tened en cuenta esta sintaxis. O en cristiano, así es cómo funciona 😉 :

El resultado de la función es un conjunto de registros/filas; a este conjunto de filas en AMPScript se le conoce como Rowset. Un Rowset no se puede visualizar directamente, lo tenemos que guardar en una variable, y luego ir tratando de una en una cada fila/registro para extraer todos los datos que necesitamos. En nuestro ejemplo, vamos a definir la variable “Filas” para almacenar este Rowset. Este es el código:

 

Por ejemplo, si el subscriber es de OH (Ohio), el valor se su campo State es OH, LookupRows nos devolverá los registros resultado del filtrar “Tiendas” por State = OH

Fácil, ¿no?

image.png

Verificamos que nuestra selección no está vacía con la función RowCount…

Llegados a este punto, ya tenemos el Rowset que nos hemos sacado a partir de la función LookupRows, para cada usuario. Pero ojo!! Debemos verificar que hemos obtenido algún resultado, pues podría no haber ninguna fila/registro en el que buscar los datos que necesitamos. ¿Cómo hacemos esta comprobación? Pues muy fácil: vamos a utilizar la función RowCount que nos dice el número de filas que tiene la variable en la que hemos guardado el resultado de LookupRows (Rowset).

Ésta es la sintaxis:

Para poder luego tomar decisiones en función del número de filas/registros obtenidos, vamos a guardar de nuevo el resultado en otra variable, con el siguiente código:

… y mostramos el bloque que corresponde con un condicional: IF ELSE ENDIF

¿Cómo podemos hacer para mostrar bloques distintos según si se cumple o no una determinada condición? Pues tenemos un elemento de AMPScript que es el IF, que nos lo pone muy fácil, de nuevo.

La estructura de este elemento de AMPScript es tal que así:

IF se cumple condición THEN
Haz esto
ELSE (si no se cumple)
Haz esto otro
ENDIF


¿Clarito, verdad? Pues ahora toca aplicar esto a nuestro caso. Así que, lo primero es plantearnos cuál es la condición que queremos comprobar en el IF, claro. Queremos determinar si hay alguna tienda en el estado de nuestro cliente o no. En términos de AMPScript, la condición que vamos a comprobar es que haya filas en el Rowset @Filas.

Como ya las hemos contado antes, en la variable @NumFilas, tenemos cuántas filas hay para cada subscriber. Así que vamos allá con el código:

Chupado! 😉

Sacamos todos los detalles de una fila con la función Row

Muy bien! Pues ahora vamos a extraer una fila en concreto del Rowset, la selección que hemos generado antes. ¿Nos acordamos, verdad? Pues para hacer esto, tenemos la función Row. ¿Qué es lo que hace? Pues la función Row nos devuelve todos los campos de una fila en particular de ese Rowset que habíamos generado. Ojo, porque el resultado de la función Row sigue siendo un conjunto de datos, así que tampoco se puede visualizar directamente su contenido. ¿Qué hacemos con ello? ¡Lo adivinaste! De nuevo hay que guardarlo en una variable. Que en un arrebato de originalidad, vamos a llamar Fila

La función Row funcionaría así:

Y de nuevo, con un SET, asignamos el valor, el resultado del Row a nuestra variable.

Ahora @Fila contiene los datos de la primera fila de nuestro Rowset @Filas. Tendría una pinta como como ésta:

image.png

Como estaréis ya notando, lo que estamos haciendo es lanzándonos a la piscina de nuestra fuente de datos, y profundizando paso a paso para llegar cada vez a un nuevo sub-nivel. Es decir, poco a poco vamos obteniendo el detalle de los datos que buscamos. Así que tomad aire, porque nos queda un último chapuzón, pero eso sí, el más profundo; ya solo nos falta acceder a los valores de cada campo.

Accedemos a los valores de un campo con la función Field

¡¡¡Peeerrrrfecto!!! ¿Por dónde íbamos? En nuestra variable @Fila habíamos guardado un registro concreto, una fila de nuestra selección, el Rowset. ¿Qué queremos hacer ahora? Pues vamos a querer pintar cosas en nuestro email, usar esos campitos de nuestra fuente de datos como personalización. Por ejemplo, vamos a sacar el nombre de la tienda (campo StoreName de nuestra data extension) y también su dirección (Address) para incluir sus datos en nuestro email. Así, para cada uno de nuestros subscribers vamos a pintar las tiendas que tiene disponibles en su estado y su correspondiente dirección.

¿Cómo entramos a ese nivel? ¿Cómo sacamos cada uno de esos datos? Pues la función de AMPScript para obtener el valor de un campo de una fila del Rowset (seguimos profundizando) es la función Field.

Así que vamos allá. Sacad la brocha, porque vamos a pintar el nombre de la tienda:

Y ahora pintamos también su dirección:

Bueno, ya hemos llegado a pintar datos individuales de una fila de nuestro Rowset. Peeeeero, nos falta algo, ¿no? Queríamos mostrar todas las tiendas que hay en un determinado estado, las tiendas del estado de nuestro subscriber.

Pero claro, antes tendremos que controlar que tenemos filas/registros de tiendas a mostrar para ese subscriber. Si no, mal vamos…

Si hay filas/registros para mostrar datos, tendremos que mostrar datos todas y cada una de ellas.

Y por supuesto, si no hay registros mostrar un texto alternativo. Así a bote pronto, si resulta que el subscriber no tiene ninguna de nuestras tiendas en su estado, pues lo mandaría a nuestra tienda online. Aquí no se tira nada 😛

¡¡Pues vamos a por ello!! Ya se ve el fondo.

Un Bucle FOR for para pintar los datos de todas las tiendas

Lo dicho, ahora queremos incluir el detalle de todas y cada una de las tiendas que corresponden a cada subscriber. Y nos encontramos con un problema: necesitamos ir fila por fila de nuestro Rowset e ir extrayendo los datos de cada una de ellas. ¡Drama! No panic!!

Estamos de suerte, el lenguaje AMPScript vuelve a salir a nuestro encuentro cual caballero andante, armado con un bucle FOR que nos va ayudar a conseguir nuestro objetivo.

Un bucle, para los que no estéis familiarizados con lenguajes de programación, es una serie de acciones que se repiten durante un número determinado de veces o mientras se cumpla una condición en particular. También pueden. repetirse hasta el infinito, si no tenemos cuidado con como metemos las condiciones. Pero como de tiempo no vamos sobrados, mejor tener cuidado 😉

En cualquier caso, el bucle FOR encaja con el primero de los casos. Vamos a repetir esa secuencia de acciones durante un número determinado de veces. ¿Cuántas? Sip, lo has adivinado. Tantas como tiendas haya en el estado de cada subscriber. Vamos a verlo en detalle.

Para ir analizando las filas de una en una necesitamos un contador que nos indique en cada momento qué fila estamos analizando. Como por algún lado hay que empezar, vamos a empezar analizando la fila 1 e ir incrementando el número de fila hasta que lleguemos a la última que tenemos que es la número @NumFilas (las filas que hemos calculado previamente para cada subscriber, su número de tiendas asociadas que queremos pintar). Además, necesitamos una variable que funcione como contador, con ese valor inicial, 1, y que vaya incrementando su valor en cada vuelta/iteración del bucle FOR en 1 hasta alcanzar el valor final: @NumFilas.

La variable contador la vamos a llamar @i.

Con esto ya podemos ver cuál va a ser la estructura de nuestro bucle FOR:

Ahora ya tenemos todos los datos y todos elementos necesarios para mostrar a cada subscriber los datos de sus tiendas. Así que nuestro código (y con esto tocamos fondo) sería así:

¡Y ya estaría! 🙂

Con esto y lo visto en el anterior artículo, AMPscript: Las principales funciones que debes conocer – Parte I, hemos personalizado nuestro email usando unas cuantas funciones de AMPScript. ¡Nos ha quedado chulo, chulo! Y con un nivel de personalización que tus subscribers agradecerán. Y con el mejor agradecimiento posible: subiendo tus ratios e incrementando tus ventas. ¡Que no es moco de pavo!


Os dejo por hoy, chic@s. Creo que habéis tenido bastante, así que ahora os toca jugar y trastear con todas estas funciones y truquillos.

En el tercer episodio de esta trilogía de AMPScrip, hablaremos de las funciones de bloques de contenido para hacer contenido dinámico a partir de código y mostrar un contenido distinto a cada subscriber en función de sus características. ¿No suena mal, verdad? Pues seguid enganchados a nuestra redes y nuestro blog para no perdéroslo 😉

Y si tenéis curiosidad y os apetece seguir profundizando en el mundillo del AMPScript, os recuerdo que en Cloud Coachers tenemos un Curso de Ampscript que doy yo misma, en el que hacemos cosilla como estas y muchísimo más. Si os está picando el gusanillo, os aseguro que nos lo pasaremos en grande.

¡¡Nos vemos pronto!!

Un comentario en “AMPscript: Las principales funciones que debes conocer – Parte II”

  1. Julián dice:

    Muy interesante artículo.

    Gracias!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Tambien te puede interesar...

Suscríbete a nuestro blog