Connecting your channels — LinkedIn, Instagram, Facebook, X, Blog

    Supported publishing surfaces, the OAuth flow, and what happens if a connection expires.

    Ask ChatGPTAsk Claude

    Connecting your channels — LinkedIn, Instagram, Facebook, X, Blog

    TL;DR — We support LinkedIn, Instagram, Facebook, X, and your own blog. All connections are OAuth (no passwords), all are optional, and you can always publish manually via Copy & Publish instead of connecting.

    The supported channels

    ChannelAuthImage supportNotes
    LinkedInOAuth (personal + company pages)OptionalBoth personal profile and company page publishing
    InstagramOAuth via MetaRequired — no image, no publishBusiness/Creator accounts only, per Meta's rules
    FacebookOAuth via MetaRequired for reachText-only posts get suppressed; we block scheduling without image
    X (Twitter)OAuthOptionalThread support built in
    BlogRSS + webhooks, or direct API for supported CMSesOptionalSee "Blog" below

    Connecting

    From Settings → Connections, click the channel you want. You'll be redirected to the provider's OAuth screen, grant the minimum scopes we need, and land back on the app. That's it.

    Free plans can connect up to 2 channels. Pro plans are unlimited.

    Blog publishing

    Three ways to plug your blog in:

    1. Direct API — for Ghost, WordPress, Webflow, and a handful of headless CMSes we support natively
    2. Webhook — we POST the drafted article to a URL you control; you handle the publish
    3. Copy & paste — the least automated but the most flexible; the drafted HTML is ready to paste

    What happens when a token expires

    OAuth tokens expire. When one does, the affected channel goes into needs re-auth state and:

    • Scheduled posts on that channel pause (they don't fail — they wait)
    • You see a red dot on the header (fewer than 2 active channels triggers a Connect CTA)
    • We prompt you to reconnect from Settings

    Reconnecting resumes any paused scheduled posts automatically. No lost drafts.

    Manual publishing (no OAuth)

    You can skip OAuth entirely and still use everything else in the app. Every draft has a Copy & Publish button that:

    • Copies the finalised post to your clipboard
    • Opens the native composer for that channel (LinkedIn's post composer, Instagram web, etc.)
    • Uses the Web Share API on mobile

    Your visibility scores still update because the scan loop doesn't care how a post got published — only whether it exists.

    The "why can't I publish text-only to Facebook" answer

    Meta's algorithm suppresses text-only posts on Facebook and Instagram, hard. We enforce an image requirement at draft time rather than let you ship a post that will earn zero reach. If image generation fails, the app reschedules with a retry and surfaces a warning — nothing publishes silently broken.