How to do it
- Create a key for Make In https://app.socialhandoff.com, open Connections, add an agent called Make, and give it draft permission on the right networks.
- Build the JSON safely Add a JSON module (Create JSON) with a data structure for body, networks, mode, and idempotencyKey. It escapes mapped text for you.
- Add an HTTP module Use HTTP, Make a request. URL https://app.socialhandoff.com/v1/posts, method POST, header Authorization with Bearer and your key.
- Set the body Body type Raw, content type JSON (application/json), and map the JSON string from the previous module into Request content. The shape is shown below.
- Run once and schedule Run the scenario once, confirm the draft in the SocialHandoff inbox, then turn on scheduling in Make.
{
"body": "{{1.title}}: {{1.link}}",
"networks": ["linkedin", "bluesky"],
"mode": "submit",
"idempotencyKey": "make-{{1.id}}"
} Scenario pattern
A typical scenario has three parts: a trigger module (RSS, Google Sheets, Notion, Webflow, a webhook), optional shaping (text parser, a model module that writes a summary, a router per network), and the HTTP call to /v1/posts. The numbers in the snippet, such as 1.title, refer to fields from module 1; swap them for your own mappings.
Use the JSON module for escaping
If you type the body straight into the HTTP module and map a field that contains a quote or a line break, the request becomes invalid JSON and the API answers 400. The Create JSON module escapes values properly. Map its output into the HTTP module instead of hand-writing the JSON.
One draft per network, or one draft for many
A single request with several networks creates one post targeting each of them, and SocialHandoff checks each network's rules separately. If you want different text per network, add a Router with one HTTP module per branch and a different networks value in each. LinkedIn gets the longer version; X and Bluesky get the short one.
Scenario ideas
- New Notion page with status Publish, then a LinkedIn draft with the page summary.
- New YouTube upload, then a submitted draft for X and Mastodon with the video link.
- Weekly scheduled run that reads a sheet of tips and submits 5 drafts with
modeset to schedule and a date for each. - A Custom Webhook module that receives SocialHandoff
post.failedevents and alerts your team.
Handling errors in Make
Add an error handler route to the HTTP module. Useful codes:
- 401: bad or revoked key.
- 422: a guardrail rejected the draft, such as a banned topic. Route it to an email so someone rewrites it.
- 423: the kill switch is on. Use a Break directive so Make retries later.
Send an idempotencyKey so retries from Make's Break directive do not create duplicate drafts.
Network-specific guides: Make for X, Make for LinkedIn, Make for Bluesky, Make for Mastodon, and Make for Threads.