
# Widget de Chat

## Guia de Integração do Widget de Chat no Site

Adicione um widget de chat amigável ao seu site que permite aos visitantes se comunicarem diretamente através da interface do seu site. O processo de integração é simples e fornecerá ao seu site recursos de mensagens integrados.


### Criando e configurando o widget de chat

**Como chegar lá:**

1. Clique em **Configurações** perto da parte inferior da barra lateral esquerda. (Em um celular, primeiro toque no ícone de menu **☰** no canto superior para abrir a barra lateral.)
2. Na barra lateral de Configurações, em **Canais**, clique em **Canais**.
3. Encontre o cartão **Widget de chat do site**.
4. Se você ainda não tiver um widget, clique em **Conectar** para criar um com um nome de exibição e uma mensagem de boas-vindas.
5. Depois de criado, clique em **Gerenciar** a qualquer momento para abrir o painel de configuração completo.


As alterações que você salva são aplicadas ao seu widget ativo automaticamente — não há necessidade de colar o código de instalação novamente após fazer uma alteração.

Uma **Prévia ao vivo** fica bem ao lado das configurações: uma página da web de exemplo com seu widget real em execução, mostrando suas cores, posição, logotipo, ícone do iniciador e pop-up proativo exatamente como os visitantes os verão. Ela segue suas edições conforme você as faz, para que você não precise salvar para ver como fica uma alteração de cor ou tema. Você pode até clicar no botão de chat dentro da prévia para abrir o widget e experimentá-lo.

### O que você pode personalizar

O painel Gerenciar é organizado em quatro seções.

#### Aparência

- **Tema de estilo:** Redesenhe todo o widget com um clique. Seis temas definem o visual, as cores, os cantos e a fonte de uma só vez: **Classic** (o visual sólido original — uma barra de cabeçalho colorida em um painel plano), **Glass** (um painel fosco e translúcido que desfoca suavemente a página atrás dele, com o cabeçalho e a caixa de mensagem flutuando como cartões arredondados dentro dele), **Midnight** (Glass em cores escuras), **Bloom** (rosa suave, extra-arredondado), **Ember** (Glass em laranja quente) e **Mono** (preto e branco, cantos vivos). Um tema é um ponto de partida — após escolher um, você ainda pode alterar qualquer cor ou ajuste individualmente. Novos widgets começam no Glass; a troca é instantânea onde quer que o widget esteja incorporado, sem alterações de código no seu site.
- **Cantos e Fonte:** Dois ajustes de estilo independentes. **Cantos** define o quão arredondados são o painel, os balões e os botões (Arredondado, Suave ou Vivo), e **Fonte** escolhe a tipografia que os visitantes veem (Padrão, Serif, Arredondada ou Mono) — as fontes vêm do que já está no dispositivo do visitante, então nada extra é carregado no seu site.
- **Nome de exibição:** Mostrado no cabeçalho do widget.
- **Logotipo:** Faça upload de uma imagem que aparece no topo do chat. Use o logotipo da sua empresa ou uma foto amigável.
- **Ícone do iniciador:** O ícone no próprio botão flutuante do chat. Escolha um dos ícones integrados (balão de chat, avião de papel, ponto de interrogação e mais), reutilize seu logotipo enviado ou faça upload de uma imagem própria — útil se você quiser uma foto de um membro real da equipe cumprimentando os visitantes.
- **Cores:** Cinco cores, cada uma nomeando a parte do widget que ela colore. **Cor da marca** é o botão flutuante, o cabeçalho e as mensagens do próprio visitante, com **Texto da marca** para o texto que fica sobre ela. **Balão do bot** é o fundo das respostas do seu bot e do indicador de digitação, com **Texto do balão do bot** para as palavras dentro deles e os pontos de digitação animados. **Janela de chat** é o painel atrás de todas as mensagens. Escolha uma cor para o Balão do bot que seja claramente diferente da sua Cor da marca — se as duas coincidirem, ambos os lados da conversa ficarão com a mesma cor e os visitantes não conseguirão distinguir as respostas do seu bot das deles. Um balão de bot cinza claro com texto escuro ao lado da cor da sua marca é a combinação segura.
- **Posição:** Coloque o botão flutuante do chat no canto **inferior direito** ou **inferior esquerdo**, com deslocamento horizontal e vertical (em pixels) caso ele se sobreponha a algo na sua página.
- **Perguntas iniciais:** Sugestões de resposta rápida (chips clicáveis) mostradas no chat para que os visitantes possam começar com um toque em vez de digitar — por exemplo, "Quais são seus preços?" ou "Vocês oferecem suporte?" — até 10.

