INTEGRAÇÕES / Diamond OS

Integração Diamond OS

Outposted é a camada canônica de publicação do Diamond OS. Snapshot público token-gated dá uma URL estável pro fluxo do flywheel do fundador linkar conteúdo publicado.


Setup

  1. Workspace + API key — Diamond OS usa 1 workspace por fundador. A API key é gerada via signup do Outposted (welcome email tem o plaintext, hashea no banco).
  2. Brand — cada fundador-marca vira uma Brand no workspace. Use POST /v1/workspaces/{wsId}/brands.
  3. Connections — OAuth flow conecta IG/FB/YT/LI/Threads do fundador. Cada brand pode ter 1+ connection por plataforma.
  4. Webhook endpoint — Diamond OS configura endpoint pra receber content.published e content.partial com public_url.

Fluxo canônico

Diamond OS cria o content via SDK ou HTTP, dispatcha o publish, recebe o webhook quando termina, e (opcionalmente) consulta o snapshot completo pra registrar no flywheel do fundador.

1

Criar content

Status default é draft. Pra publicar direto, passe status: 'queued'. Pra agendar, passe schedule_at.

import { Outposted } from '@outposted/node';

const outposted = new Outposted({ apiKey: process.env.OUTPOSTED_API_KEY! });

const result = await outposted.contents.create('ws_123', {
  brand_id: 'brand_founder_xyz',
  content_type: 'post',
  target_platforms: ['instagram'],
  content: {
    caption: 'Conteúdo do flywheel — segunda peça da semana.',
    media: [{ type: 'image', url: 'https://cdn.example.com/post.jpg' }],
  },
  status: 'queued', // publish imediato
});
console.log(result.content_id); // ct_abc123
2

Receber webhook content.published

Quando todos os jobs ficam OK, Outposted dispara content.published no endpoint do Diamond OS. Payload inclui public_url top-level.

{
  "event": "content.published",
  "content_id": "ct_abc123",
  "workspace_id": "ws_123",
  "public_url": "https://outposted.one/p/9k2m...",
  "platforms_published": ["instagram"],
  "platforms_failed": [],
  "published_at": "2026-06-08T12:34:56Z"
}

Se algum job falhar, vem content.partial (em vez de content.published) com platforms_published + platforms_failed + também public_url.

3

(Opcional) GET /snapshot — payload completo

Quando precisar de mais do que só a URL — caption, media com width/height, remote_post_id + remote_url por plataforma — consuma o endpoint canônico de integração.

const snapshot = await outposted.contents.snapshot.get(
  'ws_123',
  'ct_abc123',
);

console.log(snapshot.public_url);
console.log(snapshot.platforms_published);
// [{ platform: 'instagram', remote_post_id: '17890...',
//    remote_url: 'https://instagram.com/p/...', published_at: '...' }]

Sobre o snapshot público

  • Token estável. public_token é gerado uma vez na criação do content e nunca muda. URL outposted.one/p/{token} serve durante todo o ciclo de vida.
  • Auto-share no agendamento/publish. Quando o content transita pra scheduled ou published, public_status auto-bumpa de privateshareable.
  • Não-indexável. robots.txt disallow + meta name="robots" noindex. Token aleatório alta entropia (~128 bits) — enumeration inviável.
  • Revoke imediato. POST /snapshot/revoke derruba a URL em até 60s (KV purga + TTL). /p/{token} passa a retornar 410 Gone permanentemente — não há undo.
  • Mídia estável. Snapshot serve mídia do R2 do próprio Outposted via signed URLs com TTL longo (24h), geradas em tempo de render — não da CDN do Instagram/YouTube (que expira em horas). Revoga = derruba o snapshot e a mídia para de ser acessível via link público.
Edit pós-publish?

O snapshot é freeze no momento da publicação. Pra editar caption depois, use POST /clone pra duplicar o content como novo rascunho — edita o clone e publica. URLs ficam separadas (snapshot original continua válido se quiser preservar histórico).

Casos de uso no flywheel

Registro histórico do flywheel

Cada peça publicada do fundador vira um link outposted.one/p/ estável que pode ser inserido em narrativas internas do brain, prova social, ou retrospectivas.

Pré-aprovação interna

Criou um rascunho? Chama POST /snapshot/share pra liberar a URL. Manda o link pra outro membro da equipe revisar. Quando aprovado, agenda ou publica.

DMCA / retratação

Conteúdo veio à tona problemático? POST /snapshot/revoke tira do ar em segundos. /p/{token} passa a retornar 410 Gone — sinaliza ao crawler/visitante que conteúdo existiu mas foi removido propositalmente.

Próximos passos

Nesta página