Pular para o conteúdo
Automação

Como salvar anexos do Gmail no Google Drive com n8n

Sim, dá para salvar automaticamente anexos recebidos no Gmail em uma pasta do Google Drive usando n8n. O fluxo básico usa o Gmail Trigger para encontrar a mensagem, baixa os anexos como arquivos binários e passa cada arquivo ao nó do Google Drive.

É uma automação útil para notas fiscais, contratos, comprovantes, currículos e documentos enviados por clientes. O ponto mais importante é filtrar o e-mail antes de baixar qualquer coisa: sem uma busca como has:attachment, a caixa de entrada vira um gatilho barulhento e o n8n pode processar mensagens que não deveriam entrar no fluxo.

Pessoa organizando mensagens e arquivos digitais em um fluxo de trabalho
O fluxo transforma um anexo recebido por e-mail em um arquivo organizado no Drive.

Como funciona a automação

O desenho fica assim:

Gmail Trigger → Google Drive (File > Upload)

O Gmail Trigger consulta a conta no intervalo escolhido e dispara quando encontra uma nova mensagem. A documentação do n8n informa que esse gatilho trabalha por polling, ou seja, ele verifica a caixa periodicamente; não é um webhook instantâneo. O nó também aceita filtros de busca do Gmail, como remetente, assunto, marcador e has:attachment.

Quando o download de anexos está habilitado, o n8n grava os arquivos em propriedades binárias. O prefixo padrão é attachment_, então o primeiro anexo costuma aparecer como attachment_0. O Google Drive recebe o nome dessa propriedade no campo Input Data Field Name e envia o conteúdo para a pasta escolhida.

O que você precisa antes de começar

  • Uma conta do Gmail com pelo menos uma mensagem de teste contendo arquivo anexado.
  • Uma conta do Google Drive com permissão para criar arquivos na pasta de destino.
  • Uma instância do n8n, na nuvem ou instalada por você.
  • Uma credencial Google configurada no n8n para Gmail e Drive.

A autenticação é a etapa que mais costuma confundir. Use a credencial Google/OAuth2 indicada pela documentação do n8n e conecte a mesma conta que receberá os e-mails e armazenará os arquivos. Se a sua instalação pedir uma configuração no Google Cloud, siga o fluxo de OAuth2 da própria documentação em vez de copiar credenciais de terceiros.

Se você está em dúvida entre n8n e Make para esse tipo de tarefa, vale comparar o modelo de operação, hospedagem e limite de execuções no nosso guia sobre n8n ou Make. Aqui, o n8n é interessante porque permite ajustar o fluxo com expressões e código quando a regra ficar mais complexa.

Passo 1: configure o Gmail Trigger

  1. Crie um workflow novo e adicione o nó Gmail Trigger.
  2. Em Event, escolha Message Received.
  3. Selecione ou crie a credencial Google.
  4. Escolha o intervalo de polling em Poll Times.
  5. Em Filters > Search, comece com has:attachment.
  6. Abra as opções avançadas, deixe Download Attachments ativado e mantenha o prefixo attachment_.

Para restringir ainda mais a automação, use uma busca combinada. Por exemplo:

from:financeiro@empresa.com subject:(nota fiscal) has:attachment

O Gmail usa a mesma sintaxe de pesquisa da caixa de entrada. Você também pode combinar from:, subject:, label: e períodos como newer_than:1d. Quanto mais específica for a busca, menor o risco de salvar um arquivo errado.

Nas versões atuais do nó, as opções de anexo ficam disponíveis quando a resposta completa é usada, não apenas a versão simplificada. Se o seu editor esconder Download Attachments, desative Simplify e abra novamente as opções do nó. A própria implementação do Gmail Trigger usa o prefixo para nomear os binários e acrescenta um índice a cada arquivo.

Passo 2: envie o anexo para o Google Drive

  1. Adicione um nó Google Drive depois do Gmail Trigger.
  2. Em Resource, escolha File.
  3. Em Operation, selecione Upload.
  4. No campo Input Data Field Name, informe attachment_0.
  5. Escolha a unidade e a pasta de destino em Parent Drive e Parent Folder.
  6. Em File Name, use a expressão {{$binary.attachment_0.fileName}} para preservar o nome recebido.
  7. Salve o workflow.

O nó do Google Drive documenta exatamente esse caminho: recurso File, operação Upload e um campo de entrada que aponta para o dado binário. Se o teste retornar “binary property not found”, abra a saída do Gmail Trigger e confira o nome real da propriedade. Ele pode mudar se você alterar o prefixo ou se outro nó renomear o arquivo.

Como lidar com mais de um anexo

O fluxo mínimo acima envia o primeiro arquivo, attachment_0. Se uma mensagem tiver vários anexos, você precisa transformar cada propriedade binária em um item separado antes do upload. Uma forma prática é inserir um nó Code entre o Gmail Trigger e o Google Drive:

const saida = [];

