Automatizar o Google Sheets e o Gmail com Google Apps Script
Gere um script Google Apps Script pronto a colar: lê a sua folha, envia emails ou cria eventos, corre com um acionador, evita duplicados e inclui modo de teste e instruções de instalação. Pensado para ChatGPT, Claude, Gemini e Microsoft Copilot. Inclui 4 variáveis personalizáveis e pode copiá-lo gratuitamente com um clique.
Intermédio · Código · Pendente de revisão editorial
Prompt
Atua como programador especialista em Google Apps Script e Google Workspace que escreve automatizações robustas para equipas não técnicas.
Contexto:
- O que quero automatizar: {{tarefa}}
- Estrutura da folha (nome do separador e colunas com uma linha de exemplo): {{folha}}
- Quando deve correr: {{acionador}}
- Serviços envolvidos (Gmail, Calendar, Drive, Docs, Forms): {{servicos}}
Entregáveis:
1. Resumo do fluxo em 4 a 6 passos e os pressupostos que fazes sobre os dados.
2. Código Apps Script completo (JavaScript V8) com:
- Um bloco CONFIG no início (nome do separador, colunas, remetente, assunto) para alterar sem mexer na lógica.
- Leitura em bloco com getValues() e escrita em bloco, não célula a célula.
- Uma coluna de estado para marcar as linhas processadas e evitar envios duplicados se o script correr duas vezes.
- Um modo de teste (DRY_RUN) que registe o que faria sem enviar nada.
- Tratamento de erros por linha, registo com console.log e um resumo no fim.
- LockService se houver risco de execuções simultâneas.
3. Uma função que crie o acionador por código e a alternativa manual a partir do painel de acionadores.
4. Instalação passo a passo: Extensões > Apps Script, colar, guardar, autorizar permissões (explica que permissões vai pedir e porquê).
5. Limites a ter em conta: quotas diárias de envio e tempo máximo de execução conforme o tipo de conta; escreve [VERIFICAR na documentação de quotas da Google] em vez de números exatos.
6. Plano de testes com 3 linhas de exemplo, incluindo uma com dados vazios ou errados.
Restrições:
- Sem bibliotecas externas nem serviços pagos.
- Nunca peças nem guardes palavras-passe no código.
- Se a estrutura da folha não estiver clara, pergunta-me antes de escrever o código.
Formato: secções numeradas, o código num único bloco e comentários em português.Como utilizar
Descreve as colunas com uma linha real (sem dados pessoais). Corre primeiro o script com DRY_RUN ativo, revê o registo e só depois desativa-o e cria o acionador.
Exemplo de utilização
Tarefa: lembrete por email 3 dias antes do vencimento de cada fatura · Folha: separador «Faturas» com cliente, email, valor em euros, data de vencimento, estado · Acionador: diário às 8h00 · Serviços: Gmail.
Exemplo de resultado
2. Código (Apps Script, V8)
const CONFIG = {
SHEET_NAME: 'Inscrições',
STATUS_COL: 5, // A=nome, B=email, C=curso, D=data de início, E=estado
SUBJECT: 'Bem-vindo ao teu curso',
DRY_RUN: true, // set to false once the test run looks right
};
function sendWelcomeEmails() {
const lock = LockService.getScriptLock();
if (!lock.tryLock(30 * 1000)) return; // another run is in progress
try {
const sheet = SpreadsheetApp.getActive().getSheetByName(CONFIG.SHEET_NAME);
const lastRow = sheet.getLastRow();
if (lastRow < 2) return;
const rows = sheet.getRange(2, 1, lastRow - 1, CONFIG.STATUS_COL).getValues();
let sent = 0;
const statuses = rows.map(([name, email, course, start, status], i) => {
if (status) return [status]; // already processed: skip
try {
if (!/^[^@\s]+@[^@\s]+\.[^@\s]+$/.test(email)) throw new Error('invalid email');
const date = Utilities.formatDate(new Date(start), Session.getScriptTimeZone(), 'dd/MM/yyyy');
const body = `Olá ${name},\n\nbem-vindo ao curso «${course}». Começamos a ${date}.`;
if (CONFIG.DRY_RUN) { console.log(`[DRY_RUN] would email ${email}`); return ['']; }
GmailApp.sendEmail(email, CONFIG.SUBJECT, body);
sent++;
return ['ENVIADO ' + new Date().toISOString()];
} catch (e) {
console.log(`Row ${i + 2}: ${e.message}`);
return ['ERRO: ' + e.message];
}
});
sheet.getRange(2, CONFIG.STATUS_COL, statuses.length, 1).setValues(statuses); // one bulk write
console.log(`Done: ${sent} sent out of ${rows.length} rows`);
} finally {
lock.releaseLock();
}
}
function createTrigger() {
ScriptApp.newTrigger('sendWelcomeEmails')
.forSpreadsheet(SpreadsheetApp.getActive()).onFormSubmit().create();
}
A coluna de estado evita envios repetidos se o script correr duas vezes. O convite do Google Calendar entra no mesmo ciclo quando o calendário do curso estiver confirmado → [COMPLETAR]…
Dados-chave
- Categoria
- Programação e desenvolvimento · Automatizações
- Tipo de resultado
- Código
- Nível
- Intermédio
- Pensado para
- ChatGPT, Claude, Gemini e Microsoft Copilot
- Verificado em
- Pendente de verificação editorial
- Variáveis
- O que automatizar, Estrutura da folha, Acionador e Serviços envolvidos
- Idioma
- Português
- Preço
- Gratuito, sem registo
- Atualizado
- 07/11/2026
Perguntas frequentes
Preciso de saber programar para usar o script?
Pouco: basta colar o código, ajustar o bloco CONFIG e autorizar as permissões. Ainda assim, testa-o numa cópia da folha antes de o usar com dados reais.
Porque é que o script pede tantas permissões?
O Apps Script pede acesso a cada serviço que o código usa, como o Gmail ou o Calendar. Revê a lista: se pedir algo de que o script não precisa, o código pode ser ajustado para limitar as permissões.
Para que serve este prompt?
Gere um script Google Apps Script pronto a colar: lê a sua folha, envia emails ou cria eventos, corre com um acionador, evita duplicados e inclui modo de teste e instruções de instalação.
Com que ferramentas de IA funciona?
Foi pensado para ChatGPT, Claude, Gemini e Microsoft Copilot. Ainda não o verificámos nestas ferramentas, pelo que os resultados podem variar entre elas.
Como personalizo o prompt?
Clique em “Personalizar” e preencha as variáveis (O que automatizar, Estrutura da folha, Acionador e Serviços envolvidos). O texto atualiza-se instantaneamente e pode depois copiá-lo com um clique. Os valores ficam guardados apenas no seu navegador.
Preciso de experiência para o utilizar?
É de nível intermédio: convém conhecer o tema para fornecer bom contexto e rever o resultado com sentido crítico.
Este prompt é gratuito?
Sim. Todos os prompts do HomeCasa Prompts são gratuitos, sem registo nem subscrição. Pode também utilizá-los em projetos profissionais.
Posso confiar no resultado da IA?
Trate-o como um rascunho de qualidade: verifique sempre os dados, os números e as afirmações importantes antes de publicar ou tomar decisões.