Botón de apertura personalizado
Agrega un botón o enlace en cualquier parte de tu sitio para abrir el widget de chat
Por defecto, los visitantes abren el chat haciendo clic en el icono flotante de chat en la esquina de su página. Pero también puede añadir su propio botón o enlace personalizado — en su barra de navegación, sección principal, área de CTA o en cualquier otro lugar — que abra el widget de chat al hacer clic.
Consejo: Esto es ideal para añadir un enlace "Chatea con nosotros" en la barra de navegación de su sitio, un botón "Obtener ayuda" en una página de producto o un CTA que abra el chat directamente.
Cómo funciona
Una vez que el script del widget Asyntai está instalado en su página, expone una API JavaScript global en window.AsyntaiWidget. Puede llamar a sus métodos para controlar el widget de chat programáticamente.
Métodos disponibles
// Open the chat widget
window.AsyntaiWidget.open();
// Close the chat widget
window.AsyntaiWidget.close();
// Toggle open/close
window.AsyntaiWidget.toggle();
Ejemplo básico
Añada un botón en cualquier parte de su HTML y adjunte un controlador de clic que llame a window.AsyntaiWidget.open():
<button onclick="window.AsyntaiWidget.open()">Chat with us</button>
Eso es todo. Cuando un visitante haga clic en el botón, el widget de chat se abrirá.
Ejemplo en barra de navegación
Añada un enlace "Chatea con nosotros" en la navegación de su sitio:
<nav>
<a href="/">Home</a>
<a href="/products">Products</a>
<a href="/about">About</a>
<a href="#" onclick="event.preventDefault(); window.AsyntaiWidget.open();">Chat with us</a>
</nav>
Nota: Use event.preventDefault() en enlaces ancla para evitar que la página se desplace hacia arriba al hacer clic.
Ejemplo de botón con estilo
Cree un botón CTA más prominente con estilo personalizado:
<style>
.chat-btn {
display: inline-flex;
align-items: center;
gap: 8px;
padding: 12px 28px;
background: #6366f1;
color: #fff;
border: none;
border-radius: 50px;
font-size: 15px;
font-weight: 500;
cursor: pointer;
transition: all 0.25s ease;
box-shadow: 0 4px 15px rgba(99, 102, 241, 0.3);
}
.chat-btn:hover {
transform: translateY(-2px);
box-shadow: 0 6px 24px rgba(99, 102, 241, 0.45);
}
.chat-btn:active {
transform: translateY(0);
}
.chat-btn svg {
width: 18px;
height: 18px;
fill: currentColor;
}
</style>
<button class="chat-btn" onclick="window.AsyntaiWidget.open()">
<svg viewBox="0 0 24 24">
<path d="M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 14H6l-2 2V4h16v12z"/>
</svg>
Chat with us
</button>
Ejemplo de botón alternador
Si quiere un solo botón que abra y cierre el chat:
<button onclick="window.AsyntaiWidget.toggle()">Toggle Chat</button>
Verificar si el widget está listo
El widget se carga de forma asíncrona, así que si su botón podría ser clicado antes de que el widget termine de cargar, debe verificar la propiedad initialized primero:
<script>
function openChat() {
if (window.AsyntaiWidget && window.AsyntaiWidget.initialized) {
window.AsyntaiWidget.open();
} else {
// Widget not ready yet — optionally show a message
alert('Chat is loading, please try again in a moment.');
}
}
</script>
<button onclick="openChat()">Chat with us</button>
Consejo: En la mayoría de las páginas, el widget se inicializa en menos de un segundo. La verificación de initialized solo es necesaria si su botón aparece muy temprano en la página (por ejemplo, arriba del pliegue en un sitio de carga rápida).
Ocultar el icono de chat predeterminado
Si quiere reemplazar completamente el icono flotante de chat con su propio botón personalizado, puede ocultarlo con CSS:
<style>
#mccs-chat-button {
display: none !important;
}
</style>
Advertencia: Si oculta el icono de chat predeterminado, asegúrese de que su botón personalizado sea claramente visible en cada página. De lo contrario, los visitantes no sabrán que el chat está disponible.
Referencia completa de la API
| Método | Descripción |
|---|---|
AsyntaiWidget.open() |
Abre el widget de chat |
AsyntaiWidget.close() |
Cierra el widget de chat |
AsyntaiWidget.toggle() |
Alterna el chat entre abierto y cerrado |
AsyntaiWidget.initialized |
Booleano — true cuando el widget está listo |