AI Workflows

Join your services together on a canvas. Drag in steps, connect them with arrows, and let SoftSolz run the whole thing for you. Workflows run inside SoftSolz, so there is nothing to embed on your website.

Overview

A workflow is a diagram that runs. It starts with one trigger, then follows the arrows through as many steps as you like.

Unlike a simple list of tasks, a workflow can make decisions. It can ask a question and go two different ways, repeat itself once for every item in a list, wait hours or days before carrying on, and use what an earlier step found in a later step.

Things people build with it:

You do not need to know how to code. Every step is a form you fill in, and every value you might want is offered to you in a list.

Your first workflow, step by step

This takes about two minutes and proves everything works. It does not send anything to anyone, so it is safe to try on a live workspace.

  1. In the sidebar, open AI Workflows.
  2. Press New workflow.
  3. Type a name, for example Hello canvas. Leave the description box empty for now.
  4. Press Create and open. The canvas opens.
  5. A gallery of templates appears. Press Escape to close it, because this time you are building by hand.
  6. On the left you will see a list of steps. Under Triggers, click Manual. A box appears on the canvas.
  7. Under Building blocks, click Notify the team. A second box appears.
  8. Hover over the bottom edge of the Manual box until a small circle appears. Drag from that circle to the top edge of the Notify box. An arrow now joins them.
  9. Click the Notify box. A panel opens on the right. In Message, type It works.
  10. Press Test run at the top.

Both boxes turn green and show how many milliseconds they took. Open the notification bell in the top bar and your message is there.

Nothing you build is live until you press Publish. Until then it is a private draft that only runs when you press Test run.

The canvas

The screen has three parts.

PartWhat it is for
Left, the step listEvery step you can add, grouped by service. Search at the top. Click a step to add it, or drag it where you want it.
Middle, the canvasYour workflow. Drag boxes to move them, drag between the circles to connect them, click a connection and press Delete to remove it.
Right, the settings panelAppears when you click a box. Two tabs: Settings to configure the step, and Data to see what it received and returned on the last run.

Each box shows its name, a short summary of how it is set up, and after a run, whether it worked and how long it took. A box with something missing is outlined in red and tells you what it needs.

Triggers

The trigger is what starts your workflow. Every workflow has exactly one, and it is always the top box.

TriggerStarts when
ManualSomeone presses Run. Good for testing and for jobs you do occasionally.
On a scheduleA repeating timetable you choose, in your workspace timezone.
Incoming webhookAnother system posts to a private web address. Use this to connect a tool SoftSolz has no step for.
Something happensAn event in one of your services. This is the powerful one.

Event triggers cover most of what happens in your workspace. A few examples:

You only see steps and triggers for services you have installed. Install more from the Marketplace and they appear here automatically.

Steps

After the trigger, everything else is a step. There are two kinds.

Service steps

These do something in one of your services: create a draft invoice, email an invoice to its customer, send a payment reminder, create and assign a task, publish a blog post, create and publish a social post, add a newsletter subscriber, cancel an appointment, search your Knowledge Base, and so on.

There are also Find steps such as Find invoices, Find tasks and Find appointments. These return a list, which you then feed into a For each step.

Building blocks

These work in every workflow, whatever services you use.

BlockWhat it does
IfAsks a yes or no question and splits the path in two.
SwitchCompares one value against several options and picks a route.
For eachRepeats the following steps once for every item in a list.
FilterStops the workflow here unless a condition is met.
WaitPauses for minutes, hours or days, then carries on.
Set valuesBuilds named values that later steps can use.
Call a URLSends a request to another system.
Send an emailEmails one or more people. See Sending email.
Notify the teamPosts a notification inside SoftSolz for your workspace members.

Passing values along

This is the part that makes workflows useful, and it is easier than it looks.

Any step can use something an earlier step produced. You never type these by hand. In any text box, click the braces button and pick the value you want from the list. It drops in looking like this:

Hi {{ trigger.data.name }}, invoice {{ nodes.create_invoice.output.invoice_number }} is ready.

The picker only offers values from steps that genuinely run before this one, so you cannot pick something that will not exist yet.

There are three families of value:

Looks likeMeans
trigger.data.somethingSomething from whatever started the workflow, such as the invoice that was paid.
nodes.step_name.output.somethingSomething an earlier step produced. The step name is shown under each box and you can rename it.
loop.itemInside a For each, the item currently being worked on. loop.index is its position.

Tidying values up

You can adjust a value with a filter, written after a vertical bar:

{{ trigger.data.total | currency }}          gives  1,250.50 in your currency
{{ trigger.data.name | upper }}             gives  ADA
{{ trigger.data.due | date: 'DD/MM/YYYY' }} gives  09/03/2026
{{ nodes.check.output.tier | default: 'standard' }}

The filters available are default, upper, lower, trim, length, join, json, number, round, date and currency.

Conditions and branching

An If step asks one question and sends the workflow one of two ways. It has two outputs at the bottom, marked true and false. Connect each to whatever should happen next. You can leave one unconnected if nothing should happen on that path.

  1. Add an If step and connect it after your trigger.
  2. In Value, use the braces button to pick what you want to check.
  3. Choose the comparison in Is.
  4. Fill in Compared with, unless the comparison does not need one.

