Cofounder

Communicate and Sell

Reach customers. Give the company an inbox and phone number, post to social, keep the CRM current, and check your brand.

Reach customers from the company's own accounts. Your agent sends email, receives texts on a company phone number, posts and replies on social, and keeps the CRM up to date. Each section links to the full guide.

Set Up Email and Phone

Your agent gives the company an inbox and a phone number. It sends and reads email, and reads the texts people send to the number. Email covers the rest of email: reading and replying, drafts, campaigns to CRM contacts, your own mail domain, and email from your app.

Phone numbers cost money. Your agent buys a real number, billed every month, or reuses the one the company already has. Releasing the number deletes its message history, and a number bought later is a different one.

On prepaid credits, buying a new number needs an active $40/month company credit subscription. Start checkout with cofounder company billing subscribe, pay, and your agent tries again. Reusing or releasing a number doesn't need the subscription.

A new number can receive texts right away. Sending texts isn't supported.

Your agent can show the latest message from each number that has texted you, or one number's full history.

Keep the CRM Current

The built-in CRM holds accounts, contacts, deals, and an activity log. CRM covers records, enrichment, calendar sync, and finding prospects. MCP clients can also open the CRM as a board. See MCP Beyond Tools.

Run Ads, Read Analytics, and Research

Ads covers paid campaigns from account setup to results. Research covers quick web searches and longer research jobs.

Query your marketing data with cofounder analytics query / analytics_query. For visits to the marketing site, run cofounder analytics website-traffic get --range 30d (analytics_website_traffic_get). Add --purpose product to see the product app instead.

Post on Social

Connect the company's social accounts once, such as LinkedIn or TikTok. For each one, you sign in to the platform from a link your agent opens, and it waits until the account works. After that, your agent posts, schedules, and answers comments and messages from those accounts.

Business-policy checks are rolling out and are not enabled for every company yet. Where enabled, a saved prohibited business or unsupported intended use blocks new posts, replies, messages, retries, and provider edits. Ordinary communication from verification-sensitive businesses remains allowed without ad verification. Missing business information alone does not block social publishing. You can still inspect results, cancel a post, or unpublish it. The error explains how to correct inaccurate business information or contact Support.

Use cofounder social accounts connect --platform instagram --expected-username yourhandle / social_accounts_connect with expected_username to refuse a different account. To reconnect an existing account, pass --resource-id <resource_id> / resource_id; Cofounder keeps its platform identity and Instagram login method. For Instagram, --instagram-login-method facebook_login requests Facebook authorization when connecting a new account.

If access expires or is revoked, social_accounts shows the account as needing action. Your agent requests a reconnect link for that resource and asks you to sign in and approve access. It checks social_accounts again before resuming. Removing an account intentionally does not trigger a reconnect request. If the old connection was removed, authorization creates a new connection for the same platform identity and retains the old account's history.

Request specific permission areas with repeated --scope flags, such as --scope posting --scope analytics, or the MCP scopes list. Available areas are posting, analytics, comments, messaging, and ads. Omit them to request full permissions. Platforms that do not support scope selection reject this option. A connected account with no posting permission can still use the permissions it has.

social_accounts reports whether each account can publish, which features are available, and when its provider state was last synchronized. Unavailable features explain whether to reconnect, grant permission, or wait for access. An account without posting permission can still prepare drafts. If Zernio temporarily disables a platform, keep the connection and wait for access to return.

Each platform has a default account your agent uses unless you name another. Your agent checks what each account supports (settings, content and media limits, and where it can post) and can pick where an account posts. An account can't be disconnected while it has pending posts or a linked ads account, unless you force it.

Publish and Schedule Posts

Every post starts as a draft:

Draft → check → publish now or schedule.

To schedule, your agent picks a set time or uses the posting queue: a list of posting slots shared by all the company's social accounts. Your agent can show the slots, suggest upcoming times, and change them. The real slot is picked when the post is scheduled.

After a post is drafted or scheduled:

  • Your agent can revise a draft or an eligible scheduled post, or cancel an eligible scheduled post.
  • A post that was rejected or failed can be retried. X posts can't be retried. Your agent checks what happened on X and submits again with a fresh approval.
  • Unpublishing takes down a live post. It needs confirmation and only works on platforms that allow it (not Instagram or TikTok).
  • Publish, schedule, revise, and reply results can include notices suggesting more specific wording. They don't mean the post failed.
  • To post the same content to an account again soon after, your agent explains why with repeat_reason (--repeat-reason). A new retry key alone doesn't count as a reason.

