AI Social Manager — Telegram, Blog, VK, Threads, Instagram, attribution.

Social AI

Brand workspace: strategy, channels, publishing, reports, listening, inbox, and UTM attribution.

Capabilities

CapabilityStatus
Brand Discovery + strategy
AI content plan (7 days) → ideas + drafts + calendar
Cover image upload + up to 2 URL buttons (Telegram inline)
Unified Content screen: plan + edit + approve + calendar
Deduped plan + fill from reports / memory; published → used
Telegram Bot API
CMS Blog
VK wall.post + OAuth
Threads + Instagram (Meta)
Approvals → schedule → publish + worker tick
Metrics + weekly AI report
Strategy memory + experiments
Listening / Inbox✅ (ingest + UI)
UTM → register / payment attribution
Boostystub
Autopilotno (manual approval)

Channels

Use + Add channel or OAuth in the channel list (VK / Threads / Instagram).

Env

VariablePurpose
VK_APP_ID / VK_APP_SECRETVK OAuth
META_APP_ID / META_APP_SECRETThreads + Instagram
*_OAUTH_REDIRECT_URIelse {PUBLIC_API_URL}/v1/social/oauth/.../callback
WORKER_SECRETpublish + metrics + plan refill tick

Manual tokens also work: Telegram (bot_token, chat_id), VK (access_token, owner_id), Threads/IG (access_token + user id).

Pipeline

  1. Discovery → strategy (activate).
  2. Content (single screen): generate / fill plan → list all posts with statuses → open a card → edit, approve, schedule, or publish.
  3. Week calendar and published posts live on the same screen. Worker: POST /v1/internal/social/tick.

Manual post: New post on the Content screen.

Attribution

On POST .../users/register send utm_source, utm_medium, utm_campaign (or acquisition_source).
utm_campaign = brand code. Payments inherit source from application_users.acquisition_source.

Attribution section: registers, payments, revenue by campaign.

API (excerpt)

Prefix YOUR_API_URL/v1/social (admin JWT), except OAuth callbacks.

  • POST /brands/:id/plan/generate (days, mode: fresh|fill), PATCH /variants/:id (body / cover / buttons)
  • POST /brands/:id/content, /approvals/:id/decide, /variants/:id/publish|schedule
  • GET/POST /brands/:id/insights/weekly, /accounts/:id/metrics/pull
  • GET/POST /brands/:id/memory|experiments|listening|inbox
  • GET /brands/:id/attribution
  • GET /oauth/:provider/start?account_id=

Autonomy

Default manual — publish without approval → approval_required.
assisted / autopilot / full_manager: worker refills a thin plan (mode: fill); manual/assisted still require approval before publish.