Organic social: Facebook Pages, Instagram and X posts
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
- 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.
- 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.
- 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.
- 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.
- 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
- 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.
- 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.
- 3Re-authorize keeps the profile row; Disconnect deletes its tokens.
What each network supports
| Facebook Page | X | ||
|---|---|---|---|
| Publish now | Yes (or an unpublished post, not shown on the Page) | Image post, carousel or Reel from a public https URL | Yes, with images or video |
| Schedule | Our queue (Facebook's own window is 10 minutes to 30 days) | Our queue — Instagram's API has no scheduling | Our queue — X's API has no scheduling |
| Edit a published post | Only posts made through this app (Meta's rule) | Not through the API | Within 30 minutes, up to 5 edits; each edit is a new post id |
| Delete | Yes | Attempted; when Meta refuses, delete it in the Instagram app | Yes (deletes the whole edit chain) |
| Profile changes | Not requested (needs pages_manage_metadata) | Not through the API | X API v2 has no profile endpoint |
| Limits | 63,206 characters | 2,200-character caption, 30 hashtags, 100 API posts per 24 hours | 280 weighted characters (a link counts 23) |
Tools
| Tool | Kind | What it does |
|---|---|---|
| list_accounts | Read | The connected Pages, Instagram accounts and X profiles, whether each can publish and what still needs authorization |
| check_permissions / get_publishing_limits | Read | Which permissions an account holds; its publishing quota and each network's limits |
| list_posts / get_post / get_post_insights | Read | Published posts, one post, and engagement (Page and Instagram insights need their insights permissions) |
| list_scheduled_posts | Read | The queue: drafts, scheduled, published and failed posts, with their project link |
| generate_post | Read | Draft text per network from a brief, checked against each network's limits — nothing is sent |
| create_draft / update_scheduled_post / cancel_scheduled_post | Write | Save a draft; change it before it publishes (changing text, media, link or time waits for a person); cancel it |
| upload_media | Write | Upload media for a later post (not public) |
| publish_post / schedule_post | Write | Publish now, or at a time — always waits for a person |
| edit_post / delete_post | Write | Edit or delete a published post — always waits for a person |
| update_profile | Write | Answers what the network allows; nothing is sent where no API exists |
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
# 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=socialFrequently 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.