Workflow assistants
Workflow assistants are an advanced form of AI assistants in AI-School. Instead of a free-form conversation without a fixed structure, the user follows a defined sequence of steps — driven by the AI. This makes it possible to automate complex, multi-step processes, such as an entire lesson from start to finish.
What is a workflow assistant?
A workflow assistant consists of a visual workflow of nodes connected by arrows (edges). Each node performs a specific task, such as:
- Start / End — the starting point and endpoint of the workflow
- Evaluate — analyzes the context and stores structured information in memory
- Condition — evaluates an expression and routes the flow in the right direction
- LLM — calls a language model for a specific task (optional: waits for user input)
- Approval — asks a yes/no question and routes the flow based on the answer
- Connect — connects routes without an AI task or visible output, useful for keeping a workflow organized
- Subagent - performs the same task in parallel for multiple items, for example a student per grading round
The workflow automatically saves its state after each step. When the user provides input, the workflow resumes exactly where it left off.
Create a workflow assistant
Open Assistants and choose the Workflow assistants tab. In the card at the top, click New workflow and choose Create or edit workflow with AI, Empty workflow, n8n workflow or one of the presets. Under Quick start, you can start a preset directly or choose Use as template.
You can also convert your own assistant: in the assistant card menu, choose Open as workflow. You will get a new, uncoupled draft; the original assistant remains available. Review and test the suggested steps before publishing.
As with regular assistants, you can share workflow assistants with groups and colleagues, also from the editor using the Share button in the toolbar. When sharing with colleagues, AI-School can automatically send an email notification so recipients know the workflow assistant is available.
Start an n8n workflow
In addition to AI-driven workflow assistants, AI-School can also start an n8n workflow via a webhook. An n8n workflow does not open a chat: without fields, the webhook is called directly; with fields, a form opens first. Administrators create this via Assistants → Workflow assistants → New workflow → n8n workflow.
Read the full explanation on the n8n workflows page.
General settings
When creating or editing a workflow, you configure the general settings via the settings panel. These settings apply to the entire workflow:
- Model: The AI model used by all steps. You choose one model for the entire workflow.
- Tools: Which tools are available in the workflow (e.g. Recording, Search SLO, Internet search). Enabled tools are available to all LLM steps unless you disable them per step.
- MCP servers: External integrations available in the workflow.
- Documents: Files that LLM steps can consult.
- Images: Images that LLM steps can use.
You can also choose whether the user may add their own files or images during the chat.
Files in workflow forms
A workflow can ask the user to provide files, for example a test, a grading rubric, or submitted student work. In such a file question, the user can:
- upload a new file
- choose an existing file from File management
- determine per question which file belongs to which part
New files are processed first. The workflow can only continue reliably once processing is complete. If a required file question is still being processed or has failed, the user must wait or choose/upload the file again.
Files added via the workflow form become available as assistant files for that chat. They are not automatically selected as regular chat files.
Per-step settings
In each LLM step, you can disable tools, files, and images that are enabled globally for that specific step. This gives you precise control over which resources are available in which step. At step level, you cannot add anything that is not already enabled globally.

