Pular para o conteúdo principal

Website Widgets

Incorpore o seu agente de voz IA em qualquer website para que os visitantes possam iniciar uma conversa de voz diretamente a partir do browser. O separador Widgets fornece códigos de embed, opções de personalização e definições de segurança de domínio.

Procura o callback widget?

O Callback Widget funciona de forma muito diferente dos widgets nesta página — em vez de iniciar uma chamada de voz no browser, recolhe o número de telefone do visitante e faz o seu agente ligar de volta. Veja a página dedicada Callback Widget.

Tipos de Widget

Hanc.AI oferece quatro tipos de widget no browser, mais um Callback Widget separado para callbacks telefónicos:

WidgetTag NameDescriçãoMelhor Para
Floating Widgethanc-ai-floating-callBotão orbe que flutua sobre a sua páginaCall-to-action sempre visível
Pill Widgethanc-ai-pill-callBotão compacto em forma de pill colocado inline no seu conteúdoPegada mínima dentro de um layout existente
Pill Floating Widgethanc-ai-pill-float-callMesma forma compacta de pill, mas flutua com a página como o Floating widgetQuando quer estética de pill que segue o visitante enquanto faz scroll
Inline Widgethanc-ai-inline-callBotão de chamada em tamanho real incorporado no conteúdo da páginaSecções dedicadas "Fale Connosco"
Callback Widgethanc-ai-callbackFormulário de número de telefone; agente liga de volta ao visitantePáginas de lead-gen, landing pages de alta intenção — ver Callback Widget

Atributos Comuns

Todos os tipos de widget suportam estes atributos centrais:

AtributoObrigatórioDescriçãoPadrão
agent-idSimO identificador único do seu agente
voice-service-urlNãoSobrepor o URL do voice serviceAuto-detetado
api-base-urlNãoSobrepor o URL base da APIAuto-detetado

Atributos de Display

AtributoDescriçãoValoresPadrão
positionPosição do widget na páginabottom-right, bottom-left, top-right, top-left, staticbottom-right
sizeTamanho do widget em pixelsNúmero120
themeNome do tema de corVer Temas de Cordefault

Atributos de Texto do Botão

AtributoDescriçãoPadrão
button-start-textTexto mostrado no botão em idle"Call"
button-connecting-textTexto mostrado enquanto conecta"Connecting..."
button-end-textTexto mostrado durante uma chamada ativa

Atributos de Terms

AtributoDescriçãoPadrão
terms-enabledAtivar diálogo de consentimento antes da chamadafalse
terms-contentTexto de consentimento formatado em Markdown""
terms-urlLink para a sua página de Termos e Condições"https://hanc.ai/terms"
privacy-urlLink para a sua página de Política de Privacidade"https://hanc.ai/privacy"
informação

Atributos de terms definidos no elemento HTML são sobrepostos pelas definições do widget do agente obtidas via API, a menos que skip-fetch esteja definido como true.

Atributos de Som

AtributoDescriçãoPadrão
sound-enabledAtivar sons de início/fim de chamadatrue
sound-volumeVolume dos efeitos sonoros0.25
sound-presetIdentificador do preset de som"1"

Temas de Cor

Personalize a aparência do widget com 11 temas de cor integrados:

TemaValor
Defaultdefault
Purplepurple
Blueblue
Cyancyan
Emeraldemerald
Amberamber
Tangerinetangerine
Roserose
Emberember
Blackblack
Whitewhite

Cada tema tem variantes dark e light. Defina o tema através do atributo theme no código de embed, ou configure-o nas definições de widget do agente.


Exemplos de Embed

Floating Widget

<hanc-ai-floating-call agent-id="YOUR_AGENT_ID"></hanc-ai-floating-call>
<script src="https://unpkg.com/hanc-webrtc-widgets" async type="text/javascript"></script>

Floating Widget com Tema e Posição

<hanc-ai-floating-call
agent-id="YOUR_AGENT_ID"
theme="emerald"
position="bottom-left"
size="140"
></hanc-ai-floating-call>
<script src="https://unpkg.com/hanc-webrtc-widgets" async type="text/javascript"></script>

