AI agent workflows are jobs with a few steps that an AI runs for you, pulling data from your apps, figuring out what's important, and then doing something about it, either because you asked or because something set them off.

I run ChatFuse, where every single chat message already gets sent to one of over 100 different models from places like OpenAI, Anthropic, and Google. So when we got started on ChatFuse Agents, one thought drove the whole design: the models are the plumbing. Nobody should have to care which model writes their morning update, the same way you don't care which specific pipe brings water to your sink. You just say what you want done. Our orchestrator handles the rest: it plans the steps, finds the right apps, and picks the best model for each part of the job.

The other big idea is that you build an agent how you already do your work. You can just tell it what to do in a chat window. Or you can open a visual builder and move the steps around with your mouse. It's the same agent both ways, and you can jump between those views anytime.

We're still building ChatFuse Agents, and there's no date yet. This post is just about how it works and the rules we stuck to before a single line of it existed.

ChatFuse Agents Talk to it or drag it. The models are the plumbing.
Build Chat or canvas → one agent, one draft
Connect 3,000+ apps → one permission per action
Start 6 triggers → from a schedule to a new email
Models Picked per step → by the orchestrator
In development. No launch date yet.

What is an AI agent workflow?

An AI agent workflow is a set of steps that an AI takes to get something done for you. You tell it what you want, and it does the work. It starts on a trigger, pulls info from your apps, uses AI to read or write text when it needs to, follows simple rules for the rest, and then takes action. It won't send anything out from your account unless you say it's okay.

Anatomy of an AI agent workflow Five parts, whatever the job.
1
Start A schedule, an event like a new email, or you.
2
Read Your connected apps and what you keep in ChatFuse.
3
Think AI where there's language, plain rules for everything else.
4
Act Send, post, create or save, with your approval or a standing permission.
5
Record A run history with sources, steps and cost.
Branches, loops, parallel steps and waits can sit anywhere in between.

It doesn't just go from step one to step two in a straight line. A workflow can split off based on a condition, do a few things at the same time and bring it all together, go through a list one by one, or wait for a set time or for a person to approve something. In ChatFuse, you can see all of that happening on the canvas and in the history, so you always know what it did and why.

What can you use AI agent workflows for?

Basically any repeat task where you're looking at one thing, figuring out what's important, and doing something about it in a different place. Agents work across the 3,000+ apps ChatFuse connects to, plus anything you've already got in ChatFuse, so you can do things like a daily rundown of your sales pipeline, sort incoming support requests, or pull together a weekly numbers report.

AI agent workflows by team A few of the jobs you can describe in one sentence.
Sales HubSpot or Salesforce → deals and companies that changed → summary posted to a Slack channel
Support Zendesk or Intercom → new conversations grouped by theme → a Jira or Linear issue for each bug
Product Dovetail → new insights and notes → a Notion or Confluence page
Engineering PagerDuty → overnight incidents → a summary as a reply in a Microsoft Teams thread
Marketing Google Analytics → weekly traffic report → saved as a Google Drive file
Projects Asana, ClickUp or Todoist → overdue and completed tasks → a status email from Gmail or Outlook
Inbox Gmail or Outlook → new client mail → a morning briefing, with a text message link
Meetings Google Calendar and your notes → decisions, owners and due dates → a follow up email drafted for approval
Files Dropbox, Google Drive, Sheets or Excel → the documents and numbers you choose → a summary saved to your Library
Examples, not templates. Describe your own job and the orchestrator builds it.

These aren't just canned routines you pick from a list. You tell it what you need, using your own words, and the ChatFuse orchestrator puts it together for you from a set of parts: steps that use apps, steps that use AI, and little bits of logic like conditions, branches or loops. If the job needs an app you haven't connected yet, it'll tell you, and you can hook it up right then.

How are AI agent workflows different from traditional automation?

Old school automation needs you to map out every step ahead of time. It runs on rules. But if something unexpected shows up, it often breaks. An AI agent workflow handles messy input, like a long email thread or a document, figures out what's important, and writes something new. The parts that shouldn't change, like who gets the message or how much it can spend, are still locked down by rules.

AI agent workflows vs traditional automation Rules where they work, AI where language is involved.
Traditional automation Rules wired in advance
  • You map every step and branch
  • Often breaks on unexpected input
  • Can't read or write language
  • Predictable by design
