Automations
The simple builder, screen by screen: all six trigger types, every field on the form, priority order, testing on Instagram and the trash.
Sidebar: Automate → Automations. A trigger, a reply, a DM. Describe it or fill in the fields — no canvas required. The visual flow builder still exists for people who want it, but nothing here requires it.
Needs the manage_automations capability — owner, admin and agent.
The six trigger types
| Trigger | Fires when | Card name |
|---|---|---|
comment_keyword | Someone comments a keyword on your post, reel, or Instagram ad | Comment → DM |
dm_keyword | Someone DMs a keyword | Keyword → DM |
story_reply | Someone replies to your story | Story reply → DM |
story_mention | Someone mentions you in their story | Story mention → DM |
ice_breaker | Someone opens your DMs (the welcome prompts) | Conversation starters |
new_follower | Someone new follows you | Welcome new followers |
Story reply and story mention are different events. One is them answering your story; the other is them tagging you in theirs. They never fire each other's automations.
New follower is not yet routable. The trigger exists and the form works, but Instagram has not granted follow events, so the card and the form both say so honestly rather than letting you build something that will never fire.
*Story mention is routable today* — it needs no beta and no keyword. That gate belongs to new follower and to nothing else. If you ever saw a "Waiting on Instagram access" notice on the story-mention form, that was the new-follower notice showing on the wrong trigger: story mentions have worked the whole time. If you shelved one because of it, set it live — it will run.

