Developer docs
Start here

What OmniChan can do

Every capability by area, marked live, partial or coming — checked against the code.

docs/CAPABILITIES.md

Every capability in the studio, grouped by area, with its status. Checked by hand against the code on main on 2026-10-01 (F-137). Statuses move weekly: when one changes, change its row here in the same PR.

StatusMeans
✅ LiveA customer can use it end to end today
🟡 PartialPart of it works; the gap is named in the row
🔲 ComingPlanned or being built

80 capabilities: 48 live · 12 partial · 20 coming.

Before promising a channel to a customer: each social platform and ad network also needs its developer app set up and approved in production. A row marked Live means the code is built; whether that platform is switched on in production depends on its credentials (see ENVIRONMENT.md).

Projects, team & access

How work is organised, who can see it, and how clients and agencies join in.

CapabilityStatusWhat it does
Projects with a marketing mix✅ LiveA project is the unit of work: pick its channels from twelve (SEO, AEO, paid search, paid social, organic social, email, WhatsApp, content, influencer, affiliate, PR, events) and set a budget per channel per period.
Roles and project-level access✅ LiveOwner, admin, member, agency and client. Members only see the projects they are on; one screen shows everything a person can reach.
Teams, individual roles and assignments✅ LiveTeams such as Design or Video, roles such as Video Editor, and posts assigned to people with a status and due date. Everyone sees their own queue under My work.
Invitations to a single project✅ LiveInvite someone to the whole workspace or to one project with a project role.
Agency logins✅ LiveOutside agency staff get their own logins, limited to the projects they are assigned.
Client review without an account✅ LiveStakeholders review and approve content through a secure magic link.
Client branding per project✅ LiveClient name, logo, accent colour and watermark text, used on every report and export for that project.
Team chat per project✅ LiveOne shared thread per project; approvals and other work post into it automatically.
Search across the workspace✅ LiveFind projects, posts, campaigns and people from the header search (⌘K).
Sign-in and security✅ LiveEmail and password, passkeys and two-factor authentication. An audit log records every security-relevant action.
Notifications✅ LiveIn-app, email and Slack: approval requested, publish failed, tracking broke, spend anomaly, low budget.
Plans and billing✅ LiveFour plans through Stripe, with invoices, payment methods and usage.
Google and GitHub sign-in🔲 ComingBuilt, but switched off while sign-in moves to a new system.
Data export and account deletion✅ LiveA person can download their data as a ZIP and delete their account, with a grace period and a confirmation email.
Guided tour✅ LiveA walkthrough of a project and of the workspace, restartable from the profile menu.
Workspaces inside an organisation🔲 ComingA level between organisation and project for each brand or client.
Onboarding checklist🔲 ComingA first-run wizard: connect channels, set the timezone, invite the agency, create the first project.

Create content

Writing, images and video for every channel, in the brand's voice.

CapabilityStatusWhat it does
Multi-channel composer✅ LiveWrite once, then adjust the text, title and media per channel. Each channel's character limit is counted as you type, and only the fields a channel uses are shown.
AI drafts in the brand's voice✅ LiveDrafts from a brief, in the project's brand voice, for the channels picked. Output is always a draft.
Rewrite and hashtag suggestions✅ LiveChange the tone of a draft, and get hashtag suggestions inside the composer.
Clear stages✅ LiveCreate content, then copy, then approve, shown as a stage bar so it is obvious what is left.
AI image generation✅ LiveGenerate images from a prompt inside the composer and the assistant.
Media library✅ LiveUpload, reuse and attach images, video and documents.
Resize and crop per channel✅ Live1:1, 4:5, 9:16, 1.91:1 and 16:9, with a crop point the user controls.
Instagram formats✅ LiveFeed posts, carousels, Reels and Stories.
AI video🟡 PartialMakes a video from a script with a voiceover. Editing an existing video (trim, re-crop, swap audio) is still being built.
Repurposing🔲 ComingTurn one piece into the formats other channels want.
Blog posts and articles🔲 ComingLong-form writing is not part of the studio yet.
Content buckets🔲 ComingClassify posts (educational, engagement and so on) and recommend a split based on what performed.
Link shortening with UTM tags🔲 ComingApplied automatically from the project's convention.

Approvals & scheduling

Getting the right post out at the right time, with sign-off where it matters.

