Sim — dá para criar um sistema simples de chamados usando Google Forms e Google Sheets, sem comprar uma plataforma de help desk. O formulário recebe a solicitação, a planilha vira a fila de atendimento e, com um pequeno script opcional, cada pedido pode ganhar um número e um aviso por e-mail.
Esse modelo funciona bem para suporte interno, assistência técnica, condomínio, escola, clínica pequena ou qualquer negócio que precise parar de depender de mensagens espalhadas. Ele não substitui um sistema profissional com SLA e permissões avançadas, mas resolve a primeira etapa com ferramentas que muita gente já conhece.

Como o sistema de chamados funciona
O fluxo é curto:
- a pessoa preenche o Google Forms;
- as respostas são enviadas para uma planilha do Google Sheets;
- a equipe acompanha as solicitações por status, prioridade e responsável;
- um script pode criar o identificador do chamado e mandar uma confirmação.
O Google confirma que as respostas de um formulário podem ser vinculadas a uma planilha pelo menu Respostas. Já o Apps Script oferece gatilhos instaláveis, incluindo o evento de envio de formulário para uma planilha. Em português claro: o código pode ser executado automaticamente quando uma nova linha chega.
1. Crie o formulário de abertura
Acesse o Google Forms e crie um formulário em branco. O objetivo não é fazer um interrogatório: pergunte apenas o que ajuda a identificar e resolver o pedido.
Uma estrutura inicial pode ter estes campos:
- Nome: quem está abrindo o chamado;
- E-mail: endereço para receber atualizações;
- Assunto: resumo curto do problema;
- Descrição: o que aconteceu, com mensagens de erro e contexto;
- Prioridade: baixa, normal ou alta;
- Anexo: opcional, quando a pessoa precisar enviar uma captura de tela.
Marque como obrigatórios o nome, o e-mail, o assunto e a descrição. No campo de e-mail, use validação de resposta ou a opção de coletar endereços, mas avise o usuário sobre essa coleta. Se o formulário for público, evite pedir dados sensíveis que não sejam necessários para o atendimento.
2. Envie as respostas para o Google Sheets
Abra a guia Respostas do formulário e clique no ícone do Google Sheets. Você pode criar uma planilha nova ou selecionar uma existente. A planilha receberá uma linha para cada resposta, com a data e hora do envio e as respostas das perguntas.
Na primeira linha da aba de respostas, acrescente colunas de controle depois das colunas criadas pelo Forms:
| Coluna | Uso |
|---|---|
| ID | Número usado para localizar o chamado |
| Status | Aberto, Em atendimento, Aguardando cliente ou Resolvido |
| Responsável | Pessoa que assumiu o atendimento |
| Prazo | Data combinada para retorno |
| Observações internas | Anotações que não devem ser enviadas ao solicitante |
Não renomeie as colunas geradas pelo formulário depois de configurar o script, a menos que você também altere os nomes no código. O Apps Script usa o texto dos cabeçalhos e das perguntas para encontrar os dados.
3. Configure status e prioridade para evitar bagunça
Na coluna Status, crie uma lista suspensa com opções padronizadas. Isso é mais importante do que parece: se uma pessoa escreve “em andamento” e outra escreve “Em atendimento”, os filtros passam a tratar o mesmo estado como duas coisas diferentes.
Uma sequência prática é:
- Aberto: chegou e ainda não foi analisado;
- Em atendimento: alguém está trabalhando nele;
- Aguardando cliente: falta uma informação ou ação do solicitante;
- Resolvido: a solução foi entregue;
- Cancelado: o pedido não será executado.
Depois, use filtros para visualizar apenas os chamados abertos ou atribuídos a uma pessoa. Uma formatação condicional também ajuda: amarelo para “Aguardando cliente”, vermelho para prioridade alta e verde para “Resolvido”.
4. Automatize o ID e o aviso por e-mail com Apps Script
Se quiser automatizar a triagem, na planilha abra Extensões > Apps Script, apague o conteúdo inicial e cole o código abaixo. Ele procura as colunas pelo cabeçalho, gera um ID com base no número da linha, define o status inicial e envia uma confirmação.
function aoEnviarChamado(e) {
const aba = e.range.getSheet();
const linha = e.range.getRow();
const ultimaColuna = aba.getLastColumn();
const cabecalhos = aba.getRange(1, 1, 1, ultimaColuna).getValues()[0];
const coluna = (nome) => cabecalhos.indexOf(nome) + 1;
const idCol = coluna('ID');
const statusCol = coluna('Status');
if (idCol < 1 || statusCol < 1) {
throw new Error('Crie as colunas ID e Status na primeira linha.');
}
const id = 'CH-' + String(linha - 1).padStart(6, '0');
aba.getRange(linha, idCol).setValue(id);
aba.getRange(linha, statusCol).setValue('Aberto');
const valores = e.namedValues || {};
const email = (valores['E-mail'] || [''])[0];
const assunto = (valores['Assunto'] || ['Sem assunto'])[0];
if (email) {
MailApp.sendEmail({
to: email,
subject: 'Chamado ' + id + ' recebido',
body: 'Recebemos sua solicitação sobre "' + assunto + '".\n\nSeu número de chamado é ' + id + '. Guarde este código para acompanhar o atendimento.'
});
}
}
Importante: troque “E-mail” e “Assunto” no código para corresponder exatamente ao texto das suas perguntas. Se a sua pergunta se chama “Seu melhor e-mail”, por exemplo, o script precisa usar esse mesmo nome.
5. Crie o gatilho que executa o código
No editor do Apps Script, salve o projeto e abra a área de Gatilhos no menu lateral. Crie um gatilho para a função aoEnviarChamado com estas opções:
- Origem do evento: Da planilha;
- Tipo de evento: Ao enviar formulário.
Na primeira execução, o Google pedirá autorização para acessar a planilha e enviar e-mails. Isso é esperado: um gatilho instalável roda com a autorização da conta que o criou. O Google também diferencia o gatilho de envio de formulário da própria planilha do gatilho ligado diretamente ao Forms; para este tutorial, escolha o evento da planilha vinculada às respostas.
Envie uma resposta de teste pelo formulário. Na planilha, confira se a nova linha recebeu um ID e o status “Aberto”. Depois, verifique se o endereço usado no teste recebeu a confirmação. Se nada acontecer, abra o painel Execuções do Apps Script: ali normalmente aparece se houve erro de coluna, autorização ou limite de envio.
6. Transforme a planilha em uma fila de atendimento
Com alguns chamados preenchidos, crie filtros ou uma segunda aba de resumo. Não precisa começar com um dashboard cheio de gráficos. Três indicadores já ajudam:
- quantos chamados estão abertos;
- quantos estão aguardando resposta do cliente;
- quantos foram resolvidos no período.
Se você já usa Apps Script para automatizar tarefas no Sheets, pode complementar o fluxo com lembretes e e-mails — o guia do JSMS sobre e-mails automáticos pelo Google Sheets mostra uma aplicação relacionada.
Limitações antes de usar em uma operação maior
Esse sistema é barato e flexível, mas não é mágico. A planilha não oferece, por padrão, uma central completa de SLA, histórico de conversas, permissões refinadas, auditoria ou portal para o cliente. Também é preciso cuidar do compartilhamento: quem tem acesso à planilha pode ver informações de outras pessoas.
O envio por Apps Script está sujeito a cotas e autorizações da conta Google. Para poucos chamados por dia, isso costuma ser suficiente; em uma operação com muitos atendimentos, valide os limites atuais da sua conta e considere um sistema dedicado. Se o assunto envolver dados médicos, financeiros ou documentos pessoais, revise a política de acesso e retenção antes de colocar o formulário no ar.
FAQ
Preciso pagar para criar esse sistema?
Não necessariamente. Google Forms, Sheets e Apps Script podem ser usados com uma conta Google, mas recursos de administração, armazenamento e políticas de uma organização dependem do tipo de conta Google Workspace.
Posso usar o mesmo formulário para suporte interno e externo?
Pode, mas separar os fluxos costuma ser mais seguro. Um formulário interno pode pedir setor e patrimônio, enquanto o externo deve coletar apenas os dados necessários para atender o cliente.
O que faço se o e-mail automático não for enviado?
Confira se o cabeçalho usado no código é idêntico ao nome da pergunta, se o gatilho está ligado à planilha e se a conta autorizou o envio. Em seguida, consulte o painel de execuções do Apps Script para ver o erro registrado.
Créditos das imagens
Imagem destacada: Pokemonprime/Wikimedia Commons, licença CC BY 4.0. Imagem do formulário: Syx1/Wikimedia Commons, licença CC BY-SA 4.0.