First run
A workspace that has built nothing sees "Let's build your first automation" and six curated cards, one per trigger type — not the empty browse chrome. Click a card and the builder opens pre-set to that trigger.
Once you have built anything at all (including something you've since deleted), you get the full page instead.

The list
Rows show: Automation name, Trigger, Keywords, Runs, and actions.
Above the list:
- A search box (it searches automations and flows together).
- Channel filter pills.
- A sort dropdown: Priority (default) — the real execution order — plus Most triggered, Most clicks per run, Most leads, Newest. The non-priority sorts are view-only; reordering only works in the Priority view.
Each row shows a Live or Draft badge, its funnel line (triggered → clicked with clicks per run when it has a link → emails when it captures them), and for live rows when it last fired ("fired 2h ago" / "never fired" — a live automation that hasn't fired in over a week gets a nudge to check its keywords or post binding).
Row actions are inline: Edit, Open as flow (rebuilds it as an editable visual flow; your automation keeps running), Pause / Set live, and Delete. The ↑ / ↓ reorder arrows appear only in the Priority sort and only when two automations share a keyword — the one situation where order changes an outcome. Higher wins.
Delete stops it immediately and is restorable for 30 days from the Recently deleted section at the bottom of the page. That section also holds deleted flows and sequences, so there is one place to look for "I deleted the wrong thing".

Build an automation
Click New automation, or a first-run card. The builder is a numbered form with a live phone preview on the right showing exactly what your DM will look like.
Describe it (optional AI draft)
At the top: "Say what should happen, in your own words. You review everything before it goes live." Type a sentence and click Draft it for me. It fills the fields below; you edit them as normal.
Step 1 — Choose the trigger
Pick from the six above.
When editing an existing automation the trigger is locked — create a new automation to change the trigger.
Keywords (comment and DM triggers)
- Enter up to 5 keywords, comma-separated, e.g.
GUIDE, LINK. Matching ignores case. - Choose the match mode: contains the keyword or is exactly the keyword.
- Optionally add but doesn't contain words, e.g.
shipping, refund. If the message contains one of these, the automation stays quiet even when your keyword matched. Up to 5, case ignored.
Starter chips — Price, Link, Shop — fill the keyword box with one tap. A chip already added shows as selected; past the 5-keyword cap it is disabled.
The exclusion list only ever narrows a keyword match. If you fill it in without a keyword, the form tells you so: "These only filter a keyword — add the keyword this should fire on."
Recognize intention (DM keyword only)
Instead of keywords, a DM automation can compare each message with a short description you write, and send your DM when a message is worded close to it.
- Switch the toggle from Detect keywords to Recognize intention.
- Describe what the customer is trying to do. Writing it the way a customer would ask works best — e.g.
how much is the course?. Up to 500 characters. - Before you rely on it, test it: from a second Instagram account, DM a few real example messages — written the way your customers actually write — and check which ones get your reply.
If you see Example messages and Test messages: your workspace has the experimental V2 builder. Review 4–10 customer messages (or use Suggest examples), then enter a distinct Should match and Should not match message and click Check both. Both must pass before Set live. Try a message checks the current routing without sending a DM. V2 compares a message with your reviewed examples; close competing intents can make it stay quiet. Still test real DMs before relying on it. Older automations keep their matcher until you explicitly choose Review and upgrade matcher. The experimental rollout is not a guarantee of matching accuracy.
What to expect from the older matcher. It catches messages worded close to your description, and even a close rewording can miss. In our own test, how much does the course cost? matched how much is the course?, but whats the price of the course and how much is it? did not. Slang, shorthand and very short questions usually won't match. When nothing matches, no automated reply is sent — unless you have turned on the AI agent, which answers instead. For a question that must always get a reply, use keywords: a keyword anywhere in the message still matches.
It runs after your keyword automations and before the AI agent — a DM a keyword already caught never reaches it. The reply is always the DM you wrote: intent matching decides whether to send it, never what it says.
Only the DM trigger offers this, because it is the only path with an AI-agent fallback for intent to sit ahead of.
Listen on (comment triggers)
Choose which posts this listens on:
| Option | Behaviour |
|---|---|
| Specific posts or reels (default for new automations) | Pick which posts. A post picker with thumbnails opens. |
| All posts & reels | Every comment on anything you post. |
| Your next post or reel | Arms now, binds to the first post that gets a matching comment. |
Listen on (story reply)
Story reply automations currently listen on every story you post — there is no per-story choice right now. Instagram stopped returning the list of your active stories to apps connected the way ours is, so we can't show you stories to pick from, and we'd rather hide the option than show one that can never find anything.
If you built a story automation earlier that is set to specific stories, it can't fire — open it and press Listen on every story to switch it over.
There is no "next story" option either: a story dies in 24 hours, so arming against one would target something that expires before you notice.
For the story reply trigger you can leave the keywords blank to reply to every story reply, or add up to 5 to fire only on those words. The story mention trigger has no keyword filter at all — a mention arrives with no message text to match on.
Where can the comment happen? (comment triggers only)
The whole job for ads — from the offer to the first DM, boosting vs Ads Manager, testing it, and what Facebook placements do — is walked through in instagram-ad-comments.md. The control itself:
A comment automation listens on one of three surfaces:
- Organic posts and reels — comments on what you post yourself. The default, and what every automation created before September 2026 uses.
- Instagram ads — comments left directly on a supported ad: an ad built in Ads Manager (Create ad) or the ad version of a post you boosted.
- Both — organic comments and ad comments run this automation.
Boosted a post? Read this sentence. Instagram keeps the comments on the boosted (ad) version of a post separate from the comments on the post itself. An automation set to Organic answers only the post's own comments — it will not answer comments left on the boosted version. If you want one automation to cover both, choose Both.
Rules that apply to ad comments:
- Instagram allows one private reply per comment, ever, and only within 7 days of the comment. HyperDM sends it once and can only continue the conversation after the person replies — so make that first DM worth answering.
- Top-level comments only is always on for ad comments: replies inside someone else's comment thread on an ad don't trigger anything.
- If the person's comment is answered by an ad automation, HyperDM's AI comment replies stay out of it. AI comment replies never post under an ad on their own.
- Ad comments go through a small queue: if Instagram is rate-limiting your account, the DM waits and retries for up to 7 days rather than being dropped.
- Comments on Facebook placements of an ad are not covered — only Instagram comments.
- For Instagram ads or Both, set the post scope to All posts & reels. An ad has its own media id that the post picker cannot see — a boost is a second copy of the post, and an ad built in Ads Manager was never a post at all — so Specific posts or reels covers only the post's own comments, never the ad's. Choosing which ads an automation answers is not available yet.
Story mention
Nothing to configure. Step 1 shows a short note instead of a keyword box: when someone @mentions you in their story, Instagram delivers it to your inbox and the automation sends your DM back. Every mention gets the same reply. Saving a story-mention automation with keywords is refused, because a keyword could never match one.
Step 2 — Reply publicly under the comment (comment triggers only)
- Write a public reply. This is what appears under their comment on the post.
- Click + Add a variation for up to 3 replies — HyperDM rotates them at random so they don't look copy-pasted.
One reply is a perfectly valid automation; the nudge toward three is advice, not a requirement.
Step 3 — Send this DM
- Write the DM, e.g.
Here's your free style guide — enjoy. - Insert merge tags with the variable picker: First name, Last name, Username, plus every custom field you've created in Contacts.
- Add up to 3 links, one per line. Each link is tracked, so you can see who taps.
When to send the link (comment triggers)
| Option | Behaviour |
|---|---|
| After they reply (default for new comment automations) | Send your message with a quick prompt, then the link once they reply. Their reply opens Instagram's DM window, so the link actually lands. |
| In the first message | Put the link straight into the DM. |
The default is not arbitrary: Instagram will not reliably deliver an unsolicited link to someone who has never messaged you, so the tap-then-link path is the one that actually works.
Optional extras
Depending on the trigger, you may also see:
- React to their story reply — sends a ❤️ on their story reply before the DM. Best effort; it activates once Instagram reactions are enabled for the account.
- Only for followers — shown as Coming soon and cannot be switched on yet: Instagram doesn't tell apps whether a fresh commenter follows you. To gate on following today, use the flow builder's Follow gate node mid-conversation.
- Capture their email — asks for an email and saves it onto the contact. You write the ask and the Confirmation after they send it (e.g.
Got it — you're on the list.). - Nudge if they don't tap — sends one more DM later if they never open the link. Set Wait N hours. Needs a DM link above.
Conversation starters (ice breaker)
Tappable questions shown when someone opens your DMs — prices, hours, delivery. Up to 4 prompts of 80 characters each — Instagram's own limit, shared across ALL your ice-breaker automations (a second automation's prompts count against the same 4). Tapping any prompt in an automation sends that automation's one DM — to give different questions different answers, build separate ice-breaker automations, one prompt each. Tap counts are tracked per prompt and survive editing.
Instagram is told about your prompts whenever you save, set live, pause, delete or restore an ice breaker — and it can refuse. When it does, the app says so on that action instead of showing you a green badge over prompts that never arrived: which prompts it took, and which it didn't. If it refuses to remove the prompts (on pause or delete), you'll be told they may still show in your DM opener — tapping one then does nothing, so re-save the ice breaker to push the set again.
The Free plan shows 3 Instagram menu items; paid plans show 20. See settings.md.
Save
Two buttons at the bottom:
- Save draft — saved, not running.
- Set live — saved and running.
Editing an existing automation shows Save changes instead.
Test it on Instagram
When Instagram is connected, every trigger that a second account can actually fire shows a Test on Instagram button, and the instruction is specific to that trigger:
| Trigger | What to do from a different Instagram account |
|---|---|
| Comment → DM | Comment the keyword on one of the posts it listens on |
| Keyword → DM | DM the keyword to your connected account |
| Story reply | Reply to one of your active stories (any reply, if no keyword) |
| Story mention | Post a story and tag your account in it — no keyword, every mention fires |
| Conversation starters | Open the thread from an account that has never messaged you |
| Welcome new followers | Nothing yet — Instagram doesn’t grant HyperDM follow events |
The reply lands in your Inbox in real time. There is no simulated send: HyperDM only replies to a real event that reaches Instagram’s webhook.
Two things worth knowing about the trickier two. A story mention needs the story to tag your exact handle (the @ sticker, or an @mention in the text) — Instagram delivers it to you as a DM. Conversation starters only appear the first time a thread is opened, so an account you have already talked to will not see them.
Three Instagram platform limits worth knowing while testing comment triggers:
- Only comments made after the automation went live are processed.
- Instagram allows a private reply to a comment only within 7 days of the comment.
- On collab posts, comment events go to the original author's account — a collaborator's automation won't see them.
- A DM to someone who has never messaged you can land in their Requests folder.
Priority: which automation wins
When two live automations could match the same message, first match wins in priority order, top to bottom in the list. The reorder arrows appear only when there is an actual keyword overlap.
Above all of your automations sit two rules you cannot outrank:
- Opt-out (
STOP) — always wins. - Opt-in (
START).
Below them all sits the AI agent, as the open-ended fallback. See concepts.md.
Rules and Sequences
Two sub-items in the sidebar under Automations link to sections of this same page:
- Rules → rules.md — event automations (tag added, field changed, date reached).
- Sequences → sequences.md — drip campaigns.
On a brand-new workspace those sections aren't rendered yet, so the links land you at the top of Automations instead. That is expected.
Common questions
My automation didn't fire. Check, in order: is it Live; does the message actually contain the keyword (case is ignored, but the exclusion list wins); for a Recognize intention automation, is the message worded close to your description (see What to expect above); is a higher-priority automation catching it first; for comment triggers, is the automation bound to that post; for story replies, have you picked the story. Full list in troubleshooting.md.
I saved, but my change isn't there. If you switched workspaces while the form was open, the save is refused and you are told to reload — nothing is written to either workspace. This is deliberate: the page you were looking at belonged to the workspace you left, so saving would have aimed your edit at the wrong account. Reload the automation in the workspace you want and make the change again.
The same applies to Set live, Pause, Delete, Restore, reordering and Open as flow — and to flows and sequences, which share the same Recently deleted list. If something was deleted in another tab while you had it open, you are told it is gone rather than shown a success: a save, a Set live or a Restore never reports green over a change that did not land.
Can I change the trigger on an existing automation? No — it is locked on edit. Create a new one.
What's the difference between this and the flow builder? This is a form for the common shape: trigger → public reply → DM → optional email ask. The flow builder is a canvas for anything with branches, waits, conditions or an AI step. Use Open as flow on any automation to convert it — your automation keeps running.
I deleted something by mistake. Recently deleted at the bottom of the Automations page, for 30 days.
Does the number of automations count against my plan? Automations don't, but flows do: Free is capped at 5 flows; every paid plan is unlimited.
Does Comment → DM work on my ads? Yes — on the boosted version of a post and on ads built in Ads Manager, as long as the ad runs as your connected Instagram account. Set Where can the comment happen? to Instagram ads or Both, and Listen on to All posts & reels. Comments on the Facebook placements of an ad are not covered. Step by step: instagram-ad-comments.md.
Link clicks, drafts and the follow trigger
Link clicks are events, including repeat taps. Clicks per run can exceed one and are not a unique-person conversion rate. Follow-to-DM can be saved as a draft while platform access is unavailable, but cannot be set live. The creator onboarding path checks a recorded send after the workflow’s latest edit.
More in Instagram automations
- Set up comment-to-DMReply to a keyword in your comments with a public reply and a DM that carries the link, step by step in the builder, then test it from a second account.Read
- Set up keyword triggersAnswer a DM that contains a keyword with the right reply and link, straight from the builder, with the matching rules and the priority order explained.Read
- Set up intent recognitionSend a saved DM when a message is worded close to a description you write, instead of a keyword, and test it from a second account before you rely on it.Read
Try HyperDM for free
50 free conversations a month, no card. Connect Instagram and follow the guide you just read.