Como integrar o ChatGPT e Claude nas planilhas do Google para enriquecimento automático de dados
Aprenda a conectar APIs de IA diretamente ao Google Sheets para categorizar, resumir e prospectar leads em escala sem sair da planilha.
Planilhas continuam sendo o motor operacional de grande parte das empresas B2B. Seja para gerenciar listas de prospecção de vendas (leads), analisar respostas de pesquisas com clientes, ou limpar bases de dados legadas, o trabalho manual de processar texto linha a linha consome centenas de horas produtivas das equipes.
A boa notícia é que você não precisa de plataformas caras ou softwares de BI complexos para resolver isso. Integrar as APIs de modelos líderes como o ChatGPT (OpenAI) e o Claude (Anthropic) diretamente ao Google Sheets transforma suas planilhas em ferramentas de automação cognitiva de alta performance.
Neste tutorial técnico e prático, vamos implementar essa integração passo a passo usando o Google Apps Script, permitindo criar funções personalizadas para automatizar processos de negócios em escala.
O que é o Enriquecimento de Dados via Planilhas?
O Enriquecimento de Dados via Planilhas consiste em injetar inteligência artificial generativa diretamente nas células do Google Sheets por meio de scripts de automação conectados a APIs. Em vez de abrir manualmente a interface web do ChatGPT e copiar e colar informações um a um, você define fórmulas personalizadas (como =PERGUNTAR_CHATGPT(A2; B2)) que enviam o contexto de uma célula para o modelo e trazem o resultado formatado de volta para a planilha instantaneamente.
Isso viabiliza automações em lote para processamento de linguagem natural diretamente no fluxo de trabalho de marketing, CS e vendas.
Métodos de Integração: Qual Escolher?
Existem três caminhos principais para conectar IA ao Google Sheets. A tabela abaixo resume as vantagens e desvantagens de cada método:
| Método | Dificuldade | Custo de Execução | Controle e Flexibilidade | Recomendação de Uso |
|---|---|---|---|---|
| Extensões da Web Store | Baixíssima | Mensalidades fixas + custos de tokens das ferramentas. | Limitado aos recursos desenvolvidos por terceiros. | Usuários não técnicos que necessitam de facilidade imediata. |
| Plataformas No-Code (Make/Zapier) | Média | Pago por execuções de fluxos (Tasks). | Média. Excelente para interagir com múltiplos softwares externos. | Integrações complexas que saem do Sheets e vão para CRM/Slack. |
| Google Apps Script (API Direta) | Média | Custo zero de plataforma (paga apenas os tokens da API que usar). | Total. Controle absoluto do código, prompt, temperatura e retornos. | Escalabilidade, segurança de dados e orçamentos otimizados em B2B. |
Casos Práticos de Uso no B2B
- Qualificação de Leads: Extrair o cargo e a indústria de uma descrição livre da empresa, categorizando-a automaticamente como Enterprise, Mid-Market ou SMB.
- Análise de Sentimento de Pesquisa: Analisar respostas abertas de pesquisas de NPS para classificar se o feedback é Promotor, Neutro ou Detrator e extrair o principal motivo em uma coluna ao lado.
- Geração de Copys para Outbound: Redigir linhas de abertura personalizadas para e-mails de vendas com base no nome do lead e nos serviços que a empresa dele oferece.
- Padronização de Dados: Corrigir a grafia de nomes próprios, formatar strings bagunçadas de CNPJ e traduzir termos de inglês para português.
Guia Prático: Configurando o Apps Script com ChatGPT e Claude
Abaixo, fornecemos o código em JavaScript (Google Apps Script) para conectar as APIs oficiais da OpenAI e da Anthropic.
Passo 1: Acessando o Editor de Scripts no Google Sheets
- Abra sua planilha do Google.
- No menu superior, clique em Extensões > Apps Script.
- Apague qualquer código que estiver no editor e cole o código abaixo.
// CONFIGURAÇÕES GERAIS DAS APIS
const OPENAI_API_KEY = "SUA_API_KEY_OPENAI_AQUI";
const CLAUDE_API_KEY = "SUA_API_KEY_CLAUDE_AQUI";
/**
* Envia uma pergunta para o ChatGPT (OpenAI - GPT-4o-mini).
* @param {string} prompt O comando que você deseja que a IA execute.
* @param {string} contexto O dado da célula contendo o texto para análise.
* @return {string} A resposta gerada pelo modelo.
* @customfunction
*/
function PERGUNTAR_CHATGPT(prompt, contexto) {
if (!prompt) return "Erro: O prompt é obrigatório.";
const url = "https://api.openai.com/v1/chat/completions";
const payload = {
model: "gpt-4o-mini",
messages: [
{ role: "system", content: "Você é um assistente analítico e estruturado. Responda de forma direta e objetiva, sem introduções ou explicações longas." },
{ role: "user", content: prompt + "\n\nTexto/Contexto de análise:\n" + contexto }
],
temperature: 0.1
};
const options = {
method: "post",
contentType: "application/json",
headers: {
Authorization: "Bearer " + OPENAI_API_KEY
},
payload: JSON.stringify(payload),
muteHttpExceptions: true
};
try {
const response = UrlFetchApp.fetch(url, options);
const json = JSON.parse(response.getContentText());
if (json.error) {
return "Erro API: " + json.error.message;
}
return json.choices[0].message.content.trim();
} catch (e) {
return "Erro de conexão: " + e.toString();
}
}
/**
* Envia uma pergunta para o Claude (Anthropic - Claude 3.5 Sonnet).
* @param {string} prompt O comando que você deseja que a IA execute.
* @param {string} contexto O dado da célula contendo o texto para análise.
* @return {string} A resposta gerada pelo modelo.
* @customfunction
*/
function PERGUNTAR_CLAUDE(prompt, contexto) {
if (!prompt) return "Erro: O prompt é obrigatório.";
const url = "https://api.anthropic.com/v1/messages";
const payload = {
model: "claude-3-5-sonnet-20241022",
max_tokens: 1000,
system: "Você é um analista de negócios B2B preciso. Responda objetivamente à instrução sem tagarelice desnecessária.",
messages: [
{ role: "user", content: prompt + "\n\nTexto/Contexto de análise:\n" + contexto }
],
temperature: 0.1
};
const options = {
method: "post",
contentType: "application/json",
headers: {
"x-api-key": CLAUDE_API_KEY,
"anthropic-version": "2023-06-01"
},
payload: JSON.stringify(payload),
muteHttpExceptions: true
};
try {
const response = UrlFetchApp.fetch(url, options);
const json = JSON.parse(response.getContentText());
if (json.error) {
return "Erro API Anthropic: " + json.error.message;
}
return json.content[0].text.trim();
} catch (e) {
return "Erro de conexão: " + e.toString();
}
}
Passo 2: Configurando as Chaves de API
- Substitua
"SUA_API_KEY_OPENAI_AQUI"e"SUA_API_KEY_CLAUDE_AQUI"pelas respectivas chaves geradas nos consoles de desenvolvedor da OpenAI e Anthropic. - Clique no ícone de Salvar (disquete) no topo do editor de scripts.
- Feche a aba do editor e retorne à sua planilha.
Utilizando as Fórmulas na Prática
Agora que suas funções customizadas estão prontas, você pode chamá-las na planilha da mesma forma que chama a soma (=SOMA) ou o PROCV.
Exemplo 1: Classificando Cargos de Leads
Imaginemos que a coluna A contém os cargos originais dos leads e você quer padronizá-los em categorias funcionais (ex: Vendas, Engenharia, Marketing, C-Level) na coluna B.
- Na célula B2, digite a fórmula:
=PERGUNTAR_CHATGPT("Classifique o cargo abaixo em uma destas opções: Vendas, Marketing, Suporte, C-Level, RH ou Tecnologia. Retorne apenas o nome exato da categoria selecionada."; A2) - Arraste a fórmula para baixo para processar todas as linhas.
Exemplo 2: Resumo Executivo e Extração de Ações
Se você possui feedbacks longos de clientes na coluna C e deseja extrair o principal ponto de reclamação na coluna D:
- Na célula D2, digite a fórmula:
=PERGUNTAR_CLAUDE("Resuma em até 5 palavras a principal reclamação contida neste feedback de cliente."; C2)
Cuidados de Segurança e Otimização de Custos
Para evitar surpresas na conta da API ou travamentos no Google Sheets, observe estas boas práticas de controle:
- Evite loops e recálculos infinitos: Toda vez que você edita uma planilha, as funções personalizadas podem tentar recalcular, o que gerará novas chamadas à API e novos custos. Para evitar isso, após processar uma lista de dados, selecione o resultado, copie as células e selecione Colar especial > Somente os valores. Isso remove a fórmula e trava o texto na célula.
- Atenção ao limite de requisições do Apps Script: A execução de scripts do Google possui um limite de tempo total de 6 minutos por chamada. Se você tiver milhares de linhas para processar, divida a execução em lotes de 100 a 200 linhas por vez para não estourar esse limite.
- Tratamento de Erros: Sempre valide os retornos. No código fornecido, usamos blocos
try/catchpara garantir que, caso ocorra alguma falha na conexão da API (ex: falta de crédito ou limite de requisições atingido), a célula exiba uma mensagem de erro clara em vez de simplesmente quebrar a planilha inteira.
A integração direta via Apps Script democratiza o uso de IA na operação das equipes, acelerando o enriquecimento de bancos de dados com custos baixíssimos e total flexibilidade de customização de prompt.