Available comparisons: equal to, not equal to, containing, not containing, greater than, greater than or equal to, less than, less than or equal to, empty, not empty, true, false.

Numbers are compared as numbers, so 900 is correctly greater than 100. If either side is not a number, the answer is no rather than an error.

A Switch step does the same job when there are more than two routes. Give it a value to look at and list the options. Anything that matches nothing takes the anything else route, unless you turn that off.

Repeating over a list

A For each step runs everything after it once per item.

  1. Add a step that returns a list, such as Find invoices.
  2. Add a For each step after it.
  3. In List, use the braces button and pick items from the finding step.
  4. Add whatever should happen per item after the For each step.
  5. Inside those steps, refer to the current item as loop.item, for example {{ loop.item.invoice_number }}.

Set Stop after to cap how many items are handled in one run. If the list is longer than the cap, the run tells you it was cut short rather than silently skipping the rest.

Waiting

A Wait step pauses the workflow. Set an amount and a unit, from seconds to days.

Short waits happen immediately. Longer ones put the run to sleep and it wakes itself up later, so a wait of three days costs you nothing while it waits and picks up exactly where it left off.

A waiting run shows as Waiting in Run history, with the time it will continue.

When a step fails

Every step has an If this step fails setting with three choices.

ChoiceWhat happens
Stop the workflowThe run stops here and is marked failed. This is the default and is usually what you want.
Carry on anywayThe failure is recorded but the workflow continues. Use this when the step is a nice-to-have.
Follow the error branchThe workflow takes a separate path you have drawn, so you can raise a task or notify someone when something goes wrong.

Steps that call another system are retried automatically a few times before being treated as failed, so a brief outage does not break your run.

Testing before you go live

Test run runs the whole workflow once, immediately, and shows you exactly what happened.

While it runs:

Click any box and open the Data tab to see two panels: what the step received after all your values were filled in, and what it returned. If a value could not be found, it is listed here so you can fix the step name it points at.

A test run is real. It creates real records and sends real messages. Point email steps at your own address while you are still building.

Reusing a result while you build

Once a step has run, you can pin its result using the pin button in its panel. Later test runs reuse the pinned result instead of running that step again, which is useful when the step is slow or costs money. Pinned steps are marked, and pinning is ignored once the workflow is live.

Publishing, pausing and editing

A workflow does nothing on its own until you press Publish. Before that it is a draft you can change freely.

When you press Publish, SoftSolz checks the workflow first and refuses if something would not work, for example a step that is not connected to anything or a value that points at a step that no longer exists. It tells you which step is at fault.

Press Pause to stop a live workflow. It stays exactly as it is and can be published again later.

Editing a published workflow is safe. Your changes are saved as a draft and only take effect when you publish again.

Scheduled and event workflows start within a few seconds of their trigger rather than instantly. Test run is immediate.

Templates

Templates are complete, working workflows you can start from. The gallery opens by itself on a new workflow, and is always available from the Templates button.

Pick one and it fills the canvas. Everything stays editable, so treat it as a starting point rather than a finished thing. Templates that need a service you have not installed are shown greyed out with the service they need.

Sending email

Emails from a workflow go out from your sending address, never from SoftSolz. This protects your customers, who would otherwise get mail about your business from a company they have never heard of.

Because of that, a workflow that emails anyone needs a verified sending address before it can be published. If you have not set one up, publishing shows a message with a link straight to the right page.

  1. Open Organization, then the Email tab.
  2. Add your sending address and follow the verification steps.
  3. Return to your workflow and press Publish again.
Notify the team never needs this, because it posts inside SoftSolz to your own members rather than emailing anyone outside.

Run history

Open Run History in the sidebar to see every run: when it happened, what started it, how long it took and whether it worked.

Open any past run to see the same step-by-step picture you get from a test run, including what each step received and returned. This is the first place to look when something did not happen the way you expected.

Limits

Sensible limits stop a mistake becoming an expensive one. You are unlikely to meet them in normal use.

LimitValue
Steps in one workflow60
Connections in one workflow120
Step runs in a single run500
How long one run may take2 minutes, not counting Wait steps
Items handled by one For each200
Runs per minute for one workflow60

Workflow runs also count towards your plan allowance. You can see usage under Subscriptions.

Troubleshooting

What you seeWhat it usually means
A message arrives with a word missing, such as Hi ,A value could not be found. Open that step, check the Data tab, and confirm the step name it points at still exists. Renaming a step updates references automatically, but deleting one does not.
An arrow says 0 itemsThe step before it found nothing. Check its settings, for example a status filter that matches none of your records.
Publish is refusedRead the message. The usual causes are a step that is not connected to the trigger, a required field left empty, or an email step with no verified sending address.
A step is outlined in red before you have run anythingA required field is empty. Click the step and fill it in.
The workflow did not start when you expectedCheck it is published rather than a draft, and that the trigger matches the event you think it does. Scheduled and event runs begin within a few seconds rather than instantly.
This run passed the step limit and was stoppedTwo steps are probably connected in a circle. Follow the arrows and remove the loop.
A step you expected is missing from the listIts service is not installed. Add it from the Marketplace.

Reference

Building a deeper integration? See the developer guide for endpoints and events: