Widget de chamados
O widget roda em Shadow DOM: o CSS do seu sistema não afeta o widget e vice-versa. Funciona idêntico em qualquer framework.
Toda a configuração é remota (Projeto → Widget no dashboard, sem tocar no seu código): campos telefone/setor (obrigatório/opcional/oculto), lista de setores, anexos, captura (página/região/elemento), cores e título (white-label no Studio), posição do botão.
No código, só há dois pontos de contato opcionais:
// abrir de um botão seu (ex.: "Suporte"):
Sentinela.openTicket();
// abrir contextualizado a partir de um erro tratado:
try {
salvarPedido();
} catch (e) {
Sentinela.captureException(e);
Sentinela.openTicket({ tipo: 'erro', titulo: 'Falha ao salvar pedido' });
}O usuário final ganha: formulário com e-mail da sessão travado; captura de área e de elemento (print + seletor CSS/XPath); tarja para ocultar dados sensíveis; protocolo por e-mail; aba "Meus chamados" com a conversa completa. As notas internas da sua equipe nunca aparecem para o usuário.
O que é capturado automaticamente
Erros não tratados (window.onerror), promises rejeitadas, falhas de fetch/XHR (breadcrumbs), navegação, cliques (só o seletor do elemento, nunca o texto digitado), heartbeat com versão.
Nunca capturados: conteúdo de campos, cookies, headers de autorização. Campos com nomes sensíveis (password, token, cpf…) são mascarados antes do envio. Para regras próprias, use beforeSend(event) no init (retorne null para descartar).