[{"data":1,"prerenderedAt":634},["ShallowReactive",2],{"docs-\u002Fdocs\u002Fuser\u002Fexpert\u002F":3,"docs-nav":180},{"id":4,"title":5,"body":6,"description":16,"extension":169,"layout":170,"meta":171,"navGroup":170,"navGroupOrder":170,"navOrder":170,"navTitle":5,"navigation":172,"originalPath":173,"path":174,"redirect":170,"seo":175,"stem":176,"updated":177,"version":178,"__hash__":179},"docs\u002Fdocs\u002Fuser\u002Fexpert\u002Findex.md","FlowFuse Expert",{"type":7,"value":8,"toc":157},"minimark",[9,13,17,32,37,43,49,74,78,81,86,89,92,106,112,116,119,122,135,141,145,148],[10,11,5],"h1",{"id":12},"flowfuse-expert",[14,15,16],"p",{},"FlowFuse Expert is the AI built into FlowFuse and the Node-RED editor. It is not a generic AI assistant bolted onto the side of your workflow, it understands your flows, your installed nodes, your live data, and your environment in real time.",[14,18,19,23,24,31],{},[20,21,22],"strong",{},"FlowFuse Expert is automatically installed and available in all hosted and remote instances running within or connected to FlowFuse",", no manual installation or configuration required. For self-hosted Enterprise customers, FlowFuse Expert can be enabled on request. ",[25,26,30],"a",{"href":27,"rel":28},"https:\u002F\u002Fflowfuse.com\u002Fcontact-us\u002F",[29],"nofollow","Contact us"," to get it set up on your infrastructure.",[33,34,36],"h2",{"id":35},"managing-ai-features","Managing AI Features",[14,38,39,42],{},[20,40,41],{},"Team owners"," can enable or disable all AI features for their team from the team settings page. When disabled, the Expert chat panel with all AI feature will get removed for that team. Running instances need to be restarted for the change to take full effect.",[14,44,45,48],{},[20,46,47],{},"Self-Hosted Enterprise admins"," have two additional controls:",[50,51,52,66],"ul",{},[53,54,55,56,60,61,65],"li",{},"Disable AI across the entire platform via the ",[57,58,59],"code",{},"ai.enabled"," ",[25,62,64],{"href":63},"\u002Fdocs\u002Finstall\u002Fconfiguration\u002F#ai-configuration","configuration option",". This overrides all team-level settings.",[53,67,68,69,73],{},"Configure which AI features are available on a per-team-type basis from the Admin Panel. See ",[25,70,72],{"href":71},"\u002Fdocs\u002Fadmin\u002Fintroduction\u002F#managing-team-types","Managing Team Types"," for details.",[33,75,77],{"id":76},"what-flowfuse-expert-can-do","What FlowFuse Expert Can Do",[14,79,80],{},"FlowFuse Expert works in two distinct ways inside your environment.",[82,83,85],"h3",{"id":84},"chat-interface","Chat Interface",[14,87,88],{},"The Chat Interface is a conversational AI panel built into the FlowFuse Platform and accessible directly within the Node-RED editor. With agentic flow building enabled, you can describe what you want to build and Expert will build it on your canvas for you. It can also answer questions, debug flows, and query live operational data via MCP.",[14,90,91],{},"The Chat Interface supports two modes:",[50,93,94,100],{},[53,95,96,99],{},[20,97,98],{},"Support",": flow-building assistance, including asking questions, debugging, and building flows on the canvas. Expert can ask clarifying questions, propose a plan before it acts, and ask for your approval before running actions, and it can also take actions across the FlowFuse platform such as looking up your instances and creating new ones",[53,101,102,105],{},[20,103,104],{},"Insights",": query live operational data via MCP tools and resources exposed by your own MCP servers, on both hosted and remote instances",[14,107,108],{},[25,109,111],{"href":110},"\u002Fdocs\u002Fuser\u002Fexpert\u002Fchat\u002F","Learn more about the Chat Interface",[82,113,115],{"id":114},"ai-in-node-red","AI in Node-RED",[14,117,118],{},"FlowFuse Expert brings AI assistance directly into the Node-RED editor itself. It works where you already are - inside node editors, on the canvas, without requiring you to open a separate panel.",[14,120,121],{},"AI features within the Node-RED editor include inline code completions, flow autocomplete, function builder, flow explainer, JSON generation, and CSS and HTML generation for FlowFuse Dashboard.",[123,124,125],"blockquote",{},[14,126,127,130,131,134],{},[20,128,129],{},"Note:"," FlowFuse Expert's in-editor AI features can also be installed as a plugin into Node-RED instances running outside of FlowFuse, using the ",[57,132,133],{},"@flowfuse\u002Fnr-assistant"," package from the Node-RED Palette Manager. This requires a FlowFuse Cloud account but does not require a paid subscription for the current release. The Chat Interface is exclusive to FlowFuse and cannot be installed externally.",[14,136,137],{},[25,138,140],{"href":139},"\u002Fdocs\u002Fuser\u002Fexpert\u002Fnode-red-embedded-ai\u002F","Learn more about AI in Node-RED",[33,142,144],{"id":143},"data-privacy","Data Privacy",[14,146,147],{},"No data from FlowFuse is used by third-party AI service providers for training models.",[14,149,150,151,156],{},"Some features utilize the OpenAI API, and as such some data is sent to OpenAI to process requests. In accordance with the ",[25,152,155],{"href":153,"rel":154},"https:\u002F\u002Fhelp.openai.com\u002Fen\u002Farticles\u002F5722486-how-your-data-is-used-to-improve-model-performance",[29],"OpenAI Terms of Service"," no data is used for training of future models. OpenAI will retain data sent via its APIs for 30 days for abuse monitoring, after which it is permanently deleted.",{"title":158,"searchDepth":159,"depth":159,"links":160},"",4,[161,163,168],{"id":35,"depth":162,"text":36},2,{"id":76,"depth":162,"text":77,"children":164},[165,167],{"id":84,"depth":166,"text":85},3,{"id":114,"depth":166,"text":115},{"id":143,"depth":162,"text":144},"md",null,{},true,"user\u002Fexpert\u002Findex.md","\u002Fdocs\u002Fuser\u002Fexpert",{"title":5,"description":16},"docs\u002Fuser\u002Fexpert\u002Findex","2026-07-29 07:46:24 +0000","2.33.2","zKNE0wfgUxdzkI0rIW1TLgQflzOzknJz7tqFDakOJsY",[181,189,208,219],{"name":182,"order":183,"children":184},"FlowFuse User Manuals",1,[185],{"title":186,"path":187,"group":182,"groupOrder":183,"order":162,"children":188},"FlowFuse API","\u002Fdocs\u002Fapi",[],{"name":190,"order":159,"children":191},"FlowFuse Self-Hosted",[192,196],{"title":193,"path":194,"group":190,"groupOrder":159,"order":183,"children":195},"Quick Start","\u002Fdocs\u002Fquick-start",[],{"title":197,"path":198,"group":190,"groupOrder":159,"order":166,"children":199},"Upgrading FlowFuse","\u002Fdocs\u002Fupgrade",[200,204],{"title":201,"path":202,"order":170,"children":203},"Installing a license","\u002Fdocs\u002Fupgrade\u002Fopen-source-to-premium",[],{"title":205,"path":206,"order":170,"children":207},"Upgrading the Node-RED version","\u002Fdocs\u002Fupgrade\u002Fnodered-version",[],{"name":98,"order":209,"children":210},5,[211,215],{"title":212,"path":213,"group":98,"groupOrder":209,"order":166,"children":214},"Premium Support","\u002Fdocs\u002Fpremium-support",[],{"title":216,"path":217,"group":98,"groupOrder":209,"order":170,"children":218},"Debugging Node-RED issues","\u002Fdocs\u002Fdebugging",[],{"name":220,"order":170,"children":221},"Other",[222,270,282,361,410,429,503,514],{"title":223,"path":224,"order":170,"children":225},"admin","\u002Fdocs\u002Fadmin",[226,230,242,250,254,258,262,266],{"title":227,"path":228,"order":183,"children":229},"Administering FlowFuse","\u002Fdocs\u002Fadmin\u002Fintroduction",[],{"title":231,"path":232,"order":170,"children":233},"Configuring Single Sign-On (SSO)","\u002Fdocs\u002Fadmin\u002Fsso",[234,238],{"title":235,"path":236,"order":170,"children":237},"LDAP SSO","\u002Fdocs\u002Fadmin\u002Fsso\u002Fldap",[],{"title":239,"path":240,"order":170,"children":241},"SAML SSO","\u002Fdocs\u002Fadmin\u002Fsso\u002Fsaml",[],{"title":243,"path":244,"order":170,"children":245},"hardening","\u002Fdocs\u002Fadmin\u002Fhardening",[246],{"title":247,"path":248,"order":170,"children":249},"Kubernetes Hardening","\u002Fdocs\u002Fadmin\u002Fhardening\u002Fkubernetes",[],{"title":251,"path":252,"order":170,"children":253},"Monitoring","\u002Fdocs\u002Fadmin\u002Fmonitoring",[],{"title":255,"path":256,"order":170,"children":257},"Observability","\u002Fdocs\u002Fadmin\u002Fobservability",[],{"title":259,"path":260,"order":170,"children":261},"Soft Launch Enablement","\u002Fdocs\u002Fadmin\u002Ffeature-flags",[],{"title":263,"path":264,"order":170,"children":265},"Telemetry","\u002Fdocs\u002Fadmin\u002Ftelemetry",[],{"title":267,"path":268,"order":170,"children":269},"User Management","\u002Fdocs\u002Fadmin\u002Fuser-management",[],{"title":271,"path":272,"order":170,"children":273},"cloud","\u002Fdocs\u002Fcloud",[274,278],{"title":275,"path":276,"order":183,"children":277},"Introduction","\u002Fdocs\u002Fcloud\u002Fintroduction",[],{"title":279,"path":280,"order":170,"children":281},"FlowFuse Cloud Billing","\u002Fdocs\u002Fcloud\u002Fbilling",[],{"title":283,"path":284,"order":170,"children":285},"contribute","\u002Fdocs\u002Fcontribute",[286,289,293,297,301,305,309,317,353,357],{"title":275,"path":287,"order":183,"children":288},"\u002Fdocs\u002Fcontribute\u002Fintroduction",[],{"title":290,"path":291,"order":170,"children":292},"Adding Template Settings","\u002Fdocs\u002Fcontribute\u002Fadding-template-settings",[],{"title":294,"path":295,"order":170,"children":296},"API Design","\u002Fdocs\u002Fcontribute\u002Fapi-design",[],{"title":298,"path":299,"order":170,"children":300},"Creating debug stack containers","\u002Fdocs\u002Fcontribute\u002Fcreating-debug-stack-containers",[],{"title":302,"path":303,"order":170,"children":304},"Database migrations","\u002Fdocs\u002Fcontribute\u002Fdb-migrations",[],{"title":306,"path":307,"order":170,"children":308},"FlowFuse Architecture","\u002Fdocs\u002Fcontribute\u002Farchitecture",[],{"title":310,"path":311,"order":170,"children":312},"Local Install","\u002Fdocs\u002Fcontribute\u002Flocal",[313],{"title":314,"path":315,"order":170,"children":316},"Local Stacks","\u002Fdocs\u002Fcontribute\u002Flocal\u002Fstacks",[],{"title":318,"path":319,"order":170,"children":320},"State Flows","\u002Fdocs\u002Fcontribute\u002Fworkflows",[321,325,329,333,337,341,345,349],{"title":322,"path":323,"order":170,"children":324},"Device Editor","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Fdevice-editor",[],{"title":326,"path":327,"order":170,"children":328},"Instance states","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Fproject-states",[],{"title":330,"path":331,"order":170,"children":332},"Invite External Users","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Finvite-external-user",[],{"title":334,"path":335,"order":170,"children":336},"Project Creation","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Fproject-create",[],{"title":338,"path":339,"order":170,"children":340},"Reset Password Flow","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Fpassword-reset",[],{"title":342,"path":343,"order":170,"children":344},"Team creation Flow","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Fteam-create",[],{"title":346,"path":347,"order":170,"children":348},"User Login Flows","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Flogin",[],{"title":350,"path":351,"order":170,"children":352},"User Sign up Flow","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Fsignup",[],{"title":354,"path":355,"order":170,"children":356},"Team Broker","\u002Fdocs\u002Fcontribute\u002Fteam-broker",[],{"title":358,"path":359,"order":170,"children":360},"Working with Feature Flags","\u002Fdocs\u002Fcontribute\u002Ffeature-flags",[],{"title":362,"path":363,"order":170,"children":364},"device-agent","\u002Fdocs\u002Fdevice-agent",[365,369,372,376,380,385],{"title":366,"path":367,"order":183,"children":368},"FlowFuse Device Agent Introduction","\u002Fdocs\u002Fdevice-agent\u002Fintroduction",[],{"title":193,"path":370,"order":162,"children":371},"\u002Fdocs\u002Fdevice-agent\u002Fquickstart",[],{"title":373,"path":374,"order":159,"children":375},"Register your Remote Instance","\u002Fdocs\u002Fdevice-agent\u002Fregister",[],{"title":377,"path":378,"order":209,"children":379},"Running the Agent","\u002Fdocs\u002Fdevice-agent\u002Frunning",[],{"title":381,"path":382,"order":383,"children":384},"Deploying your Flows","\u002Fdocs\u002Fdevice-agent\u002Fdeploy",6,[],{"title":386,"path":387,"order":170,"children":388},"install","\u002Fdocs\u002Fdevice-agent\u002Finstall",[389,394,398,402,406],{"title":390,"path":391,"group":392,"order":183,"children":393},"Overview","\u002Fdocs\u002Fdevice-agent\u002Finstall\u002Foverview","DeviceAgentInstallation",[],{"title":395,"path":396,"group":392,"order":162,"children":397},"Device Agent Installer","\u002Fdocs\u002Fdevice-agent\u002Finstall\u002Fdevice-agent-installer",[],{"title":399,"path":400,"group":392,"order":166,"children":401},"Docker Install","\u002Fdocs\u002Fdevice-agent\u002Finstall\u002Fdocker",[],{"title":403,"path":404,"group":392,"order":159,"children":405},"Kubernetes Install","\u002Fdocs\u002Fdevice-agent\u002Finstall\u002Fkubernetes",[],{"title":407,"path":408,"group":392,"order":209,"children":409},"Manual Install with NPM","\u002Fdocs\u002Fdevice-agent\u002Finstall\u002Fmanual",[],{"title":411,"path":412,"order":170,"children":413},"hardware","\u002Fdocs\u002Fhardware",[414,417,421,425],{"title":390,"path":415,"order":183,"children":416},"\u002Fdocs\u002Fhardware\u002Fintroduction",[],{"title":418,"path":419,"order":162,"children":420},"ctrlX - Node-RED","\u002Fdocs\u002Fhardware\u002Fctrlx-node-red",[],{"title":422,"path":423,"order":166,"children":424},"ctrlX - Device Agent","\u002Fdocs\u002Fhardware\u002Fctrlx-device-agent",[],{"title":426,"path":427,"order":166,"children":428},"Raspberry Pi with Raspbian","\u002Fdocs\u002Fhardware\u002Fraspbian",[],{"title":386,"path":430,"order":170,"children":431},"\u002Fdocs\u002Finstall",[432,435,439,443,463,467,471,475],{"title":390,"path":433,"order":183,"children":434},"\u002Fdocs\u002Finstall\u002Fintroduction",[],{"title":436,"path":437,"order":170,"children":438},"Configuring FlowFuse","\u002Fdocs\u002Finstall\u002Fconfiguration",[],{"title":440,"path":441,"order":170,"children":442},"DNS Setup","\u002Fdocs\u002Finstall\u002Fdns-setup",[],{"title":444,"path":445,"order":170,"children":446},"Docker install","\u002Fdocs\u002Finstall\u002Fdocker",[447,451,455,459],{"title":448,"path":449,"order":170,"children":450},"Add Project Stacks on Docker","\u002Fdocs\u002Finstall\u002Fdocker\u002Fstacks",[],{"title":452,"path":453,"order":170,"children":454},"Docker Engine on Windows","\u002Fdocs\u002Finstall\u002Fdocker\u002Fwindows-docker-ce",[],{"title":456,"path":457,"order":170,"children":458},"Docker from AWS Market Place","\u002Fdocs\u002Finstall\u002Fdocker\u002Faws-marketplace",[],{"title":460,"path":461,"order":170,"children":462},"Docker on Digital Ocean","\u002Fdocs\u002Finstall\u002Fdocker\u002Fdigital-ocean",[],{"title":464,"path":465,"order":170,"children":466},"Email configuration","\u002Fdocs\u002Finstall\u002Femail-providers",[],{"title":468,"path":469,"order":170,"children":470},"First Run Setup","\u002Fdocs\u002Finstall\u002Ffirst-run",[],{"title":472,"path":473,"order":170,"children":474},"FlowFuse File Storage","\u002Fdocs\u002Finstall\u002Ffile-storage",[],{"title":476,"path":477,"order":170,"children":478},"Install FlowFuse on Kubernetes","\u002Fdocs\u002Finstall\u002Fkubernetes",[479,483,487,491,495,499],{"title":480,"path":481,"order":170,"children":482},"AWS EKS Installation","\u002Fdocs\u002Finstall\u002Fkubernetes\u002Faws",[],{"title":484,"path":485,"order":170,"children":486},"AWS EKS Installation with Terraform and Helm","\u002Fdocs\u002Finstall\u002Fkubernetes\u002Faws-terraform",[],{"title":488,"path":489,"order":170,"children":490},"Digital Ocean Kubernetes Installation","\u002Fdocs\u002Finstall\u002Fkubernetes\u002Fdigital-ocean",[],{"title":492,"path":493,"order":170,"children":494},"Ingress Controller Migration","\u002Fdocs\u002Finstall\u002Fkubernetes\u002Fingress-controller-migration",[],{"title":496,"path":497,"order":170,"children":498},"Kubernetes Project Stacks","\u002Fdocs\u002Finstall\u002Fkubernetes\u002Fstacks",[],{"title":500,"path":501,"order":170,"children":502},"OpenShift Installation","\u002Fdocs\u002Finstall\u002Fkubernetes\u002Fopenshift",[],{"title":504,"path":505,"order":170,"children":506},"migration","\u002Fdocs\u002Fmigration",[507,510],{"title":275,"path":508,"order":183,"children":509},"\u002Fdocs\u002Fmigration\u002Fintroduction",[],{"title":511,"path":512,"order":170,"children":513},"Node-RED Tools plugin","\u002Fdocs\u002Fmigration\u002Fnode-red-tools",[],{"title":515,"path":516,"order":170,"children":517},"user","\u002Fdocs\u002Fuser",[518,522,526,530,534,539,543,547,551,555,559,563,571,575,579,583,587,591,595,599,603,607,611,615,619,623,626,630],{"title":519,"path":520,"order":183,"children":521},"Getting Started","\u002Fdocs\u002Fuser\u002Fintroduction",[],{"title":523,"path":524,"order":183,"children":525},"Static asset service","\u002Fdocs\u002Fuser\u002Fstatic-asset-service",[],{"title":527,"path":528,"order":162,"children":529},"Bill of Materials","\u002Fdocs\u002Fuser\u002Fbill-of-materials",[],{"title":531,"path":532,"order":162,"children":533},"FlowFuse Concepts","\u002Fdocs\u002Fuser\u002Fconcepts",[],{"title":535,"path":536,"order":537,"children":538},"Instance States","\u002Fdocs\u002Fuser\u002Finstance-states",10,[],{"title":540,"path":541,"order":170,"children":542},"Changing the Stack","\u002Fdocs\u002Fuser\u002Fchangestack",[],{"title":544,"path":545,"order":170,"children":546},"Custom Hostnames","\u002Fdocs\u002Fuser\u002Fcustom-hostnames",[],{"title":548,"path":549,"order":170,"children":550},"Custom Node Packages","\u002Fdocs\u002Fuser\u002Fcustom-npm-packages",[],{"title":552,"path":553,"order":170,"children":554},"Dashboards","\u002Fdocs\u002Fuser\u002Fdashboards",[],{"title":556,"path":557,"order":170,"children":558},"DevOps Pipelines","\u002Fdocs\u002Fuser\u002Fdevops-pipelines",[],{"title":560,"path":561,"order":170,"children":562},"Environment Variables","\u002Fdocs\u002Fuser\u002Fenvvar",[],{"title":5,"path":174,"order":170,"children":564},[565,568],{"title":115,"path":566,"order":170,"children":567},"\u002Fdocs\u002Fuser\u002Fexpert\u002Fnode-red-embedded-ai",[],{"title":85,"path":569,"order":170,"children":570},"\u002Fdocs\u002Fuser\u002Fexpert\u002Fchat",[],{"title":572,"path":573,"order":170,"children":574},"FlowFuse File Nodes","\u002Fdocs\u002Fuser\u002Ffilenodes",[],{"title":576,"path":577,"order":170,"children":578},"FlowFuse MQTT Nodes","\u002Fdocs\u002Fuser\u002Fmqtt-nodes",[],{"title":580,"path":581,"order":170,"children":582},"FlowFuse Persistent Context","\u002Fdocs\u002Fuser\u002Fpersistent-context",[],{"title":584,"path":585,"order":170,"children":586},"FlowFuse Project Nodes","\u002Fdocs\u002Fuser\u002Fprojectnodes",[],{"title":588,"path":589,"order":170,"children":590},"FlowFuse Tables","\u002Fdocs\u002Fuser\u002Fff-tables",[],{"title":592,"path":593,"order":170,"children":594},"Groups","\u002Fdocs\u002Fuser\u002Fdevice-groups",[],{"title":596,"path":597,"order":170,"children":598},"High Availability mode","\u002Fdocs\u002Fuser\u002Fhigh-availability",[],{"title":600,"path":601,"order":170,"children":602},"HTTP Access Tokens","\u002Fdocs\u002Fuser\u002Fhttp-access-tokens",[],{"title":604,"path":605,"order":170,"children":606},"Instance Settings","\u002Fdocs\u002Fuser\u002Finstance-settings",[],{"title":608,"path":609,"order":170,"children":610},"Logging","\u002Fdocs\u002Fuser\u002Flogs",[],{"title":612,"path":613,"order":170,"children":614},"Role-Based Access Control","\u002Fdocs\u002Fuser\u002Frole-based-access-control",[],{"title":616,"path":617,"order":170,"children":618},"Shared Team Library","\u002Fdocs\u002Fuser\u002Fshared-library",[],{"title":620,"path":621,"order":170,"children":622},"Snapshots","\u002Fdocs\u002Fuser\u002Fsnapshots",[],{"title":354,"path":624,"order":170,"children":625},"\u002Fdocs\u002Fuser\u002Fteambroker",[],{"title":627,"path":628,"order":170,"children":629},"Teams","\u002Fdocs\u002Fuser\u002Fteam",[],{"title":631,"path":632,"order":170,"children":633},"User Settings","\u002Fdocs\u002Fuser\u002Fuser-settings",[],1786546044255]