Skip to main content
FlowApps are the plugin architecture that powers Iqra AI’s integration ecosystem. They allow you to extend agent capabilities by connecting to external services and APIs.

What is a FlowApp?

A FlowApp is a self-contained plugin that provides:
  • Actions: Operations that agents can perform (e.g., “Book a Meeting”, “Send Email”)
  • Data Fetchers: Dynamic dropdown options for action inputs (e.g., fetch list of event types)
  • Schema Definitions: JSON Schema files that define input validation and UI rendering
  • Authentication: Integration with the admin dashboard for credential management

Architecture overview

FlowApps follow a structured architecture:

Core interfaces

Discovery and initialization

The FlowAppManager automatically discovers all FlowApps at startup using reflection:
FlowApps can have constructor dependencies like IHttpClientFactory or ILogger<T> - they are resolved automatically via dependency injection.

Execution pipeline

When an agent executes a FlowApp action, the following pipeline runs:
1

Template resolution

Scriban templates in inputs are resolved:
2

Schema validation

Resolved inputs are validated against the JSON Schema:
3

Action execution

The action’s ExecuteAsync method is invoked:
4

Output routing

The result’s OutputPortKey determines the next node in the flow:

Authentication and integrations

FlowApps can require authentication credentials managed through the admin dashboard:
IqraInfrastructure/Managers/FlowApp/Apps/CalCom/CalComApp.cs:14
When IntegrationType is set:
  • Admins configure credentials in the dashboard
  • Credentials are encrypted at rest
  • ExecuteAsync receives decrypted credentials via the integration parameter
If IntegrationType is null, the app is considered public and requires no setup. Set RequiresIntegration = false in your actions.

Permissions and feature flags

FlowApps support runtime permissions managed via the database:
  • App-level: Disable entire integration
  • Action-level: Disable specific actions
  • Fetcher-level: Disable data sources
Permissions are cached for 10 minutes and checked before execution:
IqraInfrastructure/Managers/FlowApp/FlowAppManager.cs:254-263

Next steps

Creating FlowApps

Step-by-step guide to building your first FlowApp

Schema definition

Learn how to define JSON schemas for action inputs

Examples

Explore real-world FlowApp implementations