Pular para o conteúdo
AI Support / Dev Center

10 resultados · Esc para fechar

Documentação/Comece por aqui

PRIMEIROS PASSOS

Comece por aqui

Da sessão autenticada à primeira conversa com contexto.

01 · Prepare seu projeto

Confirme o tenant do seu projeto com o operador. No painel, abra Widget integration e instale a credencial de integração no ambiente privado do seu backend. Cadastre as origens web usadas pela integração.

O ID do tenant identifica seu projeto na plataforma. Ele não substitui a organização ou loja do usuário dentro do seu aplicativo.

02 · Solicite a sessão

Seu backend autentica a pessoa e confere vínculo e permissões atuais antes de chamar o emissor. A credencial determina o tenant; a requisição não aceita um tenant livre.

cURL
# Somente no backend. Use variáveis do ambiente privado.
curl --fail-with-body \
  https://support-ai.pontes.uk/api/widget/sessions \
  -H "Authorization: Bearer $SUPPORT_INTEGRATION_CREDENTIAL" \
  -H "Content-Type: application/json" \
  -d '{"userId":"usr_exemplo","userEmail":"","userRoles":["member"],"plan":"standard"}' 

03 · Prepare o contexto

Colete userState, userHistory e userLogs para a mesma pessoa. Devolva sessão e contexto pelo endpoint autenticado do seu aplicativo, com Cache-Control: no-store. Esse endpoint de bootstrap pertence ao seu backend.

  • Use o schema oficial e dados sintéticos no primeiro teste.
  • Não envie credenciais, headers ou registros de outra pessoa.
  • Uma coleta que falhou deve retornar erro; não invente uma lista vazia.

04 · Monte e confira o widget

Carregue o SDK fixado 0.2.2, implemente renovação e destruição da instância. Confirme uma resposta real e o snapshot correspondente antes de liberar.

JavaScript
// Depois de autenticar e revalidar a pessoa no seu backend.
// Estes callbacks são implementados pelo seu aplicativo.
const data = await fetchAuthenticatedBootstrap();
const widget = AISupportWidget.init({
  apiUrl: 'https://support-ai.pontes.uk',
  tenantKey: data.tenantKey,
  jwt: data.jwt,
  context: data.context,
  locale: 'pt-BR',
  theme: 'light',
  position: 'bottom-right',
  onTokenRefresh: async () =>
    (await fetchAuthenticatedBootstrap()).jwt,
  onOpen: async () =>
    widget.updateContext(await fetchAuthorizedContext()),
});
// No logout, troca de pessoa/organização/papel e unmount:
// widget.destroy();
CONTINUE POR AQUIAutenticação