Este documento oferece algumas orientações sobre como eventos podem ser recebidos no frontend, utilizando a renderização por Iframe.
Renderização do Iframe
Na integração, é necessário configurar o Iframe adequadamente para garantir o bom funcionamento do serviço. As configurações necessárias estão presentes no código abaixo:
<iframe
allow="camera; microphone; geolocation; display-capture"
sandbox="allow-scripts allow-same-origin allow-forms allow-popups"
src="https://nuvidio.ai/:companySlug/invite/:inviteId" // ou o short link gerado na criação do invite
allowfullscreen
/>
Recebendo eventos
A aplicação envia eventos baseados nas ações do cliente dentro do Iframe. A comunicação é estabelecida viawindow.postMessage, permitindo a transmissão de dados para a página host.
Exemplo de código
Abaixo temos um exemplo de como a aplicação host pode escutar por esse eventos vindo do Iframe
window.addEventListener("message", ({ data }) => {
if (!data) return;
const dataParsed = typeof data === "string" ? JSON.parse(data) : data;
if (dataParsed.type === "video_autonomous_escaped_journey") {
// Cliente saiu da jornada
}
});
Payload do evento
Os eventos são enviados do Iframe para a aplicação principal seguindo um formato padronizado. Abaixo, encontra-se um exemplo de como o payload de um evento é estruturado:
{
"event": "video_autonomous_escaped_journey",
"content": {
"type": "customer_with_incorrect_data",
"invite": {
"id": "2998600f-4e79-4c31-af93-a38f6c06de87",
"step": "data_validation"
}
}
}
Propriedades dos eventos
event
eventEssa propriedade refere-se ao nome do evento recebido:
event | Descrição |
|---|---|
video_autonomous_step_advance | É disparado quando o usuário avança uma etapa dentro da jornada. A etapa na qual o usuário se encontra será detalhada no parâmetro step do payload do evento. |
video_autonomous_journey_completed | É disparado quando o usuário completa a jornada. |
video_autonomous_abandon_agreement | É disparado quando o usuário abandona a jornada. |
video_autonomous_escaped_journey | É disparado quando o usuário acessa alguma das urls de escape configuradas na criação do script |
type
typeÉ um parâmetro opicional que indica qual o tipo do evento enviado conforme a tabela abaixo:
content.type | Descrição |
|---|---|
customer_accessed_expired_invite | Enviado quando o cliente tenta acessar um link de convite que já expirou. |
customer_with_incorrect_data | Enviado quando o cliente clica em Meus dados estão incorretos durante a etapa de validação de dados no início da jornada. |
customer_asked_for_help | Enviado quando o cliente clica em Preciso de Ajuda em em qualquer etapa da jornada. A etapa específica em que o pedido de ajuda ocorreu será detalhada no parâmetro step do payload do evento. |
Observação:
Essa propriedade está presente somente no evento
video_autonomous_escaped_journey.
invite
inviteÉ um objeto que contém os dados do invite utilizado no momento em que o evento foi disparado:
content.invite | Descrição | Valor |
|---|---|---|
id | Refere-se ao id do invite utilizado. | string |
step | Refere-se à etapa do invite na qual o evento foi disparado. | InviteStatus |
A tabela a seguir detalha os valores que o parâmetro step pode ter, juntamente com suas descrições:
InviteStatus | Descrição |
|---|---|
'document_validation' | Refere-se a etapa de validação do CPF do cliente |
'data_validation' | Refere-se a etapa de verificação dos dados do cliente |
'tips' | Refere-se a etapa de instruções de uso da câmera e microfone |
'facial_validation' | Refere-se a etapa de validação facial (biometria) |
'agreement' | Refere-se a etapa da jornada dos scripts (leitura e resposta do usuário) |
'rating' | Refere-se a etapa de avaliação do processo pelo cliente |
'journey_completed' | Refere-se a etapa de conclusão do processo |
'handover' | Refere-se ao transbordo do cliente para a video chamada tradicional |
Observação
As etapas
document_validation,facial_validation,ratingehandovernem sempre estão presentes no fluxo seguido pelo cliente e varia conforme a configuração do script criado. Para mais informações veja a documentação de criação de scripts.A etapa
agreementengloba todas as mensagens presentes nos scripts cadastrados no invite utilizado, portanto, o eventovideo_autonomous_step_advancenão é emitido ao trocar as mensagens do script, somente quando o cliente avança para a próxima etapa.
Atenção: Considerações sobre Segurança para URLs Externas
Ao utilizar URLs externas para redirecionamentos dentro da jornada (como em links de ajuda ou suporte), é fundamental verificar se o site de destino permite ser carregado em um Iframe. Isso geralmente é controlado por cabeçalhos de segurança HTTP como
X-Frame-Optionsou pela diretivaframe-ancestorsna Content Security Policy (CSP).Caso o site externo não esteja configurado para permitir isso, o conteúdo pode ser bloqueado pelo navegador, impedindo a visualização ou o redirecionamento.
