Workflows
A visual builder for multi-step AI automations: connect triggers, AI steps, logic and actions on a canvas, version them, and run them.
In Kasimir, Workflows are multi-step, form-based automations that you assemble on a visual canvas. A workflow always begins with a trigger (what starts it) and then runs a chain of nodes — AI steps, logic branches, and actions such as sending email or generating a document. Unlike a chat, a workflow runs reproducibly according to fixed rules, can be versioned, and can also start automatically (on a schedule, via a webhook, or from a public form).
This page describes the workflow editor, every node type, publishing (deploy), and running — exactly as the product behaves.
Overview: where workflows live
List: The
Workflowsentry in the sidebar opens theLibraryon theWorkflowstab, which shows your workflows as cards. Templates to copy are in theTemplatestab.Editor:
/workflows/<id>/edit— the canvas where you build.Run:
/workflows/<id>/run— the input form and the live run view.History / Executions:
/workflows/<id>/runs— the table of past runs.
Inside the editor, the top tab bar switches between Editor and Executions.
New workflows are private. Who sees, runs, edits or deletes a workflow is controlled via Share (see below). The creator as well as owners and admins may publish; creating and running workflows requires the “Create workflows” and “Run workflows” permissions.
Creating a workflow
In the library’s
Workflowstab, click+ New Workflow. In theCreate a new workflowdialog, enter aWorkflow name; optionally add aDescription, tickSave as templateand choose theInitial trigger type(default:Manual).Create workflowopens the editor.Alternatively, click a template in the
Templatestab — it is copied into your company, auto-arranged tidily, and opened in the editor.The new workflow already starts with a trigger of the chosen type; you can change the mode on the trigger at any time. The trigger picker only appears when a workflow has no nodes at all.
Sharing and permissions
Use Share in the editor to set visibility and shares:
Visibility: Private (default) or Whole company – everyone sees and runs company-wide workflows.
Shares to a person, a team or a project with the role View, Run or Edit. A team reaches all members, a project its members and its home team. For a company-wide workflow only Edit can be granted – everyone may see and run it anyway.
Visibility and shares can be changed by the creator and – for company-wide workflows – by owners and admins; only they see
Share. Someone who only holds a share cannot pass it on. Sharing with individual people needs no further permission; shares with teams and projects as well as “Whole company” also require the “Share workflows” permission (admins only by default).You can also add shares to a team or project in the
Workflowstab of the team or project view (Add workflow) and remove them there withRemove from here. In the library, a pill on the workflow shows which team or project it is assigned to.
Action | Who may |
|---|---|
Edit | Creator, “Edit” share; owners and admins for company-wide workflows |
Change the trigger (mode, on/off, new webhook secret) | Creator, owners and admins – an “Edit” share is not enough |
Publish | Creator, owners and admins |
Delete | Creator, owners and admins |
Pin for everyone | Owners and admins |
Owners and admins see other people’s private workflows under Administration → Workflows only as structure (name, cost, limits, disable, delete) – they cannot open or run them.
The editor
The editor has five areas:
Top bar (left): back arrow (to the library), emoji + name (clicking opens a menu with
Rename,Pin,Export/Importas JSON), the tab bar, and the autosave indicator (Saved,Saving soon…,Saving…orUnsaved — fix errors; without edit rightsView only).Top bar (right): the
On/Offtoggle, the gear forWorkflow settings,Share, theRunlink, the noteDraft — test runs use this state · Live: revision n, and theDeploybutton (creator, owners and admins only).Canvas (center): the nodes and their connections. Drag nodes freely; create connections by dragging from port to port.
Floating toolbar (bottom): add node, settings, history,
Tidy up(auto-layout), and undo/redo.AI assistant (left edge): the AI assistant tab (“KI-Assistent”) opens a chat in which you build and change the workflow. It works directly on the canvas; your own changes are kept.
Working on the canvas
Add a node: via the bottom toolbar, or via the
+on an existing connection (the new node is then inserted directly into that edge). The node picker opens with a search box and the category filtersLogic,AI,Actions. Typing filters;↑/↓move the highlight;Enteradds it.Loops: a loop sits in a violet frame; its body steps carry a ↻ and are connected by dashed lines. The violet
+inserts at the end of the body and only offers blocks allowed there. Drag steps into or out of the frame; a new loop comes with its Aggregate node.Select a node: clicking opens the right-hand settings panel (resizable; the width is remembered).
Node menu (
⋯):Test up to here,Test from here (with the last run's data)(once there is an earlier run), add comment, rename (changes the technicalslug),Disable node(pass-through), replace node, duplicate, clear output, and delete.Undo/redo:
Cmd/Ctrl+Zand+Shift. (Inside text fields the browser's native undo applies.)Tidy up: automatically arranges the nodes for clarity.
Export/Import: from the name menu you can save the workflow as JSON and load it back (import overwrites the current nodes and edges — with a confirmation).
The editor saves every change automatically after a short pause, also when you leave. Only if errors prevent saving does Kasimir ask before you leave — fix faulty nodes first.
Triggers — how a workflow starts
The trigger is the first node. There are five modes:
Mode | Starts from | Notes |
|---|---|---|
| The run page or a test run | Default; ideal while building |
| An external | Secret (bearer token, |
| Time-based via cron | 5-field cron expression + presets (e.g. “Weekdays 9:00”); all times are German time (daylight saving included); fixed input values can be stored |
| A public form at | Reachable without login; optional captcha; title/description/success message; code for embedding in your own website (iframe) |
| An event from a connected app | e.g. new Outlook mail, Jira/Confluence |
A form URL is public and login-free the moment you save it. Protect sensitive forms with the captcha toggle. A form accepts only a limited number of submissions per day; after that, senders see a notice. Your company can switch off public forms under Administration → Workflows; then Form is not available and such workflows cannot be published.
Input variables
On the trigger you define the workflow's input variables. Each variable has:
a technical key (lowercase a–z, digits, _, up to 40 chars),
a display label, optionally a placeholder,
a type: short text, text block, email, phone, URL, number, select (dropdown), single choice, multiple choice, on/off, hidden field, legal text/consent, file or knowledge source,
a required flag and optionally a default value.
These values are available to downstream nodes as {{trigger.input.<key>}}. For a webhook you map incoming JSON fields to these keys via JSONPath (e.g. $.email); the Outlook-mail trigger exposes a fixed set of variables (from, subject, to, cc, body, received_at, message_id, attachments).
File: at start you upload a file or pick a Kasimir document; {{trigger.input.<key>}} returns its text, .filename its name. Knowledge source: you pick a connected folder, a knowledge source, a document folder or a project – or, via Add a folder from the cloud, any folder of a connected cloud, which is then indexed. Every document search in the run is limited to that source. A badge shows the state of each source (ready, building x/y, not indexed, error). If the source is not fully indexed yet, the run waits (at most 3 hours) or, on request, starts with what is available. Both fields exist only for manual starts, not for webhook, schedule or public form.
Referencing variables
Anywhere a field is called a "template", you can insert values from previous steps:
{{trigger.input.<key>}}— a trigger input value.{{<slug>.output}}— the full output of a node (theslugis the node's technical name).{{<slug>.output.<path>}}— a nested field, e.g.{{research.output.rows}}.Inside a loop:
{{<loop-slug>.output.item}}for the current element and.indexfor the counter.
If a reference resolves to nothing, a visible marker like [MISSING:slug.output] appears in the result. That is the fastest hint to a mistyped slug or a step that has not run yet. Some names are reserved (including trigger, now, output, error, status, body).
Building blocks
The block picker groups all steps into AI, logic and actions. What each block does and what to keep in mind when setting it up is described under Workflow building blocks.
Limits can be set for the AI step’s tools: allowed and blocked websites and the number of searches for web search, allowed websites and up to five mandatory sources for reading pages (read before the run), and fixed sources and the number of hits for document search. Your company’s source policy applies on top.
The loop body must be linear, have exactly one exit and end in an Aggregate node. Branch, Router, HTTP request, Ask user, Delay and another loop are not allowed in the body. If a body step requires human approval or contains “Fill form” with review, the run fails before the first iteration. In the run view you see the first 100 iterations of each body node one by one with a short summary; further ones are only counted. Without its own cap a loop processes at most 200 items – a longer list stops it with a message. With “Max. Iterationen” (max. iterations, up to 1,000) at most that many run and the rest is skipped.
Actions that use external services (Microsoft 365, Google, Slack/Teams, Code, image generation) only work if the corresponding integration or service is set up in your company.
Per-node options
Every node also offers, via the ⋯ menu and the settings panel:
Name & note: a readable title (the
slugstays the technical reference) and a note on the node.Disable: the node is skipped and passes its input through.
Error handling:
stop(default — the whole run fails) orcontinue(the node is marked failed but the run proceeds; downstream output is empty).Retries: 0–5 re-attempts before error handling is applied.
Human approval: pauses the run before this node and waits for approval. Under “Benachrichtigen (Freigeber)” (notify approver) you choose who is notified via inbox and push; if left empty, it is the person starting the run.
AI fields: let the model fill individual fields automatically (
autoor viaprompt). This is not possible for recipients and targets (e.g. email recipient, HTTP URL). If a recipient or target comes from AI, file or search results – for automatic runs also from form or webhook inputs –, saving requires “Human approval” on this node.
Validation, saving, publishing
While you build, the editor validates continuously:
Nodes with configuration errors get a red badge; an error box at the bottom-left lists graph problems and the count of faulty nodes.
The editor saves automatically. While errors exist, autosave pauses and you cannot publish.
A workflow does not run from saving alone – saving keeps the draft, which test runs use. For every other start it must be published (deployed):
Click
Deploy. The panel shows the next version (semver) and a change diff (added+/ changed~/ removed−for nodes, edges, trigger).Choose the version bump
patch/minor/major.Enter a description (required).
Publish. Earlier versions can be restored from the same panel.
The On/Off toggle controls whether the workflow may start at all. A workflow that is unpublished or switched off cannot run — the run page points this out.
A test run uses the current draft – you do not need to publish; pending changes are saved first. By default it is a dry run: emails, file uploads and saves, HTTP calls, notifications and messages, integration actions and images are only described, not performed. Loops run over at most 3 items and files that are read are truncated. Actually perform actions performs the actions, run in full lifts these caps. Test from here in the node menu starts at a node with the results of the last run.
Running
Open Run (/workflows/<id>/run):
Fill in the Inputs form (the trigger variables). Required fields are marked with
*; missing ones are flagged before start. If results go to fixed targets (e.g. email recipients) or a named person sees them during an approval, this is shown above the button. If excerpts from sources that are not company-wide go to such targets, you confirm this with a checkbox.Click
▶ Run.
The run view shows:
a status banner: running, waiting for your input, waiting for approval, waiting for the knowledge index, completed, failed, or cancelled, plus progress
x / y steps.on an approval pause, a card with
Approve/Reject.while waiting for the knowledge index, the progress per source and
Start now with partial content.for Fill form, the review card (“Formular prüfen”) with the draft; completing the review creates the final version.
on an ask-user step, a form with
Continue.a result card with
↓ Download filewhen a step produced a file.a step-by-step list with live output per node.
an expandable Technical overview (diagram) of the canvas with live status.
Restart resets the view; History leads to past runs.
Runs are not executed in the browser. The live view updates automatically – you can leave the page and the run continues.
History / Executions
At /workflows/<id>/runs (the Executions tab) you find a table of runs with Date, Trigger, Status, and Duration. You can filter by trigger type and reload with Refresh. Clicking a row opens the run detail. Members only see runs they started themselves – so not runs from a schedule, webhook, form or integration. Owners and admins see all runs; other people’s manual runs only with status, time and cost, without being able to open them.
The Cost column shows the AI cost per run; the run detail shows the cost of this run and the cost per node.
Workflow settings
The gear opens Workflow settings:
Icon (emoji) and name
Description
Default model – the model AI steps use when they have no model of their own
Project (knowledge search) – assigns the workflow to a project; its document search then includes project documents
Pin to sidebar (for everyone: owners and admins only)
Cost & limits – monthly limit, limit per run and runs per hour (see workflow settings in administration)
Automatic runs – whether runs without a starting person (schedule, form, webhook) may use company knowledge and the creator’s personal connections; confirmed by owners or admins
Limits of the current version
Intentional constraints: only the AI step without tools and without structured output shows its text while it is being written; all other nodes show their output when the step finishes. Loops are linear and end in an Aggregate node. Diamond join: if several paths reach the same node, it runs only once (first path wins). External actions require the respective integration.