Connect Bluesky to Fondoo
Connecting Bluesky lets your business publish short posts, images and videos to your Bluesky account from Fondoo. Your AI agent can draft and schedule posts, and you approve them before they go out. You can connect through Fondoo's Upload-Post account (the default) or directly with a Bluesky app password.
What Fondoo can do with it
Fondoo has two ways to post to Bluesky. Both are real; pick one.
Through Upload-Post (default on hosted Fondoo)
- Text posts, a single image, up to 4 images, or a single video.
- Up to 300 characters, counted the way Bluesky counts them (an emoji counts as one).
- Images of 1 MB or less each.
- Post stats from Upload-Post (likes, reposts, replies, quotes).
- No multi-post threads, and no deleting after publishing.
Directly with a Bluesky app password (native)
- Text posts, up to 4 images (1 MB or less each), and threads of up to 21 connected posts. No video.
- Links become clickable link facets.
cancel_postcan delete a published post or thread.- Stats: likes, replies and reposts. Bluesky has no impressions number, so that stays empty.
Both paths support drafting (draft_social_posts, one AI post unit per idea; save_social_draft), scheduling (schedule_social_posts), tracked links with UTM tags, and planning (get_social_calendar, get_post, get_publishing_capacity).
What needs your approval:
- By default every Bluesky post needs the owner's approval. The agent's
approve_social_postsbecomes a request in your approval queue. - Only the owner can install native credentials (
configure_social_connection) and change posting rules (update_distribution_rules). - Deleting a published post with
cancel_post(native path) is destructive, so an agent's request also needs approval.
Before you start
- A Bluesky account with the handle you want to post from.
- An app password. Never give any tool your main Bluesky password. App passwords are separate passwords for third-party apps, and you can delete one at any time.
- Cost: Bluesky is free. Posting is part of your Fondoo plan. Your plan sets how many social sets you can have (Builder and Launch: one, Growth: three, Agency: ten), with one account per network in each set.
Step by step: get your credentials
Create an app password
- Sign in at bsky.app.
- Open Settings → Privacy and security → App passwords, or go straight to bsky.app/settings/app-passwords. Older versions of the app put this under Settings → Advanced → App passwords (Bluesky FAQ).
- Click Add App Password and name it "Fondoo".
- Leave direct-message access off. Fondoo does not read or send DMs.
- Copy the password (it looks like
xxxx-xxxx-xxxx-xxxx). It is shown only once. If you lose it, delete it and make a new one.
Where it goes
- Upload-Post path: open Fondoo's authorization link (next section) and choose Bluesky. If the page asks for a handle and password, enter your handle and the app password. Upload-Post does not document its exact Bluesky sign-in screen, so this may differ for your account.
- Native path: the owner sends your handle (or email) as
identifierand the app password asappPassword, as shown below.
Connect it in Fondoo
(a) In the dashboard
- Open Connections → Available → Social → Bluesky.
- Click Connect Bluesky, then Connect securely. This is a signed setup link valid for 15 minutes. It shows instructions only and carries no credentials.
- Continue with your agent or the REST calls below.
(b) By asking your agent (Upload-Post path)
Connect our Bluesky account for the main site. Send me the link, then refresh and confirm the handle.
connect_service({provider:"bluesky", siteId:"YOUR-SITE-UUID"})
connect_social({siteId:"YOUR-SITE-UUID", provider:"upload_post", network:"bluesky",
redirectUrl:"https://your-site.example/connected"})
-> { connectionId, url }
refresh_social_accounts({siteId:"YOUR-SITE-UUID", connectionId:"CONNECTION-UUID"})Native path (owner only). Do not paste the app password into an agent chat. The owner calls the REST API directly:
curl -X POST https://api.getfondoo.com/v1/ops/configure_social_connection \
-H "Authorization: Bearer $FONDOO_OWNER_KEY" \
-H "Content-Type: application/json" \
-d '{"siteId":"YOUR-SITE-UUID","provider":"bluesky","credential":{"identifier":"yourname.bsky.social","appPassword":"xxxx-xxxx-xxxx-xxxx"}}'It returns a connectionId. Then your agent (or you) runs refresh_social_accounts({siteId, connectionId}). Fondoo signs in to Bluesky and stores the account's handle and ID.
add_connection_key and test_connection are not used for Bluesky. refresh_social_accounts is the check.
Turn Bluesky on. The owner adds Bluesky to the posting rules with update_distribution_rules. Defaults are one post per day, 09:00 to 17:00 UTC, text only, review approval. Add image, carousel, video (Upload-Post only) or thread (native only) to formats as needed.
Test that it works
list_social_accountsshould show your Bluesky handle.- Save a short test post with
save_social_draftand schedule it. - Approve it. When due,
get_postshould showpublishedand a link to the post.
Troubleshooting
- Sign-in fails: you used your main password, or the app password was deleted. Create a new app password and reconnect.
- "bluesky: character limit 300": shorten the post. Tracked links count toward the limit, because links are replaced before the length check.
- "Bluesky accepts at most four images" or "media limit exceeded": use 4 images or fewer, each 1 MB or less.
- "Native Bluesky video" unsupported: the native path has no video. Use the Upload-Post path for video.
- "Account does not use the selected social provider": your workspace has an explicit social provider choice (Upload-Post or Postiz), so native Bluesky accounts are not used. Remove that choice or use the Upload-Post path.
- "bluesky daily publishing cap reached": Fondoo applies 25 videos per UTC day by default, matching Upload-Post's video quota. Text and image posts have no default daily cap.
Limits, data and security
- Limits: 300 characters, 4 images, 1 MB per image. Upload-Post lists video up to 300 MB and 10 minutes, and applies a 25-video daily quota.
- Retries: five automatic attempts, then an alert.
- What Fondoo stores: the account's DID and handle, your posts, schedules, results and stats. On the native path, the app password is stored encrypted and is never returned by any operation. On the Upload-Post path, the Bluesky session is held by Upload-Post.
- Rotate or disconnect: delete the app password in Bluesky settings. Access stops at once. Then run
refresh_social_accountsto mark the account inactive. To rotate on the native path, the owner callsconfigure_social_connectionagain with the sameconnectionIdand a new app password.
Official links
- App passwords: https://bsky.app/settings/app-passwords
- Bluesky user FAQ: https://bsky.social/about/blog/5-19-2023-user-faq
- Bluesky developer docs: https://docs.bsky.app/
- Upload-Post upload limits: https://docs.upload-post.com/guides/limit-of-uploads
- Upload-Post FAQ: https://docs.upload-post.com/resources/faq
