Blog |
Guías

5 buenas prácticas para el consumo de API con SSJS

19/7/2023

5 buenas prácticas para el consumo de API con SSJS en Salesforce Marketing Cloud

Salesforce Marketing Cloud (SFMC) es una herramienta de Marketing Automation utilizada por organizaciones. Cuenta con diversas herramientas, tanto declarativas (point-and-click), como programáticas (con código). Entre los lenguajes exclusivos de Marketing Cloud, se encuentra Server Side Javascript. Este lenguaje, es la mejor opción si es que AMPscript no cumple con los requisitos para el caso de uso a desarrollar, entre ellas, se encuentra el consumo de APIs, ya sean de Salesforce Marketing Cloud o APIs externas.

Al ser un lenguaje de programación ideal para estos casos, es necesario tener en cuenta las mejores prácticas al momento de desarrollarlo. En este blog exploraremos 5 prácticas recomendadas que puedes implementar en tu equipo de desarrollo de Marketing Cloud.

1. Asegura tus credenciales

Construir aplicaciones dentro de Marketing Cloud representa un reto, ya que no cuenta con una infraestructura adecuada para generar credenciales. Sin embargo, existen herramientas que nos permiten superar essta limitación a través de “workarounds”. Al no ser una herramienta 100 por ciento dedicada a las aplicaciones que se generan en Cloud Pages, debemos tener ciertas precauciones, como el uso de credenciales, usar las adecuadas y guardarlas de una manera segura y eficaz.

Para esto, recomendamos lo siguiente:

  1. Crear una Data Extensions con sus credenciales para integraciones de servidor a servidor.
  2. Usar la función de AMPscript EncryptSymmetric para guardarlas en la misma Data Extension.
  3. Para obtener el token (o llaves para pedir un token) se pueden usar las funciones Lookup para buscar a la misma Data Extension del paso 1 y DecryptSymmetric para desencriptar.
%%[
SET @lookUp = LookupRows('API_Integrations','Nombre','JourneyAPI')
SET @rowResult = Row(@lookup,1)
SET @clientId = DecryptSymmetric(Field(@rowResult,'Client Id'),'aes', 'INT_PWD', @null, 'INT_SALT', @null, 'INT_IV', @null)
SET @clientSecret = DecryptSymmetric(Field(@rowResult,'Client Secret'),'aes', 'INT_PWD', @null, 'INT_SALT', @null, 'INT_IV', @null)
SET @tenantId = Field(@rowResult,'Tenant Id')
SET @oldToken = DecryptSymmetric(Field(@rowResult,'Token'),'aes', 'INT_PWD', @null, 'INT_SALT', @null, 'INT_IV', @null)
SET @expirationDate = Field(@rowResult,'ExpirationDate')
]%%

2. Usa try... catch

Cada vez que vayamos a consultar alguna API vía SSJS, tenemos la ventaja de los bloques de try…catch. Esta práctica nos ayuda a generar un log de errores (como veremos más adelante) y hacer un manejo correcto de error, como mandar a una errorpage a nuestros usuarios. 

Es importante destacar que no todo el código debe estar envuelto en un try…catch, sino, solamente lo que pueda representar un riesgo para nuestro código o lógica.
//Código para preparar nuestro llamado
var req = new Script.Util.HttpRequest("http://www.example.com/");
req.emptyContentHandling = 0;
req.retries = 2;
req.continueOnError = true;
req.setHeader("headerTest", "test header value");
req.method = "POST";
req.postData = "testing=testValue1";
try {
//Llamado API
var resp = req.send();
} catch (e) {
SendLog(e.message)
Redirect(errorPage, true)
}

3. Genera un log de errores

Otra buena práctica es tener una Data Extension que contenga al menos los siguientes datos:

  1. Columna de Id
  2. Columna de fecha y hora del error
  3. Columna de identificador del script que presentó el error (esto permite escalabilidad en el desarrollo)
  4. Columna de urgencia
  5. Columna de texto que permita guardar un JSON con información variable, dependiendo del llamado API o script para tener el contexto completo del error.

Esta Data Extension también puede vincularse a un proceso de backup mediante Automation Studio y configurarse alertas por correo electrónico.

