MARKETING CLOUD / SSJS
SSJS
Server-Side JavaScript en Marketing Cloud — lo que funciona, lo que rompe a escala, y los patrones que usamos en CloudPages y Code Resources.
Fundamento · 2
Nota de producción
Gotchas de MC SSJS: lo que realmente rompe en producción
Server-Side JavaScript en Marketing Cloud es JavaScript como era en 2010 — SpiderMonkey 1.7, sin sintaxis moderna, single-threaded, con una API Platform específica de Salesforce arriba. Diez gotchas que Cleon vio romper a escala, con los patrones que sobreviven.
Marco de decisión
SSJS de Marketing Cloud: Style Guide
Las reglas opinionadas que Cleon aplica a cada bloque de Server-Side JavaScript que entrega en Marketing Cloud — naming, formato, comentarios, patrones a preferir, anti-patrones a rechazar — destiladas de los gotchas y las páginas de referencia en un solo documento de disciplina.
Referencia · 8
Referencia
Basics — Fundamentos de SSJS en Marketing Cloud
Dónde corre SSJS en Marketing Cloud, qué runtime tenés realmente (SpiderMonkey 1.7), y los dos contextos principales — rendering de CloudPage vs Script Activity de Automation — que deciden los patrones que usás.
Referencia
Platform.Function — Referencia de SSJS en Marketing Cloud
El namespace API core de SSJS — lecturas y escrituras de Data Extensions (LookupRows, InsertData, UpdateData, UpsertData, DeleteData) más los helpers que usás en cada script (GUID, Now, ParseJSON). Qué funciona como está documentado, qué tiene trampas silenciosas, y los patrones que terminamos usando.
Referencia
WSProxy — Referencia de SSJS en Marketing Cloud
El wrapper de la SOAP API para SSJS — cuando Platform.Function no alcanza. Retrieve / Create / Update / Delete con soporte completo de filtros, paginación más allá de 2500 filas, y el patrón de refresh de auth-token que mantiene los scripts largos vivos.
Referencia
Funciones de string — Referencia de SSJS en Marketing Cloud
Las operaciones de string disponibles en MC SSJS — métodos JavaScript nativos (el subset ES5 que SpiderMonkey 1.7 soporta) más los helpers de Platform.Function para formateo y stringificación. Lo que es seguro, lo que falta, y lo que tenés que polyfillear.
Referencia
Funciones de fecha — Referencia de SSJS en Marketing Cloud
Manejo de fecha y hora en SSJS — Now / DateAdd / DateDiff / DatePart más los métodos del objeto Date nativo de JavaScript (era ES5). Misma trampa de UTC que SQL, más los códigos string de date-part que tenés que memorizar.
Referencia
Funciones de encoding — Referencia de SSJS en Marketing Cloud
Encoding Base64 y URL en MC SSJS — los cuatro helpers de Platform.Function, cuándo cada uno es la respuesta correcta, y los pitfalls de round-trip (whitespace, line wrapping, character set) que muerden a escala.
Referencia
Funciones de hashing — Referencia de SSJS en Marketing Cloud
SHA256, SHA1, MD5, HMAC — cuándo cada uno es la respuesta correcta en MC SSJS, la trampa de output hex-vs-Base64, y por qué MD5 sigue por ahí para tracking pixels pero no para nada que importe.
Referencia
Util · Variable · Request — Referencia de SSJS en Marketing Cloud
Los puentes entre SSJS y las superficies de alrededor — Variable para interop con AMPscript, Request para acceso a URL/form en CloudPages, Platform.Function.RaiseError + GetSetting para control flow y config. La página grab-bag que ata el catálogo a sus vecinos.
Cómo hacerlo · 3
Cómo hacerlo
Debugging de Script Activities trabadas
Cuando una Script Activity corrió pasado su presupuesto, terminó sin hacer lo que debía, o reportó 'Completed' mientras saltó silenciosamente la mitad del trabajo, el diagnóstico es el mismo. Seis queries contra los DE de log que el script dejó atrás, que encuentran dónde murió.
Cómo hacerlo
Debugging de problemas de auth con WSProxy
Las primeras 1.000 llamadas de WSProxy funcionan, después todo lo que pasa el minuto 20 devuelve 'Token has expired'. O la auth falla en la llamada uno sin razón obvia. Cinco queries contra tus DE de log que separan el patrón timeout del patrón credenciales del patrón multi-BU.
Cómo hacerlo
Debugging de duplicados silenciosos de UpsertData
Una Script Activity corrió limpia pero los counts downstream están mal. UpsertData insertó duplicados en vez de actualizar porque el primary key del DE destino falta o está mal configurado. Seis queries que confirman el patrón del insert silencioso y recorren la recuperación.