Prompt
When a new row with status 'ready' lands in our Airtable events base, draft a Threads post announcing the event: name, date, city, and signup link. Send it to the REST API with networks ["threads"] and mode submit. How to do it
- Mint a Threads agent key In https://app.socialhandoff.com, open Connections, connect your Threads account, then create an agent key scoped to Threads with draft permission only. Copy the key when it is shown; only its hash is stored.
- Pick a trigger Start the workflow with the event that should produce a post: an RSS item, a new row, a form submission, or a Schedule Trigger.
- Add an HTTP Request node Set it to POST https://app.socialhandoff.com/v1/posts with a Header Auth credential for the key. Send JSON with body, networks set to ["threads"], and mode "submit".
- Handle the response The response carries the post id and status. Branch on it to log the draft, or wait for the approval.requested and post.published outbound webhooks.
Example draft
Next stop: Lisbon. Our open design meetup is on 14 November at the Hub Criativo in Beato. Talks, portfolio reviews, and a lot of pastel de nata. Free, but spots are limited. Save yours: example.com/events/lisbon
Gotchas
- Threads allows 250 posts per account in any 24 hours. The quota is checked before each publish, so a post that would go over it is stopped before it is sent rather than failing at the network.
- Threads fetches images and video from your instance at signed, expiring URLs, so you do not need a separate public media host. The API itself must be reachable over public HTTPS; an instance that only runs on localhost cannot publish media to Threads.
- Keep each Threads post within 500 characters, and remember that Threads counts emoji by their UTF-8 bytes, so a few emoji use more of the limit than they appear to. The per-network length guardrail flags longer drafts before they reach the inbox.
- Store the key in an n8n Header Auth credential, not typed into the node, so it does not leak when you export or share the workflow.
- Character limit: 500 characters per post. Emoji count as their UTF-8 bytes, so an emoji can use up to 4 characters of the limit.
- Links: Up to 5 links per post. Threads generates a preview for the first one.
- Carousels: 2 to 20 images or videos in one carousel post.
- Image files: JPEG or PNG, up to 8 MB. Threads fetches each file from a URL at publish time.
Frequently asked questions
Should n8n use the REST API or MCP?
Use REST. The HTTP Request node maps cleanly to POST /v1/posts, and the OpenAPI spec at /openapi.json documents every field.
Can one n8n run draft for Threads and Bluesky together?
Yes. Put both in networks. Each network gets its own target, checked against its own length rule, and you approve them in one card.
What happens if a Threads publish fails?
The post is marked failed with the error, a post.failed webhook fires if you registered one, and you can fix and retry from the inbox.