Ligar os formulários da Facility na planilha de leads

Passo a passo para fazer sozinha, com calma. Cada contato do site e da LP vai cair sozinho na aba certa da planilha.

⏱ uns 10 minutos💻 no computador5 passos4 abas: Empresas, Candidatos, Geral e LP
Antes de começarUse o computador (não o celular) e entre no Google com a conta atendimento@leelah.com.br, que é a dona da planilha. Com outra conta dá erro.
0 de 5 passos feitos
1

Criar a planilha nova e abrir o editor de script

onde o código vai morar
  1. No Google Drive, clique em + Novo e depois em Planilhas Google (planilha em branco). Dê o nome Leads Grupo Facility. Não precisa montar nada nela: as abas Empresas, Candidatos, Geral e LP, com as colunas e a lista de Status, o passo 3 cria sozinho. A planilha antiga fica de lado, sem mexer.
  2. Confira no canto superior direito se a bolinha da conta é a da atendimento@leelah.com.br.
  3. No menu de cima da planilha, clique em Extensões e depois em Apps Script.
    No menu da planilha
    ArquivoEditarVerInserirFormatarDadosFerramentasExtensões→Apps Script
  4. Vai abrir uma aba nova do navegador com um editor de código. Pode deixar a aba da planilha aberta, vamos voltar nela.
  5. Lá em cima, à esquerda, está escrito Projeto sem título. Clique nesse nome, apague, escreva Leads Facility e clique em Renomear.
2

Copiar e colar o código

