AI Flow Builder

Prev Next

What it is

The AI Flow Builder is an assistant built into the Visma Flows canvas. You describe the automation you want in plain language — "every Monday, post the Norwegian public holidays in the general channel on Slack" — and the assistant picks the connectors, configures each step, wires them together and hands you a finished draft on the same canvas you would have built by hand.

It is not a separate product or a separate flow format. The assistant builds with the same triggers, actions, connections and references you use manually, so anything it produces can be opened, edited, extended or thrown away on the canvas like any other flow.

The assistant drafts, you publish. Everything the assistant does happens in a draft. It has no way to publish a flow, switch one on, or run a step that uses one of your connected accounts. Reviewing and publishing is always your action.

Quick example

You type:

Every weekday at 5 AM check if today is a public holiday in Norway and post a message to our Slack channel named connect-flows.

The assistant works through it and builds the flow on the canvas beside the chat:

The chat panel on the left, the flow it built on the right.

  1. Trigger — Scheduler, daily at 05:00, weekdays only.

  2. Get today's date — a small code step that computes the current year and today's date.

  3. Fetch Norway's public holidays for the current year from a public holiday API.

  4. Check if today is a holiday — a code step comparing today's date against the holiday list.

  5. Filter — the flow continues only if today is a holiday.

  6. Slack message — posts to connect-flows naming the holiday, on your active Slack connection.

Each step appears on the canvas as it is created. When it is done, the assistant validates the draft and summarises the flow it built, step by step. You review it and press Publish.


Getting started

The way in is a strip headed Build a flow with AI"Describe what you want in plain language — the agent picks connectors, configures each step and assembles the flow." Type into Enter an idea or app name to get started and press Start building. (The button stays greyed out until you have typed something.)

The entry strip on the canvas of a flow that has no conversation yet.

The same strip appears in two places:

Where

What happens

My Flows page

Flows creates a new flow, opens it, and the assistant is already working on your message when the canvas appears.

Flow canvas

Above the empty "1. When this happens… Select triggering event." trigger card, on any flow that has no conversation yet. Your message goes straight to the chat panel, which opens itself and starts building.

Once a conversation exists the strip stops appearing on that flow — from then on the AI button on the canvas opens the chat panel.

In the chat panel, Enter sends your message and Shift + Enter adds a new line.

Two controls sit in the panel header. Hide chat (the arrow) closes the panel — the AI button on the canvas brings it back, with the conversation intact. Clear chat (under the settings icon) starts a fresh conversation: it empties the transcript and leaves your flow exactly as it is.


Core concepts

Conversation

Each flow has one conversation attached to it. The assistant reads it every time you send a message, so you can build a flow over several messages — "now add a filter so it only posts on weekdays" — without repeating yourself. Reload the page and the conversation, including the list of what the assistant did, comes back.

Clear chat (under the settings icon in the panel header) starts a fresh conversation. It empties the transcript only — your flow is not touched. Use it when the conversation has wandered and you want the assistant to start reasoning from the flow as it stands now.

Conversations are kept for 30 days, then deleted automatically.

Draft

The assistant only ever edits a draft. A brand-new flow starts as a draft; a flow you have already published gets a new draft the first time you ask for a change — exactly what the canvas Edit button does. Your published, running version keeps running untouched until you publish the draft yourself.

Connection

A stored link to an external account ("Slack — Acme workspace"). The assistant uses your connections; it never creates, authorizes or sees the credentials behind them. When you have an active connection for an app, it attaches it automatically. When you have several, you can ask it to switch to a different account.

Sample (webhook and email triggers)

A webhook or incoming-email trigger has no data to reference until it has seen an example payload. The assistant can apply one of the saved samples for that trigger, or write a new reusable sample from a payload you describe in chat — so you do not have to leave the conversation to fire a real request first.


What the assistant can and cannot do

It can

It cannot

Find the apps, actions and triggers available to you

Create or authorize a connection

Set and reconfigure the trigger, and name the flow

Publish, enable or disable a flow

Add, update, reorder, place and delete steps

Run a step that uses one of your connected accounts

Attach one of your existing connections to a step, or switch a step to another one

Change anything about a step other than its inputs and its connection

Map data between steps, including into message text

Invent a field a step does not actually produce

Build filters, branches, loops and waits

Do anything outside Visma Flows — it answers flow questions and nothing else

Write JavaScript or Python code steps when no built-in action fits

Act on any flow other than the one you have open

Apply or author webhook trigger samples

See or reveal your credentials

Check the whole draft for problems and repair what it can


Testing, and the one thing only you can do

Steps normally need to be tested before a flow can be published. The assistant handles that for you as it builds, and it will tell you which of two things happened:

  • Tested — the step really ran, and the data you see is its own output.

  • Skipped — the step was marked as tested without being run, because running it would have acted on the outside world (sending an email, making an HTTP request). The data shown is what the action declares it produces. The step still counts as tested and the flow is still publishable.

