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.
| Status | Means |
|---|---|
| ✅ Live | A customer can use it end to end today |
| 🟡 Partial | Part of it works; the gap is named in the row |
| 🔲 Coming | Planned 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.
| Capability | Status | What it does |
|---|---|---|
| Projects with a marketing mix | ✅ Live | A 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 | ✅ Live | Owner, 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 | ✅ Live | Teams 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 | ✅ Live | Invite someone to the whole workspace or to one project with a project role. |
| Agency logins | ✅ Live | Outside agency staff get their own logins, limited to the projects they are assigned. |
| Client review without an account | ✅ Live | Stakeholders review and approve content through a secure magic link. |
| Client branding per project | ✅ Live | Client name, logo, accent colour and watermark text, used on every report and export for that project. |
| Team chat per project | ✅ Live | One shared thread per project; approvals and other work post into it automatically. |
| Search across the workspace | ✅ Live | Find projects, posts, campaigns and people from the header search (⌘K). |
| Sign-in and security | ✅ Live | Email and password, passkeys and two-factor authentication. An audit log records every security-relevant action. |
| Notifications | ✅ Live | In-app, email and Slack: approval requested, publish failed, tracking broke, spend anomaly, low budget. |
| Plans and billing | ✅ Live | Four plans through Stripe, with invoices, payment methods and usage. |
| Google and GitHub sign-in | 🔲 Coming | Built, but switched off while sign-in moves to a new system. |
| Data export and account deletion | ✅ Live | A person can download their data as a ZIP and delete their account, with a grace period and a confirmation email. |
| Guided tour | ✅ Live | A walkthrough of a project and of the workspace, restartable from the profile menu. |
| Workspaces inside an organisation | 🔲 Coming | A level between organisation and project for each brand or client. |
| Onboarding checklist | 🔲 Coming | A 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.
| Capability | Status | What it does |
|---|---|---|
| Multi-channel composer | ✅ Live | Write 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 | ✅ Live | Drafts from a brief, in the project's brand voice, for the channels picked. Output is always a draft. |
| Rewrite and hashtag suggestions | ✅ Live | Change the tone of a draft, and get hashtag suggestions inside the composer. |
| Clear stages | ✅ Live | Create content, then copy, then approve, shown as a stage bar so it is obvious what is left. |
| AI image generation | ✅ Live | Generate images from a prompt inside the composer and the assistant. |
| Media library | ✅ Live | Upload, reuse and attach images, video and documents. |
| Resize and crop per channel | ✅ Live | 1:1, 4:5, 9:16, 1.91:1 and 16:9, with a crop point the user controls. |
| Instagram formats | ✅ Live | Feed posts, carousels, Reels and Stories. |
| AI video | 🟡 Partial | Makes a video from a script with a voiceover. Editing an existing video (trim, re-crop, swap audio) is still being built. |
| Repurposing | 🔲 Coming | Turn one piece into the formats other channels want. |
| Blog posts and articles | 🔲 Coming | Long-form writing is not part of the studio yet. |
| Content buckets | 🔲 Coming | Classify posts (educational, engagement and so on) and recommend a split based on what performed. |
| Link shortening with UTM tags | 🔲 Coming | Applied automatically from the project's convention. |
Approvals & scheduling
Getting the right post out at the right time, with sign-off where it matters.
| Capability | Status | What it does |
|---|---|---|
| Approval workflows | ✅ Live | Multi-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 | ✅ Live | Month, 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 | 🟡 Partial | Named 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 | ✅ Live | Import a sheet of posts as drafts straight onto the calendar. |
| Reliable publishing | ✅ Live | Retries 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 | 🔲 Coming | Let an approver fix a post themselves instead of sending it back, with every edit recorded. |
| Bin with 30-day restore | 🔲 Coming | Deleted posts recoverable for 30 days. |
Inbox
Conversations from every connected account in one place.
| Capability | Status | What it does |
|---|---|---|
| Unified inbox | ✅ Live | Comments, mentions and DMs in one queue, with sentiment tags and reply in place. |
| Instagram and Facebook DMs | ✅ Live | Answer DMs from the inbox, shown as one conversation per person with the whole chat. |
| Saved replies | ✅ Live | Reusable responses with variables, so common answers are one click. |
| Email and WhatsApp in the inbox | 🔲 Coming | Bring email and WhatsApp conversations into the same queue. |
| Reviews and complaints | 🔲 Coming | Google and marketplace reviews, and one view of complaints across platforms. |
Email marketing
Lists, campaigns, automations, forms and landing pages, per project.
| Capability | Status | What it does |
|---|---|---|
| Audience and segments | ✅ Live | Contacts from CSV or a Google Sheets link, tags, custom fields, built-in and custom segments, and dynamic segments. |
| Email composer | ✅ Live | Formatting, links, inline images, attachments, personalisation tags, desktop and mobile preview, test sends, templates, signature and autosave. |
| Send from the client's own domain | ✅ Live | Each project can send from its own authenticated domain. |
| Automations | ✅ Live | A visual journey builder, five ready-made recipes, and a plain sentence saying who will be enrolled. |
| Lead capture forms | ✅ Live | Embeddable forms that create or update contacts, tag them and can start an automation. |
| Landing page builder | ✅ Live | Drag-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 | 🟡 Partial | Opens, clicks, bounces and complaints are being moved onto a new sending provider. |
| Test a journey against a real contact | 🔲 Coming | See the exact path a contact would take through a draft automation. |
Paid media
Google Ads and Meta Ads from inside the studio.
| Capability | Status | What it does |
|---|---|---|
| Google Ads | 🟡 Partial | Connect, 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 | 🟡 Partial | Connect, 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 | ✅ Live | Pick the ad account's pixel from a list; conversions are also sent server-to-server to Meta. |
| Optimisation proposals | 🟡 Partial | Daily analysis proposes bid, budget and pause changes. A person approves before anything is applied. |
| Spend caps and live control | 🔲 Coming | Budget vs actual spend, a hard cap that pauses campaigns, and launch / pause / resume from the studio. |
| Spend recommendations | 🔲 Coming | How to split budget across platforms from measured return. |
Analytics & reporting
What is running and what it returns, plus reports a client can keep.
| Capability | Status | What it does |
|---|---|---|
| Organic dashboards per platform | ✅ Live | Reach, impressions, engagement, engagement rate, clicks, follower growth and top posts for each connected platform. |
| Paid dashboards | ✅ Live | Google Ads and Meta Ads performance side by side. |
| Website analytics | ✅ Live | GA4 connection, the studio's own website tracker, visitor paths and page coverage. |
| Report builder (Alchemy) | ✅ Live | Social Alchemy and Marketing Alchemy: pick breakdowns and metrics, then download as CSV or as a branded PDF. |
| Client performance report | ✅ Live | A one-page PDF with the client's logo, colours and watermark across every page. |
| Confidential exports | ✅ Live | Every CSV export opens with the project's watermark and who exported it. |
| One KPI screen | 🟡 Partial | Organic and paid on one screen; cross-project comparisons are still being built. |
| Audience demographics | 🟡 Partial | Age, gender and location of followers, where the platform provides them. |
| Competitor tracking | 🟡 Partial | A named competitor set's posting and engagement next to the project's own. |
| Saves and bookmarks as their own metric | 🔲 Coming | Instagram saves and X bookmarks with a save rate and a most-saved list. Built and in review. |
| Scheduled report emails | 🔲 Coming | Send a report as PDF on a schedule. |
| Social listening | 🔲 Coming | Brand mentions and sentiment beyond the project's own inbox. |
| Drill down from a chart | 🔲 Coming | Click a point on a chart to reach the posts behind it. |
SEO & AEO
Search visibility, for classic results and for AI answers.
| Capability | Status | What it does |
|---|---|---|
| SEO site audit | ✅ Live | Crawls the site and lists fixable issues: titles, meta, headings, canonicals, structured data, links and Core Web Vitals. |
| AEO readiness | ✅ Live | Checks pages against seven rules for being cited by AI answer engines. |
| Rank tracking and backlinks | 🟡 Partial | Keyword positions and backlinks from live search data. |
| Fixes as pull requests | 🔲 Coming | Connect 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.
| Capability | Status | What it does |
|---|---|---|
| Studio assistant | ✅ Live | Prepares contacts, segments, emails, automations and posts, reports how things did, draws images and remembers context. Every action waits for a Confirm. |
| Agents | ✅ Live | Content drafts, images, ideas, research, campaign optimisation and site audits. Their output lands in Approvals; nothing is applied without a person. |
| AI campaign plans | 🟡 Partial | A brief in, a channel mix, budget split and posting cadence out, as a draft plan to edit. |
| API keys and run log | 🟡 Partial | Revocable 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 | 🔲 Coming | Documented API and a direct connection for Claude, Codex and other agent tools. |
Website & demos
The public site that brings customers in.
| Capability | Status | What it does |
|---|---|---|
| Get a demo with booking | ✅ Live | The 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 | ✅ Live | Hosted 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.
| Platform | Connect | Publish | Post stats | Account stats | Inbox | Code |
|---|---|---|---|---|---|---|
| Facebook Pages | ✅ | ✅ | ✅ | ✅ | Comments, DMs | apps/api/src/modules/channels/adapters/facebook.ts |
| Instagram business | ✅ | ✅ Feed, carousel, Reels, Stories | ✅ | ✅ | Comments, DMs | adapters/instagram.ts |
| LinkedIn personal profile | ✅ | ✅ incl. PDF documents | ✅ | 🔲 | Comments | adapters/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 |
| ✅ | ✅ | ✅ incl. saves | 🔲 | 🔲 | adapters/pinterest.ts | |
| Google Analytics (GA4) | ✅ | n/a | n/a | ✅ Site traffic | n/a | apps/api/src/modules/analytics/adapters/ga4.ts |
| Google Business Profile | 🔲 | 🔲 | 🔲 | 🔲 | 🔲 | F-141 |
| WhatsApp Business | 🔲 | 🔲 | 🔲 | 🔲 | 🔲 | F-048 |
Not possible
| Question | Answer |
|---|---|
| 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 row | Board says | Code says |
|---|---|---|
| F-041 LinkedIn | Done; /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 Business | One row, in progress | Four publish with post stats; Google Business has no adapter (F-141) |
| Landing FAQ | Google Ads and Meta Ads "supported" | Both partial: F-050 and F-051 in progress |
| Landing FAQ | Every draft waits for approval | Approval is a per-project setting for the internal team; always on for clients, agencies and agents |