SDK de conversaciones
El widget de chat en directo de HubSpot te permite chatear con clientes y leads en tu propio sitio web. Con el SDK de widget de chat, puedes proporcionarles una experiencia más personalizada a los visitantes personalizando el comportamiento del widget de chat.
Caso de uso: El SDK de widget de chat se puede usar para personalizar cuándo y cómo aparece el widget de chat de HubSpot en tu sitio web.
En un nivel alto, te permite hacer lo siguiente:
- Controlar el comportamiento del widget
- Escuchar y responder eventos en el widget
- Encuestar para entender el estado del widget
Primeros pasos
La API está alojada en el objeto window.HubSpotConversations
. Todos los métodos disponibles pueden acceder a través de este objeto. El cargador de scripts de HubSpot (también conocido como el código de seguimiento de HubSpot) en tu página creará este objeto para ti, pero es posible que no esté disponible inmediatamente. Para diferir el acceso a la API hasta que esté inicializado, puedes usar el ayudante window.hsConversationsOnReady
. Ve a continuación un ejemplo simple:
Referencia de SDK
window.hsConversationsOnReady
Este es un campo especial que puedes definir en el objeto de window
que te permite especificar el código que se ejecutará tan pronto como el widget esté disponible. El uso de esta propiedad es opcional. Si se usa, este campo debe establecerse en una matriz de funciones. Una vez que la API haya sido inicializada, comprobará la existencia de esta matriz y ejecutará las funciones en serie. Por ejemplo:
hsConversationsSettings
Este objeto te permite proporcionar algunas opciones de configuración al widget antes de inicializar. El uso de este objeto es opcional.
Nombre de campo | Tipo de dato | Predeterminado | Descripción |
---|---|---|---|
|
Boolean | true | Ya sea que el widget se cargue implícitamente o espere hasta que se llame al método widget.load |
inlineEmbedSelector |
String | "" | Si el widget debe estar incrustado en la página. Si se proporciona un selector (por ejemplo, #some-id), el widget se incrustará en línea dentro de ese nodo DOM. Siempre estará abierto hasta que se elimine a través de widget.remove |
enableWidgetCookieBanner |
Enum | false | Controla el comportamiento del banner de cookies para todos los chatflows en la página:false : usa la configuración de chatflows (opción predeterminada)true : activa banners de cookies cuando se carga el widgetON_WIDGET_LOAD : igual que true: activa banners de cookies cuando el widget está cargadoON_EXIT_INTENT : activa los banners de cookies cuando el usuario muestra un intento de salidaTen en cuenta que este campo solía ser un Boolean . Ahora puede aceptar tanto los valores Boolean originales como los valores de enum actualizados. |
disableAttachment |
Boolean | false | Si el botón de carga de archivos adjuntos debe ocultarse o no en el widget de chat. |
disableInitialInputFocus |
Boolean | false | Determina si se debe evitar automáticamente el enfoque en el campo de entrada del widget después de que un widget incrustado en línea se cargue inicialmente en una página. |
Estilo de incrustación en línea
window.hsConversationsOnReady
Cuando el widget está incrustado en una ubicación especificada por cliente, se agregan varios elementos de DOM y se pueden adaptar a los requisitos de personalización del cliente (por ejemplo, alto, ancho, borde). Ten en cuenta que esta estructura solo se aplica si usas la opción inlineEmbedSelector
.
<�div� �id�=�"hubspot-conversations-inline-parent"�>
<�iframe� �id�=�"hubspot-conversations-inline-iframe"� />
</�div�>
Por ejemplo, por opción predeterminada, el widget de chat puede verse como este:
Este diseño aplastado no es una experiencia ideal, por lo que puedes personalizar el widget incluyendo estilos como esto:
#hubspot-conversations-inline-iframe {
width: 300px;
height: 500px;
border:none;
}
Esto ofrece una experiencia de usuario mucho más amigable.
HubSpotConversations.widget
El objeto del widget contiene varios métodos que te permiten manipular el widget de chat en tu página.
widget.load
Carga el widget por primera vez en la página. Si el widget está cargado actualmente, las llamadas posteriores a este método no son operativas.
Este método solo es necesario si configuras la bandera loadImmediately
en false
. De lo contrario, el widget se cargará automáticamente.
Nota: widget.load
se limita a una llamada por segundo.
Parámetros:
Nombre de campo | ¿Tipo de dato? | Predeterminado | Descripción |
---|---|---|---|
widgetOpen |
Boolean | false | Si el widget debe cargarse en un estado abierto |
widget.refresh
Actualiza y vuelve a mostrar la información del widget, dada la URL de la página actual.
Si alojas el widget de chat en una aplicación de una sola página, este método puede ser útil para actualizar el widget en los cambios de ruta. Esto te permite especificar diferentes chatflows en diferentes rutas de página. Si se llama widget.refresh
en una ruta donde no hay ningún chatflow, y el usuario no está interactuando en una conversación, el widget será eliminado.
Nota: widget.refresh
se limita a una llamada por segundo.
Parámetros:
Nombre de campo | ¿Tipo de dato? | Predeterminado | Descripción |
---|---|---|---|
openToNewThread |
Boolean | false | Ya sea para forzar la creación de un nuevo hilo |
Para un ejemplo de cómo usar el campo openToNewThread
, consulta Abrir un chatflow específico.
Ejemplo:
widget.close
Cierra el widget. Si el widget ya está cerrado o no está cargado actualmente, esto no es operativo.
Ejemplo:
widget.remove
Elimina el widget de la página. Si el widget no está presente en la página, esto no es operativo. Para mostrar el widget de nuevo, tendrás que tener en cuenta una actualización completa de la página o una opción que pueda generar widget.load
.
Ejemplo:
clear
El widget de chat crea varias cookies para preservar su estado durante las visitas al sitio y las actualizaciones de la página. Estas cookies se limitan al dominio de la página que aloja el widget y se utilizan para admitir las siguientes funciones:
- Referenciar conversaciones históricas
- Persistencia del estado abierto del widget de chat a través de cargas de página
- Persistencia del estado abierto del mensaje de bienvenida a través de cargas de página
El método clear
puede utilizarse para eliminar estas cookies, regresando al widget a su estado predeterminado en cargas subsiguientes.
Las siguientes cookies se borran con este método:
messagesUtk
hs-messages-is-open
hs-messages-hide-welcome-message
Para obtener más información acerca de estas cookies, consulta este artículo de la base de conocimientos.
Ejemplo:
Además, puedes pasar {resetWidget:true}
a la función clear()
para borrar todas las cookies relacionadas con chat, eliminar el widget de la página y crear una nueva instancia del widget de chat.
Ejemplo:
Especificación de eventos
El widget de chat emitirá varios eventos que puedes escuchar y responder a lo largo del ciclo de vida.
Eventos admitidos
conversationStarted
Se emite cuando se ha iniciado correctamente una nueva conversación.
Carga de eventos
Nombre de campo | Tipo de dato | Descripción |
---|---|---|
conversation |
Conversación | Detalles sobre la conversación que se inició |
Ejemplo:
conversationClosed
Se emite cuando se ha cerrado correctamente una nueva conversación.
Nota: este evento se activa cuando la conversación se marca como cerrada desde la bandeja de entrada de conversaciones y no está relacionado con que el usuario minimice o cierre el widget de chat.
Carga de eventos
Nombre de campo | Tipo de dato | Descripción |
---|---|---|
conversation |
Conversación | Detalles sobre la conversación que se cerró |
Ejemplo:
unreadConversationCountChanged
Se emite cuando cambia (aumenta o disminuye) la cantidad de conversaciones en el widget con mensajes no leídos.
Carga de eventos
Nombre de campo | Tipo de dato | Descripción |
---|---|---|
unreadCount |
Number | El nuevo total de conversaciones en el widget con cualquier mensaje no leído |
Ejemplo:
contactAssociated
Se emite cuando el visitante está asociado a un contacto en el CRM.
Carga de eventos
Nombre de campo | Tipo de dato | Descripción |
---|---|---|
message |
String | Un mensaje de confirmación de que el visitante ha sido asociado con un contacto |
Ejemplo:
userInteractedWithWidget
Se emite tan pronto como el usuario interactúa con el widget (por ejemplo, haciendo clic en el iniciador para abrir el widget, cerrando el mensaje de bienvenida inicial, etc.)
Carga de eventos
Nombre de campo | Tipo de dato | Descripción |
---|---|---|
message |
String | Un mensaje de confirmación de que el usuario ha interactuado con el widget. |
Ejemplo:
widgetLoaded
Se emite cuando el iframe del widget se ha cargado.
Carga de eventos
Nombre de campo | Tipo de dato | Descripción |
---|---|---|
message |
String | Mensaje de confirmación de que el iframe del widget se ha cargado. |
Ejemplo:
quickReplyButtonClick
Se emite cuando el usuario hace clic en el botón de respuesta rápida en una conversación de bot
Carga de eventos
Nombre de campo | Tipo de dato | Descripción |
---|---|---|
value |
Matriz | Contiene el contenido del texto del botón de respuesta rápida en el que se hizo clic. |
Ejemplo:

En la captura de pantalla de ejemplo anterior, el chatflow del bot contiene tres opciones de respuesta rápida disponibles para que el usuario las seleccione. Si el usuario seleccionó Más información, la carga útil del evento resultante sería:
widgetClosed
Se emite cuando se cierra el widget.
Carga de eventos
Nombre de campo | Tipo de dato | Descripción |
---|---|---|
message |
String | Mensaje de confirmación de que el widget está cerrado. |
Ejemplo:
Gracias por tus comentarios, son muy importantes para nosotros.