HubSpot está retirando las serverless functions del Design Manager y los runtimes Node.js 20 y anteriores en las custom code actions de los workflows. Desde el 3 de noviembre de 2026 no se pueden crear nuevas. Desde el 17 de noviembre de 2026 no se pueden editar. El 1 de febrero de 2027 las funciones del Design Manager dejan de ejecutarse y las llamadas a /_hcms/api/ fallan. Te lo cuento en detalle.
La solución tiene dos caminos:
/hs/serverless/.Las apps privadas creadas a mano en la interfaz no se ven afectadas por este cambio.
En MorningLabs desarrollamos sobre HubSpot a diario y en esta guía te contamos qué cambia, cómo saber si te afecta y cómo migrar sin romper nada.
La fecha más urgente es el 17 de noviembre de 2026: a partir de ese día ya no podrás guardar cambios en lo antiguo.
| Fecha | Qué pasa | Qué hacer |
|---|---|---|
| 3 nov 2026 | Ya no se pueden crear serverless functions en el Design Manager ni custom code actions en Node.js 20. Node.js 24 ya está disponible. | Crear todo lo nuevo en proyectos y en Node.js 24 |
| 17 nov 2026 | Ya no se pueden editar las funciones del Design Manager ni guardar cambios en acciones de Node.js 20. También termina la opción de volver a Node.js 20. | Migrar las custom code actions antes de esta fecha |
| 4 dic 2026 | La Pipelines API v1 deja de tener soporte. | Pasar las integraciones a la versión 2026-03 o posterior |
| 1 feb 2027 | Las serverless functions del Design Manager dejan de ejecutarse y /_hcms/api/ falla. |
Tener todas las funciones migradas a proyectos |
| sep 2027 | Fin del soporte de las APIs v1–v3 y de las apps públicas y privadas antiguas. | Planificar la migración de apps antiguas |
Fuentes: anuncio de HubSpot, Pipelines API v1, APIs y apps antiguas.
Te afecta si tu portal ejecuta código propio en HubSpot. Esta tabla resume los casos más habituales.
| Lo que tienes en tu portal | ¿Te afecta? | Qué hacer |
|---|---|---|
| Workflows con custom code actions en Node.js 16 o 20 | Sí | Pasarlas a Node.js 24 antes del 17/11 (Parte 1) |
Serverless functions creadas en el Design Manager (endpoints /_hcms/api/) |
Sí | Migrarlas a un proyecto de desarrollador antes del 1/2/2027 (Parte 2) |
| Proyecto de desarrollador en versión 2023.1, 2023.2 o 2025.1 con funciones | Sí | Ejecutar hs project migrate y volver a desplegar |
| Proyecto en versión 2026.03 o 2026.09 | No | Ya usa Node.js 24 |
| App privada creada a mano en la interfaz, usada solo por su token | No | Sigue funcionando; planifica su migración antes de septiembre de 2027 |
| Token de app privada usado dentro de una custom code action en Node.js 20 | La acción sí, el token no | Pasar la acción a Node.js 24 |
Detalle importante: las serverless functions del Design Manager solo existen en portales con Content Hub Enterprise. Si no tienes ese plan, lo más probable es que solo te afecten las custom code actions.
Desde el 26 de octubre de 2026 ya no se pueden crear apps privadas antiguas desde la interfaz. Para integraciones nuevas, HubSpot recomienda las Service Keys, disponibles en proyectos de la versión 2026.09 (fuente).
Es la parte más rápida y no necesita programar si usas Breeze. Hazla antes del 17 de noviembre: hasta ese día puedes volver a Node.js 20 si algo falla.
Node.js 24 no admite el estilo con callback. La función debe ser async y devolver el resultado con return.
Antes (Node.js 20):
exports.main = async (event, cb) => {
const amount = event.inputFields['amount'];
cb({ outputFields: { doubled: amount * 2 } });
};
Después (Node.js 24):
exports.main = async (event) => {
const amount = event.inputFields['amount'];
return { outputFields: { doubled: amount * 2 } };
};
Revisa también las librerías, porque Node.js 24 trae versiones nuevas:
| Librería | Node.js 20 | Node.js 24 |
|---|---|---|
@hubspot/api-client |
^11.1.0 | 13.4.0 |
axios |
^1.2.0 | 1.13.5 |
request |
^2.88.2 | Ya no se incluye: usa axios o fetch() |
mongoose / redis / googleapis |
6.x / 4.x / 67.x | 9.x / 5.x / 171.x |
Usa await en todas las llamadas antes del return: lo que se ejecute después no tiene garantizado terminar. Si quieres que HubSpot reintente tras un error de límite de peticiones, vuelve a lanzar el error en el catch.
Fuente: guía oficial de HubSpot para Node.js 24.
Esta parte requiere un desarrollador y la CLI de HubSpot. La recomendación de HubSpot es mover solo las funciones y cambiar únicamente la URL en las plantillas que las llaman. Es la opción más segura.
Requisitos: CLI de HubSpot 8.4.0 o superior, Node.js 20 o superior en tu equipo y la versión de plataforma actual (2026.09).
hs cms function list --json. Descarga cada carpeta del Design Manager con hs cms fetch <carpeta> ./dm-backup/<carpeta>: será tu copia para volver atrás._hcms/api en plantillas, módulos, campos, ajustes del tema y el HTML de cabecera y pie de las páginas. Busca también el nombre del endpoint, porque a veces la ruta se construye por partes.hs project create con --platform-version 2026.09 y la funcionalidad app-function-endpoint. Agrupa las funciones por propósito: cada proyecto se despliega y se revierte entero.serverless.json por un archivo *-hsmeta.json por función, con la misma ruta. Pasa de exports.main = (context, sendResponse) a exports.main = async (context) y devuelve la respuesta con return. Crea los secretos con hs secret add y léelos con process.env.hs project validate y hs project upload, y apunta el número de build. Ojo: al subir, el endpoint queda público al momento./_hcms/api/ a /hs/serverless/. Comprueba cada página en el navegador, con la consola y la pestaña de red abiertas.Para volver atrás: restaura los archivos de dm-backup, pega el texto original en HubSpot o despliega un build anterior con hs project deploy --build <número>. Practica una vuelta atrás tras la primera función.
La guía oficial incluye un prompt para agentes de programación con IA, como Claude Code, Cursor o Copilot, conectados al servidor MCP para desarrolladores de HubSpot. El agente mantiene un inventario en MIGRATION_INVENTORY.md, pide permiso antes de cada cambio en vivo y nunca borra funciones ni maneja los valores de los secretos. Acelera mucho el trabajo, pero no sustituye la revisión de un desarrollador.
Fuente: guía oficial de migración del Design Manager a proyectos.
La mayoría de los fallos vienen de diferencias pequeñas entre el entorno antiguo y el nuevo.
context.query. En proyectos ya no existe: usa context.params, que devuelve listas de textos.POST de ese tipo devuelve un error 415. Envía JSON.console.log no se ven ahí; están en la pestaña Logs de la app.PRIVATE_APP_ACCESS_TOKEN, ejecuta hs project install-app. Sin instalarla, las llamadas devuelven 401.request o API keys (hapikey). request ya no se incluye y las API keys llevan sin funcionar desde 2022.Haz el inventario esta semana, aunque la migración la hagas en diciembre. Las custom code actions son rápidas de resolver con Breeze. Las serverless functions del Design Manager necesitan más planificación, pero hay margen hasta el 1 de febrero si empiezas ya.
Es también un buen momento para preguntarse si cada función sigue teniendo sentido o si conviene sustituirla por una app a medida, una UI Extension o una integración más robusta.
En MorningLabs te ayudamos. Revisamos tu portal, identificamos todo lo afectado y migramos tus funciones y workflows sin cortes en tu web ni en tus procesos. Habla con nuestro equipo de desarrollo HubSpot y selecciona «Desarrollo» en el formulario.
Fuentes