#### Comportamento

- **Mensagem de abertura:** A primeira mensagem que os visitantes veem ao abrir o chat (por exemplo, "Como posso ajudar?").
- **Som:** Reproduz um som quando uma nova mensagem chega no chat.
- **Solicitar permissão de notificação:** Opcionalmente, solicita que os visitantes permitam notificações do navegador, para que sejam alertados sobre respostas mesmo quando mudarem de aba.
- **Balão de pop-up proativo:** Um pequeno balão opcional que aparece ao lado do botão de chat para convidar as pessoas. Ative-o para definir sua mensagem, o texto dos botões de aceitar/recusar e quantos segundos esperar antes que ele apareça. O balão se oculta novamente após 20 segundos se ninguém clicar nele (esse número é fixo) e, uma vez que um visitante clica em **Agora não**, ele permanece oculto pelo resto da visita. A janela do chat em si nunca abre sozinha: ela abre quando o visitante clica no botão de chat ou no balão, e permanece aberta até que ele a feche.
- **Velocidade de resposta da IA:** Um controle deslizante entre **Mais lenta** (mais humana — a IA leva um tempo antes de responder) e **Velocidade máxima** (mais robótica — as respostas chegam o mais rápido possível). O modo Equilibrado fica no meio.


#### Idiomas

O widget é multilíngue por padrão — não há nada para ativar.

- **O idioma do visitante é detectado automaticamente.** Primeiro, ele verifica o idioma que sua página declara no HTML (`<html lang="it">`) e, em seguida, recorre ao idioma do navegador do visitante. Se nenhum deles for um idioma que suportamos, ele exibirá em inglês.
- **Ou escolha você mesmo.** O campo **Idioma do widget** na seção Comportamento é definido como Automático por padrão, que é a detecção mencionada acima. Escolha um idioma lá e os próprios rótulos do widget (os campos de Nome, E-mail e Telefone do formulário do visitante e seus textos de exemplo, o aviso de privacidade, os botões) permanecerão nesse idioma, independentemente do que a página ou o navegador indiquem. Use isso quando o construtor do seu site não declarar o idioma correto ou quando você quiser um idioma fixo para todos os visitantes.
- **Idiomas suportados:** Inglês, holandês, alemão, francês, espanhol, italiano, português, romeno, polonês, árabe, finlandês e filipino. Esta é a lista para os botões e rótulos do próprio widget.
- **Suas mensagens são traduzidas para você.** Toda vez que você salva, sua mensagem de abertura, o balão de pop-up proativo e as perguntas iniciais são traduzidos para todos os doze idiomas acima. Você só precisa escrevê-los uma vez, no idioma que preferir.
- **Escreva cada mensagem em apenas um idioma.** Se você colocar dois idiomas no mesmo campo — uma linha em inglês e uma em italiano, por exemplo — o conteúdo inteiro será tratado como uma única mensagem e traduzido como está, fazendo com que um visitante italiano acabe vendo a mesma frase duas vezes. Escreva uma vez, no idioma que preferir.
- **A IA responde no idioma do visitante.** Independentemente do idioma em que alguém digita, seu agente responde no mesmo idioma, não importa qual idioma os rótulos do widget estejam exibindo. Se você preferir que ele responda sempre em um idioma fixo, especifique isso nas instruções do seu agente.

**Dica:** se o seu site não define um atributo `lang` na tag `<html>`, adicione um. É o sinal mais forte que temos para escolher o idioma correto, especialmente para visitantes que navegam do exterior.

#### Captura de leads e privacidade

