Cómo sacar partido a las SQL Query de Salesforce Marketing Cloud

    Publicado por Santiago Tabuenca el 30 de diciembre de 2020

    En un artículo anterior hablábamos de las posibilidades de las Filtered Data Extension, una herramienta muy útil para hacer segmentaciones. 

    Lo que debemos perseguir con nuestra estrategia de Email Marketing debe estar en la línea con la frase tan utilizada de mandar el mensaje correcto a la persona adecuada en el momento preciso.  

     

    Para mandar el mensaje adecuado en el momento adecuado, además de hacer una buena planificación de envíos (en lo que también te puede ayudar Marketing Cloud y sobre todo con las nuevas funcionalidades de Einstein) y crear un buen mensaje, lo suyo es que también lo mandes a la persona que le pueda interesar dicha información en ese momento. Es ahí, donde entra en juego una buena SEGMENTACIÓN, y ésta la podrás hacer si tienes una buena estructura de datos y sabes manejar las herramientas de Marketing Cloud para segmentar, como hemos comentado, para unos filtros básicos te puedes ayudar de las “filtradas”, pero para cosas más avanzadas, ya necesitas SQL Query. 

     

    ¿Qué es SQL Query? 

     

    Es una herramienta que tiene Marketing Cloud y que podrás encontrar bajo el epígrafe de Journey Builder -> Automation Studio -> Activities. Una vez ahí, encontrarás una sección que se llama SQL Query:

     

    SQL Query Marketing Cloud

     

     

    Para crear una SQL QUERY vamos a necesitar la fuente sobre la que consultaremos la información mediante el lenguaje SQL (Structured Query Language), un lenguaje muy estandarizado para hacer consultas de bases de datos. Algunas bases de datos utilizan un “dialecto” de SQL, pero básicamente todas son muy parecidas. En el caso de Marketing Cloud, se basa en T-SQL para SQL Server con lo que puedes buscar referencias al mismo tiempo en internet, es muy utilizado y encontrarás de todo. 

     

    Otra pieza del puzzle es ese “motor” en SQL que crearemos y que es la que extraerá la información que necesitamos y con la estructura que necesitamos para una vez sacados los datos, (y ahora viene la tercera pieza) lo almacenemos en la DE de destino. 

    Cómo crear una SQL QUERY

     

    Varias cuestiones importantes respecto a SQL: 

    • La única operación que podrás utilizar es SELECT, no acepta el uso de UPDATE o DELETE.  
    • Las instrucciones SQL son “case-insensitive” para valores y nombres de columnas, pero las buenas maneras dicen que lo que son instrucciones sql se ponen en mayúsculas, yo al menos lo hago así, Ejemplo: SELECT id_cliente AS id FROM tabla_ejemplo  
    • Desgraciadamente las SQL son fijas, no pueden recibir parámetros (cosa que sería tremendamente útil), para eso ya tienes que usar api’s o con ssjs algo se puede hacer también. 
    • La base de datos opera siempre para funciones de tiempo con el “Central Standard Time” CST, tenlo en cuenta.
    • El tipo de lenguaje que se usa es el habitual de Microsoft SQL Server.         
    • Un consejo, llama los campos siempre de la misma manera, así no tendrás que añadir código extra en tu SQL, si el campo en origen y destino se llama ID, con llamarlo así es suficiente, si no, tendrás que usar AS, si en origen se llama idCliente y en destino ID, tendrás que poner SELECT idCliente AS ID FROM table1 etc. 

     

    Un ejemplo que además no podrías hacer con una filtrada (si no, vaya ejemplo) 

     

    Imagina que quieres crear una DE con información de una tabla de usuario y de una tabla de temáticas de compra de usuarios para hacer un email con contenidos dinámicos en función de esas categorías. 

    PASO 1. DE de origen y destino 

    Dada una DE de usuario con los datos de id_usuario, email, nombre, apellido1 y otra con los datos históricos de compra, vamos a seleccionar la última categoría de compra para poder hacer un email personalizado con Dynamic content destacando esa categoría. 

     

    Tabla usuario: 

     

    Tabla de usuario

     

    Tabla compras: 

     

    Tabla de compras

     

    Tabla de destino: 

     

    Tabla de destino

    Una vez tenemos las tablas bien creadas de origen y destino, creamos la SQL QUERY, en Activities elegimos SQL QUERY 

     

    PASO 2. Creamos la SQL QUERY 

     

    SQL QUERY 

     

    Rellenamos las propiedades de la SQL QUERY, es bueno siempre darle un nombre muy descriptivo y ordenar por carpetas las mismas, al final tendrás un montón de sql queries y es bueno tener un orden.

     

    Propiedades de la SQL QUERY

     

     

    En este ejemplo, como no queremos complicar, seleccionamos la última categoría que ha comprado el usuario. 

     

    Ejemplo SQL QUERY

     

    Para eso, introducimos la query, validamos sintaxis (muy útil, porque comprueba que todo está correcto incluyendo nombres de campos y tablas). 

     

    Validación de Síntaxis de SQL Query

     

     

    En el último paso de la SQL query, seleccionamos la Data Extension de destino y elegimos cómo queremos que trate los datos. 

    • Appending. Añade solo los nuevos registros que encuentra en la query  
    • Updating. Actualiza los datos de los que encuentra por su PRIMARY KEY y los que no localiza los añade.  
    • Overwriting. En este caso directamente deja en blanco la DE si es que tenía datos y mete los nuevos datos.

     

    Taget Data Extension

     

    PASO 3. Ejecución manual o automation 

     

    Una vez tenemos ya todo preparado, llega el momento de la verdad, ejecutar la SQL QUERY y ver que todo funciona. 

     

    En muchos casos, tendrá que ser así si quieres que sea una SQL QUERY que va refrescando una Data Extension, por ejemplo, si quieres enviar un email y primero se ejecuta la SQL QUERY para llevar registros a una tabla de usuarios a los que enviar ese email. Además, con una automation es cierto que tienes todo algo más controlado y puedes ver si fallo o no, e incluso recibir un email si falla el proceso. 

     

    Aquí puedes ver un ejemplo de una Automation con SQL QUERY que finalmente se conecta con un JOURNEY para enviar un email de Bienvenida: 

     

     

    Ejemplo de una Automation con SQL QUERY

     

    No obstante, la propia SQL QUERY tienes una pestaña con un log de errores. 

     

    Depuración de errores 

    Dentro de la actividad hay una pestaña esencial, si cuando finalmente ejecutas la query, no llegan los resultados, hay una pestaña dentro de la actividad que se llama LOG en la que encontrarás un mensaje bastante descriptivo de lo que ha podido ocurrir, muchas veces es VIOLATION DE PRIMARY KEY, que se suele resolver intentando no lanzar duplicados con la SQL mediante distinctgroup by, etc. 

     

    Inclusión de valores nulos en campos que no los admiten, o bien cambias el campo a Nullable=True o modificas el origen o sql. 

     

    Depuración de errores SQL Query

     

    Conclusión: 

     

    Como habrás visto es una herramienta muy útil y utilizada constantemente en Marketing Cloud, tanto para query puntuales como integrado en Automations, hay gente que recomienda meter siempre estas queries en automations para tenerlas controladas, no obstante, por nuestra experiencia, Marketing Cloud resuelve antes las queries si ejecutas directamente el SQL QUERY. 

     


    Si te ha gustado este artículo, también podrían interesarte:

    Nueva llamada a la acción

    Si te ha gustado este artículo, ¡compártelo!


    Temática: SalesForce Marketing Cloud