Alertas do Formulários GoogleDesenvolvimento e personalização

Um Google Apps Script que envia por e-mail cada nova resposta do Formulários Google, bem organizada e para a pessoa certa

Normalmente fica pronto em 15 minutosAjustes incluídosControle de qualidade
Pacotes
Pagamento protegidoDetalhes
  • Os ajustes previstos no pacote são gratuitos.
  • Se você não responder em 3 dias após a entrega, o trabalho é aprovado automaticamente.

O dinheiro fica reservado no pagamento e só é liberado quando você aprova o trabalho.

Um Google Apps Script que envia por e-mail cada nova resposta do Formulários Google, bem organizada e para a pessoa certa

Exemplo de resultado

Exemplo do pacote Padrão

Juntando os arquivos mensais de vendas de 9 lojas em um só relatório do Excel

Como ele é executado

python merge_sales.py --month 2026-10
2026-11-02 09:14:03 INFO  Pasta: sales/2026-10, 9 arquivos encontrados
2026-11-02 09:14:03 INFO  shop-01.csv: 1.284 linhas
2026-11-02 09:14:04 INFO  shop-02.xlsx: 967 linhas
2026-11-02 09:14:04 WARN  shop-07.csv: 3 linhas sem preço ignoradas (linhas 88, 412, 913)
2026-11-02 09:14:05 INFO  Pronto: 10.412 linhas -> report-2026-10.xlsx (abas "Vendas" e "Totais")

Configurações, não código

Os nomes das colunas de cada loja ficam no settings.ini, então uma loja nova ou uma coluna renomeada é só uma linha ali:

[columns]
date = Data, Data da venda, Dia
product = Produto, Item, Descrição
quantity = Qtd, Quantidade, Unid
price = Preço, Preço unitário

Um trecho do código

def read_shop_file(path: Path, columns: dict[str, list[str]]) -> pd.DataFrame:
    """Lê o arquivo de uma loja e dá a ele os nomes de colunas do relatório."""
    table = pd.read_excel(path) if path.suffix == ".xlsx" else pd.read_csv(path, encoding="utf-8-sig")
    renamed = {}
    for name, variants in columns.items():
        found = next((c for c in table.columns if c.strip() in variants), None)
        if found is None:
            raise ReportError(f"{path.name}: nenhuma coluna para '{name}' (procuradas: {', '.join(variants)})")
        renamed[found] = name
    table = table.rename(columns=renamed)[list(columns)]
    table["shop"] = path.stem
    return table

Arquivos: um arquivo ZIP com merge_sales.py (310 linhas), settings.ini, requirements.txt e um README que explica como instalar o Python, como rodar o script e o que significa cada mensagem do registro. O cliente roda o script no próprio computador.

Cliente: uma pequena rede de 9 papelarias; cada loja envia as vendas do mês em um arquivo CSV ou Excel, com nomes de colunas um pouco diferentes. Tarefa: um script que lê todos os arquivos de uma pasta, deixa as colunas em um só formato e grava um único relatório do Excel com todas as vendas e uma aba de totais por loja.

O cliente e todos os dados são fictícios.

Sobre este serviço

O Formulários Google consegue avisar que chegou uma nova resposta, mas não o que ela diz, nem para o colega que cuida daquela cidade ou serviço. Este Google Apps Script roda cada vez que alguém envia o seu formulário e manda um e-mail com as respostas bem organizadas: as perguntas em negrito, as respostas embaixo e um link para a planilha de respostas. A partir do Padrão, ele escolhe quem recebe o e-mail com base em uma resposta, como enviar os pedidos de São Paulo para um endereço e os do Rio para outro. O Premium pode enviar uma confirmação para quem preencheu o formulário, se ele pedir o e-mail da pessoa, e um resumo diário para você. Os e-mails saem da sua própria conta do Google, dentro do limite diário que o Google define. Você instala na sua conta.

O que está incluído

  • O que você recebeUm arquivo ZIP com o código do Apps Script e um README que mostra como adicioná-lo ao seu formulário, autorizar o acesso e configurar o acionador; o código também aparece na página do pedido.
  • A resposta completaCada pergunta e resposta no próprio e-mail
  • Um assunto claroex.: Novo pedido: Nome, Serviço
  • Para a pessoa certaA partir do Padrão, o endereço escolhido por uma resposta
  • Da sua contaEnviado da sua conta do Google, dentro dos limites do Google
  • Código legívelCom comentários, fácil de mudar o e-mail depois

