Pular para o conteúdo
Skillpedia
Código em geral48 mil · #3653

n8n-binary-and-data

Ajuda seu agente a lidar com arquivos e dados em n8n. Ele pode fazer upload, download e transformar dados para diferentes usos dentro do sistema.

O que ela faz

Esta ferramenta ajuda a gerenciar arquivos e dados binários (como imagens ou PDFs) dentro do n8n. Ela garante que esses arquivos sejam enviados, recebidos, transformados e transmitidos corretamente, separando-os dos dados normais (texto/números).

Quando usar

  • ✓Quando você precisa enviar um arquivo como anexo em um e-mail.
  • ✓Ao fazer upload de um arquivo para um serviço externo.
  • ✓Quando uma imagem precisa ser exibida em um chat.

Exemplo do que pedir para a IA

“Como faço para enviar a imagem que recebi em um chat para um serviço de armazenamento?”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/n8n-binary-and-data/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/n8n-binary-and-data/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

A ferramenta separa os dados de arquivos (binários) dos dados de texto/números. Ela garante que os arquivos sejam tratados separadamente e possam ser enviados ou recebidos corretamente, mesmo quando você usa recursos avançados como agentes de IA.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add sickn33/agentic-awesome-skills --skill n8n-binary-and-data

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/n8n-binary-and-data/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

n8n Binário e Dados

Quando Usar

Use esta habilidade quando um fluxo de trabalho n8n lê, transforma, armazena, envia, baixa ou transmite arquivos e campos binários, incluindo entradas de agentes multimodais e anexos de chat.

Trate arquivos enviados e URLs gerados como potencialmente sensíveis. Obtenha aprovação antes de enviar dados para um novo host externo, use o escopo de retenção e acesso mais restrito disponível, evite registrar bytes ou payloads base64 e não incorpore credenciais em URLs ou campos de fluxo de trabalho.

Cada item n8n carrega dois slots independentes: $json para dados estruturados e $binary para bytes de arquivo. Eles viajam lado a lado pelo fluxo de trabalho. O conteúdo do arquivo — o PDF, imagem ou zip real — reside em $binary, nunca em $json. Se você errar essa divisão, lerá um campo vazio, perderá um arquivo no meio do fluxo ou entregará a um agente de IA uma entrada de ferramenta que ele não pode usar.

Esta habilidade abrange onde o binário reside, como lê-lo e gravá-lo, como evitar que ele seja silenciosamente removido, a barreira rígida entre o binário e a fronteira da ferramenta do agente de IA, e por que as superfícies de chat precisam de uma URL em vez de bytes brutos.


As três regras que previnem 90% dos bugs binários

  1. O conteúdo do arquivo está em $binary, não em $json. Após um download HTTP, um gatilho "Ler Arquivos" ou um gatilho de anexo de e-mail, os bytes ficam em $binary.<key>. $json contém metadados, na melhor das hipóteses. Ler $json.data para o conteúdo do arquivo não retorna nada.

  2. O binário não pode cruzar a fronteira da ferramenta do agente de IA — em nenhuma direção. Argumentos de ferramentas e valores de retorno de ferramentas são apenas JSON. Uma imagem enviada não pode ser passada para uma ferramenta como um arquivo, e uma ferramenta não pode retornar bytes brutos. Pré-estágio para armazenamento e passe uma chave ou URL através de JSON em vez disso. Veja references/AGENT_TOOL_BINARY.md.

  3. As superfícies de chat renderizam imagens por URL, não por $binary. Slack, Discord, Teams, Telegram, chat de webhook incorporado — nenhum deles lê o slot binário. A imagem precisa residir em algum lugar onde uma URL possa buscá-la. Veja references/CDN_REQUIREMENT.md.


Os dois slots

Cada item é moldado assim:

{
  "json": { "customerId": 42, "status": "sent" },
  "binary": {
    "invoice": {
      "data": "<base64-encoded bytes>",
      "mimeType": "application/pdf",
      "fileName": "invoice-42.pdf",
      "fileExtension": "pdf"
    }
  }
}

A chave dentro de binary (invoice aqui) é o nome da propriedade binária. A maioria dos nós de manipulação de arquivos tem um parâmetro binaryPropertyName que aponta para ela — o produtor nomeia o slot, o consumidor o referencia por esse nome. A chave padrão na maioria dos nós é data, então quando nada lhe diz o contrário, assuma $binary.data.

$json e $binary são namespaces separados. Uma expressão como {{ $binary.invoice.fileName }} lê metadados do arquivo; {{ $json.customerId }} lê dados. Eles nunca se misturam.

Essa divisão também explica um problema comum de webhook: um gatilho Webhook recebendo multipart/form-data coloca o arquivo enviado em $binary e os campos de formulário acompanhantes em $json.body — então um arquivo enviado não está em nenhum lugar sob $json. (A aninhamento $json.body para webhooks é território de sintaxe de expressão n8n.)

Veja references/BINARY_BASICS.md para a anatomia completa do slot, tipos MIME e limites de tamanho.


Produzindo binário

Raramente você constrói um slot $binary manualmente — os nós o preenchem para você:

Fonte Como o binário aparece
Requisição HTTP com responseFormat: "file" Corpo da resposta vai para $binary.data (ou o nome que você definiu)
Ler/Gravar Arquivos do Disco Conteúdo do arquivo lido em $binary
Downloads de Armazenamento (S3, Google Drive, Dropbox, etc.) Arquivo baixado em $binary.<key>
Gatilhos de E-mail com anexos Cada anexo chega em $binary
Nós de mídia de IA do provedor (geração de imagem/áudio) Defina options.binaryPropertyOutput para que os bytes cheguem onde o próximo nó procura

Para um download HTTP, o único campo que importa é responseFormat. Confirme-o com get_node em nodes-base.httpRequest — deixá-lo no formato JSON/string padrão é a razão clássica pela qual um arquivo baixado acaba como texto ilegível em $json em vez de bytes limpos em $binary.


Lendo e gravando binário em um nó de Código

A maioria dos fluxos de trabalho nunca precisa abrir os bytes — eles apenas passam o binário para um consumidor (anexo de e-mail, upload de arquivo, arquivo do Slack). Quando você precisar dos bytes brutos, faça isso em um nó de Código.

Leia com getBinaryDataBuffer — não tente decodificar base64 $binary.<key>.data manualmente:

// Nó de Código, "Executar uma Vez para Cada Item"

…
Perguntas frequentes

Onde ficam os dados do arquivo?

Os dados reais do arquivo (como o conteúdo de um PDF ou imagem) ficam em um local chamado '$binary', não em '$json' que é para dados normais.

Posso enviar um arquivo diretamente para uma ferramenta de IA?

Não, ferramentas de IA só entendem texto (JSON). Você precisa primeiro salvar o arquivo e depois enviar o link (URL) para a IA.

Por que minhas imagens não aparecem no chat?

Chats precisam de um link (URL) para mostrar imagens, eles não leem os dados brutos do arquivo. Você precisa salvar a imagem e fornecer o link.

Detalhes

Descrição original do autor

Handle n8n files and binary data across uploads, downloads, transforms, multimodal inputs, agent tools, and chat surfaces.

repo: sickn33/agentic-awesome-skills

Popularidade

Estrelas no GitHub
48 mil
Posição no ranking
#3653
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas