You put a keyword trigger, a comment trigger and an ad-link trigger on a single automation — but you do not want to greet people arriving through three different doors with the same sentence. Flow context conditions ask where the session started and split the flow by its origin. This article covers two rules: Started by and Post.
💡 Both rules are about the session, not the person: their values are written when the session starts and never change during it. If the same person arrives through another door tomorrow, the new session holds different values.
In this article you will find:
The Started by rule
Every value in the source list
The Post rule
Using the post picker
Using the two rules together
Limits and known issues
Common mistakes
The Started by rule
The Started by rule tells you which door opened the session.
Choose Started by as the rule kind.
Pick the operator: is or is not.
Pick the source from the list.
The list is filtered by the account's channel. On a WhatsApp-only account, the Comment, Story reply, Story mention and Post share sources are not listed, because those events never occur on WhatsApp.
The rule is the most practical way to reuse one flow across many campaigns: you build the body once and split only the greeting by source.
Every value in the source list
The list carries two kinds of value: trigger names and the panel's own start paths.
From triggers:
Keyword — The person wrote one of your keywords.
Any message — Any message from the person started the flow.
Default reply — No other automation matched, so the default reply stepped in.
Comment — The person wrote a comment on a post, a Reel or a live stream.
Story reply — The person replied to your story.
Story mention — The person mentioned your business in their own story.
Post share — The person shared a post or a Reel into the DM.
Link/ad — The conversation arrived from a link, a QR code or an ad.
Scheduled — A scheduled trigger started the flow without waiting for the person to write.
From the panel's own start paths:
Button — The person tapped a button in a message sent earlier.
From another flow — An automation started this flow with a Start flow step.
Global rule — A rule in Automations › Rules started the flow.
Sequence — A sequence step started the flow.
Panel test — The simulation on the Test tab ran it.
Manual start — The flow was started by hand from the panel.
There is a reason the last two are on the list: without them, a Started by rule you set up while testing would never match and you would have no way of knowing why.
⚠️ Note: On accounts with Instagram connected, the list contains one row with no visible name, corresponding to the mention source. If you want to branch on flows started by a mention, the safer route for now is to give that trigger its own automation.
The Post rule
The Post rule looks at the id of the post or Reel that started the flow. That is how you run one comment automation across dozens of posts and answer each one differently.
Choose Post as the rule kind.
Pick the operator: is, is not, is empty or is filled.
Choose the post on every operator except is empty and is filled.
The id is only filled in the comment and post share contexts. In a chat started by a keyword, in a story reply or in a session arriving from an ad link, the id is empty. That makes "Post · is filled" the shortest possible answer to "did this session come from a post?".
The rule is only meaningful on Instagram. On WhatsApp-only accounts it does not appear in the list; on an account with both channels, the id in WhatsApp conversations is always empty and the pre-publish check reports it as a warning.
Using the post picker
On accounts with Instagram connected you never have to type the id: the Choose post button lists your posts with their cover images.
Tap Choose post.
Find the post in the window that opens. The Search posts box searches captions; the Previous and Next buttons at the bottom move between pages.
Tap the post; the window closes and your choice appears in the rule with its cover.
To change it, tap Clear selection.
Two markers in the window deserve attention:
The Comments off badge — Comment automations never run on that post. The post is drawn faded.
The Deleted badge — The post no longer exists on Instagram; the id stays in the list only so you can recognise it.
The list is refreshed from Instagram and stored in the panel. If the refresh fails, a warning appears at the top of the window: the list could not be refreshed and the most recent copy is shown. The Refresh button tries to fetch it again.
On an account without Instagram connected, a plain text box replaces the picker and you type the id by hand (at most 60 characters).
Using the two rules together
A bookshop runs three separate campaigns in one automation:
The start step holds three triggers: a comment trigger, an ad-link trigger and a keyword trigger.
First condition: "Started by · is · Link/ad" → the ad-specific discount code goes out on the True branch.
Second condition: "Post · is filled" → the True branch moves on to the third condition, the False branch sends the general greeting.
Third condition: "Post · is · (the post for the new novel)" → the True branch promotes that book, the False branch asks "Which book would you like to ask about?".
One flow carries three campaigns; a new post needs only one condition and one message step.
Limits and known issues
A Post id is at most 60 characters.
The Post rule is listed only on accounts with Instagram connected, and it is only filled in the comment and post-share contexts.
The Started by list is filtered by channel; a saved value is never removed even when it has no counterpart on the channel.
The post list is fetched from Meta and stored in the panel. If a post you just published is missing from the list, use Refresh; the delay comes from Meta's side.
A post marked Comments off never triggers a comment automation; setting up a condition does not change that.
Both rules are of a kind that cannot change within a round: inside a loop that never waits, the same branch is taken every time.
Common mistakes
Looking for the Post rule in a keyword flow. The id is empty there; the rule never matches.
Pasting the id by hand. If Instagram is connected there is a picker; a single wrong character in a hand-typed id makes the rule quietly wrong.
Confusing "All posts" with an empty id. Leaving the id empty in a trigger means "all posts"; an empty id in a condition means "this session did not come from a post".
Expecting the source rule to match in a panel test. In a test the source is Panel test; to test a live source you have to use the real trigger.
Choosing a post with comments off. Do not ignore the badge; the flow never starts on that post.