Como funciona

  1. 1
    TarefaVocê envia as perguntas do formulário e quem deve receber o quê
  2. 2
    CódigoEscrevemos o script e o guia de instalação
  3. 3
    TesteVocê adiciona a uma cópia do formulário e envia uma resposta de teste
  4. 4
    AjustesVocê pede ajustes dentro do seu pacote e envia qualquer mensagem de erro

O que precisamos de você

As perguntas do seu formulário (uma captura de tela ou a lista), os endereços que devem receber os alertas e, a partir do Padrão, a regra de quem recebe o quê, como por cidade ou serviço. O assunto e qualquer texto que você queira no e-mail. Para uma confirmação a quem preencheu o formulário (Premium), o texto desse e-mail e a pergunta que pede o endereço da pessoa. Se o seu formulário salva as respostas em uma planilha do Google.

Vamos perguntar:

  • Para que serve o formulário?
  • Quem deve receber os alertas?
  • Como o e-mail deve ficar?
  • Mais alguma coisa a enviar?

Compare os pacotes

PacotesBásicoUm alertaR$ 89PadrãoAlertas com configuraçõesR$ 184PremiumFerramenta de alertasR$ 373
Prazo1 dia2 dias3 dias
Ajustes123
Códigoaté 150 linhasaté 400 linhasaté 1.000 linhas
Arquivos de código1até 3até 8
Arquivo de configuraçõesNãoSimSim
Mensagens de erro claras e um logNãoSimSim
Opções de execução e guia para rodar de forma agendadaNãoNãoSim
Guia de instalação e execução (README)SimSimSim
LinguagemGoogle Apps ScriptGoogle Apps ScriptGoogle Apps Script
Fazer pedido BásicoFazer pedido PadrãoFazer pedido Premium

Pagamento protegido

Você paga ao fazer o pedido, mas o dinheiro só é liberado pelo trabalho aprovado.

  • Preço fixoO preço do pacote não muda depois que você paga.
  • O dinheiro fica reservadoAo pagar, o valor fica apenas reservado. Ele só é repassado quando você aprova o trabalho.
  • Verificado antes da entregaCada resultado passa por um controle de qualidade antes de chegar até você, e você o vê na página do pedido antes de aprovar.
  • Ajustes gratuitosPeça ajustes dentro do seu briefing quantas vezes o pacote permitir.
  • Aprovação após 3 diasSe em 3 dias após a entrega você não aprovar o trabalho nem pedir ajustes, ele é aprovado automaticamente. Se você escrever no chat do pedido após a entrega, o pedido fica em espera; depois que respondermos, podemos reiniciar a contagem de 3 dias e avisaremos no chat.
  • Refazer ou reembolso totalSe o resultado não corresponder ao seu briefing e os ajustes não resolverem, ou se o trabalho levar mais que o dobro do prazo, escreva no chat do pedido: refazemos o trabalho ou reembolsamos o pagamento integralmente.
Como funciona →

Perguntas e respostas

Ele pode enviar uma confirmação para a pessoa?

No Premium, sim, se o seu formulário pedir o endereço de e-mail dela. O e-mail sai da sua conta do Google, então parece qualquer e-mail seu.

Funciona se o formulário estiver na conta de outra pessoa?

O script precisa ser adicionado por um editor do formulário, e os e-mails passam a sair da conta dessa pessoa. O README mostra os passos.

Ele pode enviar um SMS ou uma mensagem de chat no lugar?

Esta oferta envia e-mails. Uma mensagem para um serviço com API pública, como um canal do Slack pelo webhook de entrada dele, pode ser incluída dentro do seu pacote, se você mesmo configurar esse webhook.

Vocês têm acesso ao meu formulário?

Não. Você mesmo adiciona o código e autoriza o acesso na sua própria conta. Uma captura de tela das perguntas é tudo de que precisamos.

Não encontrou a resposta?

Pacotes