Some accounts have activity allowances. When enabled, the trial caps allow up to three posts per social account and ten across the responsible account's companies without verified paid access in a rolling 24 hours, with at least 15 minutes between posts on the same account. Paid companies aren't charged to or limited by the trial pool. Current attribution, content, repeat-content, hold, and provider-safety checks still apply to every company. A post whose delivery isn't confirmed yet still counts in the trial pool, so your agent checks its status before retrying. The pool uses each company's current verified billing status. Recent activity can leave the pool when a company becomes paid, then count again if it returns to trial before that activity ages out of the 24-hour window. A plan change doesn't erase post history. Scheduling through the provider is off while allowances are enabled because delivery can't recheck current restrictions.

Answer the Social Inbox

The social inbox collects comments, conversations, and reviews across your accounts. It has six views: needs attention, commented posts, post comments, conversations, messages, and reviews. If some sources are missing, the result says why.

Search conversations by message text or contact identity. Each result shows up to three matching messages; a match count of zero means the contact's identity matched. Search returns at most 50 conversations per page and reports accounts it could not search. Reading leaves messages unread.

Facebook Page message requests have a separate, bounded shortlist. If it is truncated, narrow to one account. Instagram cannot list a separate requests folder. Replying to a request accepts it and sends the reply immediately.

  • Replies go out right away.
  • Your agent can archive a conversation or return it to the active inbox. Reading messages leaves them unread. Marking a conversation read is an explicit action after you view it or ask, and can send a seen receipt.
  • Facebook and Instagram conversations show which app owns the thread when that information is available. Your agent can take, request, release, or pass control. Requesting waits for the current owner to agree. Instagram Login connections cannot take or request control; they wait for the owner to pass it or reconnect through Facebook Login.
  • On a DM or Google Business review reply, your agent can retry safely within 24 hours. Facebook review replies work without that step. Comment replies have no such guarantee.
  • Moderation needs confirmation. A retry can act twice.
  • Your agent can start a DM with someone who hasn't messaged you yet, for example an X handle. If a conversation already exists, the message is added to it.

Plan a Campaign

A social campaign is a dated plan of posts across accounts. Creating one doesn't write or schedule anything. Your agent links prepared posts to its slots, and publishing is still a separate step. The campaign shows each slot's post and whether it changed since it was linked.

Check Your Brand and Design

Your agent can show you the brand kit and the company's brand files. It can also copy colors, type, and components from a live site into the Library. See Design.

Take Payments

Your agent can give the company a Stripe test account with cofounder payments setup --method sandbox. Pricing plans, refunds, and going live are in Payments.

To see what your agent has been doing, go to Watch It Run.

Commands

Email and Phone

MCPCLIAPI

Social Accounts

MCPCLIAPI
/
(or for that platform's default)

Run social connect once, then company social connect <platform> --wait for each account. --resource <id> reconnects an account you already have. cofounder social accounts connect --platform <platform> only prints the link. accounts disconnect --force disconnects despite pending posts or a linked ads account.

Social Posts

MCPCLIAPI
(Reddit: without reads the subreddit feed)

prepare returns a post ID and a revision_id to pass to every later step. For a set time, prepare with --at <timestamp> --timezone <zone>, then schedule. Preparing with --next-slot shows a likely queue time in the draft but reserves nothing. revise returns a new revision ID to publish or schedule.

Social Inbox

MCPCLIAPI

Inbox views are needs_attention, commented_posts, post_comments, conversations, messages, and reviews. messages also needs a conversation_id. Replying to a comment needs its --post-id. A DM or review reply is safe to retry only with --idempotency-key, which is off by default because review support differs by platform: a key is refused where the platform doesn't support it. Moderation needs confirmed: true. social dm send takes --participant-username <handle> or --participant-id <numeric id> on X, and returns the item_id to pass to social inbox reply.

Social Campaigns

MCPCLIAPI

To swap in a newer revision, pass the linked one to attach as --replace-revision-id.

Brand and Design

MCPCLIAPI