Connect social media to Fondoo

campaignLive6 min readUpdated

This page is the starting point for social posting in Fondoo. It explains how to choose the service that does the posting, how linking accounts works, and what each network supports. Once your accounts are linked, your AI agent can draft, schedule and publish posts for your business, with you approving what goes out. For step-by-step help with one network, open that network's guide from the table below.

What Fondoo can do with it

  • Link accounts with connect_social, then load them with refresh_social_accounts and list_social_accounts.
  • Draft posts. draft_social_posts writes AI captions, one per account. save_social_draft saves your own text without AI.
  • Schedule and approve. schedule_social_posts picks slots inside your posting windows. approve_social_posts confirms exact posts. Fondoo's internal publisher then sends them when due.
  • Media, calendar, stats and cancelling. Use register_social_media for real media, get_social_calendar for the calendar and get_social_stats for results. cancel_post cancels a post.

Links in posts are turned into tracked links, so visits can be tied back to each post.

What needs your approval: choosing a provider (set_provider), saving provider credentials and changing posting rules are owner-only. Posts wait for approval unless you, signed in as the owner, set a network to auto. Reddit and Lemmy posts always need approval.

Before you start: choose a provider

Fondoo can post through two services. Each site uses one, and Upload-Post is the default.

Upload-Post (default)Postiz
Whose accountFondoo's. You need no account or keyYours (Postiz Cloud Standard plan or higher, or self-hosted)
How you link channelsA secure linking page from connect_socialInside Postiz (Calendar → Add Channel), then refresh_social_accounts
Networks Fondoo can post toAll networks in the table below except RedditInstagram, TikTok, LinkedIn, YouTube, Facebook, Threads, Pinterest, Bluesky, Mastodon, X
Delete a live postNoAsks Postiz to delete it
Self-hosted FondooNot availableAvailable

To see the current choice, run get_providers({siteId}). It returns the choices and the selected provider for each capability. To switch, the owner runs:

set_provider({ siteId, capability: "social", provider: "postiz" })   // or "upload_post"

Leave out siteId to set the workspace default. A site's own setting overrides the workspace default. Once a provider is chosen, accounts from the other provider are refused with "Account does not use the selected social provider".

Each social set counts against your plan's social-set allowance. Builder and Launch include 1, Growth 3 and Agency 10. This may differ for your account. A set holds one account per network.

Step by step: authorize your accounts

  1. Pick your provider (above).
  2. Upload-Post: your agent runs connect_social. You open the returned page and sign in to each network. See upload_post.md.
  3. Postiz: connect channels in Postiz. Then the owner saves the Postiz key with configure_social_connection. See postiz.md.
  4. Networks without a sign-in page (Discord, Telegram, Slack, Mastodon, Nostr, Lemmy, DEV, Hashnode, WordPress, Whop, listmonk): on Upload-Post, the owner runs configure_upload_post_platform. Each network's guide lists its fields.
  5. Run refresh_social_accounts.
  6. The owner turns on each network with update_distribution_rules. Networks stay off until listed. Defaults: 1 post a day, 09:00 to 17:00 UTC, review approval.

Network capabilities

These are Fondoo's built-in, conservative defaults. Your account or plan may allow less. Neither provider supports the thread format (multi-part posts), even where the network does. Required fields go in a post's details or in the account's settings (configure_social_account).

