Skip to main content

// social autopilot

Seven channels. One brand voice. Zero late-night replies.

Publish to Instagram, Facebook and Pinterest from one brand profile, with TikTok, X, LinkedIn and YouTube following their platforms' app reviews. Generate posts, images, and video from your live catalog. Sync every DM and comment into a ranked inbox where high-LTV and high-risk surface first.

7 surfaces Brand-voice locked Attention-ranked DMs
social · today

Instagram

3 posts

Facebook

2 posts

Pinterest

12 pins

Reels

1 reel

inbox: 4 attention, 38 queuedbrand_voice 0.91

// seven surfaces

Native APIs, not a posting tool.

Each surface has its own SDK, scope, and rate ceilings. Social Autopilot speaks the right API per surface — and writes every publish into a single content_log so cross-surface cadence stays sane.

Instagram

Feed · Reels · Stories · DMs

Native Graph API publishing, story scheduling, DM sync to the unified inbox. Reels with multi-variant audio + caption tests.

Live

Facebook

Page posts · Reels · Messenger

Page-scope OAuth, scheduled posts, Messenger inbox sync. Cross-posts from IG when policies match, deduplicated by content hash.

Live

TikTok

Posts · Comments · DMs

Scheduled uploads, comment classification and a DM responder, from the same planner.

Waiting on TikTok's app review

X

Posts · Replies · DMs

Post scheduling and thread composition from product context, held to your brand voice.

Waiting on X API access

LinkedIn

Company posts · DMs

Company-page publishing and executive-voice drafts in a separate sub-voice of your brand.

Waiting on LinkedIn's API approval

Pinterest

Pins · Boards

Product-pin generation from Shopify catalog, board organization by lifecycle state, scheduled drops in season windows.

Live

YouTube

Videos · Shorts

Video publishing to your channel, Shorts-friendly formats from the generator, scheduled inside your posting windows.

Not available yet

OAuth hub lives at /workspace/integrations/social — connect each surface independently, with scoped tokens stored in Supabase Vault. Revoke per-surface without breaking the others. On connect, history import pulls your existing posts in, and metrics sync keeps per-post performance flowing back afterwards.

// brand_profile

The voice file every surface listens to.

brand_profile is one source of truth for tone, visual identity, and posting guidelines. Update it once, every surface inherits — and the change shows up as a row in the content audit log.

voice_embeddings

Vectorized prose samples — the centroid the drafter steers toward and the judge measures distance from.

visual_assets

Palette, typography lockup, logo + product photography rules. Image generator conditions on these every render.

posting_guidelines

Cadence per surface, do/don'ts, calendar holidays, blackout windows. Publisher refuses to push outside the rules.

compliance_list

Trademark filter list, prohibited-claim list, regional disclaimers — applied per-surface and per-region.

sub_voices

Optional: separate sub-voice for LinkedIn / Pinterest / executive posts. Same brand, different register.

brand_profile.json
{
  "brand_id":     "linen_house",
  "voice": {
    "centroid_id": "vec_2024",
    "register":    "warm, practical, lyrical",
    "do":   ["second-person", "tactile detail"],
    "dont": ["superlatives", "FOMO hooks"]
  },
  "visual": {
    "palette":     ["#0B0D12","#F8F4EC","#7C8B5C"],
    "type":        "Editorial Serif + Mono",
    "photography": "natural light, neutral set"
  },
  "cadence": {
    "instagram":   "4/wk",
    "tiktok":      "3/wk",
    "linkedin":    "1/wk"
  },
  "compliance": {
    "trademarks":  ["LinenHouse®"],
    "blocked":     ["organic","100% natural"]
  }
}

// generator pipeline

From catalog signal to posted asset.

The generator pipeline takes a moment — a new winner, a discount window, a season open — and produces the post end-to-end. Every step writes its output to Supabase, every step is observable, every asset traceable to a concept_id.
01

content_agent

Reads the brand_profile, the calendar, and the live catalog. Drafts the copy concept — angle, hook, CTA — for the surface and the moment.

// output

concept_draft

02

image_generator

AI-generated visuals with a brand-locked palette and typography. Compositions tuned per surface — vertical for Reels, square for Feed, ratio per spec.

// output

image_assets

03

video_generator

FAL-powered video generation — Reels-grade clips and motion variants per platform. Stamped with concept_id for downstream tracking.

// output

video_variants

04

publisher

Composes the post — image or video + copy + tags + link — and pushes through the surface SDK inside your posting windows. Idempotent by content hash.

// output

publish_payload

// inbox

DMs and comments, ranked by attention.

Seven surfaces, one inbox. Classifier tags every message, responder drafts safe auto-replies in brand voice, attention ranks the rest — so the highest-stakes thread is the first one you read in the morning.

sync

Pulls DMs and comments from every connected surface into one unified message store. Webhook + polling fallback per surface.

classifier

Tags every message — lead, complaint, support, fan mail, spam — and routes to the right specialist or queue.

responder

Drafts replies in brand voice for the most common intents. CS-class messages route to the CS Specialist with order context attached.

attention

Ranks DMs and comments by urgency — high-LTV customers, escalation risk, viral threats — surfaced to operators before the rest of the queue.

inbox · attention queue
▼ rank by attention_score (desc)

#1  IG DM   @sarah.k  attn=0.94
    intent: complaint
    LTV:    €1,840 (top decile)
    → escalate to human

#2  FB cmt  reply     attn=0.88
    intent: viral_risk (37 likes)
    sentiment: angry
    → responder drafted, hold

#3  FB DM   @benf     attn=0.71
    intent: lead (asks about MOQ)
    → replied (brand voice 0.93)

#4  IG cmt  @maya     attn=0.42
    intent: fan_mail
    → liked + replied

… 38 more in queue, autosorted

Operator routes live at /dashboard/social/{posts,dms,attention,analytics,settings}. Every surface respects the channel's native scope — Magistry never asks for more than it needs.

// social autopilot

Stop choreographing six tabs.

Connect once, publish from one brand_profile, reply from one inbox. The fan mail still feels like you wrote it — because the voice file says so.

Native APIs · Scoped OAuth · Voice-locked