Agent setup guide
Cross-Post Adapter
One post in, a Bluesky version (300 characters) and a Mastodon version (500, hashtags, content warning) out, posted to both after you approve.
What it does
One post in, a Bluesky version (300 characters) and a Mastodon version (500, hashtags, content warning) out, posted to both after you approve.
- Takes one source post from your form, CMS or a manual run (text, optional link and notes).
- AI rewrites it in your voice: a Bluesky version within 300 characters and a Mastodon version within 500 with hashtags at the end and a content warning when your rules ask for one. Every fact and link is kept.
- Both versions wait for your approval in Reviews; you can edit either.
- After approval, code checks again that both are there, fit their limits and have no leftover placeholders; then it posts to Bluesky and Mastodon (only the ones you connected) and the run history names the networks it really went out on.
What it needs
- A paid plan (agents run live on paid plans).
- An AI provider key (Settings → AI Providers).
- Bluesky, Mastodon or both, connected in Settings → Integrations (the steps for a network you don't connect are skipped).
- A form, CMS or script that can send the post to a webhook (or run it by hand).
What it doesn't do
- Nothing is posted without your approval.
- Text only: no images or video. On Bluesky, #hashtags and @mentions appear as plain text (links are clickable).
- Bluesky and Mastodon only.
- It doesn't schedule posts: they go out as soon as you approve.
Availability and plans
Available
Its workflow is built and tested, and every app it needs is live. You can get it and set it up now.
Included free on the Enterprise plan; on other paid plans it's a one-time purchase per workspace (the price is on the Agents page). The Agents page in the app always shows its current status.
Before you start
- A paid plan: agents run live, and the Free plan only runs Dry Runs.
- An AI provider key (OpenAI, Anthropic, Google and more) in Settings → AI Providers. AI usage is billed by your provider.
- These apps, connected in Settings → Integrations: Bluesky and Mastodon.
- A form, app or system that can send each new item to a webhook URL (the agent starts from a webhook).
- About 10 minutes.
Set it up step by step
Get the agent first (buy it, or it's already yours when your plan includes it), then in Agents → My agents press “Set up this agent”. That creates the agent's workflow in your workspace (it counts towards your plan's workflow limit) and opens the canvas with a setup checklist above it. Each item links to the exact place to go and ticks itself off when it's done.
1. Connect your AI provider
The AI steps run on your own key (OpenAI, Anthropic, Google and more). Add one in Settings → AI Providers.
2. Connect Bluesky, Mastodon or both
Connect the networks you use: Bluesky with your handle and an app password, Mastodon with your server and an access token with read and write scopes (Settings → Integrations). One is enough; the steps for a network you don't connect are skipped.
3. Describe your voice
Open “Rewrite it for each network” and replace the placeholder with your voice, hashtags and content-warning topics.
| Setting | What to enter | In step |
|---|---|---|
| Your voice and hashtag rules | Replace the placeholder with your business, tone, emoji or not, the hashtags you use, topics that need a content warning on Mastodon and words you never use. It starts as “[DESCRIBE YOUR BUSINESS, YOUR TONE ON SOCIAL MEDIA (FRIENDLY, EXPERT, PLAYFUL…), EMOJI OR NOT, THE HASHTAGS YOU USE, TOPICS THAT NEED A CONTENT WARNING ON MASTODON AND WORDS YOU NEVER USE HERE]” until you replace it. | “Rewrite it for each network” |
4. Pick your accounts
Open “Post to Bluesky” and “Post to Mastodon” and pick your accounts. Leave a network empty if you don't use it: its step is skipped.
| Setting | What to enter | In step |
|---|---|---|
| Bluesky account | The Bluesky account the posts go out from. Leave it empty if you don't use Bluesky: the step is then skipped. Pick your connected Bluesky account, or leave it empty if you don't use Bluesky (the step is then skipped). | “Post to Bluesky” |
| Mastodon account | The Mastodon account the posts go out from. Leave it empty if you don't use Mastodon: the step is then skipped. Pick your connected Mastodon account, or leave it empty if you don't use Mastodon (the step is then skipped). | “Post to Mastodon” |
5. Test it with Dry Run
Press Dry Run: the agent runs on sample data with no messages sent and nothing written to your apps.
6. Switch the trigger on
Open the trigger, copy the webhook URL and secret into your form, CMS or script, and switch it on. Fields: post, link (optional), notes (optional).
How it works
The agent is a normal workflow with 12 steps (1 AI step, with a person approving in Reviews). You can open, edit and monitor it like any other workflow.
- New post to share — Starts when your form or app sends data to the agent's webhook URL. Starts when your form, CMS or a manual run sends one post: post (the text), link (optional), notes (optional, e.g. “mention the opening hours”).
- Rewrite it for each network — AI step (runs on your AI provider key). AI writes a Bluesky version (300 characters) and a Mastodon version (500 characters, hashtags, content warning when your rules ask for one) in your voice, keeping every fact from the source.
- Approve both versions — A person approves or rejects it in Reviews (the run waits). Both versions wait in Reviews: edit either, then approve to post them. Reject to post nothing.
- Check before posting — Step. Branch: Approved. In code: both versions are there, have no leftover placeholders, and fit (300 characters on Bluesky, 500 on Mastodon).
- Passed the checks? — Decision: picks the branch to follow. Both versions passed: they're posted (to the networks you connected). Otherwise nothing is posted and the run history says why.
- Held: nothing posted — Kept in the run history. Branch: Held. A version was blank, too long or still had a placeholder. Fix it and send the post again.
- Post to Bluesky — Bluesky: Create a post. Branch: Post. Publishes the approved Bluesky version. Skipped when Bluesky isn't connected.
- Post to Mastodon — Mastodon: Publish a post. Publishes the approved Mastodon version (public), with its content warning when there is one. Skipped when Mastodon isn't connected.
- Posted on Bluesky? — Step. In code: did Bluesky return a post link? (No when Bluesky isn't connected.)
- What went out? — Decision: picks the branch to follow. In code: names only the networks the post really went out on (a network that isn't connected was skipped).
- Posted — Kept in the run history. Branch: Both / Bluesky / Mastodon. The run history says where it went out (Bluesky, Mastodon or both) and keeps both versions and the post links.
- Nothing posted — Kept in the run history. Branch: Nothing posted / Other. Neither network is connected any more: connect Bluesky or Mastodon and send the post again.
Test it with Dry Run
Press Dry Run in the canvas. The agent runs on the sample data stored on its trigger (the “Sample data for Dry Run” box), so you can check every step's output before anything is live. Edit the sample to match the fields your own form or app sends.
Sample data fields
post, link, notes.
- Nothing is sent or written: app actions, emails and Slack posts are simulated, and AI steps don't call your AI provider.
- Approval steps use the Dry Run decision you pick in the step's settings (approved, rejected or timeout), so you can try each branch.
Go live
- Open the trigger, copy the webhook URL and secret into your form, CMS or script, and switch it on. Fields: post, link (optional), notes (optional).
- The webhook is protected by a secret: send it in the header shown in the Activation panel (requests without it are refused with 403). Each request starts one run.
- The setup checklist adds a “paid plan” item before activation: live runs need a paid plan (the Free plan only runs Dry Runs).
- When every checklist item is done and the trigger is on, the checklist says “Live — this agent is running”. Follow its runs in the workflow's History tab and in Analytics → Agents.
Questions
How do I send a post?
POST JSON to the webhook URL with post (the text) and optionally link and notes, from a form tool, your CMS or a script. You can also start a run by hand from the canvas with your own text.
Does anything go out without me?
No. Both versions wait in Reviews; nothing is posted until you approve, and a rejected post isn't posted anywhere.
What about hashtags on Bluesky?
Bluesky shows #hashtags as plain text when posted this way, so the Bluesky version uses one or two at most; the Mastodon version puts two to four at the end, where they're clickable.
Troubleshooting
- “No AI provider connected” or a rejected key: connect or fix the key in Settings → AI Providers, then press Test there.
- A checklist item stays unticked: the setting is still empty or still contains its placeholder text. Open the step from the checklist and fill it in.
- An app step fails with “Needs reconnect”: the account's access was revoked or expired. Reconnect it in Settings → Integrations.
- Nothing happens when your form sends data: check the webhook is switched on and the request carries the secret header (403 means it's missing or wrong).
- A run shows as paused: it's waiting for someone in Reviews to approve or reject it.
- A step failed: open the run in History and check that step in the Trace tab for the error and what it received.
Generated from the agent's own workflow, so it always matches what the agent does. Last updated .