PageSourceSearch

https://portal.flowera.ai/docs/assets/js/9fce576b.ec160855.js

js flowera.ai collected 2026-10-05 02:41:14 UTC 12,043 bytes, 1 lines download raw bytes

1"use strict";(globalThis.webpackChunkflowera_docs=globalThis.webpackChunkflowera_docs||[]).push([[2654],{7779(e,s,n){n.r(s),n.d(s,{assets:()=>d,contentTitle:()=>i,default:()=>c,frontMatter:()=>a,metadata:()=>t,toc:()=>l});const t=JSON.parse('{"id":"agentflow/nodes/start-triggers/instagram-trigger","title":"Instagram Business Trigger","description":"The Instagram Business trigger starts your flow when something happens on a connected Instagram account \u2014 a direct message, a comment, a mention, or a story reply. Flowera handles all the Meta webhook plumbing for you, so you just pick the account and the events you care about.","source":"@site/docs/agentflow/nodes/start-triggers/instagram-trigger.md","sourceDirName":"agentflow/nodes/start-triggers","slug":"/agentflow/nodes/start-triggers/instagram-trigger","permalink":"/docs/agentflow/nodes/start-triggers/instagram-trigger","draft":false,"unlisted":false,"tags":[],"version":"current","sidebarPosition":5,"frontMatter":{"title":"Instagram Business Trigger","sidebar_label":"Instagram Business","sidebar_position":5},"sidebar":"agentflowSidebar","previous":{"title":"Custom Webhook","permalink":"/docs/agentflow/nodes/start-triggers/custom-webhook"},"next":{"title":"WhatsApp Business","permalink":"/docs/agentflow/nodes/start-triggers/whatsapp-trigger"}}');var r=n(5723),o=n(4315);const a={title:"Instagram Business Trigger",sidebar_label:"Instagram Business",sidebar_position:5},i="Instagram Business Trigger",d={},l=[{value:"Adding it to a flow",id:"adding-it-to-a-flow",level:2},{value:"Inputs",id:"inputs",level:2},{value:"Events",id:"events",level:2},{value:"Auto-switch to manual mode on operator reply",id:"auto-switch-to-manual-mode-on-operator-reply",level:2},{value:"Batch Messages",id:"batch-messages",level:2},{value:"Example",id:"example",level:2},{value:"Tips",id:"tips",level:2},{value:"Related",id:"related",level:2}];function h(e){const s={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,o.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(s.header,{children:(0,r.jsx)(s.h1,{id:"instagram-business-trigger",children:"Instagram Business Trigger"})}),"\n",(0,r.jsxs)(s.p,{children:["The ",(0,r.jsx)(s.strong,{children:"Instagram Business"})," trigger starts your flow when something happens on a connected Instagram account \u2014 a direct message, a comment, a mention, or a story reply. Flowera handles all the Meta webhook plumbing for you, so you just pick the account and the events you care about."]}),"\n",(0,r.jsxs)(s.p,{children:["This page covers setting up the trigger inside a flow. ",(0,r.jsx)(s.strong,{children:"Connecting"})," the Instagram account itself happens once in the Channels section."]}),"\n",(0,r.jsx)(s.admonition,{type:"note",children:(0,r.jsxs)(s.p,{children:["The Instagram account must already be connected to Flowera (via Business Login) before it appears in the account dropdown here. See the ",(0,r.jsx)(s.a,{href:"/docs/resources/credentials/",children:"Credentials"})," section for account connection."]})}),"\n",(0,r.jsx)(s.h2,{id:"adding-it-to-a-flow",children:"Adding it to a flow"}),"\n",(0,r.jsxs)(s.p,{children:["On the Start node, open ",(0,r.jsx)(s.strong,{children:"Webhooks"}),", add a webhook, and set ",(0,r.jsx)(s.strong,{children:"Webhook Type"})," to ",(0,r.jsx)(s.strong,{children:"Instagram Business"}),"."]}),"\n",(0,r.jsx)(s.h2,{id:"inputs",children:"Inputs"}),"\n",(0,r.jsxs)(s.table,{children:[(0,r.jsx)(s.thead,{children:(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.th,{children:"Parameter"}),(0,r.jsx)(s.th,{children:"Description"}),(0,r.jsx)(s.th,{children:"Required"})]})}),(0,r.jsxs)(s.tbody,{children:[(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"Webhook Name"}),(0,r.jsxs)(s.td,{children:["A unique name for this webhook (e.g. ",(0,r.jsx)(s.code,{children:"instagram-dm"}),"). Used in variables like ",(0,r.jsx)(s.code,{children:"{{$webhook.instagram-dm.senderId}}"}),"."]}),(0,r.jsx)(s.td,{children:"Yes"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"Instagram Account"}),(0,r.jsx)(s.td,{children:"The connected Instagram Business account this trigger listens to."}),(0,r.jsx)(s.td,{children:"Yes"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"Instagram Events"}),(0,r.jsx)(s.td,{children:"Which events start the flow \u2014 DMs, comments, mentions, and/or story replies (see below)."}),(0,r.jsx)(s.td,{children:"Yes"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"Auto-switch to manual mode on operator reply"}),(0,r.jsx)(s.td,{children:"When on, a human reply from the Instagram app pauses the AI for that chat. On by default."}),(0,r.jsx)(s.td,{children:"No"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"Batch Messages"}),(0,r.jsx)(s.td,{children:"When on, a customer's rapid-fire messages are combined into one response. On by default."}),(0,r.jsx)(s.td,{children:"No"})]})]})]}),"\n",(0,r.jsx)(s.h2,{id:"events",children:"Events"}),"\n",(0,r.jsxs)(s.p,{children:["Under ",(0,r.jsx)(s.strong,{children:"Instagram Events"})," you choose which activity triggers the flow. You can select more than one:"]}
1),"\n",(0,r.jsxs)(s.table,{children:[(0,r.jsx)(s.thead,{children:(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.th,{children:"Event"}),(0,r.jsx)(s.th,{children:"Fires when\u2026"})]})}),(0,r.jsxs)(s.tbody,{children:[(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)(s.strong,{children:"Direct Messages \ud83d\udcac"})}),(0,r.jsx)(s.td,{children:"A user sends a DM to your account."})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)(s.strong,{children:"Comments \ud83d\udcad"})}),(0,r.jsx)(s.td,{children:"Someone comments on one of your posts or reels."})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)(s.strong,{children:"Mentions @"})}),(0,r.jsx)(s.td,{children:"A user @mentions your account."})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)(s.strong,{children:"Story Replies \ud83d\udcd6"})}),(0,r.jsx)(s.td,{children:"Someone replies to one of your stories."})]})]})]}),"\n",(0,r.jsx)(s.admonition,{type:"tip",children:(0,r.jsx)(s.p,{children:"Events already claimed by another flow on the same account are hidden here, so two flows never fight over the same event. Route DMs to one flow and comments to another by giving each its own webhook."})}),"\n",(0,r.jsxs)(s.p,{children:["The event that fired is available in your flow as ",(0,r.jsx)(s.code,{children:"{{$webhook.<name>.eventType}}"})," (",(0,r.jsx)(s.code,{children:"message"}),", ",(0,r.jsx)(s.code,{children:"comment"}),", ",(0,r.jsx)(s.code,{children:"mention"}),", or ",(0,r.jsx)(s.code,{children:"story_reply"}),"), alongside sender details like ",(0,r.jsx)(s.code,{children:"{{$webhook.<name>.senderUsername}}"})," and the message text as ",(0,r.jsx)(s.code,{children:"{{$question}}"}),". See ",(0,r.jsx)(s.a,{href:"/docs/agentflow/concepts/variables",children:"Variables"})," for the full payload."]}),"\n",(0,r.jsx)(s.h2,{id:"auto-switch-to-manual-mode-on-operator-reply",children:"Auto-switch to manual mode on operator reply"}),"\n",(0,r.jsxs)(s.p,{children:["When a team member replies to a customer ",(0,r.jsx)(s.strong,{children:"directly from the Instagram app"})," (not the Flowera panel), Meta echoes that reply back to Flowera. With ",(0,r.jsx)(s.strong,{children:"Auto-switch to manual mode on operator reply"})," on (the default), Flowera treats that as a human taking over: it records the operator's reply and ",(0,r.jsx)(s.strong,{children:"pauses the AI"})," for that conversation so the bot doesn't talk over your team."]}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:"Typed text and media replies take over the session (manual mode stays on through 24 hours of inactivity)."}),"\n",(0,r.jsxs)(s.li,{children:["Pure emoji or sticker reactions are recorded but do ",(0,r.jsx)(s.strong,{children:"not"})," pause the AI."]}),"\n"]}),"\n",(0,r.jsxs)(s.p,{children:["Turn this ",(0,r.jsx)(s.strong,{children:"off"})," only if the account is driven by your own automation outside Flowera \u2014 then operator-style messages are still recorded, but the AI keeps responding. See ",(0,r.jsx)(s.a,{href:"/docs/agentflow/observing/manual-mode",children:"Manual mode"})," for the full behavior and the ",(0,r.jsx)(s.code,{children:"$flow.manual.*"})," variables."]}),"\n",(0,r.jsx)(s.h2,{id:"batch-messages",children:"Batch Messages"}),"\n",(0,r.jsxs)(s.p,{children:['Customers often send several short messages in a row ("Hi" \u2026 "I have a question" \u2026 "about my order"). With ',(0,r.jsx)(s.strong,{children:"Batch Messages"})," on (the default), Flowera waits a moment, combines those into a single input, and runs the flow ",(0,r.jsx)(s.strong,{children:"once"})," \u2014 so the bot replies to the whole thought instead of each fragment. Turn it off to reply to every message the instant it arrives."]}),"\n",(0,r.jsx)(s.admonition,{type:"note",children:(0,r.jsxs)(s.p,{children:["Batching applies to ",(0,r.jsx)(s.strong,{children:"direct messages"})," only. Comments are always handled one by one, regardless of this toggle."]})}),"\n",(0,r.jsx)(s.h2,{id:"example",children:"Example"}),"\n",(0,r.jsxs)(s.p,{children:["An Instagram DM autoresponder: webhook named ",(0,r.jsx)(s.code,{children:"instagram-dm"}),", account ",(0,r.jsx)(s.code,{children:"@yourbrand"}),", event ",(0,r.jsx)(s.strong,{children:"Direct Messages"}),". The flow reads ",(0,r.jsx)(s.code,{children:"{{$question}}"}),", an Agent answers, and a ",(0,r.jsx)(s.a,{href:"/docs/agentflow/nodes/tool",children:"Tool node"})," with the ",(0,r.jsx)(s.a,{href:"/docs/agentflow/nodes/tools/instagram",children:"Instagram tool"})," sends the answer back as a DM \u2014 while a human can still jump in from the app at any time to take over."]}),"\n",(0,r.jsx)(s.h2,{id:"tips",children:"Tips"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:["Give each webhook a clear name \u2014 it's the ",(0,r.jsx)(s.code,{children:"<name>"})," in every ",(0,r.jsx)(s.code,{children:"{{$webhook.<name>.*}}"})," variable."]}),"\n",(0,r.jsxs)(s.li,{children:["Use a ",(0,r.jsx)(s.a,{href:"/docs/agentflow/nodes/condition",children:"Condition"})," on ",(0,r.jsx)(s.code,{children:"{{$webhook.<name>.eventType}}"})," to handle DMs, comments, and story replies differently within one flow."]}),"\n",(0,r.jsxs)(s.li,{children:["Leave ",(0,r.jsx)(s.strong,{children:"manual mode auto-switch"}
1)," on for human-in-the-loop teams; turn it off only for fully automated accounts."]}),"\n"]}),"\n",(0,r.jsx)(s.h2,{id:"related",children:"Related"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/agentflow/nodes/start",children:"Start node"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/agentflow/nodes/start-triggers/whatsapp-trigger",children:"WhatsApp trigger"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/agentflow/nodes/start-triggers/custom-webhook",children:"Custom Webhook trigger"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/agentflow/observing/manual-mode",children:"Manual mode"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/agentflow/concepts/variables",children:"Variables"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/agentflow/tutorials/instagram-dm-autoresponder",children:"Instagram DM autoresponder"})}),"\n"]})]})}function c(e={}){const{wrapper:s}={...(0,o.R)(),...e.components};return s?(0,r.jsx)(s,{...e,children:(0,r.jsx)(h,{...e})}):h(e)}},4315(e,s,n){n.d(s,{R:()=>a,x:()=>i});var t=n(2155);const r={},o=t.createContext(r);function a(e){const s=t.useContext(o);return t.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function i(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:a(e.components),t.createElement(o.Provider,{value:s},e.children)}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.