Post to social channels
Posts now or at a set time to one or several channels, with pictures, video or a thread.
$0.02 per channel posted to
From your agent’s balance. A call that fails costs nothing.
An example
Post the gravel bike photo on LinkedIn and Bluesky on Monday at 9: "The new Tabor gravel bikes are in, in sage and rust. Take one out for a ride from 1830 SE Ash St."
Your agent callssocial_post$0.02 per channel posted to
The example business is Halverson Cycle & Repair, a bike shop with a repair workshop in Portland, Oregon. The reply is the one the tool really gives.
{
"channels": [
"clx0d6k2v0001",
"clx0d6k2v0002"
],
"text": "The new Tabor gravel bikes are in, in sage and rust. Take one out for a ride from 1830 SE Ash St.",
"media": [
"7a1d3c5e-2b4f-4a6c-8e0d-9f1b3d5c7e2a"
],
"when": "2026-10-19T09:00:00-07:00"
}Use it when
Something should go out on the business's social accounts.
- For a message to the team in Slack or Teams, use
notify_send. - For an email to subscribers, use
newsletters_send_issue.
What it does
Post now, or at when (ISO 8601 with its offset, up to a year ahead), to one or several channels. text is the post; thread adds follow-up posts; media are file_ids from the store, uploaded to Postiz by Conecto. per_channel gives one channel its own text, media, thread or settings: some networks need settings (Discord and Slack a channel id, Medium, Dev.to, Hashnode and WordPress a title, Instagram a post_type; social_channel_rules says). Postiz checks every channel first and takes all or none. TikTok (one MP4 video, or pictures; settings.title is a photo post's title) requires its owner to confirm each post: a TikTok channel comes back under waiting_for_owner. Ask them in your chat (social_post_check gives what to show and ask) and pass their answer to social_confirm_post, or give them its confirm_url to do it on a page. Then social.post_confirmed and social.post_published follow, or social.post_declined when they say no or 3 days pass (a day past when, if later); it is refunded. With settings {"content_posting_method": "UPLOAD"} it goes at once as a draft to their TikTok inbox instead, to finish in TikTok's app within 24 hours. $0.02 per channel, refunded when a post fails or is deleted before it goes out; social.post_published and social.post_failed tell you how each went.
What comes back
posts: one per channel, each with its post_id, channel_id, network, status and publish_at, and a note on the event that follows for each. A TikTok channel is under waiting_for_owner instead, with the confirm_url its owner opens to check the post, choose who can see it and post it. Every reply also carries cost_usd and balance_usd.
Inputs
| Name | Type | What it is |
|---|---|---|
channelsRequired | array of strings | 1 to 20 items. |
text | string | 1 to 100,000 characters. |
media | array of strings | file_ids from the store: images (JPEG, PNG, GIF, WebP, AVIF; up to 10 MB) or MP4 videos. Up to 10 items. |
thread | array of strings | Follow-up posts after the first: a thread on X, Bluesky, Mastodon and Threads, comments on the others. Up to 20 items. |
when | string | e.g. 2026-10-20T09:00:00-07:00; left out: now. Up to 40 characters. |
per_channel | object |
The call
Over MCP, call social_post on https://api.conecto.chat/mcp/social. Over REST:
curl -X POST https://api.conecto.chat/v1/tools/social_post \
-H "Authorization: Bearer $CONECTO_KEY" \
-H "Content-Type: application/json" \
-d '{"channels":["clx0d6k2v0001","clx0d6k2v0002"],"text":"The new Tabor gravel bikes are in, in sage and rust. Take one out for a ride from 1830 SE Ash St.","media":["7a1d3c5e-2b4f-4a6c-8e0d-9f1b3d5c7e2a"],"when":"2026-10-19T09:00:00-07:00"}'When it refuses
A refused call costs nothing and says what to do next.
| Code | When | What to do |
|---|---|---|
invalid_input400 | when has no time zone, is in the past or more than a year ahead; a channel has neither text nor media; the post uses more than 10 different files; a Discord settings.channel is not a channel of the connected server; or a TikTok post has no media, mixes a video with pictures, has a thread or a caption over 2,000 characters. | Send when like 2026-10-19T09:00:00-07:00 and text or media for every channel; find Discord channels with social_channel_lookup; give TikTok one MP4 video or pictures. |
not_found404 | A channel or a media file is not the business's. | Use channel_ids from social_channels and file_ids from files_list. |
channel_disabled409 | A channel is switched off in the posting service. | Connect it again with social_connect. |
unsupported_type400 | A media file is not an image or an MP4 video. | Post images or MP4 videos only. |
too_large413 | An image is over 10 MB, or the post's files add up to more than 100 MB. | Shrink images with image_transform, or post fewer files. |
no_channels409 | The business has no connected channel yet. | Connect one with social_connect. |
not_switched_on503 | Social posting is not switched on yet. | Try again later; nothing was charged. |
social_unavailable503 | The posting service did not answer, or could not open the business's social workspace. | Call again in a minute; when the message says so, tell Conecto's support. |
refused400 | The posting service refused the request; the message gives its reason. | Fix what the reason names, then call again. |
refused422 | The posting service reported a conflict with what is there. | Read the channel or post again, then call again. |
rate_limited429 | The posting service's limit of posts an hour was reached. | Try again later. |
More Social tools
All 13 tools- List the social networks
social_networksEvery network the business can post to, how each connects (a link, a login, Telegram's code, or its own bot or webhook), and whether it is switched on yet.Free* - Connect a social account
social_connectConnects one of the business's own social accounts as a channel: by a link for the owner, a login, or a code posted in a Telegram channel.Free - List the connected channels
social_channelsThe business's connected social accounts (channels), with their network, name and profile.Free* - Read a channel's rules
social_channel_rulesWhat a channel's network accepts: lengths, media counts, the settings a post needs, and its lookups.Free* - Look something up on a channel
social_channel_lookupRuns one of a channel's lookups, like the channels of a Discord server or the boards on Pinterest.Free* - Find a free time to post
social_find_slotThe next free time to post on a channel, from its posting times and what is already scheduled.Free* - Read a post waiting for its owner
social_post_checkReads a TikTok post waiting for its owner, with what to show and ask them from TikTok just now.Free* - Answer for the owner of a post
social_confirm_postPosts a TikTok post waiting for its owner with the choices they made in your chat, or drops it.Free
Give this to your agent.
Set up Conecto from https://conecto.chat/SKILL.md