Template id: x/publisher · Requires: shopee/finder (only runs with Shopee on) · Trigger: Manual · Flow timeout: none (runs until you stop it)
𝕏 Auto Post: posts again and again from what people post now (the AI writes it, from For you, Following, a List, a search or a profile), or from a post set (as it is, or reworded). Shopee affiliate: off, or a product (the AI's pick, one of your keywords, or one of your links) with the link in the post or a reply under it. Brand, persona and media are options. Review: it approves by itself after the wait unless you set it to wait for you.
What you need
- A Dataset › Account with platform 𝕏.
- A Dataset › AI key (not when it posts a post set as it is without a Shopee search).
- A Dataset › Account with platform SHOPEE, only with Shopee
moodorkeyword(thelistsource uses your own links). - Optional: a post set, a Drive folder for media, your brand's details.
- To run it with other accounts or on a schedule, publish it and create a campaign.
What shows when
The campaign form shows a tab, and an option in it, only when your earlier choices need it:
| You choose | It shows | It hides |
|---|---|---|
Post from timeline | where to read, what to write about, how to write, Brand, Persona, Media, Like on the timeline | the post set |
Post from dataset | the post set (order, repeat) | the AI key (unless Shopee searches), reading, writing, Brand, Persona, Media |
Post from rewrite | the post set and how to write, Brand, Persona | reading and Media (the set's own media go along) |
Shopee affiliate off | nothing more | every Shopee option and the Shopee account |
Shopee affiliate mood / keyword | what to promote / your keywords, how to promote, where the link goes, the Shopee account | — |
Shopee affiliate list | your product links, where the link goes | the Shopee account |
Mention the brand fit / always | brand name, what it offers, link | — |
Media folder / pick | the Drive folder and files per post (folder: order and repeat too) | — |
Before it goes out approve / reject | how long it waits for you | — |
Options
Write these in Settings › Options (or on each ). An option with a Shown when only shows (and is only needed) while those options hold those values; or joins alternatives:
| Tab | Key | Kind | Default | What it is | Shown when |
|---|---|---|---|---|---|
| Accounts | account.x | account (X) | — | 𝕏 account: Signs in, reads and posts | |
| Accounts | ai | ai | — | AI key: Every AI step uses it | content.source = timeline / rewrite; shopee.product = off / mood / keyword / list or content.source = dataset; shopee.product = mood / keyword |
| Accounts | account.shopee | account (SHOPEE) | — | Shopee account: Searches the affiliate catalog and makes your links | shopee.product = mood / keyword |
| Content | content.source | choice: timeline, dataset, rewrite | timeline | Post from: timeline: the AI writes from what people post now · dataset: the next post of a post set, as it is · rewrite: the next post of a post set, reworded by the AI | |
| Content | timeline.source | choice: home, following, list, search, profile | home | Read from: home: For you · following: Following · list: a List · search: latest posts of a search · profile: someone's posts | content.source = timeline |
| Content | timeline.query | list | — | Read what: list: its link or id · search: the words · profile: @name (several: one by one) | content.source = timeline; timeline.source = list / search / profile |
| Content | timeline.language | text | id | Post language: e.g. id, en (empty: any) | content.source = timeline |
| Content | timeline.max | number | 35 | Posts to read: How many recent posts the AI reads before it writes | content.source = timeline |
| Content | content.task |
The flow
flowchart LR
productSwitch["Which product?"] -- fallback --> noProduct["No product"]
productSwitch["Which product?"] -- mood --> keywordAi["The AI's keyword"]
productSwitch["Which product?"] -- keyword --> keywordList["One of your keywords"]
productSwitch["Which product?"] -- list --> pickList["One of your links"]
keywordAi["The AI's keyword"] -- next --> finder["Find on Shopee"]
keywordList["One of your keywords"] -- next --> finder["Find on Shopee"]
finder["Find on Shopee"] -- next --> found["Found a product?"]
finder["Find on Shopee"] -- error --> pause["Wait for the next post"]
found["Found a product?"] -- true --> productFound["The product"]
found["Found a product?"] -- false --> pause["Wait for the next post"]
productFound["The product"] -- next --> product["Product"]
pickList["One of your links"] -- next --> productList["The linked product"]
productList["The linked product"] -- next --> product["Product"]
noProduct["No product"] -- next --> product["Product"]
manual["Manual"] -- next --> signin["Sign in"]
signin["Sign in"] -- next --> postWait["Wait for a post slot"]
postWait["Wait for a post slot"] -- next --> source["Post from?"]
source["Post from?"] -- timeline --> timeline["Open timeline"]
source["Post from?"] -- fallback --> next["Next post"]
timeline["Open timeline"] -- next --> trend["Read posts"]
trend["Read posts"] -- next --> like["Like a post"]
like["Like a post"] -- next --> fromFeed["From the timeline"]
fromFeed["From the timeline"] -- next --> brief["What it posts from"]
next["Next post"] -- next --> fromSet["From the post set"]
next["Next post"] -- empty --> usedUp["Every post went out"]
fromSet["From the post set"] -- next --> brief["What it posts from"]
brief["What it posts from"] -- next --> ideaIf["The AI picks it?"]
ideaIf["The AI picks it?"] -- true --> idea["Pick a product"]
ideaIf["The AI picks it?"] -- false --> productSwitch["Which product?"]
idea["Pick a product"] -- next --> productSwitch["Which product?"]
idea["Pick a product"] -- invalid --> pause["Wait for the next post"]
product["Product"] -- next --> writeSwitch["Who writes it?"]
writeSwitch["Who writes it?"] -- timeline --> writeFeed["Write the post"]
writeSwitch["Who writes it?"] -- rewrite --> writeSet["Reword the post"]
writeSwitch["Who writes it?"] -- fallback --> linkIf["Link in the post?"]
writeFeed["Write the post"] -- next --> written["The AI's text"]
writeFeed["Write the post"] -- declined --> pause["Wait for the next post"]
writeFeed["Write the post"] -- invalid --> pause["Wait for the next post"]
writeSet["Reword the post"] -- next --> written["The AI's text"]
writeSet["Reword the post"] -- declined --> pause["Wait for the next post"]
writeSet["Reword the post"] -- invalid --> pause["Wait for the next post"]
written["The AI's text"] -- next --> guard["Check it"]
guard["Check it"] -- pass --> checked["The checked text"]
checked["The checked text"] -- next --> draft["The text"]
guard["Check it"] -- fail --> pause["Wait for the next post"]
linkIf["Link in the post?"] -- true --> asIsLink["The post with the link"]
linkIf["Link in the post?"] -- false --> asIs["The post as it is"]
asIsLink["The post with the link"] -- next --> draft["The text"]
asIs["The post as it is"] -- next --> draft["The text"]
draft["The text"] -- next --> mediaSwitch["Which media?"]
mediaSwitch["Which media?"] -- set --> mediaSet["The set's media"]
mediaSwitch["Which media?"] -- folder --> mediaNext["Next media"]
mediaSwitch["Which media?"] -- pick --> files["Files in the folder"]
mediaSwitch["Which media?"] -- fallback --> mediaNone["No media"]
mediaNext["Next media"] -- next --> mediaFolder["The folder's media"]
mediaNext["Next media"] -- empty --> mediaNone["No media"]
files["Files in the folder"] -- next --> mediaChoose["Pick the files"]
mediaChoose["Pick the files"] -- next --> mediaPick["The AI's files"]
mediaChoose["Pick the files"] -- none --> mediaNone["No media"]
mediaSet["The set's media"] -- next --> media["Media"]
mediaFolder["The folder's media"] -- next --> media["Media"]
mediaPick["The AI's files"] -- next --> media["Media"]
mediaNone["No media"] -- next --> media["Media"]
media["Media"] -- next --> compose["The post"]
compose["The post"] -- next --> approval["Approve post"]
approval["Approve post"] -- approve --> post["Post"]
approval["Approve post"] -- reject --> pause["Wait for the next post"]
post["Post"] -- duplicate --> pause["Wait for the next post"]
post["Post"] -- limited --> postWait["Wait for a post slot"]
pause["Wait for the next post"] -- next --> postWait["Wait for a post slot"]
post["Post"] -- next --> commentIf["Link in a comment?"]
commentIf["Link in a comment?"] -- true --> comment["Comment the link"]
commentIf["Link in a comment?"] -- false --> pause["Wait for the next post"]
comment["Comment the link"] -- next --> pause["Wait for the next post"]
comment["Comment the link"] -- closed --> pause["Wait for the next post"]
Nodes
| Id | Node | Type | Key values |
|---|---|---|---|
manual | Manual | trigger/manual | |
signin | Sign in | x/signin | account: {{ option.account.x }}, on error ask a human |
postWait | Wait for a post slot | flow/wait | mode: limit, limit.key: x/post:{{ option.account.x }}, limit.mode: {{ option.pace.limit.mode }}, limit.window: {{ option.pace.limit.window }} |
source | Post from? | flow/switch | mode: rules, index: , isAll: false, fallback: dot, isIgnoreCase: false, isLoose: true |
timeline | Open timeline | x/timeline | source: {{ option.timeline.source }}, query: {{ option.timeline.query }}, latest: true, on error ask a human |
trend | Read posts | x/trend | account: {{ option.account.x }}, max: {{ option.timeline.max }}, scroll: 15, language: {{ option.timeline.language }}, recent: 10 |
like | Like a post | x/like | enabled: {{ option.like.timeline }}, target: timeline, chance: 30, max: 1 |
fromFeed | From the timeline | data/set | mode: field, include: none, isDot: true, isLenient: true, isFile: false |
next | Next post | data/post | source: set, set: {{ option.set.id }}, order: {{ option.set.order }}, repeat: {{ option.set.repeat }} |
usedUp | Every post went out | flow/stop | end: succeeded, message: , type: |
fromSet | From the post set | data/set | mode: field, include: none, isDot: true, isLenient: true, |
FAQ
How do I post without Shopee?
Leave Shopee affiliate off (the default). It posts about what people post now, or your post set, and asks for no Shopee account.
Can it post my own ready-made posts?
Yes. Put them in a and set Post from to dataset (as they are) or rewrite (reworded by the AI). With dataset and no Shopee search, no AI key is needed.
Where does the Shopee link go?
Where Where the link goes says: in the post, or in a comment under it. Out of the post, the AI writes the post without any URL.
Does it post during a test run?
No. Post, Like and the link comment are effect nodes: a test run logs what they would do and returns a simulated result.