## Visión general

Los **Custom Scripts** permiten inyectar JavaScript/CSS en superficies específicas de la plataforma —
el **dashboard**, el **portal** del Centro de Ayuda y el **widget** de chat. Son útiles para pequeñas
personalizaciones de comportamiento y estilo sin cambiar el código base.

## Requisitos previos

- Permiso de administrador para gestionar Custom Scripts.
- Conocimientos de JavaScript/CSS.

## Paso a paso

1. Abre el módulo de **Custom Scripts**.
2. Crea un script y elige la **superficie** (dashboard, portal o widget).
3. Define el **tipo** (JS o CSS) y cuándo debe ejecutarse.
4. Usa el contexto **ctx** que provee el runtime para interactuar con la superficie de forma segura.
5. Implementa el teardown para limpiar lo que el script creó, cuando aplique.

## Configuración y opciones

- **Superficie**: dashboard / portal / widget.
- **Tipo**: JS o CSS.
- **Ejecución**: reglas de cuándo se ejecuta el script.
- **Configuración (`ctx.settings`)**: es la configuración definida por el operador y sirve solo para
  lectura. Cada ejecución del script recibe una copia propia, que vale únicamente durante esa
  ejecución. Un cambio que el script haga en esa copia no se conserva en la siguiente ejecución ni
  modifica la configuración guardada. Para guardar estado, usa `ctx.storage` en las superficies que
  lo ofrecen: el dashboard, el portal y el widget. Las páginas públicas de login, registro y
  restablecimiento de contraseña no ofrecen `ctx.storage`.

## Casos de uso

- Añadir un botón o aviso en una pantalla específica.
- Ajustar estilos puntuales de una superficie.
- Registrar eventos de uso para análisis interno.

## Consejos, límites y buenas prácticas

- Escribe scripts idempotentes y con teardown para evitar duplicación.
- Evita dependencias pesadas; prefiere código ligero.
- Prueba en un entorno controlado antes de publicar.

## Solución de problemas

- **El script no se ejecuta**: confirma la superficie y las reglas de ejecución.
- **Comportamiento duplicado**: revisa el teardown y la idempotencia.

## Ver también

- [Visión general de API y Desarrolladores](/hc/ajuda/articles/api-developers-overview-es)
- [Custom Scripts (Administración)](/hc/ajuda/articles/administration-custom-scripts-es)