4. Usa el objeto HttpRequest

Dentro de SSJS contamos con tres formas de hacer llamados HTTP: 

  1. HTTP.Post y HTTP.Get
  2. Platform.Function.HTTPGet y Platform.Function.HTTPPost
  3. Script.Util.HttpRequest

Para hacer llamados API, es recomendable usar Script.Util.HttpRequest ya que tiene la ventaja de tener un mejor manejo de errores y la construcción del objeto es más fácil y muy flexible, a comparación de las otras dos opciones. 

Script.Util.HttpRequest cuenta con otros métodos HTTP como Delete, Put, Patch, Head y Options, además de tener la propiedad de continueOnError que nos permite un manejo óptimo de errores e intentos nuevos para las consultas API, mismas que se pueden configurar con lo propiedad retries.

Aún así, HTTP.Post, HTTP.Get, Platform.Function.HTTPGet y Platform.Function.HTTPPost son buenas opciones para llamados sencillos o scripts que tengan una corta vida útil y/o se requiera de maximización de tiempos al momento de desarrollar.

5. Usa el Code Resource de JSON

Una de las grandes diferencias entre el desarrollo en Sales Cloud y SFMC, es la posibilidad de exponer web services y extender de esta manera las integraciones. En SFMC, no hay una manera estándar, sin embargo, existen algunos workarounds por medio de SSJS y AMPscript, uno de esos, es el uso de los Code Resources de tipo JSON, mismos que pueden ejecutar SSJS, y por lo tanto, escribir un JSON como respuesta que permita comunicarse con diversos sistemas, tanto como webhook como un endpoint custom en SFMC.

Al seguir estas 5 buenas prácticas para el consumo de APIs con SSJS en Salesforce Marketing Cloud, podrás optimizar tus desarrollos y garantizar un funcionamiento confiable de tus integraciones. Asegura tus credenciales, utiliza bloques try...catch para manejar los errores, registra y gestiona los errores en una Data Extension, aprovecha el objeto HttpRequest para realizar llamadas a APIs y explora el uso del recurso Code Resource de JSON para extender tus integraciones.

¿Quieres saber más? ¡Contáctanos!

Alfredo Ledesma

6x Salesforce Certified

entradas RECIENTES

Noticias

MTY '26: Cómo Monterrey se está Preparando para el Mundial con Estrategias de Marketing

En la plática "Road to MTY 26" en el MKT Fest, se exploró cómo Monterrey se prepara para ser una de las sedes del Mundial de 2026, destacando su papel en la organización de este megaevento. Con la participación de representantes de Rayados, el comité organizador de Monterrey FWC26, y la Secretaría de Turismo de Nuevo León, se discutieron los planes para recibir a millones de visitantes, los preparativos del Estadio BBVA y la estrategia de posicionamiento turístico de la ciudad. Se compartieron detalles clave del torneo, incluyendo la expansión a 48 selecciones nacionales y 104 partidos, así como las oportunidades para impulsar el turismo y la economía local.
Anuncios

Ser Parte es Hermoso: El Compromiso de Sephora con la Inclusión en el MKT Fest 2024

En el MKT Fest, Sephora destacó su compromiso con la inclusión y la diversidad como ejes centrales de su estrategia de marketing. A través de su manifiesto, la marca busca no solo promover la belleza, sino hacerlo de una manera que celebre la autenticidad y empodere a todas las personas a expresarse. Durante la charla, se abordó cómo Sephora ha integrado estos valores en sus campañas y actividades, asegurando que cada acción refuerce su misión de ser una marca inclusiva.
Noticias

Unhinged Marketing: Duolingo en el MKT Fest 2024

En el MKT Fest, Kim de Anda, Regional Marketing Manager de Duolingo Latinoamérica, compartió cómo el "unhinged marketing" ha redefinido la forma en que la marca se comunica en redes sociales. A través de estrategias auténticas y poco convencionales, como el uso de su famosa botarga de Duo en TikTok, Duolingo ha logrado conectar con las audiencias al mostrar un enfoque divertido y real. Kim explicó que la clave de su contenido no es impulsar descargas inmediatas, sino mantenerse en la mente de los usuarios para cuando decidan aprender un nuevo idioma.