trocar o texto que já está lá pelo nosso
  1. No editor, já existe um textinho parecido com function myFunction() { }. Clique em cima dele.
  2. Aperte Ctrl + A para selecionar tudo (no Mac: Cmd + A) e depois Delete. O editor fica vazio.
  3. Volte aqui e clique no botão azul Copiar código:
    código para colar
    /**
     * Leads do site e da LP do Grupo Facility, em 4 abas: Empresas, Candidatos, Geral e LP.
     * O script grava pelo NOME da coluna (linha 1), entao mudar a ordem das colunas nao quebra nada.
     *
     * Use uma planilha NOVA (a antiga fica de lado). Instalar (uma vez): Extensoes > Apps Script, colar este arquivo, rodar a funcao "preparar" (cria as abas e as
     * colunas que faltam) e publicar: Implantar > Nova implantacao > App da Web > Executar como "Eu" >
     * Quem pode acessar "Qualquer pessoa". O endereco que termina em /exec vai para o Bruno.
     */
    var CHAVE = "9cf80031fc4a86efc88d28a6ec1ac491";   // o site manda esta chave junto; quem nao tem, nao grava
    
    var ABAS = {
      "Empresas": ["Data", "Nome", "Empresa", "CNPJ", "E-mail", "Telefone", "Mensagem", "Origem", "Status", "Observações"],
      "Candidatos": ["Data", "Nome", "E-mail", "Telefone", "Vaga", "Tipo da vaga", "Currículo", "Mensagem", "Origem", "Status", "Observações"],
      "Geral": ["Data", "Nome", "Telefone", "E-mail", "Empresa", "Mensagem", "Origem", "Status", "Observações"],
      "LP": ["Data", "Nome", "Empresa", "CNPJ", "E-mail", "Telefone", "Mensagem", "Origem", "Status", "Observações"]
    };
    
    var STATUS = ["Novo", "Em contato", "Em negociação", "Fechado", "Sem retorno", "Descartado"];
    
    function preparar() {
      var plan = SpreadsheetApp.getActiveSpreadsheet();
      Object.keys(ABAS).forEach(function (nome) {
        var aba = plan.getSheetByName(nome) || plan.insertSheet(nome);
        var existentes = aba.getLastColumn() ? aba.getRange(1, 1, 1, aba.getLastColumn()).getValues()[0].map(function (t) { return String(t).trim(); }) : [];
        ABAS[nome].forEach(function (t) {
          if (existentes.indexOf(t) >= 0) return;
          var c = aba.getLastColumn() + 1;
          aba.getRange(1, c).setValue(t).setFontWeight("bold").setHorizontalAlignment("center").setBackground("#e8f0fe");
          existentes.push(t);
        });
        aba.setFrozenRows(1);
        var cs = existentes.indexOf("Status") + 1;
        if (cs && !aba.getRange(2, cs).getDataValidation()) {
          var regra = SpreadsheetApp.newDataValidation().requireValueInList(STATUS, true).setAllowInvalid(true).build();
          aba.getRange(2, cs, aba.getMaxRows() - 1, 1).setDataValidation(regra);
        }
      });
      limparAbaVazia();
    }
    
    /* Apaga a aba vazia que o Google cria em planilha nova (Página1, Planilha1, Sheet1), se estiver mesmo vazia. */
    function limparAbaVazia() {
      var plan = SpreadsheetApp.getActiveSpreadsheet();
      ["Página1", "Planilha1", "Sheet1"].forEach(function (n) {
        var a = plan.getSheetByName(n);
        if (a && plan.getSheets().length > 1 && a.getLastRow() === 0 && a.getLastColumn() === 0) plan.deleteSheet(a);
      });
    }
    
    function doPost(e) {
      var lock = LockService.getScriptLock();
      lock.waitLock(20000);
      try {
        var p = (e && e.parameter) || {};
        if (p.chave !== CHAVE) return resposta("negado");
        if (!p.nome) return resposta("incompleto");
        var nome = ABAS[p.aba] ? p.aba : "Geral";
        var aba = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(nome);
        if (!aba) return resposta("sem-aba");
        var titulos = aba.getRange(1, 1, 1, aba.getLastColumn()).getValues()[0];
        var v = {
          "Data": Utilities.formatDate(new Date(), "America/Sao_Paulo", "dd/MM/yyyy HH:mm"),
          "Nome": limpa(p.nome), "Empresa": limpa(p.empresa), "CNPJ": limpa(p.cnpj),
          "E-mail": limpa(p.email), "Telefone": "'" + limpa(p.telefone),
          "Vaga": limpa(p.vaga), "Tipo da vaga": limpa(p.tipo_vaga), "Currículo": limpa(p.curriculo),
          "Mensagem": limpa(p.mensagem), "Origem": limpa(p.origem), "Status": "Novo"
        };
        aba.appendRow(titulos.map(function (t) { return v[String(t).trim()] || ""; }));
        return resposta("ok");
      } finally {
        lock.releaseLock();
      }
    }
    
    /* Abrir o endereco /exec no navegador mostra "ok": serve para conferir que esta publicado. */
    function doGet() { return resposta("ok"); }
    
    /* Texto puro, sem formula: impede que um envio comecando com "=" vire formula na planilha. */
    function limpa(v) {
      v = String(v || "").slice(0, 1000).trim();
      return /^[=+\-@]/.test(v) ? "'" + v : v;
    }
    
    function resposta(t) { return ContentService.createTextOutput(t); }
    
  4. Volte no editor, clique dentro dele e aperte Ctrl + V (no Mac: Cmd + V) para colar.
  5. Aperte Ctrl + S (no Mac: Cmd + S) para salvar.
    Não precisa entender o código. Ele só pega o que a pessoa preencheu na página e escreve uma linha nova na planilha.
3

Preparar a planilha

roda uma vez só e cria as colunas que faltam
  1. Na barra de cima do editor tem os botões ▶ Executar, Depurar e, do lado, uma lista com o nome de uma função. Clique nessa lista e escolha preparar.
    Na barra do editor
    ▶ ExecutarDepurarpreparar ▾Registro de execução
  2. Agora clique em ▶ Executar.
  3. Aparece uma janela "Autorização necessária". Clique em Revisar permissões.
  4. Escolha a conta atendimento@leelah.com.br.
  5. Vai aparecer uma tela dizendo que o Google não verificou o app. É normal e é seguro: o "app" é esse código que você mesma colou, dentro da sua conta.
    A tela que assusta, mas é normal
    ⚠️ O Google não verificou este appO app está solicitando acesso a informações confidenciais na sua Conta do Google...
    AvançadoVoltar à segurança
    Clique em Avançado (pequeno, embaixo à esquerda). Não clique em "Voltar à segurança".
  6. Embaixo aparece o link Acessar Leads Facility (não seguro). Clique nele.
  7. Se aparecerem caixinhas de permissão, marque Selecionar tudo. Depois clique em Permitir (ou Continuar).
  8. Embaixo do editor aparece o Registro de execução. Espere até aparecer "Execução concluída".
  9. Vá na aba da planilha e olhe embaixo: agora existem quatro abas, Empresas, Candidatos, Geral e LP, cada uma com os títulos das colunas na linha 1 e uma lista de Status (Novo, Em contato, Em negociação, Fechado, Sem retorno, Descartado).
