Seu widget de chat não deveria mandar o visitante embora para ler a resposta

Product

O widget de chat do Kookee tinha uma tarefa e a cumpria bem: o visitante faz uma pergunta, o assistente responde com base na central de ajuda e cita o artigo que usou. Aí o visitante clica na citação, e o widget falha com ele. O navegador sai da página ou abre uma aba nova, e a conversa que produziu a resposta fica em algum lugar para trás.

O clique que deveria ser o melhor momento da conversa era o que a encerrava.

Por isso refiz o widget. Ele não é mais só um chat: tem três abas — Início, Perguntar e Ajuda — e um leitor de artigos. Saiu hoje, e estas são as regras que segui.

O Início do widget: uma saudação, uma caixa de pergunta, o anúncio mais recente e três links

1. O artigo abre onde a pergunta foi feita

Uma fonte abaixo de uma resposta, um link dentro de uma, um artigo numa lista: todos agora abrem dentro do widget, num leitor com botão de voltar. A página atrás dele não se mexe, e a conversa também não.

O leitor é a página de artigo da central de ajuda no tamanho do widget: um índice, o mesmo voto “Este artigo foi útil?” e um botão Perguntar sobre este artigo, que leva o título do artigo para o chat. Um post do blog ou uma entrada do registro de alterações abre do mesmo jeito e ganha botões de reação no lugar do voto.

Um artigo de ajuda aberto dentro do widget, com índice, voto de utilidade e o botão Perguntar sobre este artigo

Se seu site já trata os cliques nas fontes por conta própria, nada muda: seu handler continua tendo prioridade, e o leitor não entra no caminho.

2. Nem toda visita começa com uma pergunta

Um chat vazio pede ao visitante que faça primeiro a parte mais difícil: colocar o problema em palavras. Muita gente abre um widget de suporte para dar uma olhada — ver se algo está quebrado, o que mudou ou se existe um artigo com um título mais ou menos certo.

O Início é para essas pessoas. Ele mostra seu anúncio mais recente, seus próprios links, as entradas mais novas do registro de alterações e os posts mais novos do blog, e os artigos de ajuda mais vistos, com uma caixa de pergunta no topo para quem já sabe o que perguntar. A Ajuda é a própria central de ajuda: uma caixa de busca e suas coleções, cada uma com o número de artigos.

A aba Ajuda: uma caixa de busca e três coleções com o número de artigos de cada uma

Nada disso é conteúdo novo. Início e Ajuda são montados com o que você já publica, e uma lista sem nada fica de fora em vez de aparecer vazia.

Perguntar é o chat de sempre, com sua saudação e algumas perguntas sugeridas para o primeiro toque.

A aba Perguntar com uma saudação e três perguntas sugeridas

O melhor lugar para a ajuda é ao lado do que ela explica: um ponto de interrogação perto de um campo de configuração, um link “Como funciona a cobrança?” na página de preços. Até agora esse link precisava levar para outro lugar.

Basta um atributo em qualquer elemento para que o clique abra o artigo no widget:

HTML
<a href="/help/getting-started" data-kookee-article="getting-started">Como começar</a>

Dois detalhes importam aqui. O href continua, então o link ainda funciona quando o widget está bloqueado ou não carregou. E um clique com Ctrl, Cmd ou Shift pressionado, ou com o botão do meio do mouse, não é interceptado: quem pede uma aba nova ganha uma aba nova. As regras completas estão em Abra artigos de ajuda dentro do widget.

4. Os textos ficam no painel, a aparência fica no seu código

Nesta eu fui e voltei várias vezes. Um widget tem dois tipos de configuração, e cada um pede um lugar diferente.

O que ele diz — abas, título, saudação, perguntas sugeridas e links — muda com frequência e raramente é decisão de um desenvolvedor. Isso fica salvo no painel, na aba Personalizar, com pré-visualização ao vivo, e uma alteração salva chega ao seu site em cerca de um minuto, sem deploy.

A aba Personalizar: Início, Perguntar e Ajuda ativados, com a pré-visualização ao vivo do widget ao lado

A aparência — tema, posição, cor de destaque, botão do widget — não fica salva em lugar nenhum. Ela fica no snippet do seu site. Uma aparência buscada no servidor chega depois que o botão já foi desenhado, e por isso a tela pisca; além disso, o mesmo projeto muitas vezes roda em mais de um site, e esses sites não devem ter a mesma cara. O painel ajuda mesmo assim: a aba Instalação é um pequeno construtor com pré-visualização que escreve o snippet para você.

O passo 2 da aba Instalação: uma tag de script com a chave de API, a cor de destaque e o texto do botão

Onde os dois se sobrepõem, o código tem prioridade, chave por chave. Um site em vários idiomas passa os textos traduzidos no código e deixa o painel decidir o resto.

5. A requisição de configurações nunca pode derrubar o widget

Configurações salvas significam que o widget agora as pede ao servidor, e uma requisição nova é mais uma forma de falhar. Por isso dei a ela o mínimo de poder que consegui:

  • É feita uma vez por carregamento de página, e o navegador guarda a resposta por um minuto.

  • Não conta na sua cota mensal da API. Cota não existe para contar uma consulta de configurações a cada visualização de página.

  • Se falhar, o widget volta a ser o chat simples de antes. O visitante vê menos abas, nunca um erro.

O que deixei de fora

Isto não é um chat ao vivo. Não há atendente esperando do outro lado: o assistente responde com base nos seus artigos, e suas instruções dizem para onde ele deve mandar as pessoas quando não souber responder.

O widget também não se ativa sozinho. Todo widget já instalado continua um chat simples até você marcar as abas no painel.

Como ativar

A tag de script recebe a atualização sem nenhuma mudança no seu site. No React, atualize para @kookee/react 1.11.0 e @kookee/sdk 1.11.0. Depois abra Widget do site → Personalizar no seu projeto e ative as abas — Adicione as abas Início e Ajuda ao seu widget mostra o passo a passo, e Instale o widget no seu site cobre a primeira instalação.