AI agent workflow Outcome described once
  • You describe what you want
  • Reads emails, documents and chats
  • Summarizes, classifies and writes
  • Rules still fix recipients and budgets
ChatFuse Agents keeps permissions and spending as rules, whatever the AI decides.

ChatFuse Agents uses both. Things like filters, timing, who something goes to, and spending limits are all set by rules. But summarizing, sorting things into categories, and writing, that's where the AI jumps in. And if an agent does have to make a choice, it can only pick from a list you already approved. So it can adapt, but it won't ever surprise you with a new person on an email or a cost you didn't see coming.

Can you build an AI agent just by chatting?

You can. Tell ChatFuse what outcome you need. Type it or say it. The system drafts a plan for you to check before any work starts. This chat window is your AI agent builder. Regular questions stay on the fast track. Only requests to make or tweak an agent open the workspace beside the conversation.

Building in chat From one sentence to a running agent.
1
You describe it Typed or spoken, in the chat you already use.
2
ChatFuse proposes it Steps, apps, accounts, schedule and a credit estimate on one card.
3
You connect what's missing The same connect flow as any app. Nothing runs or sends yet.
4
You test it A small sample you choose, with every send switched off.
5
You publish and switch it on The first automatic run happens at the next scheduled time.
The workspace opens next to the chat, so you watch the flow take shape.

The proposal card lists the steps, which apps and accounts are required and why they're needed. It also shows what period of data it reads, where the output ends up, when it runs and in which time zone, plus a rough credit estimate. If we can't be sure about the cost, the card admits it instead of guessing. If an app is missing, link it right from that card. Your request resumes right after. Connecting an account on its own never publishes, schedules or sends.

Planning begins with the nearest approved template. You can also start from one on the Agents page. Both paths lead to the same editable draft.

ChatFuse spots patterns too. Run the same job type successfully on 3 separate days within a 14 day span, and the system may suggest saving it as an agent. That is our baseline rule. These suggestions stay low key, with at most one new idea per session. Each one can be dismissed or snoozed, or you can switch off that whole kind of suggestion. Accepting a suggestion creates an inactive draft only. Nothing turns on without your say so.

Can you edit an AI agent workflow in a visual editor?

You can. A visual canvas greets you when an agent opens. Pull steps from a palette, drag them, link them up or break links, add a step or remove one, and undo or redo as you go. Settings sit in a side drawer, so a daily email briefing fits into 6 clear steps. On desktop the canvas shares space with the chat window. Type a tweak and watch the flow shift, or drag a block and keep talking.

Two ways in, one agent Say it or drag it. Both edit the same draft.
Chat Say what you want
  • Send it to Slack instead
  • Only include messages from clients
  • Run it now
  • Show me the last result
Visual canvas Shape it directly
  • Add steps from the palette
  • Drag, connect and reconnect
  • Open a step's settings
  • Undo, redo, expand to full page
Every change in one shows up in the other.

Chat and canvas share one draft, which lives on the server, and both tools edit it. Tell chat to switch the briefing from email to Slack and a proposal appears beside the last save. The server checks it, then it merges. Move a block on the board and the next reply knows.

Two tabs might clash, or a chat edit could hit a canvas move. Whichever change is stale loses, so it can't wipe out the newer one. Your own edit stays put, you see the fresh version, and you layer your edit on top. You can expand the canvas to fill the screen and return to the chat later. Every drag works with keys or taps too, and on a phone the canvas becomes a simple ordered list of steps, with settings in bottom sheets.

Which AI model runs each step?

You don't pick. The ChatFuse orchestrator handles it, choosing from models we already vetted and approved for that exact kind of task. Planning gets a strong model. Simple jobs like sorting mail or grabbing a name go to the cheapest option that still works. Some checks don't need AI at all. Date ranges are one example. No model runs there.

Models are the plumbing Who does each step of a daily email briefing.
Plan Strong planning model → once, at publish → never on an automatic run
Schedule No model → a trigger in your saved time zone
Read the mailbox No model → an app action, only mail since the last run
Filter No model → a declared rule for sender and date
Summarize Approved summary model → picked by the orchestrator → checked for health and price first
Save and deliver No model → the notice is written from the run record
Language work gets a model. Everything else gets a rule.

