Skip to main content

Triggers: The Complete Reference

Every trigger that can start an Inrō scenario: DMs, comments, mentions, contact events, referral links, webhooks, the widget, and integrations.

A trigger is the starting point of every scenario. It answers one question: when should this automation run? You can add several triggers to a single scenario, and they're combined with OR logic, so the flow starts when any one of them matches.

The 'Add a trigger' menu open, showing the trigger categories Direct Messages, Comments, Mentions, Contacts, External, and Integrations.

Triggers are grouped into six categories: Direct Messages, Comments, Mentions, Contacts, External, and Integrations. This article covers every trigger in each one.

Matching options shared across triggers

Several triggers let you narrow down what counts as a match. These options work the same way wherever they appear.

Keywords. Add one or more words, phrases, hashtags, or emojis. Choose OR (any keyword is enough) or AND (all keywords must be present). Keyword matching ignores case and accents, so cafe matches café. Turn on strict match to fire only when the message is exactly the keyword with no extra text. One exception: the "You send a DM" trigger matches keywords case-sensitively.

Emoji-only. Some DM triggers can fire only when the message is nothing but emojis, like "🔥" or "❤️". A message such as "hi 🔥" won't match.

AI-detected intent. Instead of listing keywords, describe what the person means in plain language, such as "wants to book a consultation." Inrō's AI reads the message and decides whether it matches.

⚠️ AI-detected intent needs AI features enabled on your account, and it isn't always accurate. Use the Test intent detection field while you set it up, and be as specific as you can.

Direct message triggers

Someone sends you a DM

Fires when a contact sends you a direct message. This is the most general DM trigger and the backbone of keyword auto-replies.

Filter options: all messages, messages with keyword(s), emoji-only messages, or AI-detected intent.

Someone replies to your story

Fires when a contact replies to one of your Instagram stories (story replies arrive as DMs).

Filter options: any story, stories with a keyword in the caption, stories that contain a URL (with optional URL filters), replies that include a keyword, a single-emoji reply, AI-detected intent, or a specific story. The "contains a URL" option is handy for "DM the link from whatever story they replied to."

⚠️ For story caption and URL matching to work, create the story in the Instagram app. Stories published another way may not expose the caption data Inrō needs.

Someone replies to your ad

Fires when a contact messages you from a Meta click-to-message ad (a Facebook or Instagram ad whose button opens a DM).

Two modes: incoming question (match keywords in the ad message) or specific ad ID (target one ad using its ID from Meta Ads Manager). For full ad funnels, see Running Instagram Ads with DM CTAs.

Someone clicks an ice breaker

Fires when a contact taps one of your Instagram ice breakers, the quick-reply prompts shown the first time someone opens a chat with you. Pick which ice breaker this trigger watches. Your ice-breaker prompts are managed in your Instagram connection settings.

Someone clicks a referral link

Fires when a contact opens an ig.me referral link and then messages you. Inrō generates a link in the format ig.me/m/your-username?ref=your_code, with Copy link and Get QR code buttons right in the trigger.

Type the ref code to match. You can use * as a wildcard, so campaign_* matches campaign_summer, campaign_winter, and so on. You can also attach an ice breaker to nudge people to message you.

⚠️ The link only fires the scenario once the contact actually sends a message, not at the moment they click. Referral link automations aren't supported on Instagram web.

You send a DM to someone

Fires on outgoing messages, not incoming ones. Useful for tagging contacts or starting a follow-up based on what you reply.

Filter by where the message was sent from: manually from Instagram, manually from the Inrō inbox, from the AI Agent, or from another automation. By default, messages sent by automations don't count, which prevents loops. Keyword matching here is case-sensitive.

Comment triggers

Someone comments on your post

Fires when a contact comments on one of your feed posts or reels. This is the engine behind comment-to-DM automations. Setup has two steps.

The comment trigger's two-step modal, showing post selection on the left and comment filtering on the right.

Step 1, choose which posts to watch: any post, the next post you publish, posts with a keyword in the caption, posts whose caption contains a URL, or specific posts you pick.

Step 2, choose which comments fire it: all comments, comments with a keyword, or AI-detected intent. Two extra options sit here too: include comment replies (off by default, so only top-level comments match) and exclude hateful and negative comments (on by default, AI-powered).

When you activate a scenario with a comment trigger, you'll see a one-time option to trigger on existing comments, which runs the flow on matching comments from the last 7 days that haven't already triggered it. If you skip it, you can find it again from the Insights panel.

For the rule that you can only DM a commenter once they've interacted, and how the wizard handles it, see Comment-to-DM: Turn Comments into Customers.

Someone comments on your Live

Fires when a contact comments during one of your Instagram Live streams. Great for live shopping and Q&A. Filter options: any comment or comments with a keyword.

⚠️ This is a Pro trigger.

Mention triggers

Someone mentions you in a post

Fires when another account tags you in a feed post caption. Filter options: any post that mentions you, or a keyword in the caption or visual. Visual keywords are read from the image or video using text recognition, so the keyword must be clearly legible.

Someone mentions you in a story

Fires when another account mentions or tags you in their story (these arrive as DMs). Filter options: any story that mentions you, or a visible keyword in the story, read from the story visual using text recognition.

Someone mentions you in a comment

Fires when your account is @-mentioned inside someone else's comment. This trigger is currently hidden from the trigger menu, so you can't add it from the standard builder today. It still works through the API, the MCP server, and AI generation if you need it.

Contact triggers

Contact is added to a folder

Fires when a contact is added to a specific folder, whether by you, a bulk action, the AI Agent, or another scenario. Pick the folder to watch. This is the main way to chain flows: finishing one scenario can drop the contact into a folder that starts the next.

⚠️ Only additions fire this trigger; removing a contact from a folder does nothing. Adding a contact to a folder also fires the "Contact is updated" trigger, so watch for double-firing if you use both.

Contact is created

Fires when a brand-new contact appears in your CRM, for example when someone messages you for the first time or is imported. Use it for a universal new-lead greeting or tagging.

Filter by status: all contacts, or active contacts only (the default). Only active contacts can be DM'd.

Contact is updated

Fires whenever a contact's details, folders, or custom properties change. Custom-property changes count too, so detecting an email or setting a property can kick off the next step.

Filter by status: all contacts or active contacts only (the default).

⚠️ Many things update a contact, so this trigger can fire often. Lean on excluded folders, the rate limit, and the run-once setting to keep it under control.

On a recurring schedule

Unlike every other trigger, this one is time-based, not event-based. It runs the scenario on a daily, weekly, or monthly schedule for every contact matching the filters you set. Use it for weekly check-ins or monthly re-engagement.

⚠️ This is a Pro trigger. For the full setup, see Trigger scenarios on a recurring schedule.

External triggers

Someone scans a QR code

Fires when a contact scans one of your Inrō QR codes and then messages you. It's the same mechanism as the referral link trigger, framed for offline use: print the code on flyers, packaging, or slides. Use the Get QR code button to generate one.

⚠️ This is a Pro trigger. Like the referral link, it fires when the contact messages you after scanning, not at the moment of the scan.

A webhook is called

Fires when an external system sends an HTTP POST to your scenario's unique webhook URL. A webhook is a way for another app (like Make, Zapier, or your own backend) to send data into Inrō automatically. Each scenario gets its own URL, shown after you save.

⚠️ This is a Pro trigger. The request must identify an existing contact (by contact ID, email, or username), or it's rejected. For the full setup, see Webhook Triggers: Fire Scenarios from External Apps.

HTML Widget code is sent

Fires from a chat widget embedded on your website. When a visitor clicks the button, they're sent to your Instagram DMs with a code pre-filled; sending that code fires the scenario, and any data you attach becomes available as variables. Configure the header text, button text, and styling right in the trigger.

⚠️ This is a Pro trigger. For embedding and styling, see The HTML Widget: Bring Website Visitors to Your Instagram.

A custom event is triggered

This trigger appears in the builder and lets you pick a custom event, but it has no live firing path in the product today.

⚠️ The custom event trigger is not operational. A scenario that relies only on it won't run. Use the webhook trigger instead to start a scenario from an external event.

Integration triggers

These triggers are added by third-party integrations. They appear in the Integrations category, are Pro features, and stay disabled until the matching integration is connected.

Trigger variables

When a trigger fires, it carries data you can drop into your messages, like {{trigger.message}}, {{trigger.comment}}, or {{trigger.ref}}. Mentions add {{mention.text}} and related fields, webhooks expose {{webhook.*}}, and the widget exposes {{widget.*}}. For the full list, see Variables & Personalisation Guide.

🐾 Netsuke's Tips

  • Stack triggers on one scenario when they all lead to the same flow. A comment trigger, a DM keyword trigger, and a referral link trigger can share a single sequence.

  • Use Exclude specific folders to keep automations off your existing customers. Create a "Customer" folder and exclude it from your lead-generation scenarios.

  • Test keyword triggers against how people really write, including typos and one-word replies, before you go live.

  • Keep AI-detected intents narrow. "Asks about cancellation policy" is predictable; "asks a question" matches almost everything.

What's next?

With your trigger set, decide what happens after it fires. Start with Message Actions: Text, Media, Files & Buttons, or go straight to Conversion Actions: Links, Payments, Bookings & Surveys if your goal is a click, a payment, or a booking.

Did this answer your question?