How to connect your social accounts

Per-platform walkthroughs for every network Content Drifter supports. Each section covers what you need before you click Connect, the step-by-step OAuth flow (or app-password setup for Bluesky), and the most common fixes if something goes wrong.

X

OAuth (one click)

OAuth via Outstand. Free X dev tier works for low-volume text; media + high-volume needs Basic+.

Plan note: X is supported on every Content Drifter plan (Free, Starter, Pro, Agency). The X API tier (separate from Content Drifter's plan) determines whether you can attach media or post at high frequency.

You'll need

  • An active X (Twitter) account — personal or business is fine.
  • No dev portal sign-up required for basic posting; you only need a paid X API tier if you want to attach media or post at high frequency.

Steps

  1. 1
    Click "Connect" on the X card. You'll be redirected to Outstand's connect screen, then onward to X to sign in and authorize Content Drifter to post on your behalf.
  2. 2
    Authorize the requested permissions. Outstand requests `tweet.read`, `tweet.write`, `users.read`, `offline.access`, `follows.read`, and `dm.write`. Approve all of them — we use them to post, refresh your token automatically, and (if you enable Inbox) reply to mentions.
  3. 3
    You'll land back on the Platforms page with X marked Connected. A green checkmark appears on the X card and your @handle is shown under the platform name. You're done — schedule your first post.

Common issues

"X/Twitter rejected this post — free API tier caps writes at 1 per 15 min + 500/month and blocks media uploads"

You're on the free X API tier. Two options: (1) Upgrade to Basic ($100/mo) at developer.x.com for 10k writes/month + media uploads, or (2) spread campaign posts apart (1 per 15 min) and drop media — Content Drifter auto-retries as text-only when media is blocked.

"Invalid session — please try again" on Outstand's connect screen

Outstand's session URL expired (they're short-lived for security). Close that tab, return to Dashboard → Platforms, and click Connect on the X card again to mint a fresh URL.

"Token expired" warning on the connected X card

X tokens last 2 hours but refresh automatically as long as you stay connected. If the warning persists for more than a day, click Reconnect on the card to refresh.

Facebook

OAuth (one click)

OAuth via Outstand. Needs admin role on a Facebook Page (not a personal profile).

You'll need

  • A Facebook account that admins at least one Facebook Page (Pages are the only thing the Facebook API can post to — personal profiles are blocked by Meta).
  • If you don't have a Page yet: facebook.com → Menu → Pages → Create new Page. Takes ~2 minutes.

Steps

  1. 1
    Click "Connect" on the Facebook card. You'll redirect through Outstand to Facebook's OAuth screen. Sign in with the account that admins your Page.
  2. 2
    Approve all requested Page permissions. Facebook will ask for `pages_show_list`, `pages_read_engagement`, `pages_manage_posts`, and `pages_manage_metadata`. Approve all of them — declining `pages_manage_posts` will silently break publishing.
  3. 3
    Pick the right Page if you admin more than one. If you admin multiple Pages, Content Drifter shows a picker so you choose the one to connect (e.g. your brand Page, not your side project). You can reconnect later to switch.

Common issues

"No pages available" or the picker is empty

Your Facebook account doesn't admin any Pages, OR you declined the `pages_show_list` permission. Visit facebook.com/pages/?category=your_pages to confirm admin status, then disconnect and reconnect.

Posts publish to the wrong Page

You picked the wrong row in the page picker. Disconnect Facebook on the Platforms page, click Connect again, and choose the correct Page.

"Facebook rejected the image as too large"

Facebook's practical image cap is ~4 MB (the docs say 10 MB but Graph rejects above 4). Content Drifter auto-compresses for new posts; for an older failing post, re-upload a smaller image and click Retry.

Instagram

OAuth via Meta

OAuth via Facebook. Needs an Instagram Business or Creator account linked to a Facebook Page.

