REST API (HTTP module)

Send Make scenario output to an approval inbox before it posts

Make scenarios are good at shaping data from many apps. End the scenario with an HTTP module that calls the SocialHandoff API, and each run produces drafts that a person reviews before they publish.

How to do it

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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 mode set to schedule and a date for each.
  • A Custom Webhook module that receives SocialHandoff post.failed events 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.

Frequently asked questions

Which Make module calls SocialHandoff?
The HTTP app's Make a request module. Set method POST, the /v1/posts URL, an Authorization header with your agent key, and a JSON body.
Why do my Make runs fail with 400?
The request body is not valid JSON, usually because mapped text has quotes or line breaks. Build the body with the JSON module's Create JSON instead of typing it by hand.
Can Make schedule posts at specific times?
Yes. Use mode schedule with a date, time, and timezone. The post still waits for approval unless the Make agent has been promoted to auto-publish on that network.

Let your agents post. Keep the final say.

Connect your first agent in minutes. Every draft waits in your inbox until you approve it.

14 days free. No card required.

The hosted version is opening soon

Leave your email and we will send one message when hosted accounts open, with your 14-day trial ready. Want it today? Self-host it free from the repo.

Start free trial