There is one case the assistant cannot resolve: data that only exists once a step has really run against your account. If a later step needs a field that a connected step has not produced yet, the assistant stops building and asks you to open that step on the canvas and test it there. Say the word when you have, and it picks up where it left off.

The assistant never runs a step on one of your connections — a real run would post, append or email for real. If it ever claims to have tested such a step, that is a mistake worth reporting.


Editing a flow that already exists

You can hand the assistant a flow you built by hand, or one it built for you weeks ago:

  • "Change the message to include the customer name" — it reads how the step is configured today before changing it, so nothing you set is silently lost.

  • "Remove the second Slack step" — it deletes it and re-maps anything downstream that referenced it.

  • "Use my other Slack account for this step" — it switches the connection and tells you which one it moved to.

  • "What does this flow do?" — it describes the flow and changes nothing. Reading never opens a draft.

For a published flow, the first change opens a new draft copied from the published version. The assistant says so when it happens.


What you see while it works

While the assistant works, its message shows a live status line — Thinking…, then Working… — which settles into a summary such as ✓ 20 actions when the turn finishes (or · 1 failed if something went wrong along the way). Expand it to see the checklist of everything the assistant did, in order:

Browsing apps · Finding actions · Reading action details · Checking connections · Reviewing available data · Setting the trigger · Adding a step · Updating a step · Removing a step · Connecting steps · Reviewing the flow · Validating the flow

The same block holds the assistant's reasoning, so a turn with no tool calls collapses to Thought about this. Steps appear on the canvas as they are created, not in one lump at the end, and the checklist is saved with the conversation — it is still there after a reload.


Writing a good request

  • Start with the outcome, not the mechanics. "Post yesterday's failed payments to the finance channel every morning" beats "add a schedule trigger and then a webhook".

  • Name the apps and the specifics you already know — the channel, the sheet, the address, the time. Anything you fix up front is one fewer question.

  • Answer its clarifying question rather than rephrasing your original message — it asks when guessing would produce the wrong flow.

  • Correct it directly. "No, that should run once per row, not once" is understood; it will move the steps into the loop.

  • Ask what it can see. "Which apps can I use here?" and "what data does the trigger give me?" are good questions and get real answers.

If it has built a lot in one go, it may hand back and ask you to send another message to continue. Your draft is saved between messages, so just reply and it picks up right after the last step.


Validation before you publish

Before the assistant tells you a flow is done, it checks the whole draft and reports anything that would stop it from being published — an empty loop or branch, a reference that does not resolve, a disconnected step, a missing trigger, an untested step. It repairs what it can and re-checks its own fix.

What it cannot fix, it hands to you plainly: a step you must test, a trigger sample only you can describe, a step waiting on a connection. That list is the short version of what stands between your draft and Publish.


Privacy, security and data handling

  • Your credentials never reach the model. The assistant works through the same Flows services the canvas uses. Connection secrets and OAuth tokens are not part of its context and cannot be echoed back.

  • Everything is scoped to you. The assistant acts as you, in your tenant, on the one flow you have open. It cannot see or touch another customer's data, another user's flows, or another flow of your own.

  • Your data stays in Europe. What you type in the chat, and what the assistant reads from your flow, is processed in European data centres — it is not sent outside the EU.

  • Your data is never used to train AI models. The AI service behind the assistant does not store what you send it, does not share it with the model's provider, and does not use it to train or improve any model.

  • Conversations are retained for 30 days, then deleted. Clear chat removes a transcript immediately.


Limits and things to know

  • Drafts only. Publishing, enabling and disabling a flow are yours alone.

  • Inputs and connections only. To change anything else about a step — its name, its position by hand, its advanced settings — use the canvas.

  • One flow per conversation. The assistant cannot work across several flows at once.

  • Long builds may take more than one message. The draft is saved throughout; just reply to continue.

  • It is an AI and it can make mistakes. Review the flow on the canvas before you publish. As the panel says: AI Flow Builder is AI and can make mistakes. Please double-check responses.


FAQ

Will it change my live flow?
No. It edits a draft. Your published version keeps running until you publish the draft yourself.

Can it send a real Slack message or email while building?
No. Steps that act on the outside world are marked as tested without being run.

Can I mix AI and manual editing?
Yes. Build a skeleton by hand and ask the assistant to finish it, or the other way round. It reads the current state of the draft at the start of every message.

What if I don't like what it built?
Tell it what to change, delete the steps on the canvas, or discard the draft. Nothing is committed until you publish.

Does "Clear chat" delete my flow?
No. It only empties the transcript. The flow and its draft are untouched.

Why did it ask me to test a step?
Because a later step needs a value that only exists after that step has really run against your account — and running a connected step is your action, not the assistant's.