This mirrors how AI model orchestration works in our chat. The difference is these jobs loop. We test every new model for a role before it sees live work. Cost and reliability get checked on every single call. If a model glitches, the agent swaps to another one already approved for that step. That keeps fallbacks from blowing up your budget or scope. Within a run, the system sticks with the same model and provider across steps when the rules allow, which keeps the prompt cache warm.

We also retire old models. Read more in AI model deprecation. When it happens, ChatFuse finds every agent using that model. It suggests a tested replacement and waits for your nod. Nothing changes without your say so. ChatFuse might flag a cheaper option too. But only after testing it against the current setup. And it stays a suggestion until you review it.

Picking a model in chat just changes who you talk to right then. Published agents keep the models they were approved with. Testing something new in conversation won't touch an automated job. See the orchestration platform post for the full routing picture.

What can an AI agent workflow access?

Only what you hook up and say is okay. Through our app integrations, ChatFuse already reaches more than 3,000 apps, and your agents work with those same connections. Each action gets switched on for agents once it passes its checks, and every one needs its own permission.

What agents can reach The same connections as ChatFuse chat, one permission at a time.
Apps ChatFuse connects to 3,000+ the same connections your agents build on
Permissions 1 per action reading never implies sending
Ways to start 6 schedules, events, monitors and you
Each action is switched on for agents once it passes its checks.

They can also use what's already inside ChatFuse. On top of that, each step has a shared toolkit for everything that happens between the apps.

Beyond your apps What an agent can draw on inside ChatFuse.
Inside ChatFuse What you already keep
  • Memory, opt in for shared work
  • Projects and their files
  • Saved files in your Library
  • Past chats
  • Web search
  • Your approved Skills
Building blocks What a step can do
  • Summarize, extract and classify
  • Write text and documents
  • Generate images and video
  • Filter, branch and loop
  • Wait for a time or an approval
  • Save to your Library or leave a notice
Each step gets only the inputs it needs.

Each one of those is its own permission. Letting an agent read your Gmail doesn't mean it can turn around and post what it found to Slack. If it writes a summary, it keeps the original sensitivity of those emails. Personal memory is off by default for shared work. Files from one project won't ever show up in another project's agent. And nothing an agent reads, like an email or some web page, can ever change what it's allowed to do, who gets its output, or how much it can spend. It doesn't matter what the text says.

Which apps can AI agent workflows connect to?

ChatFuse Agents works with the same 3,000+ apps as ChatFuse chat, across email and calendars, team chat, docs and files, data, project trackers, sales and support. Most of what an agent does in your apps is reading. Writing, like sending an email or opening a new Jira ticket, is narrower on purpose.

Connected apps Popular connections, by category.
Email and calendar Gmail, Outlook, Google Calendar
  • Read mail, threads and attachments
  • Send, draft or reply to email
  • Read events and find free time
  • Create calendar events
Team chat Slack, Microsoft Teams
  • Search messages and threads
  • Find channels and people
  • Post to a Slack channel you chose
  • Reply in a Teams thread
Docs and files Notion, Confluence, Google Drive, Dropbox
  • Search and read pages and files
  • Create Notion and Confluence pages
  • Add text to a Notion page
  • Create a Google Drive file
Data Google Sheets, Excel, Airtable, Google Analytics
  • Read sheet and workbook ranges
  • Read Airtable records
  • Run Google Analytics reports
Projects and tickets Jira, Linear, Asana, ClickUp, Todoist
  • Search and read issues and tasks
  • Open Jira and Linear issues
  • Create Asana and ClickUp tasks
  • Read completed Todoist tasks
Sales and support HubSpot, Salesforce, Zendesk, Intercom
  • Search companies, contacts and deals
  • Read Salesforce accounts and opportunities
  • Search tickets and conversations
Research and ops Dovetail, PagerDuty, Canva
  • Search Dovetail insights and notes
  • Read PagerDuty incidents and logs
  • List your Canva designs
Messages Text message
  • A short notice with a link to the full result
A sample of the 3,000+ apps ChatFuse connects to, with examples of what an agent can do in each.

