Qual é a sua necessidade?
Caso A – solução simples, para qualquer situação: um gráfico das respostas, atualizado automaticamente sempre que uma nova resposta chega.
Caso B – para equipas que analisam diferentes grupos: uma tabela dinâmica que pode ser filtrada por canal, idioma ou qualquer outra coluna.
Cada resposta que o seu inquérito Survio recolhe é inserida automaticamente como uma nova linha numa folha do Google Sheets assim que é submetida. Construa um gráfico ou uma tabela dinâmica sobre ela apenas uma vez e o relatório ficará sempre atualizado: não precisa de exportar, copiar ou esperar que alguém prepare os números.
Este é o relatório do Caso A, um gráfico que se atualiza a cada nova resposta:
Este é o exemplo do Caso B, uma tabela dinâmica filtrada por canal com recurso de fatiador:
Como funciona. O Survio envia cada resposta completa para um URL de webhook. Uma ferramenta de automação (utilizamos o n8n neste guia) recebe a resposta e grava uma linha na folha. O Survio faz o envio, o n8n grava e a folha faz o relatório.
É novo nos webhooks do Survio? Comece por Webhooks: envie respostas para as suas outras ferramentas em tempo real antes de regressar aqui.
O que vai construir
Ambos os relatórios baseiam-se na mesma configuração: cada resposta concluída transforma-se numa linha no separador responses.
Resumo rápido | Caso A: um gráfico | Caso B: relatório por segmento |
Resultado | Um gráfico de como as respostas estão distribuídas, sempre atualizado com cada nova resposta | Uma tabela dinâmica que pode ser filtrada por canal, idioma ou qualquer outra coluna |
Ferramentas | Survio, n8n, Google Sheets | Survio, n8n, Google Sheets (tabela dinâmica e fatiador) |
Ideal para | Uma pequena empresa que quer um gráfico simples e sempre atualizado | Uma equipa que compara grupos, por exemplo, clientes online e em loja física |
Antes de começar
Um inquérito Survio num plano pago. Os webhooks não estão disponíveis no plano Free e cada plano permite um número definido de webhooks por inquérito (consulte o artigo sobre webhooks).
Uma conta n8n (n8n Cloud ou auto-hospedado).
Conta Google para Google Sheets.
Neste guia usamos um breve inquérito de satisfação do cliente: classificação por estrelas, uma pergunta de escolha—"No geral, quão satisfeito está?", "Como efetuou a compra desta vez?"—, campo de comentário aberto e pergunta de e-mail opcional. O seu inquérito pode variar; faça o mapeamento das perguntas no passo 5.
Passo 1 — Preparar a folha
Crie uma nova folha no Google Sheets e renomeie o primeiro separador como
responses.Na linha 1, escreva os nomes das colunas. Usamos:
Response ID,Submitted,Rating (1-5),Satisfaction,Channel,What could we do better,E-mail,Order ID,LanguageeSource.
Mantenha Response ID como a primeira coluna. É o identificador único do Survio para cada resposta. O n8n utiliza para atualizar a linha existente, em vez de adicionar uma duplicada caso a entrega seja repetida.
Passo 2 — Criar o webhook no n8n
No n8n, crie um novo workflow e adicione um nó Webhook como gatilho.
Defina o Método HTTP como POST.
Mude para o separador Production URL e copie o endereço.
Clique em Publish. O Production URL só aceita entregas após a publicação do workflow.
Use sempre o Production URL, não o Test URL. O Test URL só funciona enquanto o editor aguarda um teste, por isso as entregas do Survio falham assim que o editor for fechado. O Survio tenta reenviar a entrega durante cerca de um dia; após 5 dias de falhas, desativa o webhook.
Passo 3 — Ligar o inquérito no Survio
Abra o seu inquérito e vá a Recolher respostas.
Na barra lateral esquerda, em Automations & Integrations, selecione Webhooks e clique em + Adicionar um webhook.
Cole o Production URL do n8n em URL do Webhook e clique em Salvar webhook. O webhook é ativado de imediato.
Passo 4 — Envie uma resposta de teste e identifique os IDs das perguntas
Abra o inquérito pelo link normal e submeta uma resposta completa. O Survio só envia respostas completas, por isso vá até ao fim.
No n8n, abra o separador Execuções. A entrega chega em poucos segundos.
Abra a execução e clique no nó Webhook. Expanda
body, depoisdata, depoisanswers. Cada resposta mostra oquestion.id, olabelda pergunta e aanswer.Anote o ID de cada pergunta que quiser como coluna. Também pode clicar em Pin para continuar a configurar sem reenviar o inquérito.
Escolha sempre as respostas pelo ID da pergunta. As respostas chegam sob a forma de lista. Se adicionar uma pergunta ao inquérito mais tarde, as posições mudam e pode preencher colunas erradas. O ID da pergunta nunca muda.
Procura o e-mail do respondente? Não use data.email: fica vazio se o e-mail vier de uma pergunta ou parâmetro no URL. Leia a resposta à pergunta de e-mail ou veja em data.parameters.
Passo 5 — Transforme cada resposta numa linha
Isto requer dois nós: Prepare row extrai as respostas, e Save response to sheet grava-as na folha.
Prepare row
Adicione um nó Edit Fields (Set) depois do Webhook e renomeie-o para
Prepare row.Em Fields to Set, adicione um campo para cada coluna e mantenha o tipo String. O nome tem que corresponder exatamente ao cabeçalho; o valor é a expressão abaixo.
Substitua os IDs das perguntas (90403153 etc.) pelos IDs anotados no passo 4 e Europe/Prague pelo seu fuso.
Nome do campo | Valor |
Response ID |
|
Submitted |
|
Rating (1-5) |
|
Satisfaction |
|
Channel |
|
What could we do better |
|
| |
Order ID |
|
Language |
|
Source |
|
Save response to sheet
Adicione um nó Google Sheets depois do Prepare row, renomeie para
Save response to sheete escolha a operação Append or Update Row.Ligue a sua conta Google e, em Document, escolha a folha (da lista, ou cole o ID em By ID) e o separador
responsesem Sheet.Defina Mapping Column Mode como Map Automatically e Column to match on como Response ID.
Por que um passo separado Prepare row? Sempre que selecionar outra folha ou separador no nó Google Sheets, o n8n apaga o mapeamento das colunas desse nó. Ao usar as expressões em Prepare row, nada se perde: o Google Sheets só faz a correspondência de nomes de campo com os cabeçalhos.
Clique em Publish novamente. As alterações feitas depois da publicação só ficam ativas após clicar de novo em Publish.
Algumas observações sobre as expressões utilizadas:
Perguntas de escolha chegam como
{ ids, labels, value }.labels[0]mostra o texto assinalado. Para perguntas de escolha múltipla, uselabels.join(', ')para juntar tudo numa célula.valueé o texto da opção "Outra".As datas e horas vêm em UTC. A expressão Submitted converte para o seu fuso horário, e o Google Sheets trata a coluna como data/hora para ordenar e agrupar.
Parâmetros de URL com hífen (ex:
order-id) precisam do formato entre colchetes:parameters['order-id']. O Survio não permite underscores em parâmetros.O título do inquérito não está presente nos dados enviados pelo Survio. Se vários inquéritos escreverem na mesma folha, adicione uma coluna “Inquérito” e crie um campo correspondente no Prepare row.
Submeta outra resposta. Surge uma nova linha na folha em poucos segundos.
Caso A — Gráfico das respostas
Adicione um separador chamado
report.Escreva
Satisfactionem A1 eResponsesem B1. Em A2 a A6, insira as opções exatamente como aparecem no seu inquérito.Em B2, insira
=COUNTIF(responses!D:D,A2)e arraste até B6.Selecione A1:B6 e escolha Inserir → Gráfico. O Google Sheets sugere um gráfico de colunas. Para alterar o título, vá a Personalizar → Títulos do gráfico e dos eixos.
A cada nova resposta, uma linha é acrescentada ao separador responses e as contagens e o gráfico são atualizados automaticamente, como no início deste artigo.
Caso B — Comparar grupos com tabela dinâmica
No separador
responses, selecione a tabela e escolha Inserir → Tabela dinâmica, depois Nova folha.Em Linhas, adicione Satisfaction. Em Valores, adicione Response ID e mude Resumir por de SUM para COUNTA.
Vá a Dados → Adicionar um fatiador e selecione a coluna Channel. Selecione os valores pretendidos e confirme com OK. O relatório ficará como o exemplo deste artigo.
Pode filtrar por qualquer coluna: Channel (a sua pergunta), Language (idioma do inquérito), Source (origem da resposta, como link direto ou convite por e-mail) ou Order ID.
A seleção do fatiador não é guardada para próximas visitas. Ao reabrir o ficheiro, o fatiador mostra todos os valores. Para manter uma seleção, defina-a como padrão no menu do fatiador.
Obter workflow pronto
Em vez de construir manualmente os passos 2 e 5, faça download do nosso workflow. Baixe o ficheiro survio-responses-to-google-sheets.json nos anexos ao fim deste artigo e siga:
No n8n, crie um workflow em branco. Abra o menu (três pontos ao lado do nome) e selecione Importar, depois De ficheiro. Selecione o ficheiro descarregado.
Abra o nó Prepare row e substitua os IDs das perguntas pelos seus e Europe/Prague pelo seu fuso horário.
Abra Save response to sheet. Aparece um aviso a vermelho até configurar. Ligue a sua conta Google e escolha a folha e o separador
responses. O n8n muda Mapping Column Mode para Map Each Column Manually; volte a Map Automatically e selecione Column to match on como Response ID.Abra Survio Webhook, copie o Production URL para o Survio (passo 3) e clique em Publish.
Testar tudo de ponta a ponta
Submeta uma resposta pelo link do inquérito. Aparece uma linha no separador
responsesem segundos.Verifique se a coluna Response ID está preenchida. É isso que previne duplicados.
No n8n, confira o separador Execuções. Ficam registadas todas as entregas e respetivos dados.
Resolução de problemas
Sintoma | Causa | Solução |
Nada chega ao n8n | Está a usar o Test URL no Survio ou o workflow não foi publicado | Copie o Production URL para o Survio e clique em Publish |
O Survio não aceita o URL do webhook de um n8n auto-hospedado | O n8n mostra um endereço interno em vez do público | Defina a variável |
"Listen for test event" não mostra nada após submeter o inquérito | Survio envia para o Production URL; o listener ouve só o Test URL | Veja antes o separador Execuções |
A última alteração não teve efeito | O workflow estava publicado, mas a alteração não (o botão Publish mostra um ponto) | Clique em Publish novamente |
A mesma resposta aparece duas vezes | A operação está como Append Row, ou não tem coluna para corresponder | Use Append or Update Row e combine pelo Response ID |
Uma coluna fica vazia e aparece uma nova coluna no final da folha | Nome no Prepare row não corresponde ao cabeçalho | Renomeie o campo em Prepare row para corresponder ao cabeçalho e elimine a coluna extra |
Uma célula mostra [object Object] | Pergunta de escolha mapeada sem usar | Use |
Colunas ganham respostas erradas após editar o inquérito | As respostas são escolhidas pela posição na lista | Escolha pelo |
A coluna E-mail fica vazia | Mapeado de | Leia o e-mail da resposta à pergunta de e-mail ou em parâmetro no URL |
Faltam respostas anteriores à configuração | Os webhooks só enviam respostas submetidas após a sua criação | Exporte as respostas antigas do Survio e cole-as |
O Survio desativou o webhook | O URL do webhook falhou durante 5 dias | Corrija a causa e volte a ligar o webhook no Survio |
Informações úteis
O Survio só envia respostas concluídas, uma por mensagem, em segundos.
Nada é enviado retroativamente: não há respostas anteriores ao webhook nem respostas durante pausas.
Uma entrega com falha é repetida até 8 vezes em cerca de 27 horas; cada tentativa espera até 30 segundos. Combinar pelo Response ID torna estas repetições seguras.
Se as entregas falharem durante 5 dias seguidos, o Survio desativa o webhook e irá precisar de o reativar manualmente.
Pausar um webhook mantém a vaga; eliminar é permanente.
O Survio não guarda histórico de entregas. Use o separador Execuções no n8n como registo.
O envio de respostas para webhooks não consome respostas do seu plano.
Pretende que façamos a configuração? Na página de Webhooks do Survio, clique em Obter configuração com perito, descreva o que gostaria que acontecesse e a nossa equipa monta, testa e entrega-lhe o webhook funcional.
