Planilha

Prev Next

A caixa Planilha (Google Sheets) integra a conversa a uma planilha do Google Sheets. Ela executa uma de duas operações:

  1. Ler dados da planilha — consulta o conteúdo de um intervalo de células e devolve o resultado para um script da própria caixa;
  2. Adicionar/atualizar planilha — escreve linhas no intervalo indicado, adicionando ao final do conteúdo existente ou sobrescrevendo o intervalo.

Casos de uso típicos:

  • consultar uma tabela de preços, prazos ou status cadastrados em planilha;
  • registrar cada atendimento (protocolo, nome, solicitação) em uma nova linha;
  • atualizar um painel de acompanhamento mantido em planilha;
  • ler listas mantidas pelo cliente (feriados, unidades, planos) sem precisar de outra integração.

A planilha é acessada com credenciais do Google informadas por arquivo JSON (conta de serviço). As credenciais ficam guardadas pela plataforma, vinculadas à caixa, e o acesso à planilha acontece na execução do atendimento.

Onde encontrar

  1. Abra Configuração → Fluxos.
  2. Crie ou abra uma versão do fluxo no editor.
  3. Na lista de caixas (nova caixa), localize Planilha (Google Sheets) — ela aparece diretamente na lista, sem submenu, com o ícone de planilha.
  4. Selecione a caixa para abrir o painel de configuração.
  5. Preencha as opções e clique em Aplicar. Depois, salve a versão do fluxo.

Image

Como funciona

O comportamento geral é:

Caixa Planilha
      │
      ├── onEnter: dispara a operação na planilha
      │       ├── Ler dados       → aguarda a resposta da planilha
      │       └── Adicionar/atualizar → grava e segue
      │
      └── após a operação, vai para a caixa seguinte

Na leitura, a operação é assíncrona: a caixa dispara a consulta e, quando a planilha responde, o script a executar após a requisição roda com o resultado disponível em input.response. Só depois disso a conversa segue para a caixa seguinte.

Na escrita, a caixa envia os dados e já encaminha a conversa para a caixa seguinte configurada em Após a operação, vai para.

Importante: a caixa acessa a planilha com a conta de serviço das credenciais. Para funcionar, a planilha precisa estar compartilhada com o e-mail dessa conta de serviço (a planilha não precisa ser pública).

Pré-requisito: credenciais de acesso

Antes de salvar a caixa, é obrigatório enviar o arquivo de credenciais:

  1. No Google Cloud, crie (ou reutilize) uma conta de serviço e baixe a chave no formato JSON.
  2. Compartilhe a planilha desejada com o e-mail da conta de serviço, com permissão de leitura (operações de leitura) ou de edição (operações de escrita).
  3. No painel da caixa, envie o arquivo em Credenciais de acesso (arquivo) — clique no link ou arraste o arquivo para a área de upload.
  4. Ao remover as credenciais (opção Remover credenciais), a remoção tem efeito imediato.

As credenciais são vinculadas à caixa pelo nome do elemento. Por isso:

  • informe o Nome da caixa antes de enviar o arquivo;
  • se o nome da caixa mudar depois do upload, é preciso atualizar o arquivo de credenciais — o salvamento bloqueia a alteração sem essa atualização.

Campos da caixa

Campo Obrigatório Descrição
Nome Sim Nome da caixa no diagrama. Também identifica as credenciais vinculadas.
Identificador da planilha (Google Sheets) Sim O ID da planilha, presente na URL do documento entre /d/ e /edit — ex.: 1AbC...xYz em https://docs.google.com/spreadsheets/d/1AbC...xYz/edit.
Nome da aba da planilha Não¹ Aba dentro da planilha (ex.: Preços). Use quando o documento tiver mais de uma aba.
Intervalo de células Sim¹ Intervalo a ler ou escrever, no formato do Google Sheets (ex.: A1:C50).
Operação Sim Escolha entre Adicionar/atualizar planilha e Ler dados da planilha.
Sobrescrever dados existentes Não Só na operação de escrita. Marcado: substitui o conteúdo do intervalo. Desmarcado: adiciona as linhas abaixo do conteúdo existente.
Dados a serem adicionados/atualizados (formato JSON) Sim² Só na operação de escrita. Conteúdo a gravar, no formato {"values": [[...]]}. Aceita variáveis {{variavel}}.
Script a executar após a requisição Não Só na operação de leitura. JavaScript executado quando a planilha responde; por padrão vem let data = input.response;.
Credenciais de acesso (arquivo) Sim Upload do arquivo JSON da conta de serviço do Google.
Após a operação, vai para: Não Caixa seguinte do fluxo depois da operação concluída.

¹ É obrigatório informar pelo menos um entre aba e intervalo; na prática, informe o intervalo e, havendo mais de uma aba, o nome da aba também.

² O campo aceita o default {"values": [[]]}, mas gravar um valor vazio raramente é a intenção — preencha as linhas desejadas.

Image

Variáveis nos campos

Os campos Identificador, Nome da aba, Intervalo e Dados aceitam a sintaxe {{variavel}}, que é resolvida com o valor da variável de sessão no momento da execução. Isso permite, por exemplo, consultar um intervalo diferente por cliente ou gravar dados coletados antes na conversa.

