Pular para o conteúdo

Conexão Azul - Blue Content Social

Marketing/Social Marketing · v19.0.1.3.0 · OPL-1

Ponte enxuta entre o Blue Prosperity Runtime e o Social Marketing Enterprise.

blue_content_approval, social

Ponte nativa entre blue.content.approval e o aplicativo Enterprise Social Marketing.

Blue Prosperity Runtime
→ outbox delivery-disabled
→ revisão corporate + revisão founder
→ materialização verificada dos assets
→ aprovação humana independente
→ social.post em draft
→ Social Marketing Enterprise

O Odoo governa contas, calendário, UTMs, publicação humana, cliques, engajamento, CRM, cotações e faturamento. A ponte não usa LLM, não baixa URLs e não publica automaticamente.

Cada mensagem gera duas revisões independentes:

corporate → Conexão Azul
founder → Diego / Fundador

As revisões compartilham run ID, checksum e fontes, mas possuem decisão, contas, conteúdo, attachments, post e métricas próprios. IDs e chaves de idempotência são determinísticos. Registros antigos podem receber o perfil ausente sem recriar o rascunho histórico.

A mensagem comum é reutilizada por padrão. Quando Personalizar por rede estiver marcado, o módulo usa os campos nativos do Odoo 19:

  • instagram_message e instagram_image_ids;
  • linkedin_message e linkedin_image_ids;
  • facebook_message e facebook_image_ids;
  • is_split_per_media.

Variações são extraídas deterministicamente de channels, per_media, channel_variants, platforms ou chaves específicas por rede. Nenhuma reescrita ocorre no Odoo.

O Instagram reutiliza o validador Enterprise para imagem obrigatória, JPEG, proporção de 4:5 a 1.91:1, máximo de 10 imagens e arquivo corrompido.

Paths da outbox representam lineage de staging. Eles nunca são lidos como paths locais do servidor Odoo.

A versão 19.0.1.3.0 oferece o método JSON-2:

blue.content.approval.materialize_social_assets

O método aceita somente uma revisão previamente importada e valida:

  • usuário em Blue Content Integration ou administrador;
  • message_id, perfil, bundle, asset ID e checksum exatos;
  • logical paths previamente declarados na outbox;
  • no máximo 10 arquivos;
  • no máximo 8 MiB por arquivo e 30 MiB por lote;
  • JPEG, PNG ou WebP;
  • base64 válido;
  • tamanho e SHA-256 reais;
  • assinatura mágica compatível com o MIME;
  • nomes e logical paths seguros;
  • isolamento por empresa;
  • ausência de rascunho e fingerprint anteriores.

Cada attachment guarda:

  • blue_content_asset_id;
  • blue_content_file_sha256;
  • blue_content_logical_path.

A idempotência usa revisão, asset e logical path. Repetir o mesmo lote reutiliza attachments. Repetir o mesmo path com conteúdo, MIME, nome ou tamanho diferentes é rejeitado.

O lote pode ser parcial, mas o perfil corporativo permanece missing até que todos os paths esperados tenham attachments válidos. A resposta contém somente IDs, contagens e estado, nunca bytes ou base64.

A leitura segura dos arquivos e o envio ao endpoint pertencem ao blue-content-connectors. O Odoo não acessa o filesystem do runtime nem URLs remotas.

Ao criar o rascunho, o módulo calcula SHA-256 sobre:

  • perfil e pacote;
  • mensagem comum e mensagens por rede;
  • contas e tipos de mídia;
  • campanha UTM;
  • attachments comuns e por rede;
  • checksums dos arquivos;
  • checksum do asset de origem.

Depois do selo:

  • campos de preparação e do selo ficam imutáveis pelo fluxo comum;
  • o rascunho auditado não pode ser excluído;
  • edição no social.post gera drifted;
  • publicação e agendamento ficam bloqueados;
  • renovar o selo exige justificativa humana;
  • o cron revalida a integridade antes de _action_post.

Um item agendado com drift volta para draft, sai da agenda, não cria social.live.post e não paralisa os itens íntegros do lote.

A campanha Blue Prosperity Content Engine agrupa a operação. O social.post cria sua utm.source, e cada social.account mantém seu utm.medium.

Quando instalados, os módulos nativos fornecem:

  • click_count;
  • engagement;
  • leads_opportunities_count;
  • sale_quotation_count;
  • sale_invoiced_amount.
  • somente social.group_social_user prepara rascunhos;
  • somente Blue Content Integration ou administrador materializa binários;
  • contas e attachments precisam respeitar a empresa da revisão;
  • conta desconectada é bloqueada;
  • nenhuma credencial social é armazenada pela ponte;
  • nenhuma chamada HTTP é feita pelo módulo;
  • nenhuma publicação ou agenda é criada pelo endpoint de assets.
ConexaoAzulDigital/enterprise
branch: 19.0
pin: 14c6dae45ff1c477226dcd49680ab3e3aedeaf09

O registry de governança está em conexaoazul/enterprise. O código Enterprise não é copiado para o BlueApps19.

Terminal window
odoo-bin \
-d blue_content_social_test \
-i blue_content_social \
--test-enable \
--test-tags=/blue_content_social \
--stop-after-init

A suíte cobre perfis pareados, backfill, canais, assets completos e parciais, idempotência, traversal, MIME, magic bytes, limites, selo, drift, reseal, cron e lineage.