CapabilityStatusWhat it does
Approval workflows✅ LiveMulti-step approvals. Client and agency posts and everything an AI agent proposes always need approval; for the internal team, approval is a per-project setting.
Content Scheduler✅ LiveMonth, week and list views. One card per post with its channels, status, caption and image, coloured by status. Proposed dates are drawn dashed. Drag a card to reschedule.
Time slots and queues🟡 PartialNamed posting slots and a queue that fills the next open slot exist behind the scenes, with no screen to set them up yet. Recurring posts are not built.
Bulk import✅ LiveImport a sheet of posts as drafts straight onto the calendar.
Reliable publishing✅ LiveRetries with backoff; if one channel of a post fails, the others still go out, and nothing is posted twice. Every attempt is in the publish log.
Approver can edit🔲 ComingLet an approver fix a post themselves instead of sending it back, with every edit recorded.
Bin with 30-day restore🔲 ComingDeleted posts recoverable for 30 days.

Inbox

Conversations from every connected account in one place.

CapabilityStatusWhat it does
Unified inbox✅ LiveComments, mentions and DMs in one queue, with sentiment tags and reply in place.
Instagram and Facebook DMs✅ LiveAnswer DMs from the inbox, shown as one conversation per person with the whole chat.
Saved replies✅ LiveReusable responses with variables, so common answers are one click.
Email and WhatsApp in the inbox🔲 ComingBring email and WhatsApp conversations into the same queue.
Reviews and complaints🔲 ComingGoogle and marketplace reviews, and one view of complaints across platforms.

Email marketing

Lists, campaigns, automations, forms and landing pages, per project.

CapabilityStatusWhat it does
Audience and segments✅ LiveContacts from CSV or a Google Sheets link, tags, custom fields, built-in and custom segments, and dynamic segments.
Email composer✅ LiveFormatting, links, inline images, attachments, personalisation tags, desktop and mobile preview, test sends, templates, signature and autosave.
Send from the client's own domain✅ LiveEach project can send from its own authenticated domain.
Automations✅ LiveA visual journey builder, five ready-made recipes, and a plain sentence saying who will be enrolled.
Lead capture forms✅ LiveEmbeddable forms that create or update contacts, tag them and can start an automation.
Landing page builder✅ LiveDrag-and-drop pages with hero, text, image, video, button, form, features, testimonials, FAQ and footer blocks; embeddable on the client's own site.
Engagement tracking🟡 PartialOpens, clicks, bounces and complaints are being moved onto a new sending provider.
Test a journey against a real contact🔲 ComingSee the exact path a contact would take through a draft automation.

Google Ads and Meta Ads from inside the studio.

CapabilityStatusWhat it does
Google Ads🟡 PartialConnect, find accounts, read and write campaigns, and pull metrics. Building ad groups and ads is behind a switch, and Video campaigns are not supported.
Meta Ads🟡 PartialConnect, create campaigns, ad sets, creatives and ads, and pull metrics. Needs the Meta app approved for ads management in production.
Meta pixel and Conversions API✅ LivePick the ad account's pixel from a list; conversions are also sent server-to-server to Meta.
Optimisation proposals🟡 PartialDaily analysis proposes bid, budget and pause changes. A person approves before anything is applied.
Spend caps and live control🔲 ComingBudget vs actual spend, a hard cap that pauses campaigns, and launch / pause / resume from the studio.
Spend recommendations🔲 ComingHow to split budget across platforms from measured return.

Analytics & reporting

What is running and what it returns, plus reports a client can keep.

CapabilityStatusWhat it does
Organic dashboards per platform✅ LiveReach, impressions, engagement, engagement rate, clicks, follower growth and top posts for each connected platform.
Paid dashboards✅ LiveGoogle Ads and Meta Ads performance side by side.
Website analytics✅ LiveGA4 connection, the studio's own website tracker, visitor paths and page coverage.
Report builder (Alchemy)✅ LiveSocial Alchemy and Marketing Alchemy: pick breakdowns and metrics, then download as CSV or as a branded PDF.
Client performance report✅ LiveA one-page PDF with the client's logo, colours and watermark across every page.
Confidential exports✅ LiveEvery CSV export opens with the project's watermark and who exported it.
One KPI screen🟡 PartialOrganic and paid on one screen; cross-project comparisons are still being built.
Audience demographics🟡 PartialAge, gender and location of followers, where the platform provides them.
Competitor tracking🟡 PartialA named competitor set's posting and engagement next to the project's own.
Saves and bookmarks as their own metric🔲 ComingInstagram saves and X bookmarks with a save rate and a most-saved list. Built and in review.
Scheduled report emails🔲 ComingSend a report as PDF on a schedule.
Social listening🔲 ComingBrand mentions and sentiment beyond the project's own inbox.
Drill down from a chart🔲 ComingClick a point on a chart to reach the posts behind it.