Também é possível usar {{!expressão}} para interpolar código JavaScript diretamente, no mesmo padrão dos demais campos do sistema.

Operação “Ler dados da planilha”

  1. A caixa consulta o intervalo informado na planilha.
  2. Quando a resposta chega, o Script a executar após a requisição roda com o conteúdo em input.response.
  3. No script, trate os dados, guarde o que for necessário em variáveis com dialog.set(...) e, quando quiser, use dialog.go(...) para direcionar a conversa.
  4. Se nada for feito no script, a conversa segue para a caixa configurada em Após a operação, vai para: (o script gerado já inclui esse desvio).

O conteúdo lido corresponde às linhas/células do intervalo consultado. Use o modo de teste/depuração do fluxo para inspecionar input.response e confirmar o formato recebido antes de escrever a lógica final.

Operação “Adicionar/atualizar planilha”

  1. A caixa envia os dados JSON para a planilha.
  2. O comportamento depende do checkbox Sobrescrever dados existentes:
Checkbox Comportamento
Desmarcado As linhas são adicionadas abaixo do conteúdo atual do intervalo (append).
Marcado O conteúdo do intervalo é substituído pelos dados enviados.
  1. A conversa segue para a caixa configurada em Após a operação, vai para:.

O JSON segue o formato do Google Sheets: values é uma lista de linhas, e cada linha é uma lista de células.

{
  "values": [
    ["valor A1", "valor B1", "valor C1"],
    ["valor A2", "valor B2", "valor C2"]
  ]
}

Exemplos

Exemplo 1 — Registrar cada atendimento em nova linha

Objetivo: ao final da coleta de dados, gravar protocolo, nome e solicitação como uma nova linha da planilha, preservando as linhas anteriores.

Configuração da caixa:

Image

Campo Valor
Nome Registrar atendimento
Identificador da planilha 1AbCdEfGhIjKlMnOpQrStUvWxYz
Nome da aba Atendimentos
Intervalo de células A1:C1
Operação Adicionar/atualizar planilha
Sobrescrever dados existentes ❌ desmarcado (adiciona abaixo)

Dados a serem adicionados/atualizados (formato JSON):

{
  "values": [
    ["{{protocolo}}", "{{nomeCliente}}", "{{solicitacao}}"]
  ]
}

Após a operação, vai para: Confirmacao registro.

Como o checkbox fica desmarcado, cada execução acrescenta uma linha abaixo das existentes — a planilha vira um log de atendimentos.

Exemplo 2 — Sobrescrever um painel de status

Objetivo: manter em B1:B3 o status atual de três serviços, substituindo o conteúdo anterior a cada atualização.

Configuração da caixa:

Image

Campo Valor
Nome Atualizar status
Identificador da planilha 1AbCdEfGhIjKlMnOpQrStUvWxYz
Nome da aba Painel
Intervalo de células B1:B3
Operação Adicionar/atualizar planilha
Sobrescrever dados existentes ✅ marcado (substitui o intervalo)

Dados a serem adicionados/atualizados (formato JSON):

{
  "values": [
    ["{{statusPortais}}"],
    ["{{statusApp}}"],
    ["{{statusTelefone}}"]
  ]
}

Com o checkbox marcado, o intervalo B1:B3 passa a conter exatamente os três valores enviados.

Validações e mensagens comuns

O salvamento da caixa verifica as seguintes situações:

Mensagem Motivo
O campo nome não foi informado A caixa precisa de um nome.
O campo ID da planilha não foi informado O Identificador da planilha está vazio.
Deve-se informar o campo intervalo e/ou o campo de aba Nenhum dos dois campos foi preenchido.
O arquivo de credenciais não foi informado A caixa não tem credenciais enviadas.
Nenhuma operação foi selecionada Escolha uma das duas operações.
Deve-se atualizar o arquivo de credenciais ao alterar o nome do elemento O nome da caixa mudou depois do upload das credenciais. Reenvie o arquivo.
Os dados a serem adicionados/atualizados não estão em um formato válido O JSON dos dados é inválido ou values não é uma lista.
Deve-se informar o campo nome antes de fazer o upload do arquivo de credenciais Preencha o Nome antes de enviar o arquivo.
O arquivo de credenciais deve ser no formato ".json" O upload só aceita arquivo JSON.

Boas práticas

  • Compartilhe a planilha diretamente com o e-mail da conta de serviço e dê apenas a permissão necessária: leitura para consultas, edição para gravações.
  • Dê nomes funcionais às caixas, como Consultar preco em vez de Planilha 1 — o nome também identifica as credenciais.
  • Prefira intervalos delimitados (A1:B200) em vez de colunas inteiras, para reduzir leitura desnecessária.
  • Ao escrever sem sobrescrever, use um intervalo de uma linha (A1:C1): as linhas novas são adicionadas abaixo.
  • Em operações de leitura, teste o fluxo e inspecione input.response antes de codificar a lógica final.
  • Considere o que acontece se a planilha estiver indisponível ou sem a linha esperada — trate o resultado vazio no script da leitura.
  • Evite renomear a caixa depois de configurada; se renomear, atualize o arquivo de credenciais.