Multi-platform posting example
A complete walkthrough of posting the same content to Instagram, Twitter/X, and LinkedIn simultaneously — with per-platform content overrides, pre-flight validation, and result inspection.
The scenario
User intent: “Post our product launch announcement to Instagram, Twitter, and LinkedIn at the same time. Use platform-appropriate captions and schedule it for tomorrow at 3 PM UTC.”
Base content: “Announcing VoxBurst 2.0 — the fastest way to schedule social media across every platform.”
- Twitter version: Short, punchy, with hashtags (max 280 chars)
- LinkedIn version: Professional, with context and a CTA (up to 3,000 chars)
- Instagram version: Visual-first caption with the image, first comment with hashtags
The complete flow
List accounts to find the right IDs
list_accounts()Response:
[
{ "id": "acc_instagram_abc", "platform": "instagram", "username": "voxburst", "connected": true },
{ "id": "acc_twitter_def", "platform": "twitter", "username": "voxburst_x", "connected": true },
{ "id": "acc_linkedin_ghi", "platform": "linkedin", "username": "VoxBurst Official", "connected": true }
]Validate the content on all target platforms
validate_content(
content: "Announcing VoxBurst 2.0 — the fastest way to schedule social media across every platform.",
platforms: ["INSTAGRAM", "TWITTER", "LINKEDIN"]
)Response:
{
"valid": true,
"platforms": {
"INSTAGRAM": {
"valid": true,
"errors": [],
"warnings": [{ "code": "NO_MEDIA", "message": "Instagram feed posts require at least one image or video" }]
},
"TWITTER": {
"valid": true,
"errors": [],
"warnings": []
},
"LINKEDIN": {
"valid": true,
"errors": [],
"warnings": []
}
}
}The Instagram NO_MEDIA warning is expected — we’re adding media in the next step. No errors, so proceed.
Create the post targeting all three accounts
create_post(
content: "Announcing VoxBurst 2.0 — the fastest way to schedule social media across every platform.",
accountIds: [
"acc_instagram_abc",
"acc_twitter_def",
"acc_linkedin_ghi"
],
contentType: "IMAGE",
mediaUrls: ["https://cdn.voxburst.io/launch/v2-announcement.jpg"],
scheduledFor: "2026-06-02T15:00:00Z",
platformOverrides: {
"TWITTER": {
"content": "VoxBurst 2.0 is live 🚀 Schedule content across every platform in one shot. #ProductLaunch #SocialMedia"
},
"LINKEDIN": {
"content": "Today we are launching VoxBurst 2.0 — built for teams that publish across multiple platforms every day.\n\nWhat's new:\n• 3× faster scheduling\n• Per-platform content overrides\n• Real-time publish status\n\nIf you manage social media at scale, this changes the workflow. Try it free — link in comments."
}
},
firstComment: "#VoxBurst20 #ProductLaunch #SocialMediaTools",
firstCommentDelay: 60
)Response:
{
"id": "post_launch_xyz",
"status": "scheduled",
"scheduledFor": "2026-06-02T15:00:00Z",
"platforms": [
{ "platform": "instagram", "accountId": "acc_instagram_abc", "status": "pending" },
{ "platform": "twitter", "accountId": "acc_twitter_def", "status": "pending" },
{ "platform": "linkedin", "accountId": "acc_linkedin_ghi", "status": "pending" }
],
"createdAt": "2026-06-01T09:30:00Z"
}All three platforms are queued. Each will publish at 15:00 UTC using its own content.
Inspect results after the scheduled time
get_post(postId: "post_launch_xyz")Response (after publishing):
{
"id": "post_launch_xyz",
"status": "partial",
"publishedAt": "2026-06-02T15:00:08Z",
"platforms": [
{
"platform": "instagram",
"status": "published",
"platformPostUrl": "https://www.instagram.com/p/ABC123/",
"publishedAt": "2026-06-02T15:00:06Z",
"error": null
},
{
"platform": "twitter",
"status": "published",
"platformPostUrl": "https://x.com/voxburst_x/status/1234567890",
"publishedAt": "2026-06-02T15:00:07Z",
"error": null
},
{
"platform": "linkedin",
"status": "failed",
"platformPostUrl": null,
"publishedAt": null,
"error": "LinkedIn API rate limit exceeded. Retry after 60 seconds.",
"retryCount": 0
}
]
}Instagram and Twitter published. LinkedIn failed (transient rate limit).
Retry the failed platform
retry_post(postId: "post_launch_xyz")Response:
{
"id": "post_launch_xyz",
"status": "publishing",
"retriedPlatforms": [
{ "platform": "linkedin", "retryCount": 1, "nextRetryAt": "2026-06-02T15:02:00Z" }
],
"skippedPlatforms": []
}LinkedIn is re-queued. Instagram and Twitter are untouched — they already published successfully.
Confirm all three are live
get_post(postId: "post_launch_xyz"){
"id": "post_launch_xyz",
"status": "published",
"platforms": [
{ "platform": "instagram", "status": "published", "platformPostUrl": "https://www.instagram.com/p/ABC123/" },
{ "platform": "twitter", "status": "published", "platformPostUrl": "https://x.com/voxburst_x/status/1234567890" },
{ "platform": "linkedin", "status": "published", "platformPostUrl": "https://www.linkedin.com/feed/update/urn:li:share:987654321/" }
]
}All three published. Post status is now published.
What the agent told the user
“Your launch announcement is live across all three platforms:
- Instagram: instagram.com/p/ABC123
- Twitter / X: x.com/voxburst_x/status/1234567890
- LinkedIn: linkedin.com/feed/update/urn:li:share:987654321
LinkedIn initially hit a rate limit but retried successfully. The first comment with hashtags will appear on Instagram 60 seconds after the post.”
Key patterns demonstrated
- Single
create_postcall targets multiple accounts — one post ID, multiple platform destinations platformOverrideslets each platform get optimized content without separate API calls- Partial failure is the normal recovery path — retry only the failed platforms
status: "partial"→status: "published"after retry: the natural recovery arc- First comment is set at creation time — VoxBurst fires it automatically after publishing