All docs
Connect

Organic social: Facebook Pages, Instagram and X posts

TL;DR

Organic social is its own tool family, separate from Meta Ads and X Ads. Each Facebook Page, Instagram account and X profile is an account row you can pick anywhere. Drafts, scheduled and published posts live in one queue shared by the app, agents, MCP, the REST API and projects, so a post is never published twice. Publishing, scheduling, editing and deleting a post always wait for a person, even with auto-approve on.

Connect Facebook Pages and Instagram

  1. 1On Integrations, open the Meta Pages & Leads card and press Connect (or Re-authorize). Accept every permission Facebook lists: pages_show_list, pages_read_engagement, read_insights and pages_manage_posts for Pages; instagram_basic, instagram_manage_insights and instagram_content_publish for Instagram.
  2. 2Every Page your Facebook login manages becomes its own row — all of them, past the first 100, and with business_management also the Pages your Business portfolios own or manage for clients. Each linked Instagram professional account becomes a row too.
  3. 3Each row says whether it can publish: a Page needs the CREATE_CONTENT task (your role on the Page). A Page your Business lists but you have no role on, or a permission you did not grant, is shown with the fix — usually Re-authorize, or a role on the Page.
  4. 4Refresh accounts (or the automatic refresh on the card) finds Pages you were given later, without signing in again, as long as the existing permissions cover them.
  5. 5People who do not have a role on the Meta app need each permission approved through Meta's App Review before they can grant it.

Connect X Organic

  1. 1X Organic is a separate card from X Ads. Press Connect and sign in to X; it asks for tweet.read, tweet.write, users.read, media.write and offline.access.
  2. 2Once, the workspace owner registers https://www.agentplanners.com/api/oauth/x-organic/callback on the X app, gives the app Read and write permission, and buys pay-per-use credits in the X Developer Console — X refuses every read and post without credits.
  3. 3Re-authorize keeps the profile row; Disconnect deletes its tokens.

What each network supports

Facebook PageInstagramX
Publish nowYes (or an unpublished post, not shown on the Page)Image post, carousel or Reel from a public https URLYes, with images or video
ScheduleOur queue (Facebook's own window is 10 minutes to 30 days)Our queue — Instagram's API has no schedulingOur queue — X's API has no scheduling
Edit a published postOnly posts made through this app (Meta's rule)Not through the APIWithin 30 minutes, up to 5 edits; each edit is a new post id
DeleteYesAttempted; when Meta refuses, delete it in the Instagram appYes (deletes the whole edit chain)
Profile changesNot requested (needs pages_manage_metadata)Not through the APIX API v2 has no profile endpoint
Limits63,206 characters2,200-character caption, 30 hashtags, 100 API posts per 24 hours280 weighted characters (a link counts 23)

Tools

ToolKindWhat it does
list_accountsReadThe connected Pages, Instagram accounts and X profiles, whether each can publish and what still needs authorization
check_permissions / get_publishing_limitsReadWhich permissions an account holds; its publishing quota and each network's limits
list_posts / get_post / get_post_insightsReadPublished posts, one post, and engagement (Page and Instagram insights need their insights permissions)
list_scheduled_postsReadThe queue: drafts, scheduled, published and failed posts, with their project link
generate_postReadDraft text per network from a brief, checked against each network's limits — nothing is sent
create_draft / update_scheduled_post / cancel_scheduled_postWriteSave a draft; change it before it publishes (changing text, media, link or time waits for a person); cancel it
upload_mediaWriteUpload media for a later post (not public)
publish_post / schedule_postWritePublish now, or at a time — always waits for a person
edit_post / delete_postWriteEdit or delete a published post — always waits for a person
update_profileWriteAnswers what the network allows; nothing is sent where no API exists
Over MCP and the REST API the names are social__<tool> (for example social__schedule_post). There is no raw lane: a public post always goes through the typed tools, which check limits, dedupe the queue and hold publishing for a person.

Approvals and duplicates

  • A person approves every public post. publish_post, schedule_post, edit_post, delete_post, and an update that changes a scheduled post's text, media, link or time, wait for a person on every lane — in the app, an autonomous run, a schedule, MCP and the REST API — whatever the auto-approve setting. Drafts, cancelling, media uploads and a Facebook unpublished post do not.
  • One queue, no double posts. The same text on the same account for the same minute is answered with the post already queued (duplicateOf), and an idempotencyKey makes a retry safe. A send whose answer was lost is checked against the account's recent posts before anything is retried, so it is never published twice.
  • Workspace Forbidden Rules apply to every publish, including a scheduled one when its time comes.

X API charges

X bills every API request (pay-per-use, read from docs.x.com on 26 October 2026): a post read $0.005, a user read $0.010, creating a post $0.015 — or $0.200 when the post contains a link — deleting $0.010 and a media-metadata call $0.005. Agent Planners charges your organization credits for each accepted request: 34 credits for a post read, 67 for a user read, 100 for a post, 1,334 for a post with a link, 67 for a delete. A failed or refused request is not charged, and a retry of the same call is charged once. Every charge is a usage record on the Billing page.

The credits are priced so that at least 70 % of what you pay covers more than X's cost: on every plan and top-up a credit sells for more than three times its share of the cost.

Facebook and Instagram have no per-request vendor price; only the ordinary per-call charge applies.

Projects

  • A project task that drafts or schedules a post attaches it to the project and its plan item. The project's Overview lists each post with its outcome — published with a link, failed with the reason, or still being checked.
  • Moving a plan item moves its scheduled posts into the item's new dates; removing the item cancels them. A published post is never touched.

From Codex, Claude or your own system

shell
# MCP: find, then call
search_tools { "query": "schedule a facebook page post" }
call_tool { "name": "social__schedule_post", "arguments": { "accountId": "<a Page row id from list_accounts>", "scheduledAt": "2026-11-02T09:00:00Z", "text": "…", "idempotencyKey": "launch-post-1" } }
# → held for a person (queued, with a requestId); poll raw_request_status

# REST
POST /api/v1/tools/social__create_draft   { "accountId": "…", "text": "…" }
GET  /api/v1/accounts?family=social

Frequently asked questions

Why did my Facebook Pages not appear after connecting?
Before October 2026 the Meta Pages connection stored only your Facebook login, not the Pages, so no Page could be picked. Re-authorize Meta Pages & Leads (or press Refresh accounts): every Page you manage now becomes its own selectable account, with whether it can publish.
Can the agent post without my approval?
No. Publishing, scheduling, editing and deleting a post wait for a person every time, even with auto-approve on. The agent can draft and prepare everything before that.
Does scheduling use Facebook's own scheduler?
No — one Agent Planners queue publishes every network at its time (X and Instagram have no scheduling API), so a schedule looks and behaves the same on all three and can be changed or cancelled in one place.
What does an X post cost?
X charges $0.015 per post ($0.20 when it contains a link); Agent Planners charges 100 credits per post (1,334 with a link) for each post X accepts.

Related