Personalización de la interfaz del widget
data-* en la etiqueta de script de inserción. No se necesitan cambios de CSS ni de JavaScript — el widget usa un Shadow DOM que aísla sus estilos de tu sitio web.
Cómo funciona la personalización
El widget externo de REDA AI se renderiza dentro de un Shadow DOM, lo que significa que el CSS de tu sitio web no puede alcanzar el interior del widget y los estilos del widget no pueden afectar a tu página. Toda la personalización se realiza agregando atributos data-* a la etiqueta <script> de inserción.
Como el widget usa un Shadow DOM, agregar reglas de CSS que apunten a los nombres de clase del widget en la hoja de estilos de tu sitio web no tendrá ningún efecto. Usa en su lugar los atributos data-* que se enumeran a continuación.
Configuración de la definición de agente
Algunos ajustes de apariencia provienen del registro de Definición de agente en Salesforce, no del código de inserción:
| Ajuste | Dónde configurarlo | Descripción |
|---|---|---|
| Welcome Message | Definición de agente → Mensaje de bienvenida externo | El primer mensaje que ven los visitantes cuando abren el chat |
| Imagen de la mascota | Definición de agente → Imagen de la mascota | Avatar personalizado que se muestra en la burbuja, en el hero de bienvenida y junto a los mensajes |
| Nombre del agente | Definición de agente → Nombre para mostrar | Se muestra en el encabezado y se usa en el título del hero de bienvenida |
| Saludo proactivo | Definición de agente → Iniciar al cargar | Desactivado de forma predeterminada. Cuando se activa, el panel envía un saludo en cuanto se monta en una página de registro, de modo que el agente abre con ideas sobre ese registro en lugar de esperar a que le pregunten. |
Atributos obligatorios
| Atributo | Descripción |
|---|---|
data-api-key |
Tu clave de API externa de REDA AI |
data-endpoint |
La URL del endpoint de la API de chat de REDA AI |
Estilo de la burbuja
La burbuja es el botón flotante en el que los visitantes hacen clic para abrir el chat. Puedes mostrarla como un círculo (predeterminado) o como un botón con forma de píldora con una etiqueta de texto.
| Atributo | Valores | Predeterminado | Descripción |
|---|---|---|---|
data-bubble-style |
circle | pill |
circle |
Forma del botón flotante |
data-bubble-label |
Cualquier texto | (ninguno) | Texto de la etiqueta que se muestra en la píldora (p. ej., “Ask Support”). Obligatorio para el estilo píldora. |
data-bubble-size |
Número (px) | 60 |
Diámetro de la burbuja circular (se ignora para el estilo píldora) |
data-bubble-style="pill"
data-bubble-label="Ask REDA AI"
Muestra un botón píldora redondeado con un ícono y el texto “Ask REDA AI”. Si hay una imagen de mascota configurada en la Definición de agente, esta reemplaza el ícono predeterminado en la píldora.
Estilo del encabezado
El encabezado aparece en la parte superior del panel de chat. Elige entre un encabezado con color (fondo con el color de tu marca) o un encabezado minimalista (fondo blanco y limpio).
| Atributo | Valores | Predeterminado | Descripción |
|---|---|---|---|
data-header-style |
colored | minimal |
colored |
Estilo de fondo del encabezado |
data-header-bg |
Color hexadecimal | Igual que el color principal | Color de fondo del encabezado (solo se aplica al estilo colored) |
data-header-style="minimal"
Muestra un encabezado blanco y limpio con texto oscuro y un borde inferior sutil. El atributo data-header-bg se ignora al usar el estilo minimalista.
Hero de bienvenida
El hero de bienvenida es una sección con la marca que se muestra en el panel de chat. Muestra un avatar o ícono, un título grande y un subtexto opcional — creando una primera impresión acogedora.
| Atributo | Valores | Predeterminado | Descripción |
|---|---|---|---|
data-show-welcome-hero |
true | false |
true |
Muestra u oculta la sección del hero de bienvenida |
data-welcome-heading |
Cualquier texto | “¿Cómo puede [Nombre del agente] ayudarte?” | Título del hero. Usa {title} como marcador de posición para el nombre del agente. |
data-welcome-subtext |
Cualquier texto | (ninguno) | Subtexto opcional debajo del título |
data-welcome-heading="How can {title} help?"
data-welcome-subtext="Ask me anything about your properties"
El marcador de posición {title} se reemplaza con el nombre del agente y se muestra en el color de tu marca. Si hay una imagen de mascota configurada, aparece como un avatar circular encima del título.
Colores
| Atributo | Predeterminado | Descripción |
|---|---|---|
data-primary-color |
#0176D3 |
Color principal de la marca — se usa para la burbuja, el encabezado (estilo colored), los mensajes del usuario y los elementos de acento |
data-header-bg |
Igual que el principal | Fondo del encabezado (solo estilo colored) |
data-user-msg-bg |
Igual que el principal | Fondo de la burbuja del mensaje del usuario |
data-user-msg-text-color |
#ffffff |
Color del texto dentro de las burbujas de mensajes del usuario |
data-bg-color |
Predeterminado del tema | Color de fondo del panel |
data-bg-secondary-color |
Predeterminado del tema | Fondo de la burbuja de mensajes del asistente y del indicador de escritura |
data-text-color |
Predeterminado del tema | Color del texto principal |
data-border-color |
Predeterminado del tema | Color de bordes y divisores |
data-primary-color="#1B5E20"
data-user-msg-bg="#2E7D32"
data-bg-color="#FAFAFA"
Define un esquema de color verde: burbuja y encabezado verdes, mensajes del usuario en un verde un poco más oscuro y un fondo del panel gris claro.
Diseño y posición
| Atributo | Valores / Tipo | Predeterminado | Descripción |
|---|---|---|---|
data-display-mode |
bubble | docked-right | docked-left |
bubble |
Cómo se abre el panel — una tarjeta flotante o un panel de altura completa acoplado al borde derecho o izquierdo. Consulta Modo de visualización más abajo. |
data-position |
bottom-right | bottom-left |
bottom-right |
En qué esquina aparece la burbuja. Es independiente del modo de visualización — puedes mantener la burbuja abajo a la izquierda y aun así acoplar el panel a la derecha. |
data-panel-width |
Número (px) | 400 |
Ancho del panel de chat. Solo en modo burbuja — se ignora cuando está acoplado. |
data-panel-height |
Número (px) | 550 |
Alto del panel de chat. Solo en modo burbuja — un panel acoplado siempre tiene altura completa. |
data-dock-width |
Número (px), o cualquier ancho CSS (30vw) |
Se adapta a la pantalla | Ancho del panel acoplado. Solo en modos acoplados. Omítelo y el panel se ajusta a la pantalla (aproximadamente un tercio de la ventana, dentro de límites razonables). |
data-border-radius |
Número (px) | 12 |
Radio de las esquinas del panel y la burbuja |
data-z-index |
Número | 999999 |
z-index CSS del widget (auméntalo si otros elementos se superponen) |
data-title |
Texto | AI Assistant |
Título del panel del widget que se muestra en el encabezado |
Modo de visualización
El modo de visualización controla cómo se abre el panel de chat. La burbuja de lanzamiento siempre está presente en todos los modos — los visitantes hacen clic en ella para abrir el asistente, y el modo de visualización decide qué obtienen.
| Modo | Qué ve el visitante | Ideal para |
|---|---|---|
bubble(predeterminado) |
Una tarjeta de chat flotante que se abre justo encima de la burbuja y deja visible la mayor parte de la página. | Sitios de marketing y de contenido, donde la página es lo principal y el chat es un complemento. |
docked-right |
Un panel de altura completa que se desliza desde el borde derecho y permanece junto a la página. | Conversaciones más largas, comparar opciones o leer resultados mientras se navega. |
docked-left |
El mismo panel de altura completa, pero acoplado al borde izquierdo. | Sitios cuyo propio contenido o controles están a la derecha. |
Un panel acoplado le da mucho más espacio al asistente — útil cuando las respuestas incluyen tarjetas de propiedades, fotos o comparaciones que se sienten apretadas en la tarjeta flotante.
data-display-mode="docked-right"
data-dock-width="420"
data-position sigue decidiendo en qué esquina se ubica. Si omites data-display-mode por completo, el widget se comporta exactamente igual que antes, así que las inserciones existentes no necesitan cambios.
data-panel-width y data-panel-height dan tamaño a la tarjeta flotante y se ignoran cuando está acoplado. data-dock-width da tamaño al panel acoplado y se ignora en modo burbuja. Si un ajuste de tamaño parece no tener efecto, verifica que estés configurando el que corresponde a tu modo de visualización. Omite data-dock-width y el panel se ajusta a la pantalla del visitante.
Tema
| Atributo | Valores | Predeterminado | Descripción |
|---|---|---|---|
data-theme |
light | dark |
light |
Tema de color del widget. El modo oscuro usa fondos oscuros con texto claro. |
Tipografía
| Atributo | Tipo | Predeterminado | Descripción |
|---|---|---|---|
data-font-family |
Pila de fuentes CSS | Pila de fuentes del sistema | Familia de fuentes personalizada (p. ej., 'Poppins', sans-serif). La fuente debe estar cargada en tu página. |
data-font-size |
Número (px) | 14 |
Tamaño de fuente base para los mensajes y el campo de entrada |
Comportamiento móvil
| Atributo | Valores / Tipo | Predeterminado | Descripción |
|---|---|---|---|
data-mobile-breakpoint |
Número (px) | 640 |
Ancho de pantalla por debajo del cual se activa el comportamiento móvil |
data-mobile-fullscreen |
true | false |
true |
Cuando está habilitado, el panel de chat se expande a pantalla completa en dispositivos móviles |
Comportamiento
| Atributo | Valores / Tipo | Predeterminado | Descripción |
|---|---|---|---|
data-open-on-load |
true | false |
false |
Abre automáticamente el panel de chat cuando se carga la página |
data-enable-voice |
true | false |
true |
Muestra el botón de voz (micrófono) para que los visitantes puedan dictar mensajes. Configúralo en false para ocultarlo. El botón solo aparece en los navegadores que admiten la entrada de voz. Consulta Entrada de voz. |
data-typing-speed |
Número | 25 |
Palabras por segundo para la animación de escritura al revelar las respuestas |
data-cache-ttl-minutes |
Número (mín. 1) | 5 |
Con qué frecuencia se actualiza la caché del script del widget (en minutos) |
Texto e internacionalización (i18n)
Todo el texto visible para el usuario en el widget se puede sustituir con fines de marca o de traducción:
| Atributo | Predeterminado | Descripción |
|---|---|---|
data-input-placeholder |
Type a message... | Texto de marcador de posición del campo de entrada |
data-aria-open |
Open chat | Etiqueta ARIA para la burbuja cuando el chat está cerrado |
data-aria-close |
Close chat | Etiqueta ARIA para la burbuja cuando el chat está abierto |
data-aria-send |
Send message | Etiqueta ARIA para el botón de enviar |
data-aria-typing |
Assistant is typing | Etiqueta ARIA para el indicador de escritura |
data-error-rate-limited |
Please wait a moment before sending again. | Mensaje de error de límite de tasa |
data-error-max-messages |
This conversation has reached its limit. Please start a new one. | Error de máximo de mensajes alcanzado |
data-error-session-expired |
Session expired. Reconnecting... | Mensaje de expiración de sesión |
data-error-generic |
Something went wrong. Please try again. | Mensaje de error genérico |
data-error-connect |
Unable to connect. Please refresh and try again. | Mensaje de fallo de conexión |
Ejemplos completos
Inserción mínima (todos los valores predeterminados)
<script
src="https://<org>.my.salesforce-sites.com/chat/resource/redaai__REDAAILoader"
data-api-key="your-api-key"
data-endpoint="https://<org>.my.salesforce-sites.com/chat/services/apexrest/redaai/chat/v1">
</script>
Usa todos los valores predeterminados: burbuja circular, encabezado con color, hero de bienvenida, tema claro y posición abajo a la derecha.
Burbuja píldora moderna con encabezado minimalista
<script
src="https://<org>.my.salesforce-sites.com/chat/resource/redaai__REDAAILoader"
data-api-key="your-api-key"
data-endpoint="https://<org>.my.salesforce-sites.com/chat/services/apexrest/redaai/chat/v1"
data-bubble-style="pill"
data-bubble-label="Ask REDA AI"
data-header-style="minimal"
data-welcome-heading="How can {title} help?"
data-welcome-subtext="Ask me anything about your properties">
</script>
Panel lateral acoplado
<script
src="https://<org>.my.salesforce-sites.com/chat/resource/redaai__REDAAILoader"
data-api-key="your-api-key"
data-endpoint="https://<org>.my.salesforce-sites.com/chat/services/apexrest/redaai/chat/v1"
data-display-mode="docked-right"
data-dock-width="420"
data-bubble-style="pill"
data-bubble-label="Ask REDA AI"
data-welcome-subtext="Ask me anything about your properties">
</script>
Un panel de altura completa se desliza desde el borde derecho cuando el visitante hace clic en la píldora; la página sigue siendo legible a su lado. Omite data-dock-width para que el panel se ajuste a la pantalla, o cámbialo por docked-left para acoplarlo al otro lado. Ten en cuenta que data-panel-width y data-panel-height no se aplican aquí — un panel acoplado siempre tiene altura completa, y data-dock-width define su ancho.
Colores de marca personalizados con tema oscuro
<script
src="https://<org>.my.salesforce-sites.com/chat/resource/redaai__REDAAILoader"
data-api-key="your-api-key"
data-endpoint="https://<org>.my.salesforce-sites.com/chat/services/apexrest/redaai/chat/v1"
data-theme="dark"
data-primary-color="#6C63FF"
data-title="Support Agent"
data-position="bottom-left">
</script>
Encabezado con color sin hero de bienvenida
<script
src="https://<org>.my.salesforce-sites.com/chat/resource/redaai__REDAAILoader"
data-api-key="your-api-key"
data-endpoint="https://<org>.my.salesforce-sites.com/chat/services/apexrest/redaai/chat/v1"
data-bubble-style="pill"
data-bubble-label="Chat with us"
data-show-welcome-hero="false"
data-primary-color="#D32F2F">
</script>
Internacionalizado (español)
<script
src="https://<org>.my.salesforce-sites.com/chat/resource/redaai__REDAAILoader"
data-api-key="your-api-key"
data-endpoint="https://<org>.my.salesforce-sites.com/chat/services/apexrest/redaai/chat/v1"
data-title="Asistente"
data-bubble-style="pill"
data-bubble-label="Pregunte"
data-input-placeholder="Escribe un mensaje..."
data-welcome-heading="¿Cómo puede {title} ayudarte?"
data-welcome-subtext="Pregúntame sobre tu cuenta"
data-aria-open="Abrir chat"
data-aria-close="Cerrar chat"
data-aria-send="Enviar mensaje"
data-error-generic="Algo salió mal. Inténtalo de nuevo.">
</script>
Cómo probar las personalizaciones
- Agrega o modifica los atributos
data-*en la etiqueta de script de inserción - Actualiza tu página (recarga forzada con Ctrl+Shift+R o Cmd+Shift+R para omitir la caché)
- Verifica que la burbuja, el encabezado y el hero de bienvenida aparezcan como se espera
- Prueba en tamaños de pantalla de escritorio, tableta y móvil
- Prueba en varios navegadores (Chrome, Firefox, Safari, Edge)
- Envía un mensaje de prueba para verificar que la funcionalidad de chat sigue funcionando
El cargador del widget incluye una invalidación de caché automática que se actualiza cada 5 minutos de forma predeterminada (configurable mediante data-cache-ttl-minutes). Si no ves tus cambios de inmediato, espera unos minutos o realiza una recarga forzada.
Preguntas frecuentes
No. El widget utiliza un Shadow DOM, lo que significa que el CSS externo no puede alcanzar sus elementos internos. Todos los estilos se controlan mediante los atributos data-* en la etiqueta de script de inserción.
Carga la fuente en tu sitio web (por ejemplo, mediante Google Fonts) y luego define data-font-family="'Tu fuente', sans-serif" en la etiqueta de inserción. El widget usará la fuente si está disponible en la página.
Se recomienda PNG con transparencia. JPEG también funciona. Sube una imagen cuadrada (de al menos 200×200 px) al campo Imagen de mascota en la Definición de agente. La imagen aparece en la burbuja, en el hero de bienvenida y junto a los mensajes.
El mensaje de bienvenida se define en el registro de Definición de agente en Salesforce (campo Mensaje de bienvenida externo), no en el código de inserción. El título y el subtexto del hero de bienvenida son independientes — esos se definen mediante data-welcome-heading y data-welcome-subtext.
Sí. Incluye la etiqueta de script de inserción solo en las páginas donde quieras que aparezca el widget. Como alternativa, usa lógica condicional en la plantilla de tu sitio para incluir o excluir el script.
El encabezado con color usa tu color principal (o header-bg) como fondo del encabezado con texto blanco. El minimalista usa un fondo blanco con texto oscuro y un borde sutil — un aspecto más limpio y moderno. Al usar el estilo minimalista, el atributo data-header-bg se ignora.
Próximos pasos
Consulta la guía Configuración del widget externo para la configuración inicial, o explora Configuración del agente de Comunidad para la implementación en el portal.