Pill Widget

<hanc-ai-pill-call agent-id="YOUR_AGENT_ID"></hanc-ai-pill-call>
<script src="https://unpkg.com/hanc-webrtc-widgets" async type="text/javascript"></script>

Inline Widget

<hanc-ai-inline-call agent-id="YOUR_AGENT_ID"></hanc-ai-inline-call>
<script src="https://unpkg.com/hanc-webrtc-widgets" async type="text/javascript"></script>
Fixar a versão do widget

O URL do script acima carrega sempre o widget mais recente — o seu site recebe melhorias automaticamente. Se precisar de fixar numa versão conhecida e estável, fixe explicitamente com https://unpkg.com/hanc-webrtc-widgets@1.4.0 (substitua pela versão que quiser). A tag @latest é o padrão quando nenhuma versão é especificada.


Eventos do Widget

Os widgets emitem eventos que pode escutar em JavaScript:

EventoDescrição
status-changedDisparado quando o estado da chamada muda
connectingA chamada está a ser estabelecida
connectedA chamada está ativa
idleSem chamada ativa
errorOcorreu um erro
audio-trackFaixa de áudio remota recebida (para visualização)
local-audio-trackFaixa de áudio do microfone local (para visualização)
microphone-enabledO microfone foi ativado
microphone-disabledO microfone foi desativado
call-startDisparado quando uma chamada começa com sucesso
call-endDisparado quando a chamada termina

Exemplo: Escutar Eventos

const widget = document.querySelector('hanc-ai-floating-call');

widget.addEventListener('call-start', () => {
console.log('Call started');
});

widget.addEventListener('call-end', () => {
console.log('Call ended');
});

Requisitos Técnicos

Os widgets exigem que o browser do visitante suporte:

  • WebGL 2.0 — para rendering
  • Web Audio API — para processamento de áudio
  • WebRTC — para comunicação de voz em tempo real

Todos os browsers modernos (Chrome, Firefox, Safari, Edge) suportam estas tecnologias.


Restrições de Domínio

Controle quais websites podem embeber o seu widget de agente.

Domínios Sempre Permitidos

Os seguintes domínios são sempre permitidos independentemente da configuração:

  • hanc.ai (e subdomínios)
  • hanc.me (e subdomínios)
  • localhost

Permitir Todos os Domínios

Por padrão, o seu widget pode ser embebido em qualquer website. Alterne "Allow all domains" nas definições de widget para restringir isto.

Restringir a Domínios Específicos

Quando restringido, adicione cada domínio que deve ser permitido:

  • Introduza nomes de domínio sem https:// (ex.: example.com)
  • Subdomínios precisam de entradas separadas (ex.: www.example.com, shop.example.com)
  • Portas podem ser especificadas (ex.: localhost:3000)
  • Máximo de 50 domínios podem ser whitelisted
Segurança

Para agentes em produção, restrinja os widgets aos seus próprios domínios para prevenir embeds não autorizados.


Termos e Condições

Ative um diálogo de consentimento antes que os interlocutores possam iniciar uma conversa.

Configuração

DefiniçãoDescrição
Enable TermsAtivar/desativar diálogo de termos
Terms ContentTexto de consentimento formatado em Markdown mostrado aos utilizadores (máx 5.000 caracteres)
Terms URLLink para a sua página completa de Termos e Condições
Privacy URLLink para a sua página de Política de Privacidade

Quando ativado:

  • Os utilizadores veem um diálogo de consentimento antes de iniciar uma chamada
  • Têm de clicar "Agree" para prosseguir
  • O consentimento é armazenado localmente no browser
  • O botão Reset Consent limpa o consentimento armazenado para testes

Formatação do Conteúdo

O conteúdo de terms suporta formatação Markdown:

  • Use #### para títulos
  • Use **bold** para ênfase
  • Use quebras de linha para legibilidade

Relacionado