# Schedule X posts, threads, images and polls: n8n workflow

> Started by another system calling it. It calls services over plain HTTP rather than through connectors.

Source: https://millionrounds.com/workflow/schedule-x-posts-threads-images-and-polls (Millionrounds; every figure on the page links to its filing or article)

[Automation library](https://millionrounds.com/workflows) · [Scheduling](https://millionrounds.com/workflows?category=Scheduling#library)

# Schedule X posts, threads, images and polls

Started by another system calling it. It calls services over plain HTTP rather than through connectors. 54 steps, 15 branches, 3 loops or waits: large, and worth reading before you trust it with anything live.

Large

[Download free](https://millionrounds.com/login?next=%2Fapp%2Fworkflow%2Fschedule-x-posts-threads-images-and-polls)

**54 steps** Large: read it before trusting it with anything live

**15** Branches: places the flow splits

**3** Loops or waits

**0** Services by connector: it calls them over plain HTTP

## The flow

Starts it 2 Logic 41 Service 11

The steps in the order they run, from what starts it.

- 1 **When Webhook Received** Webhook *Starts it*
- 2 **Route by Content Type** Switch *Logic*
- 3 **Prepare Post Content** Code *Logic*
- 4 **Prepare Thread Content** Code *Logic*
- 5 **Delete Tweet from X** Http Request *Service*
- 6 **Fetch User Info from X** Http Request *Service*
- 7 **Handle Unknown Content Type** Set *Logic*
- 8 **If Post Is Simple** If *Logic*
- 9 **Loop Over Thread Items** Split In Batches *Logic*
- 10 **If Tweet Deleted Successfully** If *Logic*
- 11 **If User Info Valid** If *Logic*
- 12 **Send Response to Webhook** Respond To Webhook *Starts it*
- 13 **Post Simple Tweet** Http Request *Service*
- 14 **If Invalid Post Payload** If *Logic*
- 15 **Compile Thread Response Data** Code *Logic*
- 16 **If First Tweet in Thread** If *Logic*
- 17 **Set Delete Error Details** Set *Logic*
- 18 **Set Delete Success Details** Set *Logic*
- 19 **Set User Info Error Details** Set *Logic*
- 20 **Set User Info Success Details** Set *Logic*
- 21 **Set Simple Post Success Details** Set *Logic*
- 22 **Set Invalid Payload Error Details** Set *Logic*
- 23 **If Post Contains Poll** If *Logic*
- 24 **Set Final Thread Response** Set *Logic*
- 25 **Post Root Tweet in Thread** Http Request *Service*
- 26 **If Previous Tweet Exists** If *Logic*
- 27 **Post Tweet with Poll** Http Request *Service*
- 28 **Prepare Media for Post** Code *Logic*
- 29 **Wait 1 Second Before Reply** Wait *Logic*
- 30 **Reply to Previous Thread Tweet** Http Request *Service*
- 31 **Set Thread Chain Error Details** Set *Logic*
- 32 **If Poll Post Successful** If *Logic*
- 33 **Init Media Upload** Http Request *Service*
- 34 **Capture Thread Reply Details** Code *Logic*
- 35 **Set Poll Post Error Details** Set *Logic*
- 36 **Set Poll Post Success Details** Set *Logic*
- 37 **If Media Upload Success** If *Logic*
- 38 **Track Previous Tweet ID** Set *Logic*
- 39 **Set Media Upload Error Details** Set *Logic*
- 40 **Chunk Media for Upload** Code *Logic*
- 41 **Append to Media Upload** Http Request *Service*
- 42 **If Media Appended Successfully** If *Logic*
- 43 **Prepare Media Finalization** Code *Logic*
- 44 **Finalize Media Upload** Http Request *Service*
- 45 **Process Media Status** Code *Logic*
- 46 **If Media Processing Error** If *Logic*
- 47 **If Media Processing Complete** If *Logic*
- 48 **Generate Media IDs** Code *Logic*
- 49 **Wait for Media Processing** Wait *Logic*
- 50 **If Media IDs Valid** If *Logic*
- 51 **Check Media Status** Http Request *Service*
- 52 **Post Tweet with Media** Http Request *Service*
- 53 **If Media Post Successful** If *Logic*
- 54 **Set Media Post Success Details** Set *Logic*

## How it's built

- **Starts on:** Another system calling it
- **Steps:** 54, with 15 branches, 3 loops or waits
- **Size:** Large: read it before trusting it with anything live
- **Connects to:** Nothing by connector; it calls services over plain HTTP
- **Model:** None. This is plumbing, not judgement

## Questions

What does it need to run?

An n8n account. You connect your own accounts after importing it; none are included.

What starts it?

It starts on another system calling it.

Does it use AI?

No. Every step is fixed logic or a call to a service, so it does the same thing every time.

How long does it take to set up?

Take your time. At 54 steps it is large: read it before trusting it with anything live.

How do I import it?

Copy the workflow, open a new workflow in n8n and paste. The steps appear on the canvas, ready for your own accounts.

**Before you run it**

Nothing here has been tested by us. It is somebody's working automation, read and described from its own steps. Treat the connections it wants as a list of accounts it will touch, and read the 54 steps before you point it at anything that matters.

## Run it in n8n

- **Create your n8n account** Free to start. n8n is where the workflow runs. [Create an n8n account ↗](https://millionrounds.com/n8n)
- **Download the workflow** Free with a Millionrounds account. [Download free](https://millionrounds.com/login?next=%2Fapp%2Fworkflow%2Fschedule-x-posts-threads-images-and-polls)
- **Paste it into n8n** Open a new workflow in n8n and paste. Then connect your own accounts.

Stored with the author's traces removed: canvas notes, instance identifiers, saved credential names and any live document they had left behind.

## Workflows like it

Also scheduling, with the same services where possible, closest in size first.

- [**Automate salon appointment management with WhatsApp and OpenAI** 56 steps · calls a model · Gmail, Google Calendar](https://millionrounds.com/workflow/automate-salon-appointment-management-with-whatsapp-and-open)
- [**Multi-agent salon appointment management with Telegram** 52 steps · calls a model · Google Calendar, Redis](https://millionrounds.com/workflow/multi-agent-salon-appointment-management-with-telegram)
- [**Automate Microsoft Teams meeting analysis with Outlook** 51 steps · calls a model · Outlook, Postgres](https://millionrounds.com/workflow/automate-microsoft-teams-meeting-analysis-with-outlook)
- [**Automated HR Service System with WhatsApp and OpenAI** 57 steps · calls a model · Gmail, Google Calendar](https://millionrounds.com/workflow/automated-hr-service-system-with-whatsapp-and-openai)
- [**AI sales agent: WhatsApp, FB, IG, OpenAI, Airtable, Supabase** 50 steps · calls a model · Airtable, Supabase vectors](https://millionrounds.com/workflow/ai-sales-agent-whatsapp-fb-ig-openai-airtable-supabase)
- [**Generate legal ops briefings with Claude and Clio** 50 steps · calls a model · Gmail, Google Calendar](https://millionrounds.com/workflow/generate-legal-ops-briefings-with-claude-and-clio)