Here's what reading looks like with some of the most popular ones. In Gmail and Outlook it can search your mail and open whole threads along with their attachments. Google Calendar and Outlook show it your events and your open slots. Slack and Microsoft Teams conversations are readable too. Notion and Confluence pages are open to it, and so are files in Dropbox and Google Drive. From Google Sheets and Excel it pulls cell ranges, and from Airtable, records. Google Analytics reports can be run on demand. On the project side it looks at Linear and Jira issues, plus tasks in Asana, ClickUp and Todoist. In HubSpot and Salesforce it can look up companies, contacts and deals. Zendesk tickets and Intercom conversations are searchable. It can also search Dovetail research, pull PagerDuty incident logs and list what's in your Canva account.

Write actions are more limited, and that's by design. Email can go out from Gmail or Outlook, either sent or saved as a draft, and Gmail threads can get a reply. New events can land on Google Calendar or an Outlook calendar. In Slack it posts to a channel you picked, and in Teams it answers inside an existing thread. It can create a new page in Notion or Confluence, or just add some text to an existing Notion page. It can create a file in Google Drive. It can open a new issue in Jira or Linear. It can create a task in Asana or ClickUp. Last, it can text you a brief notice that links to the result. But it can't just do any of this on its own. Every single write action needs your direct approval for the exact content, or it has to fall under a very specific, narrow permission you already set up for that one place.

What can start an AI agent workflow?

You can kick one off, or an event can. Scheduling's just one of 6 ways to get an agent running, and every single one has to pass the same checks for permissions, budget, and whether it's already going.

What starts a run Scheduling is 1 of 6 ways in.
You Run → from chat or the Agents page
A schedule Daily, weekly, monthly or once → in a saved time zone
New email A mailbox you connected → each message counted once
A calendar change A calendar you connected → new or changed events
A saved file A new version → in your Library or a project
A monitor A condition you set → on a source you chose, with its own consent and limits
Every start passes the same permission, budget and overlap checks.

If you start a run yourself, it uses the agent's published version. The same goes for any run that starts automatically. A monitor isn't something that just happens, you set it up on purpose, and it comes with separate consent and separate limits. ChatFuse doesn't ever go poking around in your accounts on its own.

Can a workflow branch, loop or run steps in parallel?

It can. You get branching and looping and parallel work. But there are guardrails. The system filters lists. It picks a path. It runs tasks at the same time then merges them. It waits for a set time or for someone's approval. It even calls another agent as part of the flow.

Advanced flows Real workflow logic, with limits you can see.
Can Inside the published flow
  • Filter, branch and join
  • Loop over a list, up to a limit
  • Run branches in parallel
  • Wait for a time or an approval
  • Call another agent as a subflow
  • Pick between options you reviewed
Can't Ever
  • Run arbitrary code
  • Loop forever
  • Give itself a new tool or recipient
  • Rewrite its own steps
  • Spend past its budget
A subflow gets the overlap of both agents' permissions, never the sum.

Think of a subflow as a nested agent. It is locked to one version. Its access rights are the overlap of its own and the parent's, never the sum, so it can't reach anything the parent can't. An adaptive step chooses from a menu you approved. It cannot create new tools. It cannot pick new people or times. Loops have caps on count, time, tokens and cost. A branch that doesn't run shows as skipped instead of as an error.

Do you have to leave the chat to manage an agent?

No. You can do all of it right in the chat. Start an agent, stop it, check its last answer, look back at its history, or fix a connection that broke, all without going anywhere else. There's a menu to pick an agent, and when you choose one, it just tags it. It doesn't run anything on its own.

Managing agents From wherever you already are.
In chat Ask → run, pause, last result, history, fix a connection
Agents page Your inventory → Run, Pause, Duplicate, Archive, Delete, Edit
Run detail Result first → then sources, steps, cost and cache savings
Notification bell What needs you → finished results and approvals waiting
Home and projects At a glance → upcoming runs, recent results, anything waiting
On your phone Same agents → as an ordered list of steps
Picking an agent in chat selects it. It never runs it.

The Agents page shows everything you've got, laid out like Library and Personas. For each agent, you see what it's for, if it's running or not, what it's doing now, what it last did, when it's next set to go, and how its apps are doing. You get buttons to Run, Pause, Duplicate, Archive, Delete or Edit it. If you go into a run, you see the result first, then the places it looked, every step it took, the cost, including what came from cache and what it saved, and anything it sent out.