- **Coletar informações do visitante:** Desativado por padrão. Quando ativado, os visitantes são solicitados a informar seu nome e e-mail (e opcionalmente telefone) antes do início da conversa, para que você capture o lead mesmo que eles saiam no meio do chat.
- **Título do formulário** e **Subtítulo do formulário:** Personalize o cabeçalho e a breve explicação exibidos acima do formulário.
- **Coletar número de telefone:** Ative para solicitar também um número de telefone; desativado, coleta apenas nome e e-mail.

> **Um visitante deixou um número de telefone e saiu do seu site — posso continuar no WhatsApp?** Sim. Abra o chat dele e escolha **Continuar no WhatsApp** no menu de três pontos (o WhatsApp Web ou WhatsApp Business precisa estar conectado). O <span data-t="appName">Your AI Connector</span> cria uma conversa vinculada no WhatsApp para a mesma pessoa, copia seu nome, e-mail e detalhes, e a IA transfere o que foi dito no seu site, para que ninguém precise repetir nada. O chat do site permanece onde está e ambos os chats apontam um para o outro em **Conversas vinculadas** no painel de contato. Veja [Interface de Chat](../chats/chat-interface.md).

> **O agente de IA pode oferecer a mudança para o WhatsApp por conta própria?** Sim, e não precisa de nenhum recurso extra — uma linha nas instruções do agente resolve isso. Crie um [Link Curto](../settings/short-links.md) para o seu número de WhatsApp com uma mensagem preenchida, como "Olá, eu estava conversando no seu site e quero continuar por aqui", então diga ao agente quando enviá-lo, por exemplo: "Se o visitante precisar sair, quiser continuar mais tarde ou pedir pelo WhatsApp, ofereça continuar por lá e envie este link: (seu link curto)". Links no widget são clicáveis, então o visitante chega ao WhatsApp com seu número selecionado e a mensagem pré-digitada, e a primeira mensagem dele abre uma conversa no WhatsApp na sua caixa de entrada. Se o visitante deixou o número de telefone do qual escreve (com código do país) no formulário do widget, o <span data-t="appName">Your AI Connector</span> vincula as duas conversas automaticamente e a IA no WhatsApp já conhece o chat do site, exatamente como em **Continuar no WhatsApp**. Se nenhum número de telefone foi coletado, os dois chats não são vinculados, portanto, mantenha a mensagem preenchida específica o suficiente para que o agente do WhatsApp saiba de onde a pessoa veio.
- **Exigir reconhecimento da política de privacidade:** Opcionalmente, exija que os visitantes aceitem sua política de privacidade antes de conversar e defina a URL para a qual ela aponta.

> **O que o widget armazena no navegador do visitante e preciso colocá-lo atrás de um banner de cookies?** Nada é armazenado apenas pelo carregamento de uma página. O widget não grava cookies nem usa armazenamento do navegador até que o visitante escolha conversar: envie uma primeira mensagem, preencha o formulário de informações do visitante ou aceite sua política de privacidade. A partir desse momento, ele mantém um ID de conversa aleatório e uma cópia da conversa naquele navegador, como armazenamento primário (first-party) em seu próprio domínio, para que o chat ainda esteja lá quando o visitante retornar. Ele não carrega scripts de análise ou rastreamento e não define cookies de terceiros. Como nada é gravado até que o visitante solicite o chat, isso se enquadra no armazenamento estritamente necessário para um serviço solicitado pelo visitante, portanto, você pode carregá-lo sem bloqueá-lo atrás de um banner de consentimento. Se o seu site usa uma ferramenta de consentimento de qualquer maneira, não há problema em manter o widget atrás dela; o chat simplesmente aparecerá assim que o visitante aceitar.


#### Canais e incorporação

