Tutorial: Exibindo um formulário pré-chat ou pós-chat
Este tutorial mostra como você pode exibir um formulário pré-chat antes da abertura do bate-papo na Web ou um formulário pós-chat que é aberto após o fechamento do bate-papo na Web.
Para obter uma versão completa e funcional do exemplo descrito neste tutorial, consulte Formulários pré e pós-chat para chat na web com assistente de IA.
Se quiser coletar informações de seus clientes antes de iniciar uma sessão de bate-papo, você pode exibir um formulário pré-chat antes de abrir o bate-papo na Web. Da mesma forma, talvez você queira exibir um formulário após o encerramento do bate-papo na Web (por exemplo, uma pesquisa de satisfação do cliente). Você pode usar a mesma abordagem para qualquer situação.
Quando o chat online é aberto ou fechado, ele dispara um evento ao qual você pode se inscrever. No seu manipulador de eventos, você pode usar o recurso de painéis personalizados para abrir um painel com conteúdo personalizado.
Ao retornar uma promessa que é resolvida quando o painel personalizado é fechado, você pode pausar o processo de abertura ou fechamento do bate-papo na Web até que o cliente conclua o formulário.
Este exemplo mostra como criar um formulário de pré-chat. Para criar um formulário pós-chat, siga as mesmas etapas, mas use ' !event.newViewState.mainWindow.
Para exibir um formulário de pré-chat, siga estas etapas:
Crie um manipulador para o
view:changeevento, que é acionado quando uma das visualizações do chat na web é alterada (por exemplo, quando a janela principal é aberta). Esse manipulador usa o método de instância 'customPanels.getPanel()para abrir um painel personalizado que contém o formulário pré-chat.
Seu manipulador deve retornar uma promessa que é resolvida quando o painel personalizado é fechado. Isso impede que a janela principal do bate-papo na Web seja aberta até que o formulário pré-chat seja preenchido.
function viewChangeHandler(event, instance) {
const mainWindowOpening = !event.oldViewState.mainWindow && event.newViewState.mainWindow;
if (mainWindowOpening) {
return new Promise((resolve) => {
promiseResolve = resolve;
createOpenPanel(instance);
const customPanel = instance.customPanels.getPanel();
customPanel.open({ hidePanelHeader: true,
disableAnimation: true });
});
}
}
No seu
onLoadmanipulador de eventos, use o métodoon()de instância para se inscrever noview:changeevento, registrando o manipulador como a função de retorno de chamada.
instance.on({ type: 'view:change', handler: viewChangeHandler });
Crie uma função que crie o formulário pré-chat que você deseja exibir dentro do painel personalizado. Certifique-se de resolver a promessa quando o usuário fechar o painel.
function createOpenPanel(instance) {
const customPanel = instance.customPanels.getPanel();
const { hostElement } = customPanel;
hostElement.innerHTML = `
<div class="PreChatForm">
... // Content of pre-chat form
</div>
`;
const okButton = hostElement.querySelector('#PreChatForm__OkButton')
okButton.addEventListener('click', () => {
customPanel.close();
promiseResolve();
});
}
Também está disponível uma versão deste exemplo em React.
Para obter o código completo e funcional, consulte o exemplo de formulários pré e pós-chat para chat web com assistente de IA.