You'll also see a bell up in the corner. It holds onto all those messages that used to pop up and disappear. It collects agent alerts even when your browser's closed, and if you click one, it takes you straight to the result or the thing waiting for your okay. The notice text comes straight from the run log, it's not made up by a model. Your Home and project pages have little summaries too, showing what's about to run, what just did, and what needs your attention.

You can also ask someone to look over an agent and add notes. A reviewer can see things and comment, but they can't publish, run, or approve any sends. And if you share a public link, it doesn't let anyone actually control the agent.

What happens when you edit a published agent?

Nothing changes live. Edits stay in draft mode. The old version keeps running on its schedule. Once published, that snapshot is locked forever.

From draft to live Each button does one thing.
1
Save Keeps your draft. Nothing live changes.
2
Test Reads a small sample you choose and sends nothing.
3
Publish Creates a fixed version for future runs.
4
Activate Switches on the triggers from the next slot.
5
Run One run of the published version, right now.
Moving boxes around is layout. It never needs a new version.

Live runs pull the published build. So a half finished edit can't slip out. Running a paused agent manually doesn't unpause it. Publishing again only affects runs that haven't started yet. Active tasks finish on the version they started with. Shifting boxes is just layout. That needs no new version or approval. Tweaking instructions, sources, destinations or timing counts as a real change. Those require a publish step. A duplicate starts switched off, with no schedule and none of the original's permissions. Deleting blocks future runs but keeps the receipts.

How do approvals keep a human in the loop?

An approval only covers that exact thing you're looking at right now. It doesn't give a blanket okay. For a ChatFuse Agent, we tie the approval to the message itself, who gets it, which account sends it, what it's supposed to do, and a unique hash for any files. Alter any single piece of that, and we'll come back to you for a fresh approval.

Human in the loop An approval covers exactly what you saw.
You approve This exact send → this body, these recipients, this account, these attachments
Something changes Approval void → you're asked again
You read a notice Nothing happens → until you decide
Standing permission Narrow by design → one fixed destination, one kind of content
Switching on a schedule is never unlimited permission to send.

These approvals aren't permanent. Only someone with the correct permissions can grant one, and just getting a notification doesn't mean you've said yes. You can create a standing permission if you don't want to approve every message. But it's narrow: one destination and one content type, and you have to personally approve that rule. Switching on a schedule never gives unlimited permission to send. We covered a similar rule for chat already in AI agent write actions.

What happens if an agent can't tell whether an email went out?

It checks with the provider before it would ever send again. This is the one design rule I care about the most.

The risk is simple. A worker can crash right after it tells the provider to send an email, but before it writes down that the job is done. If you just retry blindly, you get two copies of the same email.

So, every single email send gets one unique ID. This ID stays the same, even if the worker crashes and we have to restart. Right before we actually call the provider to send, the system grabs a permit for that one send.

If the worker dies after grabbing that permit, we mark the outcome as unknown. The next worker that picks it up has to go ask the provider what happened to the original request. We only send it again if the provider can show the original never left, or if the provider's own systems say it's okay to retry because they'll catch the duplicate. If it's not clear, the whole thing gets handed off to a person to figure out.

When a send gets interrupted Where a worker can die, and what happens next.
1
Before the send permit Nothing was sent, so the next worker can safely carry on.
2
Permit taken, provider call in flight Marked uncertain. The next worker asks the provider about the original send.
3
Provider accepted it, receipt not saved Reconciled from the provider's record. The email is never sent again.
4
Receipt saved, billing not settled Settled once from the receipt. The send itself is left alone.
In ChatFuse, a resend needs proof that the first one never went out.

We also split the result from the delivery. Let's say your report gets generated and saved, but the notification to you fails. The report itself is already done. You can just retry sending the notification. You don't have to pay to generate the whole report again.

How does caching keep repeat runs cheap?

You pay for a job one time. Daily agent work repeats itself. ChatFuse Agents lock in the plan once. They read sources once. They process items once. Tokens only burn on new material.

Pay once What a daily run spends on work it already did.
Planning calls per run 0 the plan is stored at publish
Reads per email 1 only mail since the last run
Summaries per unchanged email 1 reused on later runs
Sends, approvals and deliveries are never cached.