NetworkFormatsCharacter limitRequired fieldsLink noteGuide
Instagramimage, carousel, video2,200Caption URLs are not clickableinstagram.md
TikTokimage, carousel, video2,200Caption URLs are not clickabletiktok.md
LinkedIntext, image, carousel, video3,000linkedin.md
YouTubevideo5,000 (bytes)youtube.md
Facebooktext, image, carousel, video63,206facebook.md
Threadstext, image, carousel, video, thread500 (bytes)threads.md
Pinterestimage, video800pinterest_board_id (checked on Upload-Post posts)pinterest.md
Blueskytext, image, carousel, video, thread300 (graphemes)bluesky.md
Mastodontext, image, carousel, video, thread500mastodon.md
Xtext, image, carousel, video, thread280Links require a customer X key or confirmed Fondoo billing at $0.50 per postx.md
Reddit (publishing unavailable, drafts only)text, image, video40,000 (title 300)subreddit, rulesTextreddit.md
Google Business Profiletext, image, video1,500gbp_location_idgoogle_business.md
Discordtext, image, carousel, video2,000discord.md
Telegramtext, image, carousel, video4,096 (1,024 with media)telegram.md
Slacktext40,000slack.md
Nostrtext32,768nostr.md
Lemmytext, image10,000 (title 200)lemmy_title, rulesTextlemmy.md
DEVtext250,000 (title 250)devto_title, canonicalUrldevto.md
Hashnodetext100,000 (title 250)hashnode_title, canonicalUrlhashnode.md
WordPresstext, image, video500,000 (title 200)wordpress_title, canonicalUrlwordpress.md
Whoptext20,000whop.md
listmonktext200,000 (title 500)listmonk_title, consentConfirmedlistmonk.md

Notes:

  • Character limits are checked after Fondoo adds tracked links.
  • Titles must be at least 3 characters. canonicalUrl must be an HTTPS link to the original post.
  • Fondoo doesn't collect stats for Discord, Telegram, Slack, Nostr, Lemmy, DEV, Hashnode, WordPress, Whop or listmonk. Through Upload-Post, it also doesn't collect them for Mastodon.
  • For X links you can connect your own developer key (x_byo.md).

Connect it in Fondoo

(a) Dashboard. Open Connections. While a site has no social set, the Available card lists Social plus LinkedIn, Instagram, Facebook, X, TikTok, YouTube, Reddit, Bluesky, Pinterest and Threads. Connect followed by the network name shows Continue connecting and a Connect securely button with the setup steps. That button doesn't link the account itself, so use the agent route. Linked accounts appear in Connected with Reconnect. The other networks, Upload-Post and Postiz are not listed by name.

(b) Ask your agent. Example prompt:

"Show which social provider site YOUR-SITE-ID uses, then give me a link to connect Instagram and LinkedIn."

get_providers({ siteId })
connect_social({ siteId, provider: "upload_post", network: "instagram", set: 1, redirectUrl: "https://example.com/connected" })
refresh_social_accounts({ siteId, connectionId })

connect_service({provider:"social", siteId}) returns the same setup steps plus a signed link that expires after 15 minutes.

REST equivalent: POST https://api.getfondoo.com/v1/ops/<operation> with Authorization: Bearer <Fondoo API key> and the JSON body.

Test that it works

  1. list_social_accounts({siteId}) lists accounts, connections and each provider's capabilities.
  2. get_connection_health({siteId}) checks each social connection with its provider.
  3. get_publishing_capacity({siteId}) shows today's remaining posts per account.
  4. Try schedule_social_posts with "dryRun": true before your first real post.

Troubleshooting

  • "Provider does not serve this capability". set_provider only accepts upload_post or postiz for social.
  • "Enable NETWORK in distribution rules first". The owner needs to add the network with update_distribution_rules.
  • "Format not supported by this adapter/network". Pick a format from the table. thread doesn't work through either provider.
  • "NETWORK character limit (LIMIT) exceeded after link tracking". Shorten the text. Tracked links can be longer than the original links.
  • "Social providers are not configured". Social posting isn't turned on for this Fondoo server. Contact Fondoo support.

Limits, data and security

  • Fondoo's posting rules, your plan's set allowance and each provider's caps all apply. See upload_post.md and postiz.md for vendor limits.
  • Fondoo stores account names and IDs, posts and metrics. Customer credentials, such as a Postiz key or an X key, are encrypted and never returned. Upload-Post holds the network tokens for accounts linked through it.
  • To disconnect, unlink the account at the provider or revoke the app on the network. Then run refresh_social_accounts.