- **Botão de anexo:** Permite que os visitantes enviem imagens e arquivos no chat.
- **Seletor de emojis:** Adiciona um seletor de emojis ao lado da caixa de mensagem.
- **Links de canais:** Opcionalmente, inclua links do WhatsApp, Instagram ou Messenger para que os visitantes possam continuar a conversa na plataforma que preferirem. Isso só aparece depois que você conecta um número de WhatsApp, Instagram ou Messenger.
- **Botões de ação:** Uma linha de atalhos na parte superior do chat que leva o visitante a algum lugar em vez de iniciar uma conversa — veja [Botões de ação](#action-buttons) abaixo.
- **Lista de permissão de domínios:** Restrinja quais sites têm permissão para incorporar seu widget. Adicione os domínios onde você o instalou (por exemplo, `example.com` ou `*.example.com`); deixe vazio para permitir qualquer domínio.
- **Encaminhar estes chats para:** Escolha a campanha ou o agente que deve lidar com os chats provenientes do código que você está prestes a copiar. Deixe em **Padrão da conta** para usar o roteamento normal do seu widget de chat. Veja [Enviar páginas diferentes para campanhas diferentes](#send-different-pages-to-different-campaigns) abaixo.
- **Snippet de incorporação:** Escolha **Bolha flutuante** ou **Em linha** e copie o código de instalação (veja abaixo).
- **Link de demonstração para o cliente:** Cole qualquer endereço de site para obter um link compartilhável que abre esse site com seu widget em execução sobre ele — nada para instalar do lado deles. Veja [Mostrar o widget no site de outra pessoa](#show-the-widget-on-someone-elses-website) abaixo.

Na parte inferior do painel, uma ação **Excluir widget de chat** remove o widget do seu site imediatamente — isso não pode ser desfeito e os visitantes não verão mais o balão de chat.

#### Botões de ação

Alguns visitantes não querem conversar. Eles querem seu número de telefone, seu endereço ou seu e-mail, e querem isso com um toque. Os botões de ação são uma linha de atalhos na parte superior do painel de chat exatamente para isso.

Adicione até seis. Cada um tem um **rótulo** (as palavras no botão) e um **destino**, e o destino depende da ação que você escolher:

| Ação | O que o visitante recebe | O que você preenche |
| --- | --- | --- |
| **Ligar** | O discador de telefone deles abre com seu número pronto | Seu número de telefone, ex: `+1 555 123 4567` |
| **Enviar SMS** | O aplicativo de mensagens deles abre um novo texto para você | Seu número de telefone |
| **WhatsApp** | O WhatsApp abre um chat com você | Seu número de WhatsApp ou um link `wa.me` que você já possui |
| **E-mail** | O aplicativo de e-mail deles abre um novo e-mail para você | Seu endereço de e-mail |
| **Direções** | O Google Maps abre com sua localização | Seu endereço ou um link de mapas que você já possui |
| **Link** | A página abre em uma nova guia | Qualquer endereço da web completo começando com `https://` |

**Estes botões não usam créditos.** Tocar em um não envia uma mensagem e não inicia uma conversa — ele apenas leva o visitante para onde ele pediu para ir. Apenas uma conversa real com seu agente de IA usa créditos, exatamente como antes.

Algumas coisas que vale a pena saber:

- **Os botões permanecem visíveis enquanto o visitante conversa.** Alguém pode fazer duas perguntas e ainda tocar em **Direções** depois, sem recarregar a página.
- **Seus rótulos são exibidos exatamente como você os escreveu.** Ao contrário da sua mensagem de boas-vindas e perguntas iniciais, os rótulos dos botões não são traduzidos automaticamente, portanto, se você atende visitantes em vários idiomas, mantenha os rótulos curtos e óbvios (ou escreva-os no seu idioma principal).
- **Preencha um botão corretamente ou ele não será salvo.** Se um número de telefone, endereço de e-mail ou link não for válido, o painel informará isso e bloqueará o botão **Salvar alterações** em vez de publicar um botão que não faria nada em seu site.
- **Eles não são respostas de FAQ.** Os botões de ação apenas enviam as pessoas para outro lugar; eles não respondem com texto pronto. Perguntas são trabalho do seu agente de IA, e ele as responde a partir da sua base de conhecimento. Se você quiser sugerir o que perguntar, use **perguntas iniciais** em Aparência.



#### O que você não pode personalizar

O painel Gerenciar é o conjunto completo de opções. Em particular:

- **Sem CSS personalizado ou folha de estilo.** O estilo é o que os seletores de tema, canto, fonte e cor oferecem — você não pode injetar seu próprio CSS no widget, e as regras da sua página não afetarão o interior dele.
- **Sem texto de espaço reservado (placeholder) personalizado** na caixa de mensagem.
- **Sem restrição geográfica ou de país.** A **Lista de permissões de domínio** limita quais *sites* podem incorporar o widget; não há como exibi-lo ou ocultá-lo com base na localização do visitante. Se você precisar disso, oculte o snippet de incorporação manualmente nas páginas ou para os públicos que você não deseja que o vejam.
- **Sem incorporação de vídeo** dentro do chat.
- **Sem temporizador de ocultação automática.** O balão de convite desaparece sozinho após 20 segundos e esse número não pode ser alterado; a janela de chat aberta nunca se fecha sozinha. Se o balão estiver cobrindo o conteúdo da sua página, mova o widget com os deslocamentos de **Posição** ou desative o balão e mantenha apenas o botão de inicialização.

Se um desses pontos for um impedimento para você, a [incorporação inline](#embed-inline-on-a-page-advanced) oferece o maior controle: o widget fica em um contêiner na sua própria página, que você dimensiona e posiciona como desejar.


### Instruções de Instalação

Para adicionar o widget de chat ao seu site, adicione uma linha de código ao HTML do seu site.

1. Abra o arquivo HTML do seu site em um editor de texto.
2. Encontre a tag de fechamento `</body>` — geralmente ela fica bem no final do arquivo.
3. Cole esta linha de código logo antes da tag `</body>`, para que o restante da sua página seja carregado primeiro:

{% code overflow="wrap" %}
```html
<script src="https://api.youraiconnector.com/v1/chat-widget/CONFIG_ID"></script>
```
{% endcode %}

4. Substitua `CONFIG_ID` pelo seu identificador de configuração exclusivo, exibido na seção **Canais e Incorporação** (Channels & Embed) do painel Gerenciar. Este identificador é específico para sua conta e conecta o widget ao seu sistema de mensagens.

O snippet não deixará seu site lento: é um carregador minúsculo, e o próprio widget é baixado em segundo plano sem bloquear a página. Se você ainda quiser que o widget aguarde até que sua página termine de carregar completamente, você pode envolver a mesma URL desta forma:

{% code overflow="wrap" %}
```html
<script>
window.addEventListener('load', function () {
  var s = document.createElement('script');
  s.src = 'https://api.youraiconnector.com/v1/chat-widget/CONFIG_ID';
  s.async = true;
  document.body.appendChild(s);
});
</script>
```
{% endcode %}

E se o que você deseja atrasar é o pequeno balão de convite em vez do carregamento do widget, esse é o atraso do **Balão de pop-up proativo** na seção Comportamento acima — sem necessidade de código.

Aqui está um exemplo completo de como seu arquivo HTML deve ficar com o widget de chat implementado:

{% code overflow="wrap" %}
```html
<!DOCTYPE html>
<html>
<head>
    <title>My Website</title>
</head>
<body>
    <!-- Your existing website content would be here -->

    <!-- Chat Widget Integration -->
    <script src="https://api.youraiconnector.com/v1/chat-widget/CONFIG_ID"></script>
</body>
</html>
```
{% endcode %}

### Incorporar em Linha em uma Página (Avançado)

Se você preferir que o chat apareça como parte da sua página — por exemplo, dentro de uma seção dedicada de "Fale conosco", uma aba de ajuda ou uma barra lateral — em vez de um balão flutuante no canto, altere **Snippet de incorporação** (Embed snippet) para **Em linha** (Inline) no painel Gerenciar e copie o snippet em linha.

Fica assim:

{% code overflow="wrap" %}
```html
<div data-chat-widget="CONFIG_ID" style="width:100%;height:600px;"></div>
<script src="https://api.youraiconnector.com/v1/chat-widget/embed.js" async></script>
```
{% endcode %}

O `<div>` é o ponto de montagem — o painel de chat é renderizado dentro dele e preenche suas dimensões. Estilize a div como quiser (dê a ela uma altura fixa, coloque-a dentro de um container flex, posicione-a em uma célula de grid, etc.) e o painel de chat seguirá essas definições.

Você só precisa de **uma** tag `<script>` na página, mesmo que esteja incorporando vários widgets de chat. O script verifica a página em busca de cada `<div data-chat-widget="…">` e monta um painel de chat em cada um.

Quando escolher entre inline ou flutuante:

- O **balão flutuante** é ideal para um botão "Precisa de ajuda?" sempre disponível em todo o site.
- A **incorporação inline** é ideal quando o chat deve ficar em um lugar específico — uma página de suporte, uma barra lateral de base de conhecimento, uma aba de ajuda no aplicativo — e parecer uma parte nativa daquela página.

A incorporação em linha reutiliza a mesma configuração do balão flutuante (logotipo, mensagem de abertura, captura de leads, perguntas iniciais, etc.), para que você não precise configurar nada duas vezes.

### Mostrar o Widget no Site de Outra Pessoa

Você pode mostrar seu widget de chat rodando em um site que você não controla — sem necessidade de código ou acesso ao site deles. É a maneira mais rápida de mostrar a um cliente em potencial como o assistente ficaria nas páginas dele.

1. Abra o painel Gerenciar e role até **Canais e Incorporação**.
2. Em **Link de demonstração para cliente**, digite o endereço do site (por exemplo, `www.theircompany.com`).
3. Clique em **Copiar** para copiar o link, ou em **Abrir** para vê-lo você mesmo primeiro.
4. Envie o link para quem você deseja mostrar.

Abrir o link carrega esse site com seu widget de chat flutuando sobre ele, exatamente como pareceria se estivesse instalado. Qualquer pessoa com o link pode abri-lo — não há nada para fazer login.

Algumas coisas que vale a pena saber:

- **Os chats da demonstração são reais.** As mensagens que um visitante envia em uma demonstração chegam à sua caixa de entrada e são respondidas pelo seu agente, e elas usam créditos como qualquer outra conversa.
- **A página não possui marca.** Ela mostra o site deles e seu widget, e nada mais.
- **Alguns sites não podem ser exibidos em frames.** Vários sites (bancos, grandes varejistas, qualquer coisa protegida por configurações de segurança rígidas) impedem que outras páginas os exibam. Quando isso acontece, o link ainda funciona: ele mostra uma janela de navegador simulada neutra em vez do site real, com seu widget ativo sobre ela, para que a demonstração ainda cumpra seu papel.
- **Isso não altera o site deles.** Nada é instalado e nada é modificado — a demonstração existe apenas dentro desse link.

{% hint style="info" %}
O link de demonstração sempre usa o roteamento padrão da sua conta, independentemente do que esteja definido em **Encaminhar estes chats para**. Se você quiser que os chats de demonstração sejam tratados por um agente específico, defina esse agente como o padrão do seu widget de chat primeiro.
{% endhint %}

### Enviar páginas diferentes para campanhas diferentes

Por padrão, todo chat que chega através do seu widget é tratado pela mesma campanha ou agente. Você pode substituir isso por página, para que os visitantes na sua página de preços falem com sua campanha de vendas, enquanto os visitantes na sua página de ajuda falem com seu agente de suporte — tudo a partir do mesmo widget de chat.

Existem duas maneiras de obter o código:

- **A partir da campanha ou do agente.** Na página **Campanhas**, abra o menu **⋮** em uma campanha e escolha **Adicionar ao site**. Na página **Agentes**, clique no botão **&lt;/&gt;** na linha ou abra o agente e vá para a aba **Pontos de entrada**. De qualquer forma, você obterá um snippet pronto para colar, já apontado para essa campanha ou agente.

  A aba **Pontos de entrada** de um agente também possui um painel **Widget de chat no site** que mostra quantos chats de site esse agente já está gerenciando. Chats de um embed chegam ao agente diretamente, portanto, você **não** precisa criar uma regra de ponto de entrada para eles — um agente sem nenhuma regra ainda responde ao seu embed.

  **Adicionar ao site** só aparece em campanhas que estão ativas e configuradas para lidar com chats recebidos. Uma campanha em rascunho ainda não pode receber visitantes, portanto, a opção fica oculta até que você a publique. Na página de Agentes, ela aparece em agentes ativos. Um agente pausado receberia o chat, mas nunca responderia, por isso a opção fica oculta até que você o ative novamente. Não há um canal para configurar para um agente — um agente pode atender um chat de qualquer canal.
- **A partir das configurações do widget.** Em **Configurações → Canais → Gerenciar** no seu widget de chat, defina **Encaminhar estes chats para** e copie o snippet abaixo. Alterar o menu suspenso reescreve o snippet.

O snippet flutuante carrega o destino no endereço:

{% code overflow="wrap" %}
```html
<script src="https://api.youraiconnector.com/v1/chat-widget/CONFIG_ID?campaign=CAMPAIGN_ID"></script>
```
{% endcode %}

O snippet em linha o carrega no `<div>`, para que uma página possa conter vários chats indo para lugares diferentes:

{% code overflow="wrap" %}
```html
<div data-chat-widget="CONFIG_ID" data-campaign="CAMPAIGN_ID" style="width:100%;height:600px;"></div>
<script src="https://api.youraiconnector.com/v1/chat-widget/embed.js" async></script>
```
{% endcode %}

Para um agente, a redação muda para `?agent=AGENT_ID` ou `data-agent="AGENT_ID"`.

Algumas coisas que vale a pena saber:

- Use o botão de copiar em vez de digitar o ID manualmente. Se o ID não corresponder a uma campanha ou agente em sua conta, o chat ainda funcionará, mas retornará ao seu roteamento padrão.
- Alguém que já está no meio de uma conversa permanece com quem começou, mesmo que depois acesse uma página que aponte para outro lugar. Isso evita que uma conversa mude de personalidade no meio do caminho.
- Um destino específico por página tem prioridade sobre o padrão da sua conta e sobre gatilhos de palavras-chave.

### Informe ao Widget quem é o visitante (Avançado)

Se você colocar o widget de chat dentro de uma área de membros, um portal do cliente ou um aplicativo onde as pessoas já estão conectadas, seu site já sabe quem elas são. Você pode repassar essas informações ao widget para que o visitante não precise fornecer detalhes que já informou anteriormente, e para que sua IA possa usar o que você já sabe sobre ele.

Adicione um pequeno bloco de configurações **antes** do script do widget:

{% code overflow="wrap" %}
```html
<script>
  window.chatWidgetSettings = {
    visitor: {
      id: "12345",
      name: "Maria",
      email: "maria@example.com",
      phone: "+391234567890"
    },
    data: {
      plan: "Professional",
      customer_since: "2024",
      last_order: "A-2291"
    }
  };
</script>
<script src="https://api.youraiconnector.com/v1/chat-widget/CONFIG_ID"></script>
```
{% endcode %}

Sua página deve preencher esses valores no lado do servidor, a partir de quem estiver logado.

Duas coisas acontecem:

- **O formulário "Antes de começarmos..." é ignorado.** Com um nome e um e-mail fornecidos, o visitante vai direto para a conversa, e esses detalhes são salvos no contato dele exatamente como se ele os tivesse digitado.
- **Tudo em `data` é repassado para sua IA.** Qualquer coisa que você colocar lá — plano, número do pedido, data de renovação, saldo de crédito, quantos assentos eles possuem — torna-se parte do que a IA sabe sobre aquela pessoa, para que ela possa responder "quando meu plano renova?" sem pedir que eles expliquem quem são primeiro. Use os nomes de campo que fizerem sentido para você; eles aparecerão no contato em Campos Personalizados. Até 20 valores, enviados atualizados a cada mensagem, então, se o plano mudar no meio da conversa, a IA verá o novo.

Para incorporações em linha (inline), você pode colocar as mesmas informações no `<div>`, o que é útil quando uma página contém vários chats:

{% code overflow="wrap" %}
```html
<div data-chat-widget="CONFIG_ID"
     data-visitor-name="Maria"
     data-visitor-email="maria@example.com"
     data-visitor-data='{"plan":"Professional"}'
     style="width:100%;height:600px;"></div>
<script src="https://api.youraiconnector.com/v1/chat-widget/embed.js" async></script>
```
{% endcode %}

Se o seu site só sabe quem é o visitante após o carregamento da página — um aplicativo de página única onde o login ocorre sem recarregar a página, por exemplo — chame isto sempre que tiver os detalhes, e o widget se atualizará:

{% code overflow="wrap" %}
```html
<script>
  window.chatWidget.setVisitor({
    visitor: { id: "12345", name: "Maria", email: "maria@example.com" },
    data: { plan: "Professional" }
  });
</script>
```
{% endcode %}

Algumas coisas que vale a pena saber:

- Se duas pessoas diferentes fizerem login no mesmo computador, a segunda iniciará uma nova conversa em vez de ver o chat da primeira. O widget percebe a mudança de pessoa e se redefine.
- Isso serve para contexto, não para autenticar alguém. As conversas ainda são mantidas separadas como sempre foram, portanto, passar um `id` não permite que ninguém abra o chat de outra pessoa, e alguém usando um dispositivo ou navegador diferente iniciará uma nova conversa lá.
- É opcional. Um widget em uma página pública normal não precisa de nada disso e se comporta exatamente como antes.

### Altere as configurações do widget a partir do seu próprio código (API)

Tudo no painel **Gerenciar** do widget também pode ser alterado por meio da [API REST](../api/reference.md), o que é útil se você gerencia muitos sites ou deseja que o botão de anexo seja desativado automaticamente para um cliente. Envie uma `PATCH` para `https://api.youraiconnector.com/v1/chat-widget-configs/CONFIG_ID` com sua chave de API e apenas os campos que deseja alterar — por exemplo, `{"show_upload_button": false}` oculta o botão de anexo, `{"show_emoji_button": false}` oculta o seletor de emojis e `{"launcher_icon": "chat-dots"}` troca o ícone do iniciador. `CONFIG_ID` é o mesmo identificador usado no seu script de incorporação. A lista completa de campos aceitos (nome, mensagem de abertura, cores, ícone do iniciador, domínios permitidos, formulário de informações do visitante, aviso de privacidade, tema, estilo de canto e fonte) está na [Referência da API](../api/reference.md) em **Widget de Chat**. Os sites aplicam a alteração na próxima vez que a página for carregada.

### O que esperar após a instalação

Depois de adicionar o script ao seu site, o widget de chat criará automaticamente um botão de chat no canto do seu site (canto inferior direito por padrão). O widget permanece em uma posição fixa conforme os usuários rolam suas páginas, garantindo que ele esteja sempre acessível.


Quando os visitantes clicam neste botão, ele se expande para uma janela de chat completa onde eles podem iniciar uma conversa, exibindo sua mensagem de abertura. Se a opção Coletar informações do visitante estiver ativada, um pequeno formulário aparece primeiro solicitando o nome e o e-mail (e, opcionalmente, o telefone) antes que eles possam digitar.


A interface do chat se adapta automaticamente a diferentes tamanhos de tela, funcionando perfeitamente tanto em computadores quanto em dispositivos móveis.

### Testando sua implementação

Após adicionar o widget ao seu site, teste se ele funciona:

1. Abra seu site em um navegador.
2. Clique no botão de chat para abrir o widget.
3. Envie uma mensagem de teste e confirme se você recebe uma resposta.
4. Repita em um dispositivo ou navegador diferente para confirmar se funciona em todos os lugares.


Se o widget de chat não aparecer no seu site, verifique o seguinte:

1. Certifique-se de ter substituído `CONFIG_ID` pelo seu identificador de configuração real.
2. Certifique-se de que a tag de script esteja posicionada antes da tag de fechamento `</body>`.
3. Verifique o código em busca de erros de digitação.

### Atrás de um Firewall Corporativo

Se o widget carrega para o público, mas não para a equipe na rede do escritório, a rede quase certamente está bloqueando o domínio de onde ele é carregado. Peça à sua equipe de TI para permitir, via HTTPS normal na porta 443:

- **O domínio no seu snippet de incorporação** — o endereço na linha `<script src="...">` que você copiou do painel Gerenciar.
- **`api.youraiconnector.com`** — o widget também envia suas mensagens para cá.

Nada mais precisa ser aberto: sem portas extras e sem regras de entrada. Se o widget ainda não aparecer após isso, abra o console do desenvolvedor do seu navegador na página e nos envie o que ele relata — uma solicitação bloqueada nomeia o domínio que foi recusado, o que geralmente é a resposta completa.