You'll need

  • Instagram Business or Creator account (Personal accounts cannot publish via API — Meta's rule, not ours).
  • Your Instagram account must be linked to a Facebook Page you admin (Instagram's API is owned by Meta and routed via Facebook).
  • To convert a Personal account: Instagram app → Settings → Account → Switch to Professional Account.
  • To link to a Facebook Page: Facebook Page Settings → Linked Accounts → Instagram.

Steps

  1. 1
    Click "Connect" on the Instagram card. Even though you're connecting Instagram, the OAuth flow goes through Facebook because Meta owns the Instagram Graph API.
  2. 2
    Approve all requested permissions. Facebook will ask for `instagram_basic`, `instagram_content_publish`, `pages_show_list`, and `pages_read_engagement`. All four are required for publishing — declining any of them breaks the connection silently.
  3. 3
    Pick the right Facebook Page (and its linked Instagram account). If you admin multiple Pages, pick the one linked to the Instagram account you want to publish to. Content Drifter will auto-detect the linked Instagram handle.

Common issues

"Instagram requires a Business or Creator account"

Your Instagram account is set to Personal. Open Instagram → Settings → Account → Switch to Professional Account. Pick Business or Creator (both work the same for publishing). Then disconnect + reconnect on the Platforms page.

"Instagram account not linked to any Facebook Page"

Open the Facebook Page Settings → Linked Accounts → Instagram, and link your Instagram Business account. Disconnect + reconnect on the Platforms page after linking.

"Instagram requires media"

Instagram's API only accepts posts with at least one image or video — text-only posts aren't supported by Meta. Attach media and try again.

LinkedIn

OAuth (one click)

OAuth via Outstand. Can connect your personal profile OR a Company / Showcase Page you admin.

You'll need

  • A LinkedIn account.
  • If you want to post to a Company or Showcase Page, you must have at least one admin role on it (Super Admin, Content Admin, or Page Admin all work).

Steps

  1. 1
    Click "Connect" on the LinkedIn card. Outstand redirects you to LinkedIn's OAuth screen. Sign in with the LinkedIn account that admins the destination Page (or your personal profile if you're posting personally).
  2. 2
    Approve all requested permissions. LinkedIn will ask for `r_liteprofile`, `r_emailaddress`, `w_member_social`, and `w_organization_social`. The first two identify you, the last two let Content Drifter post on your behalf — all are required.
  3. 3
    Pick your personal profile OR a Company Page. If you admin one or more Company / Showcase Pages, Content Drifter shows a picker. Choose the destination — you can reconnect later to switch.

Common issues

"LinkedIn temporarily rejected this post (upstream API version slip)"

This is an upstream issue between Outstand and LinkedIn — LinkedIn occasionally deprecates an API version before Outstand has bumped their client. Content Drifter now auto-retries every 24h for up to 5 days, so the post will eventually ship without you doing anything. To try sooner, click Retry on the post.

Posts publish to the wrong identity (personal vs Company Page)

You picked the wrong row in the page picker. Disconnect LinkedIn on the Platforms page, click Connect again, and choose the correct identity.

"Could not load any pages"

Either you don't admin any Company Pages (in which case Content Drifter will connect your personal profile by default), OR you declined the `w_organization_social` permission. Disconnect + reconnect and approve all permissions.

Threads

OAuth via Meta

OAuth via Meta. Your Threads account must be linked to an Instagram Business or Creator account.

You'll need

  • A Threads account (created via your Instagram account — Threads requires Instagram).
  • The linked Instagram account must be Business or Creator (Personal IG accounts can't publish to Threads via API).

Steps

  1. 1
    Click "Connect" on the Threads card. OAuth routes through Meta because Threads sits on top of Instagram. Sign in with the account that owns your Threads profile.
  2. 2
    Approve Threads publishing permissions. Meta will ask for `threads_basic` and `threads_content_publish`. Both are required — declining either silently breaks publishing.
  3. 3
    Confirm the Threads handle that gets connected. Content Drifter will detect your Threads handle from the linked Instagram account. If you have multiple Instagram accounts, pick the right one in the picker.

Common issues

"Threads connection requires a Business or Creator Instagram"

Same fix as Instagram: open Instagram → Settings → Account → Switch to Professional Account. Once your Instagram is Business or Creator, retry the Threads connection.

"Content exceeds Threads 500-character limit"

Threads enforces a 500-character cap on post bodies. Trim the post in the calendar editor and click Retry — Content Drifter's AI engine will respect the cap on regenerations.

A post with 6+ links fails on Threads

Threads enforces a 5-unique-link cap per post (added in late 2025). Trim the link count or split the post.

Bluesky

App password (1 min setup)

Handle + app password (no OAuth yet in AT Protocol). Takes ~60 seconds to set up.

You'll need

  • An active Bluesky account at bsky.app (or any AT Protocol PDS).
  • Your Bluesky handle (e.g. `yourname.bsky.social` — the part after the @ on your profile).
  • A Bluesky App Password (generated in 60 seconds — see steps below). This is NOT your main account password — it's a per-app credential you can revoke independently.

Steps

  1. 1
    Open Bluesky's App Passwords settings. Bluesky's AT Protocol doesn't support OAuth yet, so third-party apps use app-scoped passwords. Each app password has write access to your account but can be revoked individually, so your main password stays safe.Open Bluesky App Passwords ↗
  2. 2
    Click "Add App Password" and name it "Content Drifter". The name is just for your records (so you can identify and revoke it later). Bluesky generates a 16-character password formatted like `xxxx-xxxx-xxxx-xxxx`.
  3. 3
    Copy the generated password — Bluesky only shows it once. Bluesky never displays the app password again after this screen. If you lose it, you'll need to generate a new one. Paste it straight into the Content Drifter / Outstand connect screen.
  4. 4
    Back in Content Drifter, click "Connect" on the Bluesky card. Outstand's screen asks for your handle (e.g. `yourname.bsky.social`) and the app password you just copied. Submit, and you're connected — green checkmark on the card.

Common issues

"Invalid session — please try again" on the Outstand connect screen

Outstand's session URLs are short-lived (security best practice). Don't refresh the screen — close the tab, go back to Dashboard → Platforms in Content Drifter, and click Connect on the Bluesky card to mint a fresh URL.

"Invalid identifier or password"

Either your handle is wrong (use the full `name.bsky.social` form, not just `name`), OR you typed your MAIN Bluesky password instead of the app password. The app password is the 16-char `xxxx-xxxx-xxxx-xxxx` you generated at bsky.app/settings/app-passwords.

Bluesky image post fails with "blob too large"

Bluesky caps images at 2 MB. Content Drifter auto-compresses oversized images for newly-generated posts; for an older failing post, re-upload a smaller image and click Retry.

Pinterest

OAuth (one click)

OAuth via Outstand. Needs a Pinterest Business account and at least one board to publish pins to.

Plan note: Pinterest is available on Pro and Agency plans (Free and Starter publish to Twitter + Threads + a subset of platforms — see the Pricing page for the full matrix).

You'll need

  • Pinterest Business account (Personal accounts can't access the Pinterest API — Pinterest's rule, not ours).
  • At least one board on your account (create one in Pinterest first if you don't have any).
  • To convert a Personal account: Pinterest → Settings → Account management → Convert to Business account (free, no payment required).

Steps

  1. 1
    Click "Connect" on the Pinterest card. Outstand redirects you to Pinterest's OAuth screen. Sign in with your Business account.
  2. 2
    Approve all requested permissions. Pinterest will ask for `boards:read`, `pins:read`, and `pins:write`. All three are required — declining `pins:write` silently breaks publishing.
  3. 3
    Set your default board in the Settings modal. After connecting, click the Settings (gear icon) on the Pinterest card to pick which board new pins go to by default. You can override the board at compose time per post.

Common issues

"We could not load any boards from your Pinterest account"

You don't have any boards yet. Open Pinterest, create at least one board (any topic), then come back and reconnect — Content Drifter will load it into the Settings modal.

"Personal Pinterest accounts cannot access the API"

Convert to Business: Pinterest → Settings → Account management → Convert to Business account. It's free, takes 30 seconds, and you keep all your existing pins and boards.

Pins publish to the wrong board

You haven't set a default board yet (or it's set to the wrong board). Click the Settings (gear) on the Pinterest card and pick the right board.

YouTube

OAuth via Google

OAuth via Google. Needs a YouTube channel (Brand Account or Personal both work).

Plan note: YouTube is available on Pro and Agency plans. Videos count against your monthly publish cap like any other platform.

You'll need

  • A Google account with at least one YouTube channel.
  • If you manage multiple channels under the same Google account (Brand Accounts), have the right one in mind so you pick it during OAuth.

Steps

  1. 1
    Click "Connect" on the YouTube card. Outstand redirects you to Google's OAuth screen. Sign in with the Google account that owns the YouTube channel.
  2. 2
    Pick the channel (if you have multiple). Google will show a channel picker if you manage multiple Brand Accounts. Choose the channel you want Content Drifter to publish to — you can reconnect later to switch.
  3. 3
    Approve the YouTube upload scope. Google will ask for the `youtube.upload` scope. This is required — without it, Content Drifter can't publish videos to your channel.
  4. 4
    Set your default privacy + category in the Settings modal. After connecting, click the Settings (gear icon) on the YouTube card. Pick the default privacy (Public, Unlisted, Private) and category (e.g. People & Blogs, Education) for new uploads. Both can be overridden per video at compose time.

Common issues

Videos publish to the wrong channel

You picked the wrong channel during OAuth, OR your Google account defaulted to your Personal YouTube channel instead of a Brand Account. Disconnect on the Platforms page, click Connect again, and pick the right channel in Google's picker.

"Quota exceeded" on YouTube uploads

YouTube's upload quota resets daily at midnight Pacific. Content Drifter now auto-retries quota errors with a 24h delay for up to 5 days, so the upload will eventually go through. To try sooner, click Retry on the post.

Video gets marked as "made for kids" unexpectedly

You enabled the "Made for kids (COPPA-compliant)" toggle in the YouTube Settings modal. Only enable it if your content targets children under 13 — it disables personalised ads, comments, and several community features.

Ready to connect?

Open the Platforms tab in your dashboard, pick a network, and follow the in-product walkthrough — every card has the same guide inline so you don't have to flip back to this page.

Go to Platforms