For most users, a preset is the best starting point. You can then adapt the preset to your own needs.
Example: the Lesson assistant
The Lesson assistant is a ready-to-use preset designed specifically for education. It guides the user from start to finish through a complete lesson: from determining the topic and level, via learning goals and explanation, to exercises and a final summary.
Workflow overview
The Lesson assistant consists of the following steps (nodes), in order:
Explained step by step
1. Start
The workflow starts as soon as the user opens the chat and sends their first message.
2. Triage: Lesson topic (evaluate node)
What does it do? The AI analyzes the user's message and tries to determine:
- Topic — what is the lesson about? (e.g. "lever law")
- Level — basic, intermediate, or advanced?
- Enough info? — is there enough context to immediately create learning goals?
This result is stored in the workflow memory.
3. Enough info? (condition node)
If there is enough information (voldoende_info = true), the workflow goes directly to Create learning goals.
If the information is missing, the workflow goes to Gather information.
4. Gather information (LLM node, waits for input)
What does it do? The AI asks targeted questions to the user to determine the topic and desired level. Once the user has answered, the flow goes back to Triage: Lesson topic to evaluate again.
Example conversation:
🤖 "Great to have you here! To help you well, here are a few quick questions: 1. What topic do you want a lesson about? 2. What level are you at? (basic / intermediate / advanced)"
👤 "grade 9 physics, lever law"
After this answer, triage evaluates again and determines: voldoende_info = true.
5. Create learning goals (LLM node)
What does it do? The AI creates a numbered list of at most 4 to 5 concrete, measurable learning goals for the specified topic and level.
Example output:
Learning goals for Lever law – grade 9 (intermediate):
- You can state the lever law and explain the formula F₁ × r₁ = F₂ × r₂.
- You can perform calculations to determine unknown forces or arm lengths.
- You can apply the lever law to practical examples (scissors, wheelbarrow, seesaw).
- You can explain the difference between first-, second-, and third-class levers.
6. Approve learning goals (approval node)
What does it do? The AI asks the user whether the proposed learning goals are correct and whether the lesson can begin.
- Yes → continue to the lesson
- No → go back to Create learning goals to rephrase the learning goals
The user can view the learning goals via the expandable menu in the chat.
7. Triage: Learning goals (evaluate node)
What does it do? After each lesson cycle, the AI checks whether the user has mastered all learning goals. This is a strict evaluation: the user must demonstrably understand each learning goal.
8. All learning goals understood? (condition node)
- Yes → continue to Exercises agent
- No → continue to Lesson agent for the next learning goal
9. Lesson agent (LLM node, waits for input)
What does it do? The AI teaches the topic step by step based on the learning goals. After each part, the AI asks a comprehension question. Only when the user demonstrates understanding of the learning goal does the lesson continue.
After the user input, the flow goes back to Triage: Learning goals to evaluate progress.
Example:
🤖 "We’ll start with learning goal 1: the lever law. A lever is a rigid bar that pivots around a fulcrum. The force you need depends on the distance to the fulcrum. The formula is:
F₁ × r₁ = F₂ × r₂
Can you explain what r₁ and r₂ mean in this formula?"
10. Exercises agent (LLM node, waits for input)
What does it do? The AI asks at least one practice question per learning goal. The user answers the questions, after which the flow continues to Feedback agent.
11. Feedback agent (LLM node, waits for input)
What does it do? The AI gives detailed, personal feedback on the exercises completed. For each learning goal, it discusses what went well and where improvement is possible. The tone is honest but encouraging.
12. Finish? (approval node)
The AI asks whether the user wants to finish or keep practicing.
- Yes → go to Summary
- No → go back to Exercises agent for another round
13. Summary (LLM node)
What does it do? The AI provides a clear summary of all lesson content covered, followed by personal, motivating feedback on performance.
14. End
The workflow ends with an encouraging closing message.
"Great job in this lesson and see you next time!"
Full example conversation
Below is a shortened example conversation with the Lesson assistant about the lever law, grade 9:
| Who | Message |
|---|---|
| 👤 User | hi |
| 🤖 Lesson assistant | Great to have you here! What topic would you like a lesson about, and at what level? |
| 👤 User | grade 9 physics, lever law |
| 🤖 Lesson assistant | Perfect! I have created 4 learning goals. Would you like to start the lesson with these learning goals? |
| 👤 User | yes |
| 🤖 Lesson assistant | We’ll start with learning goal 1: the lever law. (explanation + comprehension question) |
| 👤 User | (answer to comprehension question) |
| 🤖 Lesson assistant | (continue lesson for learning goals 2, 3, 4 ...) |
| 🤖 Lesson assistant | You have gone through all learning goals! Time for the exercises... |
| 👤 User | (answers to practice questions) |
| 🤖 Lesson assistant | (personal feedback) Would you like to finish or keep practicing? |
| 👤 User | finish |
| 🤖 Lesson assistant | (summary + motivating closing) |
View progress
When you are chatting with a workflow assistant, you can view progress via the Workflow button to the right of the chat input. Clicking this button opens a panel with:
- All steps in the workflow (condition and note nodes are not shown)
- The status of each step:
- ⬜ Waiting: Not reached yet
- 🔄 Active: Currently being executed
- ✅ Done: Completed successfully
- ⏸️ Waiting for input: Waiting for a user response
- ⏭️ Skipped: Not executed (e.g. due to a condition)
- ❌ Error: An error occurred
Create a triage node
An evaluate node (triage node) extracts information from the conversation and stores it in the workflow memory. Condition nodes can then read those values to route the flow in the right direction.
Configuration
- Add an Evaluate node to the workflow.
- Write a system prompt that describes what the AI should analyze and what conclusions it should draw.
- Define the output schema with fields:
- Field name: The key you will later use to retrieve the value (e.g.
voldoende_info,niveau,route). - Type:
string(text),number(number),boolean(yes/no), orenum(choice from fixed values). Forenum, provide the allowed values separated by commas.
- Field name: The key you will later use to retrieve the value (e.g.
- Set max. iterations to prevent the node from running indefinitely.
Memory values
The stored values are accessible via the state. prefix in condition nodes, for example state.voldoende_info or state.niveau.
Set up a condition node
A condition node evaluates expressions based on the workflow memory and routes the flow to the correct next step.
Branches
A condition node has one or more branches:
- If: The first condition evaluated.
- Else if: Optional additional conditions.
- Else: The default route if no condition matches.
Writing expressions
Expressions are written in CEL (Common Expression Language):
| Desired behavior | Expression |
|---|---|
Field is true | state.voldoende_info == true |
| Field has a fixed value | state.niveau == "gevorderd" |
| Numeric comparison | state.score > 7 |
| Multiple conditions | state.niveau == "basis" && state.score < 5 |
Set up connections
Draw separate connections from the condition node for each branch to the correct next node. The editor shows a separate output on the node for each branch.
Using a connect node
A connect node does not perform an AI task itself. The node only passes the workflow on to the next step. Use this node when you want to bring multiple routes together clearly or when you need a technical intermediate step in the flowchart.
Practical examples:
- connecting a path that skips scripts to the step where images are chosen
- having multiple approval routes converge on the same next step
- making a long workflow visually easier to read without using a note node as a junction
A connect node must have at least one incoming and one outgoing connection. The node is not shown as a separate substantive step in the workflow progress.
Using a subagent node
A subagent node is intended for tasks that need to be performed multiple times in the same way. The node receives a list of items from workflow memory and starts a separate execution for each item with an isolated context.
Practical applications:
- grading a test per student
- creating an analysis per document
- generating a summary per completed form
- recording a separate report per section
Configuration
- Make sure a previous evaluate node stores a list of items in the workflow memory, for example
leerlingen_json. - Add a Subagent node.
- Set the source of the items.
- Optionally set a label field so progress is recognizable.
- Set the maximum number of parallel executions.
- Specify under which memory key the results should be stored.
The subagent context always contains only the item being processed at that moment. Therefore, make the prompt explicitly refer to the current item and prevent the AI from processing multiple items at once.
Recording in workflows
The Recording tool is especially useful in workflows. It allows the AI to automatically save intermediate results or final results as editable documents in the side panel.
Setup
- Enable the Recording tool in the workflow's general settings.
- In the system prompt of the desired LLM step, add an instruction to record certain content. Enable the tool for that step (or leave it enabled globally).
Example
In a learning goals step, you can write in the system prompt:
"Create learning goals for the specified topic and level. Then immediately record the learning goals using the Recording tool, with the title 'Learning goals'."
The user can view the recorded documents via the Recording button (📄) in the chat toolbar.
Restore conversation
If you are in the middle of a lesson and want to go back to an earlier point in the conversation, you can do this via the restore button (the history icon) on an earlier message. This removes all messages after that point and resumes the workflow from that exact moment.
Restoring is permanent — the deleted messages will no longer be available.
Edit workflow
As an administrator, you can open and adjust an existing workflow in the workflow editor. Click a node to change its configuration, add new nodes via the right-click menu, or drag connections to other nodes.
For a completely new workflow, you can start with an empty canvas or another preset.
Create or edit workflow with AI
Discuss your workflow with AI. Valid changes appear in the editor. Review and test the result before saving or publishing.