Widget de Chat
12 min de leituraAtualizado em 2026-01-19

SDK & API JavaScript

Controle o widget programaticamente

Use o SDK JavaScript para controlar o widget programaticamente: abrir, fechar, definir usuário e registrar eventos.

Carregamento

Snippet do Widget v3.0.0
1<script>
2 window.WhatsAppWidgetSettings = {
3 position: "bottom-right", // ou "bottom-left"
4 theme: {
5 primaryColor: "#25D366",
6 secondaryColor: "#128C7E",
7 headerColor: "#075E54",
8 backgroundColor: "#E5DDD5",
9 textColor: "#111827",
10 bubbleColor: "#DCF8C6",
11 borderRadius: "16px",
12 fontFamily: "Inter, sans-serif"
13 }
14 };
15
16 window.WhatsAppWidgetQ = window.WhatsAppWidgetQ || [];
17 window.WhatsAppWidgetQ.push(["init", {
18 token: "wgt_xxx",
19 baseUrl: "https://cloudwhats.app.br"
20 }]);
21
22 (function(d, t) {
23 var g = d.createElement(t);
24 var s = d.getElementsByTagName(t)[0];
25 g.src = "https://cloudwhats.app.br/widget.js";
26 g.async = true;
27 s.parentNode.insertBefore(g, s);
28 })(document, "script");
29</script>

Carregue o script no final do body para reduzir impacto.

Personalização do Tema

Todas as propriedades de tema são opcionais. Valores não informados usam o padrão configurado no painel.

PropriedadePadrãoDescrição
primaryColor#25D366Cor principal (botão, mensagens enviadas)
secondaryColor#128C7ECor secundária (links, hover)
headerColor#075E54Cor de fundo do cabeçalho
backgroundColor#E5DDD5Cor de fundo da área de mensagens
textColor#111827Cor do texto geral
bubbleColor#DCF8C6Cor das bolhas de mensagem recebida
borderRadius16pxArredondamento da janela do chat
fontFamilysystem-uiFamília tipográfica do widget

Prioridade de configuração

Configurações do painel têm prioridade base. Valores em WhatsAppWidgetSettings.theme sobrescrevem o painel.

Métodos principais

SDK
1window.WhatsAppWidget.open();
2window.WhatsAppWidget.close();
3window.WhatsAppWidget.toggle();
4window.WhatsAppWidget.setUser({ name: 'Maria', phone: '+55...' });
5window.WhatsAppWidget.setCustomAttributes({ plano: 'pro' });
6window.WhatsAppWidget.reset();

Disponibilidade

Os métodos ficam disponíveis após o evento widget:ready.

Eventos

Eventos
1window.addEventListener('widget:ready', () => {
2 console.log('Widget pronto — v' + window.WhatsAppWidget.version);
3});
4window.addEventListener('widget:opened', () => {
5 console.log('Widget aberto');
6});
7window.addEventListener('widget:closed', () => {
8 console.log('Widget fechado');
9});
10window.addEventListener('widget:message', (event) => {
11 console.log('Nova mensagem', event.detail);
12});
13window.addEventListener('widget:error', (event) => {
14 console.error('Erro no widget', event.detail);
15});
16window.addEventListener('widget:reset', () => {
17 console.log('Widget resetado');
18});

Evite múltiplos listeners

Registre listeners apenas uma vez para evitar duplicidade de ações.

Integrações avançadas

1

Identifique o usuário

Associe nome e telefone

Use setUser para personalizar o atendimento.

2

Rastreie conversões

Integre com analytics

Emita eventos personalizados para rastrear abertura do widget.

Documentação técnica completa

Próximos passos

Este artigo foi útil?