Template id: threads/navigator · Requires: shopee/finder (only runs with Shopee on) · Trigger: Manual · Flow timeout: none (runs until you stop it)
Threads Auto Reply: reads For you, Following, a search or profiles without end, picks the posts worth answering and replies: a plain reply (your brand, if you set one) or a Shopee product that fits, with your affiliate link. Persona, likes and the pace 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 Threads.
- A Dataset › AI key.
- A Dataset › Account with platform SHOPEE, only with Shopee
moodorkeyword(thelistsource uses your own links). - Optional: your brand in Settings › Brand.
- To run it with other accounts or on a schedule, publish it and create a campaign.
What shows when
The campaign form shows a section, a group and an option only when your earlier choices need it:
| You choose | It shows | It hides |
|---|---|---|
| Read from a search, a List, a group or profiles | what to read | — |
Promote off | which posts to reply to, how to write the reply | every Shopee option and the Shopee account |
Promote mood / keyword | the Shopee account (keyword: your keywords), which posts fit a product, how to promote, where the link goes | the plain reply's options |
Promote list | your product links, which posts fit, how to promote | the Shopee account, the plain reply's options |
Brand in this campaign none | Persona | every other brand option |
Brand in this campaign official | the link and focus (replies speak as your brand) | Persona |
Brand in this campaign mention | when to mention it, at most, the link, focus, disclosure, Persona | — |
When nobody answers approve / reject | how long it waits for you | — |
Options
Set these in Settings › Options (or on each ), shown on the campaign form by section (its side nav) and group (a card). An option shows only while its section's, group's and own Shown when hold; a hidden one runs with its default. Every value may be a template, e.g. {{ random:20,40 }} (switches and account pickers stay fixed):
| Section › Group | Key | Kind | Default | What it is | Shown when |
|---|---|---|---|---|---|
| Accounts › Accounts | account.threads | account (THREADS) | — | Threads account: Replies as this account, in the campaign's browser. | |
| Accounts › Accounts | account.ai | AI key | — | AI key: Writes, picks and checks. | |
| Collect › Source | timeline.source | choice: home, following, search, profile | home | Read from | |
| Collect › Source | timeline.query | list | — | Searches, lists, groups or profiles: One per row: a search, a List or group link, or @someone. | timeline.source = search / profile |
| Collect › Source | timeline.language | text | — | Post language: e.g. id, en (empty: any). | |
| Collect › Source | timeline.max | number | 20 | Posts per round: How many it reads each time. | |
| Collect › Filter | filter.like | range | {"min": 0, "max": 0} | Likes | |
| Collect › Filter | filter.reply | range | {"min": 0, "max": 5} | Replies | |
| Collect › Filter | filter.author | choice: never, day, allow | day | The same person again | |
| Collect › Filter | filter.length.max | number (advanced) | 200 | Longest post (characters, 0: any) | |
| Collect › Filter | filter.skip.verified | boolean (advanced) | true | Skip verified accounts | |
| Collect › Filter | filter.skip.market | boolean (advanced) | true | Skip sellers' posts | |
| Shopee › Product | shopee.product | choice: off, mood, keyword, list | off | Promote (off: A plain reply, no product. · mood: A product that fits, searched on Shopee. · keyword: Searched on Shopee. · list: A link you give.) |
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 --> loop["Each post"]
found["Found a product?"] -- true --> productFound["The product"]
found["Found a product?"] -- false --> loop["Each 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"]
itemIf["Shopee?"] -- false --> noProduct["No product"]
signin["Sign in"] -- next --> timeline["Open timeline"]
timeline["Open timeline"] -- next --> collect["Collect posts"]
collect["Collect posts"] -- next --> likeFeed["Like a post on the timeline"]
collect["Collect posts"] -- empty --> idle["Nothing new: rest"]
idle["Nothing new: rest"] -- next --> collect["Collect posts"]
likeFeed["Like a post on the timeline"] -- next --> modeIf["Shopee?"]
modeIf["Shopee?"] -- false --> critComment["Plain replies"]
modeIf["Shopee?"] -- true --> critShopee["Shopee replies"]
critComment["Plain replies"] -- next --> crit["How it picks and writes"]
critShopee["Shopee replies"] -- next --> crit["How it picks and writes"]
crit["How it picks and writes"] -- next --> choose["Pick posts"]
choose["Pick posts"] -- next --> loop["Each post"]
choose["Pick posts"] -- none --> roundRest["Rest before the next round"]
loop["Each post"] -- item --> itemIf["Shopee?"]
loop["Each post"] -- done --> roundRest["Rest before the next round"]
roundRest["Rest before the next round"] -- next --> collect["Collect posts"]
itemIf["Shopee?"] -- true --> productSwitch["Which product?"]
write["Write the reply"] -- next --> guard["Check the reply"]
write["Write the reply"] -- declined --> loop["Each post"]
guard["Check the reply"] -- pass --> approval["Approve reply"]
guard["Check the reply"] -- fail --> loop["Each post"]
approval["Approve reply"] -- reject --> loop["Each post"]
approval["Approve reply"] -- approve --> open["Open post in a new tab"]
reply["Reply"] -- duplicate --> skip["Close tab, next post"]
reply["Reply"] -- limited --> closeLimit["Close tab, rate limited"]
reply["Reply"] -- closed --> close["Close tab"]
actWait["Reply limit: wait for the next slot"] -- next --> collect["Collect posts"]
likePost["Like the post"] -- next --> likeComments["Like a few replies"]
likeComments["Like a few replies"] -- next --> close["Close tab"]
skip["Close tab, next post"] -- next --> loop["Each post"]
closeLimit["Close tab, rate limited"] -- next --> actWait["Reply limit: wait for the next slot"]
close["Close tab"] -- next --> wait["Pause after the reply"]
wait["Pause after the reply"] -- next --> rest["Short rest every 4–10 replies"]
rest["Short rest every 4–10 replies"] -- next --> break["Long rest every 20–30 replies"]
open["Open post in a new tab"] -- next --> reply["Reply"]
reply["Reply"] -- next --> threadIf["Link in a second reply?"]
threadIf["Link in a second reply?"] -- true --> threadReply["Reply with the link"]
threadIf["Link in a second reply?"] -- false --> likePost["Like the post"]
threadReply["Reply with the link"] -- next --> likePost["Like the post"]
threadReply["Reply with the link"] -- closed --> likePost["Like the post"]
break["Long rest every 20–30 replies"] -- next --> loop["Each post"]
product["Product"] -- next --> brandGate["Brand this time?"]
brandGate["Brand this time?"] -- next --> brand["Brand"]
brandGate["Brand this time?"] -- limited --> brandOff["Not this time"]
brandOff["Not this time"] -- next --> brand["Brand"]
brand["Brand"] -- next --> write["Write the reply"]
manual["Manual"] -- next --> brandCheck["Brand set?"]
brandCheck["Brand set?"] -- true --> brandStop["No brand"]
brandCheck["Brand set?"] -- false --> signin["Sign in"]
Nodes
| Id | Node | Type | Key values |
|---|---|---|---|
manual | Manual | trigger/manual | |
signin | Sign in | threads/signin | account: {{ option.account.threads }}, on error ask a human |
timeline | Open timeline | threads/timeline | source: {{ option.timeline.source }}, query: {{ option.timeline.query }}, latest: true, on error ask a human |
collect | Collect posts | threads/collect | queue: {{ nodes.timeline.output.queue }}, max: {{ option.timeline.max }}, scroll: 30, maxLength: 200, minLike, maxLike, minReply, maxReply (all from option.collect.*) |
likeFeed | Like a post on the timeline | threads/like | enabled: {{ option.like.timeline }}, target: timeline, chance: 20, max: 1 |
modeIf | Shopee? | flow/if | combine: and |
critComment | Plain replies | data/set | mode: field, include: none, isDot: true, isLenient: true, isFile: false |
critShopee | Shopee replies | data/set | mode: field, include: none, isDot: true, isLenient: true, isFile: false |
crit | How it picks and writes | data/set | mode: field, include: none, isDot: true, isLenient: true, isFile: false |
choose | Pick posts | ai/choose | ai: {{ option.account.ai }}, list: {{ nodes.collect.output.items }}, pick: {{ option.pace.pick }}, extra: {{ nodes.crit.output.extra }} |
loop | Each post | flow/loop | list: {{ nodes.choose.output.picks }}, max: {{ option.pace.pick }} |
FAQ
How do I reply with Shopee products?
Set Promote (Shopee section) to mood (the AI picks one per post, needs a Shopee account), keyword (the best value for one of your keywords) or list (one of your own links, no Shopee account). off replies plainly.
Can I reply with my brand?
Yes. Fill in Settings › Brand once (), then pick Brand in this campaign: official (the account is your brand and speaks as it) or mention (a persona brings it up where it fits or every time, at most as often as At most allows, with your disclosure). none leaves the brand out. A campaign that uses the brand while the workspace has none stops with “set it in Settings › Brand”.
Where do I change which posts it picks?
In Which posts to reply to (plain replies) or Which posts fit a product (Shopee).
Does it reply during a test run?
No. Reply, Like are effect nodes: a test run logs what they would do and returns a simulated result.