Planning happens one time, at the moment you publish, and the result is stored alongside that version. That's why automatic runs never wake the planning model. Reading works from a bookmark, so a mailbox check only pulls messages newer than the previous run. Processing saves against exact inputs. An unchanged email reuses yesterday's summary. If two of your agents summarize the same inbox, you only pay for that work once. If none of the inputs moved since last time, the plan is for the agent to report that and hand back its previous result. Sends, approvals and deliveries are always left out of caching. Every cache hit checks access rights. Reuse needs a perfect match. Private content stays within its account. It never crosses over.

Provider prompt caching helps inside a single run too. The static part of the prompt goes first. It stays the same every time.

Prompt caching and batch prices What reused or delayed work costs, as a share of the normal input price.
Normal input tokens 100%
Batch API, OpenAI and Anthropic 50%
Cache read, GPT-5.6 and later 10%
Cache read, most Claude models 10%
Cache read, Claude Opus 5.5 and Sonnet 5.5 5%
Compiled by ChatFuse from the Anthropic and OpenAI API documentation, October 2026.

Anthropic's API charges a tenth of the normal input price for most Claude models when reading from their prompt cache. Claude Opus 5.5 and Sonnet 5.5 drop to a twentieth. OpenAI caches automatically on GPT-5.6 and newer. Prompts need at least 1,024 tokens. The price is also a tenth of the input cost. Both providers also discount batch jobs by 50% when the work isn't urgent, with OpenAI promising results within 24 hours. Anthropic finishes most batches in under an hour. Background steps can use them. Chat steps never use batch.

Anthropic prompt caches last 5 minutes by default. GPT-5.6 and later hold them for 30 minutes from last use. The savings from one day to the next come from planning, reading, and processing just once. It matches the idea behind energy efficient AI model routing: a step that never runs burns no compute.

How do scheduled AI agents handle time zones and missed runs?

Each scheduled agent keeps the time zone you pick when you set it up, and if runs get missed, only the latest one is made up. The zone won't jump around just because you travel with your laptop. If you locked it to Los Angeles, it stays in Los Angeles.

Scheduled AI agents Clock edges, handled the same way every time.
March 8, 2026, 2:30am Skipped that time never happened in Los Angeles
November 1, 2026, 1:30am Once at the first of the two
The 31st, in February Skipped last day of the month is its own option
Each agent keeps its saved time zone wherever you travel.

Say the platform goes dark for 3 days. The agent doesn't try to replay every single missed trigger. It catches up once, at most, by running the latest slot it skipped. By default, two runs of the same agent never overlap. Dates work the same way. A relative term like "yesterday" locks to the original schedule date. So if a March 10 job finally fires on March 12, it still pulls data from March 9.

Do agents keep running after you log out?

They do. But only if you granted background permission first. That setting lives apart from your login state. Logging out ends your session. It does not stop a live agent. We never piggyback on your browser to keep things going in the background.

That permission is tight. You pick the accounts. You pick the actions and where they go. You set the goal. You set the caps. You set the expiry date. Take it away and the agent stops ahead of its next send. An email that's already gone stays gone, though. Money works the same way. Limits apply per run. Per agent. Per user. Credits don't refill themselves. If a price or budget is missing, the agent stops before it spends a single credit. We can also flip switches independently. Stop new runs. Block external sends. Kill one app action. Turn off suggestions. Your standard chat keeps humming along. Read about the data controls on our security page.

When will ChatFuse Agents be available?

No date is set. We are still building it. I want to test those rules first. Announcing a launch now would mean bolting on safety later.

Can I still choose a specific model for an agent?

Yes, though you'll rarely need to. To swap one, you change it in the agent's settings and then publish.

Each step in an agent's work uses a model from a list the orchestrator already approved.

Changing the model in the middle of a chat just changes that one conversation. It doesn't do anything to the agent itself.

Can an agent send email without asking me?

No, it can't. Not unless you already granted permission for that exact account and destination. And if anything it does needs you to look at it first, the whole thing just stops and waits for you. A test run doesn't send anything for real, ever.

To follow along as this takes shape, create a ChatFuse account.

Back to Blog

Written by Nico

Share

Comments

Loading comments…