Boton de WhatsApp con tracking WCI integrado. Un script tag, cero dependencias, inmune a adblockers.
Los botones de abajo son el widget real corriendo en esta pagina, montado con el mismo
loader.js que se instala en un sitio cliente. Abajo a la derecha esta el
flotante.
Variante inline, tamanos s / m / l / xl
Sin animacion (data-animated="false") y con label propio
Son botones reales: un clic abre WhatsApp con el mensaje pre-llenado y genera un lead atribuido en AtomChat. Pasa el cursor por encima para ver la animacion del icono.
<script
src="https://atom-whatsapp-buttons.vercel.app/v1/loader.js"
data-company-token="TOKEN"
data-phone="PHONE"
data-variant="pill"></script>
Un solo snippet puede rutear a numeros distintos segun el mercado de cada pagina.
data-phone="5215535150142" <!-- fallback -->
data-phone-es-co="573001234567"
data-phone-pt="5511999999999"
data-phone-en="14155550100"
| # | Origen | Gana sobre |
|---|---|---|
| 1 | data-phone del propio boton | todo |
| 2 | data-phone-es-co (region) | idioma y fallback |
| 3 | data-phone-es (idioma) | fallback |
| 4 | data-phone global | — |
Los pasos 2 y 3 solo aplican si la pagina declara su idioma, con
<html lang>, un prefijo en la URL o data-lang. Sin
declaracion se usa el fallback global: preferimos un numero conocido antes que adivinar el
mercado. Si nada resuelve un numero valido, el boton no se renderiza.
El major va en la URL. /v1/ recibe mejoras para siempre y nunca cambia de forma
incompatible; un cambio que rompa contratos sale en /v2/. El
loader.js se revalida cada 5 minutos y apunta a assets con hash cacheados como
inmutables: se despliega una version nueva y todos los sitios la reciben sin editar su HTML.
script-src 'self' atom-whatsapp-buttons.vercel.app;
style-src 'self' atom-whatsapp-buttons.vercel.app;
connect-src 'self' api.atomchat.io atom-whatsapp-buttons.vercel.app;