4

Publicar

é isso que deixa o formulário da página falar com a planilha
  1. Volte na aba do editor. No canto superior direito, clique no botão azul Implantar e depois em Nova implantação.
  2. Na janela que abre, ao lado de "Selecionar tipo", clique na engrenagem ⚙️ e escolha App da Web.
  3. Preencha os três campos exatamente assim:
    Nova implantação
    DescriçãoSite e LP Facility
    Executar comoEu (atendimento@leelah.com.br)
    Quem pode acessarQualquer pessoa
    ⚠️ Em "Quem pode acessar", escolha Qualquer pessoa. Não é "Qualquer pessoa com Conta do Google". Isso não abre a planilha para ninguém: só deixa o formulário da página entregar o lead. Quem preenche o formulário não vê a planilha.
  4. Clique em Implantar. Se pedir autorização de novo, faça igual ao passo 3 (Revisar permissões, Avançado, Acessar, Permitir).
  5. Aparece "URL do app da Web", um endereço comprido que começa com https://script.google.com/macros/s/ e termina em /exec. Clique em Copiar embaixo dele.
5

Testar e mandar para o Bruno

a página confere se ficou certo
  1. Cole aqui o endereço que você copiou (Ctrl + V):

Qual lead cai em qual aba

Como ficou a organização

Empresas: formulário de contato para empresas e simulação de custo do site. Colunas: Data, Nome, Empresa, CNPJ, E-mail, Telefone, Mensagem, Origem, Status, Observações.

Candidatos: quem se candidata em uma vaga ou pelo formulário de candidato. Colunas: Data, Nome, E-mail, Telefone, Vaga, Tipo da vaga, Currículo (link do PDF), Mensagem, Origem, Status, Observações.

Geral: o botão flutuante de WhatsApp do site. Colunas: Data, Nome, Telefone, E-mail, Empresa, Mensagem, Origem, Status, Observações.

LP: tudo que vem da página de campanha, tanto o formulário quanto o botão de WhatsApp dela. Mesmas colunas de Empresas.

A coluna Origem diz de onde veio: Site - Contato, Site - Simulação, Site - Vagas, Site - WhatsApp, LP - Formulário ou LP - WhatsApp. Status e Observações são suas: o site nunca mexe nelas depois que o lead entra.

A ordem das colunas pode mudar à vontade. Já o título de cada coluna e o nome das abas precisam ficar exatamente assim; se quiser mudar, avise o Bruno antes.

Deu algo diferente? 🙂

Apareceu "Você não tem permissão" ou "Acesso negado"

Você está em outra conta do Google. Clique na bolinha da conta no canto superior direito, troque para atendimento@leelah.com.br e abra a planilha de novo.

Não acho "preparar" na lista de funções

O código não foi salvo. Clique no editor, aperte Ctrl + S e olhe a lista de novo.

Cliquei em "Voltar à segurança" sem querer

Sem problema. Clique em ▶ Executar de novo e, desta vez, vá em Avançado.

O teste disse que o endereço pede login

No passo 4 ficou marcado "Qualquer pessoa com Conta do Google". Para corrigir: Implantar → Gerenciar implantações → clique no lápis ✏️ → em "Quem pode acessar" escolha Qualquer pessoa → Implantar. O endereço continua o mesmo, é só testar de novo.

Fechei a janela e perdi o endereço /exec

No editor: Implantar → Gerenciar implantações. O endereço está lá, com o botão Copiar.

As colunas novas não apareceram na planilha

Atualize a aba da planilha (tecla F5). Se ainda não aparecerem, volte no editor, confira se "preparar" está escolhido na lista e clique em ▶ Executar de novo. Pode rodar mais de uma vez, ele não duplica nada.