Skip to content

Latest commit

 

History

31 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Postagem Redes

Validação do projeto

Desenvolvi uma central visual e três workflows n8n para organizar carrosséis técnicos, revisar legendas, escolher redes, aprovar conteúdo e registrar o resultado individual de cada tentativa de publicação.

Estado atual: revisei os workflows na instância local n8n 2.33.5. Facebook e Instagram foram exercitados em ambiente de teste. Uma tentativa posterior no Instagram encontrou limite do túnel público de mídia; X continua bloqueado por crédito da conta de teste e LinkedIn depende de acesso à Página.

Visão geral

Aspecto Situação atual
Arquitetura Três workflows: portal visual, ações/agendamento e serviço controlado de arquivos.
Fluxo principal O workflow de ações possui 58 nós no snapshot público atual.
IA aplicada OpenAI → Gemini → Ollama como cadeia opcional para rascunho, sempre com aprovação humana.
Grounding/RAG No ambiente pessoal/interno, a recuperação de contexto usa LangChain, Supabase e n8n/Docker para apoiar respostas com informações da própria base antes da revisão. A base de conhecimento e seus dados não são publicados neste snapshot.
Evals públicos Harness offline e independente de provedor para grounding, fontes autorizadas, prompt injection, revisão humana e ação segura antes da publicação.
Integrações Meta Graph API, OAuth2, APIs HTTP e resultado independente por rede.
Confiabilidade Reserva por destino, dispatchId, idempotência, retry, ledger e falha isolada por canal.
Versão pública Exports inativos e sanitizados, demo sem chamadas externas, validação de privacidade e GitHub Actions.

Problema que resolvi

O conteúdo técnico ficava espalhado entre pastas, planilhas e mensagens. Organizei o processo em um único fluxo com:

  • biblioteca visual de carrosséis;
  • revisão de legenda e prévia;
  • responsável, comentário, canais e agendamento;
  • recuperação de contexto/grounding antes da geração quando a base interna está habilitada;
  • geração assistida de rascunho;
  • aprovação humana antes das APIs externas;
  • fila e resultado individual por rede;
  • histórico e ledger de entregas.

Estado por canal

Canal O que aconteceu Estado atual
Facebook Publicação multi-imagem confirmada em Página de teste controlada. Funcionou em teste
Instagram OAuth e publicação foram exercitados; uma tentativa posterior com seis imagens falhou pelo tempo de download através do túnel. Fluxo validado com limite de infraestrutura
X A rota e o registro existem; a conta de teste retornou limite de créditos. Bloqueado pelo provedor
LinkedIn O fluxo está preparado, mas a credencial e o acesso à Página não foram fornecidos. Pendente de acesso externo

Essa separação deixa claro o que já funcionou, o que depende de infraestrutura e o que ainda depende de acesso externo.

Interface

Biblioteca

Biblioteca visual

Revisão e decisão

Editor de publicação

Postagem rápida

Postagem rápida

As telas usam conteúdo fictício e anonimizado. A demo navegável não chama n8n nem serviços externos.

Workflows

Workflow Gatilho Responsabilidade
Portal Visual Webhook GET Biblioteca, filtros, prévias, modais e upload rápido.
Portal: Ações Webhook POST + agenda Decisões, contexto/rascunho assistido, reservas, publicação, falhas e ledger.
Portal: Arquivos Webhook GET Entrega somente a mídia validada do conteúdo solicitado.

O export 05-portal-acoes.sanitized.json possui 58 nós, fica inativo por segurança e passa pela validação automática.

Canvas real do workflow Portal Ações

Fluxo de decisão

flowchart LR
    U[Usuário] --> P[Portal visual]
    P --> H[Aprovação humana]
    H --> A[Workflow de ações]
    A --> AI[Contexto + IA opcional]
    A --> R[Reserva por rede]
    R --> FB[Facebook]
    R --> IG[Instagram]
    R --> X[X]
    R --> LI[LinkedIn]
    FB --> L[Ledger]
    IG --> L
    X --> L
    LI --> L
Loading

Grounding e base de conhecimento

No ambiente original, uso uma camada de recuperação de contexto com LangChain + Supabase + n8n/Docker para consultar informações da própria base antes de montar o rascunho. O objetivo é reduzir afirmações sem base sobre produtos, capacidades ou informações da empresa.

Essa camada é diferente do snapshot público: documentos, embeddings, registros e configurações da base interna permanecem privados. Portanto, este repositório demonstra publicamente o fluxo de publicação e seus guardrails, enquanto a implementação operacional de conhecimento é descrita sem expor o conteúdo corporativo.

Evals reproduzíveis

A pasta evals/ transforma parte desses guardrails em contratos executáveis e independentes do provedor. Os casos são sintéticos e verificam fontes autorizadas, grounding mínimo, claims/instruções proibidas, preservação de revisão humana e publishAction=hold antes da decisão humana.

node evals/run-evals.mjs

O mesmo runner aceita um arquivo de outputs de outro prompt ou provedor, permitindo comparação futura sem publicar documentos corporativos ou exigir credenciais na CI. Esses evals não são apresentados como benchmark de qualidade de modelo nem como prova de produção; eles cobrem contratos de segurança e evidência que podem ser verificados offline.

Decisões técnicas

  • separei interface, ações e mídia em três workflows;
  • mantive OAuth no cofre do n8n;
  • usei chamadas HTTP específicas quando o nó oficial não cobria o contrato necessário;
  • reservei cada destino e gerei um dispatchId antes da chamada externa;
  • isolei falhas por canal para que uma rede não cancele as demais;
  • mantive a legenda aprovada como fonte principal, mesmo quando a IA sugere um rascunho;
  • usei grounding/recuperação de contexto quando a base interna está disponível, sem publicar seus dados;
  • limitei o portal sem login à rede local;
  • deixei PostgreSQL como evolução prevista caso concorrência e retenção cresçam.

Documentação

Validar a cópia pública

node scripts/build-portfolio-demo.mjs
node scripts/validate-portfolio-workflows.mjs
node scripts/validate-portal-code.mjs
node evals/run-evals.mjs
pwsh -NoProfile -File scripts/validate-workflows.ps1

A validação rejeita JSON inválido, credenciais serializadas, e-mails reais, IDs internos, domínios temporários de túnel e exports ativos. A CI também executa os evals públicos e falha se os contratos sintéticos deixarem de passar.

Tecnologias

n8n 2.33.5 · Docker · JavaScript · Node.js · Webhooks · OAuth2 · Meta Graph API · HTTP APIs · LangChain · Supabase · RAG/grounding · Data Tables · Idempotência · Retry · Auditoria · GitHub Actions

Autor

Maycon Ferreira — produto, workflows, integrações, IA aplicada, experiência operacional, testes e documentação.

About

Orquestração de conteúdo B2B com aprovação humana, n8n, OAuth2 e publicação multicanal por API.

Topics

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages