Skip to main content

Instagram DM Autoresponder

Turn your Instagram inbox into a 24/7 assistant. In this tutorial you'll build a flow that fires when someone DMs your Instagram Business account, has an Agent craft a reply, and sends it back to the sender's Instagram thread with the Instagram tool.

What you'll build: a bot that answers Instagram direct messages automatically — and steps aside gracefully when a human operator jumps in.

Nodes you'll use:

Concepts to know:

Connect the account first

This tutorial assumes your Instagram Business account is already connected to Flowera. Connecting the account (Business Login) is a one-time setup — see the Instagram trigger page for the prerequisites. Here we focus on building the flow.

Where you connect it: open Credentials in the sidebar, switch to the Connected Accounts tab, and click Add Platform. Instagram Business and WhatsApp Business are both in that list, alongside Zoho CRM.

The Add Platform picker on Credentials → Connected Accounts, listing Instagram Business, WhatsApp Business and Zoho CRM

Step 1 — Add the Instagram trigger

Create a new AgentFlow and open the Start node. Instead of Chat Input, add an Instagram Business webhook trigger.

Configure it:

  1. Webhook Name — give it a clear name like instagram-dm. This name is how you reference the trigger's data in variables ({{$webhook.instagram-dm.*}}), so pick it now and keep it consistent.
  2. Instagram Account — pick your connected account.
  3. Instagram Events — turn on DM 💬 (you can also listen for Comments, Mentions, and Story Replies, but for an autoresponder you want DMs).
Workspace webhook mode

Meta channels like Instagram require the Workspace webhook mode (not Dedicated). The Instagram trigger page explains why and walks through it.

Step 2 — Understand what the trigger gives you

When a DM arrives, the flow starts with the message text available as {{$question}}, plus a set of Instagram-specific payload values. These live under the webhook's name — since we named ours instagram-dm, you reference them as {{$webhook.instagram-dm.<field>}}:

  • {{$webhook.instagram-dm.senderUsername}} — who messaged you
  • {{$webhook.instagram-dm.eventType}} — the kind of event (a DM here)
  • {{$webhook.instagram-dm.senderId}}, .recipientId, .timestamp

You'll use these to personalize the reply. (They are not under {{$flow.state.*}} — webhook payload fields live under {{$webhook.<name>.*}}; referencing them as flow state resolves to an empty string. The full payload list is on the Instagram trigger and Variables pages.)

Step 3 — Add the Agent

Add an Agent node and connect the Start node to it. Give it a System message tuned for social DMs — short, on-brand, emoji-friendly:

You are the Instagram assistant for Acme. Reply to DMs in a warm, casual, concise tone (1–3 sentences). The sender's handle is {{$webhook.instagram-dm.senderUsername}}. Answer their question or point them to acme.com/shop. If they want to buy or need a human, tell them a teammate will follow up shortly.

Select a model as usual (see Models).

Step 4 — Send the reply with the Instagram tool

Writing the reply and delivering it are two different things. The Agent produced text; something still has to hand that text to Instagram. That something is the Instagram tool.

Add a Tool node, connect the Agent to it, and configure it:

  1. Tool — pick Instagram.
  2. Instagram Account — your connected account. If the flow has exactly one Instagram trigger, Flowera pre-selects the matching account.
  3. OperationsSend Direct Message.
  4. Tool Input Arguments — add one row:
    • Input Argument Name: messageDM
    • Input Argument Value: {{ Agent }} — type {{ and pick the Agent from the list.

The Tool node with the Instagram tool selected, Send Direct Message enabled and messageDM set to the Agent&#39;s output

You don't need to fill in recipientId. The tool takes it from the trigger's payload — the person who DM'd you becomes the recipient of the reply.

Direct Reply does not reach Instagram

Direct Reply writes into the Flowera conversation (the chat widget stream and the View Messages transcript). It never calls Instagram. On a Meta channel, the only thing that puts a message in front of the customer is a send tool — the Instagram tool in a Tool node, or the same tool attached to an Agent. A flow that ends in Direct Reply looks like it replied, and the customer receives nothing.

The finished flow is just three nodes:

The Instagram autoresponder flow: Start, Agent and a Tool node connected on the canvas

Keep the transcript readable

The Tool node's output is the send receipt (a message id), which isn't interesting to an operator reading the thread. Turn Show Output in Chat off on the Tool node under Additional Parameters, and leave it on for the Agent so the transcript shows what the bot actually said. See Show output in chat.

Step 5 — Save and test

Save the flow. Then, from a different Instagram account, send a DM to your business account and watch the reply come back automatically.

You can review every conversation under View Messages.

Step 6 — Let humans take over

Sometimes a teammate needs to step in. When an operator replies to a thread directly from Instagram, Flowera automatically switches that conversation to manual mode so the bot stops auto-replying and doesn't talk over your team. When the operator is done, the conversation can return to the bot.

You can also branch on this inside the flow using {{$flow.manual.is_manual_mode}} — for example, skip the Agent entirely when a human is handling the thread. See Manual mode for the details.

tip

Add a Filter or Condition near the top of the flow to stop auto-replies while {{$flow.manual.is_manual_mode}} is true — a clean way to keep the bot out of a live human conversation.

What you learned

  • An Instagram trigger on the Start node fires your flow on new DMs.
  • The message arrives as {{$question}}, alongside Instagram payload values like {{$webhook.instagram-dm.senderUsername}}.
  • The Instagram tool in a Tool node is what actually delivers the DM: messageDM set to the Agent's node label, {{ Agent }}. Direct Reply would only write to the Flowera transcript.
  • Flowera flips to manual mode automatically when a human operator replies, so the bot yields.

Next steps