for (const item of $input.all()) {
  for (const [nome, arquivo] of Object.entries(item.binary ?? {})) {
    saida.push({
      json: { ...item.json, propriedadeAnexo: nome },
      binary: { data: arquivo },
    });
  }
}

return saida;

Depois desse nó, configure o Google Drive para usar data em Input Data Field Name e {{$binary.data.fileName}} em File Name. Assim, cada item chega ao upload com um único arquivo binário. Teste primeiro com dois anexos pequenos para confirmar o comportamento da sua versão do n8n.

Como testar sem bagunçar a pasta

  1. Crie uma pasta de teste no Google Drive.
  2. Envie para a conta do Gmail uma mensagem com um PDF ou uma imagem pequena.
  3. Execute o workflow manualmente ou aguarde o próximo polling.
  4. Abra a execução e confirme que surgiu a propriedade attachment_0.
  5. Verifique se o arquivo apareceu na pasta correta, com nome e extensão preservados.
  6. Só depois troque a pasta de teste pela pasta definitiva e ative o workflow.

Se a execução funcionar, mas o arquivo não aparecer no Drive, confira a pasta selecionada e a conta usada na credencial. Não basta o usuário conseguir abrir a pasta no navegador: a conta autorizada no n8n precisa ter permissão para criar arquivos nela.

Erros comuns e como corrigir

O workflow dispara para qualquer e-mail

Adicione has:attachment no campo de busca e restrinja por remetente, assunto ou marcador. Também confira o status de leitura escolhido. O Gmail Trigger permite trabalhar com mensagens não lidas, lidas ou ambas.

O anexo não aparece na saída

Verifique se Download Attachments está ligado e se o modo simplificado foi desativado quando necessário. Depois, abra a execução e copie o nome exato da propriedade binária para o campo do Google Drive.

A automação consome muita memória

Anexos são dados binários. Baixar mensagens completas e arquivos grandes aumenta o uso de memória, principalmente quando o polling encontra várias mensagens de uma vez. Reduza o escopo da busca, limite a quantidade por polling e evite manter o corpo completo do e-mail se ele não for necessário.

O mesmo arquivo é salvo mais de uma vez

Crie uma regra de idempotência. Você pode aplicar um marcador no Gmail depois do upload, usar uma busca que exclua mensagens já processadas ou gravar o ID da mensagem em uma base. O importante é não depender apenas do nome do arquivo: duas mensagens diferentes podem trazer um documento com o mesmo nome.

A credencial Google retorna erro

Reconecte a credencial no n8n e confirme que a conta autorizada é a mesma que possui acesso à caixa de entrada e à pasta. Em ambientes corporativos, um administrador pode limitar quais aplicativos têm permissão para acessar o Google Workspace.

Cuidados de segurança

Automatizar anexos não significa que todos os arquivos devam ir para o mesmo lugar. Separe pastas por cliente ou tipo de documento, limite o compartilhamento do Drive e use filtros estreitos no Gmail. Para documentos sensíveis, evite pastas públicas e revise quem pode baixar ou editar os arquivos.

Também não ative o fluxo direto na caixa de entrada inteira. Comece por um marcador como para-drive ou por um remetente conhecido. É mais fácil ampliar uma automação segura do que descobrir depois que ela despejou dados pessoais em uma pasta compartilhada.

Vale a pena usar n8n para isso?

Para um fluxo simples, sim. Você monta a automação sem escrever código, mas ainda pode usar expressões e um nó Code quando precisar tratar vários anexos, padronizar nomes ou separar pastas por remetente. A principal limitação é que o Gmail Trigger trabalha por consulta periódica, e o download de anexos aumenta o consumo de recursos.

Se você precisa apenas guardar alguns arquivos por semana, salvar manualmente pode ser mais rápido do que configurar OAuth e testar regras. O n8n começa a fazer sentido quando o volume é recorrente, o arquivo precisa ser classificado ou existe uma segunda ação depois do upload, como avisar uma equipe, registrar o documento em uma planilha ou iniciar uma aprovação.

Perguntas frequentes

Preciso programar para salvar anexos do Gmail no Drive?

Não para o fluxo básico. Depois de configurar as credenciais, Gmail Trigger e Google Drive funcionam por campos e menus. Código só ajuda quando há vários anexos ou regras de tratamento mais específicas.

O Gmail Trigger salva todos os anexos da mensagem?

Com o download habilitado, os anexos são expostos como propriedades binárias com prefixo e índice, como attachment_0 e attachment_1. O Google Drive, porém, recebe uma propriedade por operação; para vários arquivos, use um loop ou o nó Code mostrado neste tutorial.

O arquivo é enviado para o Drive na mesma hora?

Não necessariamente. O Gmail Trigger consulta a caixa no intervalo definido em Poll Times. A mensagem será processada na próxima verificação que atender aos filtros.

Posso salvar anexos só de um remetente?

Sim. Use o filtro from: junto de has:attachment, como from:cliente@exemplo.com has:attachment. Você também pode filtrar pelo assunto ou por um marcador do Gmail.