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
Mensagem pronta para colar
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-dataOu 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.mdConteú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
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>.$jsoncontém metadados, na melhor das hipóteses. Ler$json.datapara o conteúdo do arquivo não retorna nada.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.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. Vejareferences/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.
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #3653
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
00-andruia-consultant
Ajuda seu agente a iniciar ou melhorar projetos de IA. Ele analisa código, sugere ferramentas e cria planos de ação em espanhol.
sickn33/agentic-awesome-skills
007
Faz seu agente realizar auditorias de segurança e modelagem de ameaças. É útil para proteger projetos contra ataques e vulnerabilidades.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Ajuda seu agente a criar ou melhorar ferramentas de IA. Ele define como as ferramentas funcionam, escreve a documentação e valida a estrutura.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Faz seu agente criar um resumo sobre um setor específico. É útil para entender o contexto, regras, padrões de uso e riscos de um projeto, usando fontes confiáveis.
sickn33/agentic-awesome-skills
Skills parecidas
benchmark-optimization-loop
Faz seu agente melhorar a velocidade de algo de forma medida. Ele testa várias versões e escolhe a mais rápida que ainda funciona corretamente.
affaan-m/ECC
change-impact
Ajuda seu agente a analisar o impacto de mudanças no código antes de fazê-las. Ele compara o planejado com o real depois, cobrindo caminhos, dados, testes e documentação. É útil para mudanças arriscadas ou que afetam várias partes do sistema.
affaan-m/ECC
click-path-audit
Faz seu agente rastrear todos os botões e interações do usuário para achar bugs. Ele encontra problemas onde funções parecem funcionar sozinhas, mas falham juntas. Útil quando bugs persistem mesmo após depuração.
affaan-m/ECC