FlowRunner
Pricing
Theme
Start Free

CrewAI and FlowRunner

FlowRunner adds what a CrewAI crew needs in production: triggers from 2,100+ integrations, reviews that reach people in Slack or email, and a record of every run.

2026-11-02 Updated November 3, 2026 9 min

Add FlowRunner when

  • A person outside engineering has to review the crew's output, in Slack, by email, on WhatsApp, by phone, or in a Form
  • A review can take days and the run has to wait for it
  • A crew should start when something happens in a business app, or on a schedule
  • The rest of the team needs to see every run without reading Python
  • The crew's calls to other systems need retries and an error path

CrewAI on its own is enough when

  • You run the crew yourself and answer its human_input prompt in the terminal
  • The crew starts from your own code with kickoff(), and nobody else needs to see the runs
  • AMP's own triggers (Gmail, Slack, HubSpot, Salesforce, and the rest) already cover what starts your crews
  • You're on CrewAI Enterprise and its HITL management handles who reviews what

TL;DR

  • FlowRunner adds the business side around a CrewAI crew: triggers from 2,100+ integrations, schedules, a review step that reaches a person by email, Slack, WhatsApp, phone, or a Form and waits for the answer, retries, and a record of every run your whole team can open.
  • CrewAI is where you define agents, tasks, crews, and flows in Python. Keep it. FlowRunner doesn’t run Python, so the crew stays where it runs and the two talk over HTTP.
  • CrewAI already ships human input (human_input, @human_feedback, and AMP’s webhook loop). FlowRunner plugs into those hooks as the receiving end, the part CrewAI leaves to you.
  • You can build the FlowRunner side from a prompt with FlowRunner Prompt to Flow, in Claude Code or any MCP-capable AI tool.

What CrewAI is for

CrewAI is a Python framework for building systems of AI agents. Its GitHub description puts it as a “framework for orchestrating role-playing, autonomous AI agents.” It’s standalone, with its own primitives for agents, tasks, crews, flows, and tools, and it’s MIT licensed.

It has two building blocks. Flows are the structure of the application: steps, state, and branching. Crews are teams of agents, each with a role, a goal, and tools, that work through tasks together. CrewAI’s docs suggest starting with a Flow and adding a Crew wherever agent teamwork helps. Agents can use tools from MCP servers, and a Flow can save its state with @persist (SQLite by default) and pick up again under the same id.

For people in the loop, CrewAI has three options:

  • human_input on a task. A person reviews the agent’s final answer before the task completes.
  • @human_feedback in a Flow. By default it waits for console input. With emit, a model maps free-form feedback to named outcomes that route the flow. For anything asynchronous, you subclass HumanFeedbackProvider, notify an outside system, and raise HumanFeedbackPending. CrewAI saves the state, and later Flow.from_pending(flow_id) and resume() continue the run.
  • The webhook loop on CrewAI AMP. Pass humanInputWebhook at kickoff, the execution pauses for human input, and you send the decision to AMP’s resume endpoint.

CrewAI AMP, the hosted platform, deploys crews from GitHub, Crew Studio, or the CLI, serves them through a REST API, and shows traces. It has app triggers for Gmail, Google Calendar, Google Drive, Outlook, OneDrive, Microsoft Teams, HubSpot, Salesforce, Slack, and Zapier. Its pricing page lists two plans: Basic, free with 50 workflow executions a month, and Enterprise, custom priced with SSO, RBAC, and a dedicated VPC.

What FlowRunner adds around it

Look at what CrewAI’s human feedback hooks hand back to you. The async provider has to notify someone and the code that resumes has to be written. On AMP, the webhook arrives at a URL you own. Who gets the request, in which app, what they click, and what happens if they take three days: that’s your code. CrewAI Enterprise adds HITL management for responder assignment and escalation. On the open source framework and AMP Basic, you build it.

FlowRunner is a workflow platform with that layer already in it. A flow is a set of blocks on a canvas, and the parts a crew needs in production are blocks you don’t have to write:

  • A review that reaches people where they work. A flow sends the request by email, Slack, WhatsApp, phone, or a Form with approve and reject choices, then pauses until the answer comes back. The reviewer doesn’t need a FlowRunner login or a screen you built.
  • Long waits. A run can wait up to 30 days on Free, Starter, and Growth, and up to a year on Professional and above. The whole run, wait included, counts as one execution.
  • Triggers from 2,100+ integrations. A new row in a sheet, a deal moving stage, an email arriving, a webhook from any system, or a schedule (once, every few minutes, daily, weekly, monthly, or cron) can start the flow that kicks off your crew.
  • Retries and error paths. The HTTP Request block that calls your crew retries on the status codes you list (429, 5XX) with fixed or exponential backoff, and a Handle Error block gives a failed step a recovery path instead of a dead run.
  • A record of every run. Each run is on the flow’s Instances tab with the input and output of every step, including the review and who answered. Anyone in the workspace can open it.
  • Unlimited users on every plan. The ops lead who approves, the manager who audits, and the developer who maintains the crew all get access, at no extra cost per seat.

None of this replaces anything in the crew. Your agents, tasks, and tools stay in Python. FlowRunner runs the parts around them.

How they work together

These are the patterns that come up most. The code for each is on Use CrewAI with FlowRunner.

Your Flow asks a person, FlowRunner gets the answer. Write a HumanFeedbackProvider whose request_feedback posts the method’s output to a FlowRunner flow through the non-blocking Call Flow API and then raises HumanFeedbackPending. The flow posts the draft to the reviewer in Slack (or sends it by email or a Form), waits, and when the answer comes in, calls your small resume endpoint. That endpoint loads the paused Flow with from_pending and calls resume() with the feedback. If you use emit, CrewAI’s own outcome routing takes it from there.