SEO & AEO

Search visibility, for classic results and for AI answers.

CapabilityStatusWhat it does
SEO site audit✅ LiveCrawls the site and lists fixable issues: titles, meta, headings, canonicals, structured data, links and Core Web Vitals.
AEO readiness✅ LiveChecks pages against seven rules for being cited by AI answer engines.
Rank tracking and backlinks🟡 PartialKeyword positions and backlinks from live search data.
Fixes as pull requests🔲 ComingConnect a site's repository and open content and SEO fixes as pull requests.

Assistant & agents

AI that does the work, with a person approving what goes out.

CapabilityStatusWhat it does
Studio assistant✅ LivePrepares contacts, segments, emails, automations and posts, reports how things did, draws images and remembers context. Every action waits for a Confirm.
Agents✅ LiveContent drafts, images, ideas, research, campaign optimisation and site audits. Their output lands in Approvals; nothing is applied without a person.
AI campaign plans🟡 PartialA brief in, a channel mix, budget split and posting cadence out, as a draft plan to edit.
API keys and run log🟡 PartialRevocable keys and a log of what every agent ran, changed and cost. Keys do not yet limit themselves to their project and permissions.
Agent API and MCP endpoint🔲 ComingDocumented API and a direct connection for Claude, Codex and other agent tools.

Website & demos

The public site that brings customers in.

CapabilityStatusWhat it does
Get a demo with booking✅ LiveThe demo form opens the team's Calendly in the same window, with the visitor's name and email filled in.
Privacy, terms and data deletion pages✅ LiveHosted on the product's own domain.

Channels at a glance

"Account stats" means follower counts and account-level reach; "post stats" means likes, comments, shares, saves and views per post.

PlatformConnectPublishPost statsAccount statsInboxCode
Facebook Pages✅✅✅✅Comments, DMsapps/api/src/modules/channels/adapters/facebook.ts
Instagram business✅✅ Feed, carousel, Reels, Stories✅✅Comments, DMsadapters/instagram.ts
LinkedIn personal profile✅✅ incl. PDF documents✅🔲Commentsadapters/linkedin.ts
LinkedIn company Page✅ every Page you admin or content-admin✅ as the Page, incl. PDF documents✅🔲🔲adapters/linkedin.ts (createLinkedInPageAdapter); needs its own LinkedIn app with Community Management API approval
YouTube✅✅ Video upload✅🔲🔲adapters/youtube.ts
X (Twitter)✅✅✅🔲🔲adapters/x.ts
Threads✅✅✅🔲🔲adapters/threads.ts
TikTok✅✅✅🔲🔲adapters/tiktok.ts
Pinterest✅✅✅ incl. saves🔲🔲adapters/pinterest.ts
Google Analytics (GA4)✅n/an/a✅ Site trafficn/aapps/api/src/modules/analytics/adapters/ga4.ts
Google Business Profile🔲🔲🔲🔲🔲F-141
WhatsApp Business🔲🔲🔲🔲🔲F-048

Not possible

QuestionAnswer
Can OmniChan create a new social account?No. It connects accounts that already exist.
Can it show who saved or bookmarked a post?No. Instagram and X keep this private and only report the count.
Can it publish without a connected account?No. Every post goes out through an account the customer connected and authorised.

Where the board disagrees with the code

The board (data/dashboard/features.json) was re-checked against main on 2026-10-01 and 31 statuses were corrected (see CHANGELOG). These remain:

Board rowBoard saysCode says
F-041 LinkedInDone; /build says "Pages + personal posting"Personal profile and company Pages both publish; Pages have no inbox or account stats yet, and need LinkedIn's Community Management API approval before they work in prod
F-044 X · Threads · TikTok · Pinterest · Google BusinessOne row, in progressFour publish with post stats; Google Business has no adapter (F-141)
Landing FAQGoogle Ads and Meta Ads "supported"Both partial: F-050 and F-051 in progress
Landing FAQEvery draft waits for approvalApproval is a per-project setting for the internal team; always on for clients, agencies and agents