Skip to content

Content and discovery

One library, two feeds, one queue

A post that lives in three places — a folder, a chat thread, and somebody's head — goes out twice or not at all. One library fixes that: approved once, stored once, pulled from a dated queue. Instagram will take the publishing call. Xiaohongshu, on the public record we could read, will not, so the second lane ends at a person rather than at an API. That asymmetry is the design, not a gap in it.

Triggers
Two
Runs
Daily
Stack
4 tools
Durable execution
Not required

The flow

The top track builds the library. The bottom track empties the queue. Two triggers, because an asset is ready when it is ready and a post goes out when it is due, and those are never the same moment.

Data

An asset is approved

Sheets · Airtable

Orchestration

Derive what each feed needs

n8n · Make

Data

Write one library row

Sheets · Airtable

Orchestration

Every morning

n8n schedule

Orchestration

Take what is due today

n8n

Orchestration

Which surface?

n8n IF

Platform

Create, then publish

Instagram Graph API

Notify

Hand it to a person

Slack · WhatsApp

Step by step

  1. 01

    An asset is approved

    Sheets · Airtable

    Approval is the trigger, not upload. A file sitting in a folder is a draft; the moment somebody signs it off is the moment it becomes schedulable.

  2. 02

    Derive what each feed needs

    n8n · Make

    Cut the caption per feed and produce a JPEG derivative. The publishing API will not accept anything else for a still, so the conversion belongs here rather than at send time, when it becomes a failed post.

  3. 03

    Write one library row

    Sheets · Airtable

    One row per asset: the surfaces it is cleared for, the date it is queued, and whether it has gone out. This row is the calendar. A second calendar somewhere else is how a post gets published twice.

  4. 04

    Every morning

    n8n schedule

    Runs whether or not anyone is at a desk. A queue nobody empties is just a folder with dates written on it.

  5. 05

    Take what is due today

    n8n

    Read the library for rows dated today and not yet sent. Sent is a state on the row, not an assumption.

  6. 06

    Which surface?

    n8n IF

    The split is not a preference. One of these two surfaces documents a publishing endpoint and the other does not, so they cannot end the same way.

  7. 07

    Create, then publish

    Instagram Graph API

    Two calls: build the media container, then publish it. Build it at send time — a container created when the calendar was planned expires before the queue reaches it.

  8. 08

    Hand it to a person

    Slack · WhatsApp

    The Xiaohongshu lane ends in a message carrying the caption, the image and the intended time. Automating everything up to the last step is still most of the work, and it is honest about where the automation stops.

What the platform will not allow

The queue's shape is set by two published ceilings and one absence of documentation.

  • "Instagram accounts are limited to 100 API-published posts within a 24-hour moving period." A backlog released all at once meets that ceiling, so the queue has to pace itself rather than drain.

    Instagram Platform — Content Publishing
  • A media container that is not published within 24 hours expires. Containers therefore have to be created at send time, not when the calendar is planned — which is exactly the mistake a scheduling tool invites.

    Instagram Platform — Content Publishing
  • "Carousels are limited to 10 images, videos, or a mix of the two", and "JPEG is the only image format supported". The library has to hold a JPEG derivative, not only the designer's original file.

    Instagram Platform — Content Publishing
  • Xiaohongshu's open platform does publish its API reference openly, and it is a merchant API set: order, after-sales, product, inventory, material centre, logistics, finance. The material centre manages listing assets, not notes. No content-publishing category appears in the public navigation, so we make no claim that a note can be published there programmatically.

    小紅書開放平台 — API 文件導覽

When this is not worth building

Three cases where the upkeep costs more than the double-posts.

  • You publish a handful of posts a week and one person decides each one on the day. The queue then holds a copy of what already lives in their head, and the copy is the thing that goes stale.

  • The two feeds share no assets. If every Xiaohongshu note is written natively and every Instagram post is shot for Instagram, there is no library to share — there are two workflows wearing one name.

  • Nobody owns approval. A queue publishes what is in it, at the time on the row. Without a person who decides what enters, the automation has only made the wrong post punctual.

Related reading

Talk to us

Which of these should you actually build?

We run these flows for Hong Kong operators every week. Tell us the process that is costing you, and we will say whether automating it is worth the upkeep.

Start a conversation