AMP’s human input webhook lands in a FlowRunner flow. On CrewAI AMP, set humanInputWebhook at kickoff to the Callback URL of a FlowRunner flow that starts with an External Callback block. The flow gets the execution and task ids and the task output, reaches the reviewer, and calls AMP’s /resume endpoint with human_feedback and is_approve. If the reviewer rejects, AMP has the crew retry with their comments, exactly as CrewAI documents.

A business event starts the crew. A flow starts on any of FlowRunner’s integrations or on a schedule and calls your crew: AMP’s /kickoff endpoint, or your own service that calls kickoff(). The call sits in an HTTP Request block with a Retry Policy, and the run record shows what started the crew and what it was sent. AMP’s own triggers still work. This covers the apps and webhooks outside that list.

The crew uses flows as tools. Wrap the blocking Call Flow API in a CrewAI tool. The flow does the work with FlowRunner’s integrations (look up a customer in the CRM, create an invoice, post to a channel) and returns the result in the same request, within up to 300 seconds. The agent gets a typed answer, and each call shows up in FlowRunner’s run history.

FlowRunner Prompt to Flow builds the FlowRunner side. You don’t need to learn the flow editor first. Connect FlowRunner Prompt to Flow to Claude Code, Cursor, Codex, or Claude, describe the review flow in a prompt, and the AI builds it in your workspace and tells you what your code sends and gets back.

When you don’t need FlowRunner

Some crews are fine on their own, and adding a platform to them is overhead:

  • You’re the only reviewer and you’re at the terminal. human_input=True or the default console provider does the job.
  • The crew runs from your code, on your schedule, and only you look at the results. kickoff() from a cron job on your own server is enough.
  • It’s research or a prototype. A notebook that tries out roles and prompts doesn’t need triggers, approvals, or a run record.
  • AMP’s triggers and webhooks already cover it. If your crews start from Gmail, Slack, HubSpot, or Salesforce and you’ve built the review receiver you need, there’s nothing missing.
  • You’re on CrewAI Enterprise and its HITL management fits your reviewers. Responder assignment, escalation, and SLAs are part of that plan.

Add FlowRunner when the crew becomes part of a business process: someone outside engineering decides, the decision can take days, the work starts in a business app, or other people need to see what happened.

Feature comparison

DimensionCrewAI on its ownCrewAI with FlowRunner
Agents, tasks, crews, flowsDefined in PythonThe same code, unchanged
Human inputhuman_input, @human_feedback, AMP webhook loopThe same hooks, with a flow on the receiving end
Who reaches the reviewerYour provider or webhook receiver (Enterprise adds HITL management)A flow, by email, Slack, WhatsApp, phone, or a Form
How long a review can waitAs long as your persistence keeps the stateThe flow waits up to 30 days (Free to Growth) or a year (Professional and up)
What starts a runkickoff() or crewai run; AMP adds 10 app triggersAny of 2,100+ integrations, a webhook, or a schedule
SchedulesNot in the open source frameworkOnce, interval, daily, weekly, monthly, cron
RetriesTask guardrails, guardrail_max_retries defaults to 3Plus Retry Policy and Handle Error around every call to the crew
Run recordAMP tracesEvery run’s steps, inputs, and outputs, open to the whole workspace
UsersPer your AMP planUnlimited on every plan
Building the integration sideYour codeA prompt to FlowRunner Prompt to Flow, or the flow editor
PriceFramework free (MIT); AMP Basic free with 50 executions a month; Enterprise customFlowRunner Free covers 100 executions a month; one execution per run

Frequently asked questions

Does FlowRunner run my CrewAI code?

No. FlowRunner doesn't run Python, so your crews stay where they run today: your own service, a container, or CrewAI AMP. FlowRunner calls the crew over HTTP when something should start it, and the crew calls FlowRunner through the Call Flow API when it needs a person or an integration. FlowRunner's own code step, Custom Cloud Code, runs JavaScript.

CrewAI already has human input. Why add FlowRunner?

CrewAI gives you the pause: human_input on a task, @human_feedback in a Flow, and a webhook loop on AMP. What it leaves to you is the other end, meaning who gets the request, in which channel, what they click, and how long the run can wait for them. A FlowRunner flow is that other end. It sends the request by email, Slack, WhatsApp, phone, or a Form, waits for the answer, records who answered, and hands the decision back to your crew.

Do I need CrewAI AMP to use FlowRunner?

No. With the open source framework, you write a small HumanFeedbackProvider that calls a FlowRunner flow, and a resume endpoint the flow calls back. On AMP, you point humanInputWebhook at a FlowRunner flow and the flow calls AMP's resume endpoint with the decision. Both are on the Use CrewAI with FlowRunner page.

How long can a review wait?

A FlowRunner run can wait up to 30 days on the Free, Starter, and Growth plans, and up to a year on Professional and above. On the CrewAI side, the paused flow's state stays in your persistence layer (SQLite by default) until the resume call arrives.

What does it cost to add FlowRunner?

FlowRunner counts one execution per complete run, however many steps it has and however long it waits. The Free plan covers 100 executions a month with no card. Starter is $5 for 300 or $15 for 3,000, and Growth starts at $45 for 12,000. Every plan has every integration, AI agents with your own keys, human-in-the-loop, and unlimited users. New accounts get 14 days of Professional.

Can my crew use FlowRunner's integrations as tools?

Yes. Wrap a flow in a CrewAI tool that calls the blocking Call Flow API. The flow does the work with any of FlowRunner's 2,100+ integrations and returns its answer in the same request, within up to 300 seconds. Each call is one execution.

Editorial policy

Ready to try it?

Start on the Free plan. No card required, and every new account gets 14 days of Professional.