Workflow Engine Designer Documentation
Introduction
Welcome to the Workflow Engine Designer Documentation. Designed exclusively for administrators, this comprehensive guide is your key to unlocking the full potential of the Workflow Engine Designer application. From understanding core functionalities to mastering essential elements and basic administrative procedures, this documentation has been crafted to make your journey effortless and insightful. Whether you're a seasoned pro or just getting started, our aim is to empower you with the knowledge you need to manage and optimize the application with ease.
If this documentation doesn't answer your questions, please send us Email to treeinfo@aricoma.com.
Join TreeINFO community at Stack Overflow TreeINFO Team. If you need access, contact treeinfo@aricoma.com.
Release
Build 3.20.2505.14001 Microsoft 365 (22.5.2025)
- Added Workflow Engine – Identifier Mapping – Identifier mapping has been introduced for new registrations in accordance with Microsoft’s updated requirements.
- Added Azure OCR – Document Digitization – A new activity enables the processing of incoming documents using the Azure AI Document Intelligence (OCR) cloud service. The use of this service is billed based on the number of pages processed.
Note See all the latest features, enhancements, updates and more in Changelog here.
About
Workflow Engine Designer is your gateway to crafting dynamic process schemes for SharePoint documents and lists, revolutionizing the way automated actions are performed.
Workflow Engine Designer adopts a state diagram approach — depicting the system or process as a collection of finite states. Transitions between these states occur upon task completion, ensuring precision and control at every step.
Workflow Engine Designer does not store data by itself. All data are stored within the SP site collection.
settings configured within Workflow Engine Designer at the site collection level extend their influence to all associated subsites, streamlining administration and consistency.
A key advantage of Workflow Engine Designer lies in its non-disruptive nature. Modifying and saving workflow changes do not impact items that have already been generated within the list. This empowers you to refine your processes without retroactive complications, offering a hassle-free experience for administrators.
Installation
This chapter describes adding WFEngine application to individual sites or subsites.
The installation is different for SharePoint Online and SharePoint On-Premises.
SharePoint Online
To add the WFEngine.Online application to a site in the SharePoint Online environment, click on the gear icon and select the option Site contents.
In Site contents click add an app to add application to site.
After displaying the list of applications, click on the option in the side menu From Your Organization to see a list of applications from our organization and click WFEngine.Online.
Click on the button WFEngine.Online to get a popup window asking if we want to trust the application and give it full permissions on the site. Click on the button Trust It.
We will then be redirected back to the page Site contents where we can see the addition of our chosen application to the site. We are informed by a message We're adding your app.
After a while, the informative message disappears and the application gets an icon.
To add the application to the site properly and fully functional, we need to open the application in which we will automatically see a message about the need to upgrade or install. To complete the installation, click on the button Run install.
We are informed about the completion of the installation by a message in the log WFE installer finished and the installed version is displayed in the upper left corner of the screen. The application is fully ready for use.
SharePoint On-Premises
To add the WFEngine.OnPrem application to the site in the SharePoint On-Premises environment, you need to first copy the WFEngine.OnPrem.wsp file to SharePoint server.
Then use the command in PowerShell to connect to SharePoint Add-PSSnapin Microsoft.SharePoint.PowerShell
and then add path to WFEngine.OnPrem.wsp via Add-SPSolution C:\Contoso\WFEngine.OnPrem.wsp
and install via install-SPSolution WFEngine.OnPrem.wsp -GACDeployment
.
We can check the progress of the application installation using the command Get-SPSolution
.
How to access
To be able to open Workflow Designer user must be site collection administrator or must be added to automatically created SharePoint group wf-designers. If you see error below, you do not have the permissions.
Access is different for SharePoint Online and SharePoint On-Premises.
SharePoint Online
Navigate to settings menu accessible through gear icon, select Site contents and select WFEngine.Online.
In the opened window, we see a blank workspace ready for creation of a brand new workflow. Click Open to open list of existing workflows.
SharePoint On-Premises
To access Workflow Engine Designer go to settings menu accessible through gear icon. Under Site settings in Workflow engine section select Designer.
In the opened window, we see a blank list of existing workflows for brand new installation or list of existing workflows. We can modify existing ones or create a brand new workflow.
Workflow Designer
Activities grouped in group Workflow designer allow user to accomplish basic activities. The names are self-explanatory and suggest its action.
Click New to create brand New workflow.

Click Open to open an existing workflow from workflow list available to your site.

Click Save to save changes made in workflow.

Click Close to close Workflow Engine Designer.

Another basic functionality is represented by Undo and Redo steps.


Set of activities in Designer tools helps to navigate in robust workflows. Zoom options simplify work with large workflows, Grid enables/disables dotted background.




Workflow definitions can be exported and imported in XML files. It is possible to use the web service and PowerShell commands.


Bulk delegation – tasks that already exist can be delegated manually in bulk by clicking the Delegate button:
- From user – the user from whom the tasks will be delegated
- To user – the user to whom the tasks will be newly delegated
- Workflow – the workflow from which the tasks will be delegated
- Include tasks with disabled delegation – If set to true, tasks that have the 'Is delegation allowed' property set to false will still be included in the delegation process. Does not take into consideration the 'Enable out of office automatic delegation' property
- Comment – Comment to be displayed in the tasks description

New workflow
Activity New creates brand new workflow from beginning. Steps how to create a new workflow are described in chapter How to create a workflow.

Properties | Description | Value / Comment |
---|---|---|
Workflow name | Specify workflow unique name | HomeOffice Marketing |
Associate with list | Setup list association in order to be able to run workflow. You may setup list association later on in workflow settings. | HomeOfficeList |
Run workflow on | Set trigger for workflow. You may setup workflow trigger later on in workflow settings. | An item is added |
Select template | Empty or Single step approval with simple workflow to begin with | Empty |
Workflow can perform actions:
- On start
- On stop
- On delegate
Workflow properties defined on Properties panel in the right.
Properties | Description | Value / Comment |
---|---|---|
Title | Specify workflow unique name | HomeOffice Marketing |
Internal name | Specify internal name for workflow | HomeOffice_mrkt |
Description | Describe the purpose of the workflow | HomeOffice approval for marketing department |
Enabled | If Enabled, workflow can be triggered | ON |
New state
The foundational elements of a workflow are states and transitions. A state reflects the condition of a task at a specific stage in the workflow. Drag & drop New state to designer workspace to start creating a workflow diagram.

Properties | Description | Value / Comment |
---|---|---|
ID | Automatic value set by Workflow Engine Designer | 10 |
Title | Specify name of a state | Item in Approval |
Internal name | Specify unique name for a state | Approval |
Is default | Workflow instance starts at this point | |
Is terminal | Workflow instance terminates at this point | |
Color theme – state | Assigns different color for states to better identify relations between states and transitions | |
Color theme – transition | Assigns different color for transitions to better identify relations between states and transitions | |
Enable | Enable/disable state in workflow |
When entering or exiting a state workflow can perform certain actions. These actions can be performed:
- On enter – e.g. creating task for a user
- On leave – e.g. send notifications to a user
Actions are defined in chapter ACTIONS.
Transition
A transition is a link between two states that enables to move from one state to another. In order for workflow to move between two states, a transition must exist. A transition is a one-way link, so if workflow needs to move back and forth between two states, two transitions need to be created.
When multiple transitions are created the order of task outcomes on task form will be from first created to last.
Properties | Description | Value / Comment |
---|---|---|
ID | Automatic value set by Workflow Engine Designer | 28 |
Internal name | Specify internal name for outcome option | Approved_1 |
Button label | Specify task outcome option name. Will be set as a task outcome in My tasks. | Approve |
Enable | If enabled, task outcome option will be visible in task detail in My tasks | ON |
Comment mode |
Specify comments in task outcomes
|
Optional |
Color theme | Assigns different color for transitions to better identify relations between states and transitions |
Layout
Tool Layout aligns states and transitions to cleaner form.

From
To
Another useful feature is to set fix point by right click. You can drag point to find the best path for a transition.
From
To
Settings
Workflow settings allows you to change various adjustments.

General settings
Properties | Description | Value / Comment |
---|---|---|
Start form | If checked, user will be prompt to fill start form upon triggering workflow | Cannot be change in UI structure |
Custom form | If checked, user will be prompt to fill custom form upon triggering workflow | Cannot be change in UI structure |
Allow multiple instances | If checked, workflow can be started multiple times on same item. Otherwise, only one active running workflow instance is allowed for item | |
Task less workflow transitions allowed | If set to enabled, it is not required to create tasks to move from one state to another | (inherited) Enabled Disabled |
Enable save item on task form | Enable item saving on the task form. When enabled, the task form includes a button to save the item. However, progressing the instance of the related task will not occur through this action. | (inherited) Enabled Disabled |
Outcome mode | Select the rendering mode for outcome options |
(inherited) Radio buttons – the default choice, outcomes will be displayed in a list with a radio button beside each. Drop down list – outcomes will appear in a dropdown selection menu. Buttons – outcomes will be presented as individual buttons that the user can click on. |
Out of office task delegation
Description
When activated, users who have configured out-of-office delegation can automatically assign incoming and existing tasks to a chosen user. The delegated user will receive the necessary permissions. Out-of-office functionality follows these guidelines:
- Chain automatic delegations are disabled (refer to the table below for specific examples).
- Tasks manually delegated to a user with automatic delegation enabled will not be further delegated. Users attempting manual delegation in this scenario will be warned that the selected user has automatic delegation enabled and to whom the task will be delegated
- Upon setting up automatic delegation, all incoming tasks are immediately delegate in the selected period of time.
- Tasks existing prior to setting up automatic delegation will be assigned after the next out-of-office timer tick. The timer is configured to tick every 6 hours.
- Out-of-office operates on a daily basis only and cannot be set up for specific hours.
Configuration
Properties | Description | Value / Comment |
---|---|---|
Enabled | Enables out of office delegation | |
Site URL | [Optional] – This property is filled only when the out-of-office list is hosted on a different site. In such instances, please provide the URL of the respective site. | https://sabriscz.sharepoint.com/sites/WfConfig |
List URL | [Mandatory] – Relative URL path to OOF list. | WF_OOF lists/WF_OOF |
Source user field internal name | [Mandatory] – The internal name of the field where the source user will be entered. | XWF_OOF_User |
Destination user field internal name | [Mandatory] – The internal name of the field where the user to whom the tasks will be delegated is entered. | XWF_OOF_UserDelegate |
Date from field internal name | [Mandatory] – The internal name of a field that holds the date when the out-of-office automatic delegation will take effect. | XWF_OOF_From |
Date to field internal name | [Mandatory] – The internal name of a field that stores the end date of the out-of-office automatic delegation. | XWF_OOF_To |
Value for histroy table | [Optional but recommended] – The value to be shown in the task history table. | {Func:GetSpDateTime}$${Wf:DelegationUser}$$Out of office delegation: {func:GetUserTitle({Wf:DelegationUserDelegate})}$${Task:Wf_Comment} |
Examples of potentional scenarios
The table below illustrates various situations that may arise. For explanatory purposes, we introduce users A, B, and C, further refered to by their respective letters. The color of the arrows in the diagrams indicates the origin point of tasks relative to the color of the container. In the examples below, both "Enable out-of-office automatic delegation" and "Is delegation allowed" are enabled.
Constants
Define constants for workflow. Constants can be used with replace tokens – e.g. {Const:greet} {Func:GetUserTitle({WF:Initiator})}
will retrieve Dear Jan Novak. More in chapter REPLACE TOKENS.
Properties | Description | Value / Comment |
---|---|---|
Title | Title of constant | Greeting |
Key | Internal name to be called in workflow | greet |
Value | Value to be set to constant | Dear |
Edit | Edit an existing constant | |
Delete | Delete an existing constant |
List associations
Specify trigger to instruct workflow to run workflow instance.
Properties | Description | Value / Comment |
---|---|---|
Autostart lists | Workflow runs automatically when item is added or item is updated depending on start type | |
List URL | Select SharePoint list name where workflow instance will run | TestWF |
Start type | Select trigger for workflow | Item added |
Expression | ||
Buttons | Workflow runs depending on action – ribbon button or context menu launch | |
List URL | Select SharePoint list name where workflow instance will run | TestWF |
Button type | Select whether workflow is triggered from context menu or ribbon button | Ribbon |
Title | Specify name for workflow trigger to be visible in ribbon or context menu | Run WF |
Icon | Specify icon URL for ribbon button |
Matrix config
Configuration for approval matrix for routing an approval task through the workflow based on preset conditions. Define conditions, UI for adding specific values is defined within TreeINFO application.
There must exist a SharePoint list with approval matrix form that contains basic metadata for the WF Engine – for example, the order type, amount and approvers. These columns are the same as those on the item where the workflow is running. You do not only set the columns to be compared, but it is also necessary to set comparison conditions to desired columns.
Properties | Description | Value / Comment |
---|---|---|
Title | Define display name | Approval Matrix |
Internal name | Internal name of SharePoint list with approval matrix form | Wf_ApprovalMatrix |
Enabled | If enabled, approval matrix can be applied to items in approval process | |
Config | Set conditions to be met in matrix config. Use SharePoint column internal name |
Task history config
Configuration for task history table. Only supported with TreeINFO application. UI is defined within TreeINFO application. There must exist configuration for Target field column in TreeINFO application. Culomn needs to be set as Advanced table.
In workflow settings:
Properties | Description | Value / Comment |
---|---|---|
Enabled | If enabled, task history is applied to items in workflow | true |
Item ID | ||
Separator | Separator of columns in task history table. Separator for outputting multiple values into output variable. Can be changed by user preferences | $$ |
Target field | Internal name of advanced table field to write data to | s_approvalProcessHistory |
Values | Values to be written. Columns are separated by the value set in separator property | {Func:GetSpDateTime}$$ {Task:AssignedTo}$$ {Wf:OutcomeLabel}$$ {Task:Wf_Comment} |
Write on assign | Specify whether any values should be written on assign | true |
Assign values | Values to be written on task assign. Columns are separated by the value set in separator property | {Func:GetSpDateTime}$$ {Task:AssignedTo}$$-$$- |
The final table will be displayed on form:
Active Instances
List of active instances running on items in list associated to current workflow.
Properties | Description | Value / Comment |
---|---|---|
Item ID | List item ID | 43 |
List URL | Name of list where the workflow is running | Level4 |
Current state | Internal name of current state where the workflow instance is running | Level_4_Default |
Instance ID | Unique ID of workflow instance running on item | 534d2993-ddbe-4d96-a366-82261160613f |
Item URL | View the item | |
Debug Instance | Open selected instance on specified item in debbuger |
Install and upgrade

Creates or updates of all the Workflow Engine component. Valid only for this Workflow Engine application installation.
Displays which version of Workflow Engine is installed on site and current runtime version.
Enables to install newer version using the Run install button.
SP2SQL

Data replication from SharePoint to SQL tables. It is not related to the workflow itself, it is a link to configuration. It is also accessible from settings menu through gear icon. Under Site settings in Workflow engine section select SP2SQL Settings.
The configuration UI is set up and works automatically, including the creation of a structure in SQL. It is possible to select for which lists / document libraries the export will be performed. The history of item data is also maintained in SQL.
First step is to create database project with desirable columns. Then in SP2SQL you set up connection string to this database in format Data Source=(local);Initial Catalog=XXX;Integrated Security=True
where XXX is the name of database you have created. To save changes click the button in bottom.
NoteFor large item lists (over 5000 items) it is necessary to use custom PowerShell script.
Before:
After:
Next step is to add main tables such as Inbound Invoices and Inbound invoices archive. To save changes and deploy database click the button in bottom.
Check in database if tables are created correctly and then disable all settings made in SP2SQL.
If there are changes to schema – such as additional columns in library – you have to deploy the database again to sync all existing fields.
How to create a workflow
Below are shown easy workflow samples.
Single step approval
In the Workflow designer click on the New icon and set values.
We see a workspace with actions edit panel on the left and properties panel on the right.
The edit panel enables to add actions to your workflow. For more on actions see ACTIONS. Actions for whole workflow can be assigned on start, on stop or on delegate.
The properties panel show all possible properties for a selected activity. When no action is selected, workflow properties are displayed.
In properties panel we can change workflow name in the field Title and unique Internal name.
The first step is defining states. In this example we are creating simple approval workflow for documents. We must determine all states of the document‘s life cycle. For each state we drag & drop New state rectangle to workspace.
We have 3 types of states in Workflow Designer. Green state is the initial state where the workflow starts. Blue state that indicates the workflow instance ended. Workflow passes internal states in white to achieve a terminating state.
In this example, we will have 3 states – new, approved and not approved. So we drag & drop three states to workspace:
Click the New state to setup properties for this state. To make changes for the current state we have to see dashed line on the state.

In the properties panel on the right we can set up properties for the state.
For new we set Is default – the workflow will start here. For Approved and Not Approved we set Is terminal – workflow instance will end there.
Next step is to establish transitions between states. We draw a line from input connection circle (blue) to output connection circle (green).
For each we define transition. This also works as task outcome option for approvers of the process.
To sum up – we have defined two transitions – Approving and Not Approving – which are leading to states Approved and Not Approved.
In order for workflow to know to whom assign tasks, we need to insert Assign task activity into the New state workflow actions.
On New state we drag & drop Assign task activity from Actions ribbon to action panel. It is necessary to be in New state – you see dashed line around the state.

A state can have on enter and on leave action. When a workflow instance enters a state, any activities set on enter will be triggered. When the entry action is complete, the triggers for the state’s transitions are scheduled. When a transition to another state is confirmed, the activities on leave are executed.
The moment we click on Assign task in action panel, the properties panel will show. There is a wide range of options – for more see ASSIGN TASK.
For this example we put user name, Task title and Task body. User name is the person or group we assign task to. Task title and Task body are shown on task form.
The next step will use another feature from Actions – SET FIELD VALUE. We are going to assign values to SharePoint column Status. Drag & drop Set field value from Actions ribbon to New state and fill in necessary properties.
For Approved state we will assign value approved to column in SharePoint list with internal name Status – Rq_All_Status
.
This way we will be able to see the workflow status on item properties in SharePoint My task screen.
For Not Approved we will set value to not approved.
The last thing to setup is workflow trigger. On Workflow Designer ribbon we choose Settings ->List associations. Workflow can be triggered in two ways – automatically when document / item is created, or manually from context menu or ribbon button. In this case we are running workflow automatically when item is added.
We need to setup list association with list where the workflow instance will run.
One-state workflow
Move item
In this example member of a selected group can move items to another folder.
We create new workflow and drag & drop a state. This state is default and also terminal.
To ensure that only members of SharePoint group can move items, we add IS USER IN GROUP action.
With this activity we will check if the workflow initiator (the one who starts workflow Moveitem) is in group wf-Accountants. Result will be stored in variable IsAccountant.
Then we add IF ACTION. The expression will be: '{wf:IsAccountant}' == 'True'
.
We want to move item and start workflow for the item. So for True we add MOVE ITEM. For False we WRITE LOG.
For Move item we specify destination folder and destination type.
In write log action we set value and log type.
Actions
Workflow actions enable a wide variety of interactions between form fields.
To assign any user interaction you have to drag and drop it to left action panel, typically you add action to a state. To be able to configure properties, task needs to be chosen.
Assign task

The 'Assign Task' workflow action enables the workflow to assign a task to a single user or multiple users. These tasks will appear in users' task list. When a task is created, user(s) can be notified via email that a new task has been created.
The 'Assign Task' activity assigns permissions to an item. By default, when a task is assigned, read permissions to the item are set to ensure the user will be able to open task. At the same time, the user is assigned with write permissions to the task item in order to be able to complete the task.
The 'Assign Task' activity can be used only once per one state instance (once per "New state" bubble).
The 'Assign Task' activity can also perform actions:
- On Over Due – actions will be executed after the number of days set in 'Due days' in the 'Assign task' properties. Each action will be executed for all tasks. For instance, to send an email notification to all users assigned to this task, you need to inform every single one of them.
- On Over Due Global – actions will be executed after the number of days set in 'Due days' in 'Assign task' properties. Actions will be executed only once for all tasks. For example, you can set a state or send an email to a supervisor. This needs to be done only once, eliminating the need to send multiple emails to one person.
- On Remind – actions will be executed after the number of days set in 'Remind days' in 'Assign task' properties.
- On Delegate – actions will be executed when the task is delegated.
- On Assign Task – actions will be executed on assining a task.
- On Complete Task – Specified actions will be executed after each instance of a task being completed.
Properties | Description | Value / Comment |
---|---|---|
User | User specification – user(s) to assign task to. You may specify a user login, SharePoint group, Active Directory group and/or value from a variable. If more than one user is specified, multiple tasks will be created – one per each user. If a user group is specified, one task per user will be created. If you wish to enter more than one value, you may use a semicolon ';' to separate users/groups. |
|
Task title | The task title, which will be displayed in the "My Tasks" table. |
New Item to approve{Item:Title}
|
Task body | Additional task text, which will be displayed in the task details on the task form. | This Invoice needs your approval |
Assign type | For multiple users specified, tasks will be created for all users at once (parallel) or one by one task (serial). In case of serial task, new task will be created when current task is finished. |
|
User source type |
Specifies the source of user loading:
|
|
Matrix list | Specify an approval matrix list. When matrix list is specified, the User field is ignored. | |
Multi task mode |
There are four behavioral options to guide the Workflow engine in managing tasks with multiple assignees:
|
|
Ref state | If "All equal to" multitask mode is specified, task outcomes (state name) are compared to the value specified in this field. If all selected outcomes are equal to the value in this field, multi task is evaluated as successfully completed. |
Level_4_Approved State’s internal name |
Fall state | When 'All Equal To' multitask mode is selected if any task user selects an outcome different from the one specified in the "Ref state" configuration field, the multitask is considered unsuccessful and proceeds to the state defined in this field. |
Level_4_Rejected State’s internal name |
No user state | Specify the state to which the workflow proceeds in the event that no user is specified in the user value or matrix list. If nothing is specified in this field and no user is provided, the workflow will terminate with an error. |
Level_4_RejectedError State’s internal name |
Default selected outcome | These are the default task outcomes suggested to the user. If this field is empty, the user must select an outcome before marking the task as complete. By default, this field is empty. |
Level_4_Approved State’s internal name |
Read only item form | Display a read-only item form within the task form. This feature is specific to the TreeINFO application. |
|
Task template | Specify the TreeINFO task template for creating tasks. When a task template is specified, the task title and task body are disregarded. | InvoiceForApproval |
Mail template | Specify the TreeINFO mail template for email notifications. When a mail template is applied, the Email body and Email subject attributes are overridden. This feature is exclusive to the TreeINFO add-on. | WfEngineTaskNotify |
Send notification email |
Toggle the option to send notifications to users on or off. The activity value can be configured independently of the global value. |
|
Send cancel notification email | Toggle the option to send notifications to users when a task is canceled (no longer required) on or off. |
|
Email body | This field allows to specify the email body for task notification emails. Each time a new task is created, the assigned user will receive an email notifying them of the task's creation. | |
Email subject | This field allows to specify the subject for task notification emails. Each time a new task is created, the assigned user will receive an email notifying them of the task's creation. | |
Due days | Specify the number of days for task completion. To make the task duration unlimited, enter -1. | By default value: -1 |
Remind days | Specify the number of days to wait until 'OnRemind' actions are executed. To disable reminders, please enter -1. | By default value: -1 |
Allow questions | Enable users to initiate sub-workflows with questions for the workflow initiator or any other user. When enabled, the 'Ask question' button will be visible in the task detail. |
|
Question workflow | If this field is left empty, the default question workflow will be used when the 'Ask question' workflow is initiated. Alternatively, users can enter the internal name of a custom workflow to be used. | By default value:'' |
Is additional approval allowed | Enable users to initiate a sub-workflow with additional approval. When enabled, users can choose the 'Additional approval' option as a way to complete the task. |
|
Additional approval workflow | If this field is left empty, the default additional approval workflow will be used when the 'Additional approval' outcome is selected and confirmed. Alternatively, users can enter the internal name of a custom workflow to be used. | By default value:'' |
Sync | This option enables synchronous task processing. By default, it is disabled. When enabled and a user selects a task outcome, the page will not reload until all processing is complete. This feature is only relevant in an On-Premises environment. |
|
Work days | Due date and Remind date are calculated based on working days, which includes weekends and Czech national holidays. |
|
Is delegation allowed | When enabled, a user can delegate their task to another person, who will be assigned the necessary permissions. You can specify the users or groups to which a task can be delegated in the 'Delegation allowed users' property. |
|
Enable out of office automatic delegation | Enables out-of-office automatic delegation during out-for tasks. Additional configurations must be made for this option to function properly. Please consult this section of the documentation for further details |
|
SQL Task | Tasks are stored in SQL Server instead of a SharePoint list. SQL Tasks are designed for high-volume task sets, such as when you need to assign more than 100 tasks at once. Please note that this functionality will only work if 'SP2SQL' is configured correctly, and to display these tasks on the home page, the 'SQL tasks allowed' setting in the 'My tasks' web part must be enabled. |
|
Multiple approval transition internal name |
Specify the internal name for the transition to enable multiple task approvals. When this feature is enabled, users can approve multiple tasks simultaneously. |
|
Bulk approval form template | Specify the form template for bulk approval. | |
Enable save item on task form | If checked, the task form includes a button to save the item without sending the task. |
|
Outcome mode | Render controls based on outcome mode. |
|
Delegation allowed users |
You can specify SharePoint groups or users to whom delegation is allowed. Please enter the login names of users or groups, separated by semicolons. In the form, these users will be displayed in a dropdown. If left empty, users can delegate to any user. |
{wf:delegateFinalUsers} |
Set item permission level | Ensures the permission level for the related item and the user for whom the task is created or delegated. |
|
Label | Descriptive label shown in the action editor. | |
Disabled | The execution of a disabled action is skipped. |
Add user to existing task

Add users to already created task. Common usage is for never-ending tasks on start-form.
Properties | Description | Value / Comment |
---|---|---|
Users to add | Specify login names of users or groups separated by semicolon |
|
Label | Descriptive label shown in the action editor. | |
Disabled | The execution of a disabled action is skipped. |
Send mail

Send email to users. You can specify Subject and Body or email template from TreeINFO.
Properties | Description | Value / Comment |
---|---|---|
Email recipients | Specify AD usernames separated by semicolon |
|
Email copy | Specify copy recipient(s) – might be semicolon separated list or single recipient. |
A new task was assigned to you: {Task.Title}
|
Email subject | Subject of the email. You can use also replace tokens and variables. |
A new task was assigned to you: {Task.Title}
|
Email body | Text of email body with HTML content. You can use also replace tokens and variables. |
<p> Direct link to |
Message per recipient | Send separate email message to each recipient specified. If user names are used and mail template defined for each language, email will reflect users’ languages. |
|
Message per recipient | Send separate email message to each recipient specified. If user names are used and mail template defined for each language, email will reflect users’ languages. | |
Email template | Email template name from TreeINFO App. This will override subject and body properties specified in this action. | WfEngineTaskNotify |
Label | Descriptive label shown in the action editor. | |
Disabled | The execution of a disabled action is skipped. |
Send meeting request

Send mail meeting invitation to users. You can specify Subject and Body or email template from TreeINFO.
Properties | Description | Value / Comment |
---|---|---|
Email to | Specify AD usernames separated by semicolon |
|
Email copy | Specify copy recipient(s) – might be semicolon separated list or single recipient. | |
Email subject | Subject of the email. You can use also replace tokens and variables. |
A new meeting was assigned to you: {Task.Title}
|
Email body | Text of email body with HTML content. You can use also replace tokens and variables. |
<p>To be discussed: |
Message per recipient | Send separate email message to each recipient specified. If user names are used and mail template defined for each language, email will reflect users’ languages. |
|
Start time | Start time and date of the meeting requests | |
End time | End time and date of the meeting requests | |
Location | Location of the meeting request | |
Date format | Date format used in fields Start time and End time | By default value: dd.MM.yyyy HH:mm |
Email template | Email template name from TreeINFO App. This will override subject and body properties specified in this action. | WfEngineMeetingNotify |
Label | Descriptive label shown in the action editor. | |
Disabled | The execution of a disabled action is skipped. |
Set task state

Set task state by action instead of by natural workflow progression.
Properties | Description | Value / Comment |
---|---|---|
Task Instance id | Workflow multitask ID of a task item. Setting this property is necessary for the action to operate. This action is limited to specific listed workflow tasks and does not apply to the entire instance. | |
New state | Select listed tasks new state to be set. | |
Label | Descriptive label shown in the action editor. | |
Disabled | The execution of a disabled action is skipped. |
Set task outcome

Set task outcome by action instead of user interaction.
Properties | Description | Value / Comment |
---|---|---|
Task id | SharePoint list item ID of task item. If not set or empty, current context task will be used. | |
Outcome | Specify task outcome internal name to be set to task. | |
Label | Descriptive label shown in the action editor. | |
Disabled | The execution of a disabled action is skipped. |
Delegate task

Similar to delegate outcome. This action is usually bound to a button. Uses its own workflow that has to be specified in the Workflow internal name property to delegate specific task. Can be used in situations where user wants to delegate task for someone else (User only needs the permission to press the button and doesnt have to be the user that the delegated task was assigned to). In the case of a multi task, the other tasks will be cancelled and only the first task will be delegated.
Properties | Description | Value / Comment |
---|---|---|
User to delegate to | Specify login name of user |
|
Comment | Optional comment to be displayed to the delegated user | |
Workflow internal name | Specify internal name of the workflow that delegates the task. | |
Label | Descriptive label shown in the action editor. | |
Disabled | The execution of a disabled action is skipped. |
Cancel task

Cancel task can be only used in conjuction with Assign task action with multitask enabled. Sets all current task as not required. For example if used in On Delegate part then if one user delegates their task all other tasks will be set to Not required
Properties | Description | Value / Comment |
---|---|---|
Label | Descriptive label shown in the action editor. | |
Disabled | The execution of a disabled action is skipped. |
Add list item

Add a new item to list. Applicable only for Lists.
Properties | Description | Value / Comment |
---|---|---|
List URL | Specify web relative list URL. | Wf_tasks |
Variable to store new ID | A variable name to store newly created item ID. If empty, "ItemId" variable will be used. | ItemId |
Field values | Values for item fields to be filled on item creation. | |
Folder URL | Target folder path for creation. | |
Label | Descriptive label shown in the action editor. | |
Disabled | The execution of a disabled action is skipped. |
Add file

Add a new file to library. Applicable only for Libraries.
Properties | Description | Value / Comment |
---|---|---|
FileName | Target file name | |
Content | Content of file for creation. | |
Overwrite | Overwrite |
|
ContentEncoding | Type of content data encoding. Text/Binary |
|
Folder URL | Target folder path for creation. | |
List URL | Specify web relative list URL. | Wf_tasks |
Variable to store new ID | A variable name to store newly created item ID. If empty, "ItemId" variable will be used. | |
Field values | Values for item fields to be filled on item creation. | |
Label | Descriptive label shown in the action editor. | |
Disabled | The execution of a disabled action is skipped. |
Set field value

Set specified value to an item field. For updating current item you only need to set Target field and Value.
Properties | Description | Value / Comment |
---|---|---|
Target field | Internal name of field to be updated | s_status |
Value | Value to be set to field | approved |
Item id | If empty, workflow associated item is processed. Otherwise you may specify item id of item to process. | 3 |
List | If empty, workflow associated item is processed. If List is specified, it is also required to specify item ID | Level4 |
CAML query | If empty, workflow associated item is processed. CAML query for item retrieval. Might be used instead direct entering of item id or instead of current context item |
<Where><Eq> |
Item URL | If empty, workflow associated item is processed. Instead of item ID you may use item full URL |
|
Recursive | If enabled, action is applied to item and if item is folder, also to items in folder. |
|
Scope | Scope for CAML query |
|
Behavior | Behavior for retrieving an item |
|
Label | Descriptive label shown in the action editor. | |
Disabled | The execution of a disabled action is skipped. |
Possible combinations of configuration
The following configurations are mutually exclusive and cannot be executed simultaneously:- Item ID - The action is performed on an item with the specified ID in the list where the workflow was initiated.
- Item ID + List - The action is performed on an item with the specified ID in the list identified by its provided internal name.
- Item Url - The action is executed on an item with the provided URL adress
- CAML Query - The action is performed on an item located using the provided CAML Query in the list where the workflow was initiated.
- CAML Query + List - The action is performed on an item located using the provided CAML Query in the list identified by its provided internal name.
Azure OCR

Digitization of incoming documents using the Azure AI Document Intelligence (OCR) cloud service. It enables automated extraction of text and key information from images and documents.
- TIFF
- PNG
- JPEG
- Password-protected PDFs must have the password removed before submission.
Azure service configuration and appropriate licensing are required for implementation based on the volume of documents processed. Cooperation is necessary for setup. For more information, please contact us via email treeinfo@aricoma.com.
Get field value

Retrieve value of field from item and store it in variable. Suitable for cases when you need to get values from item to workflow. When you need to retrieve value of form field Approver to assign this person task in Assign task activity. You only need to fill in variable name (e.g. appr) and internal name of field (field_approver). In Assign task activity you set to User property {wf:appr}.
Another example for usage is when you want to obtain certain users/values according to chosen field on form. You have a SharePoint list DepartmentCodebook with columns Departments and to each department are assigned people or groups (column s_deptMembr). On form you are filling in lookup field Department (s_department) with values from this list (column Departments). So you set a variable name (perm), then you set field from form (s_department) which value will be compared to and you want to get corresponding value from field s_deptMembr in list DepartmentCodebook. This value is stored in variable perm. To use it in another action you can call it with replace token {wf:perm}.
Properties | Description | Value / Comment |
---|---|---|
Variable | Name of variable where result value will be stored. | var |
Field | Internal Name of field to read value from | field_approver |
Related item field |
Used with fields of type External Lookup, Advanced Table, or CheckboxList. Internal name of a field of one of the speciefied types above. If this configuration field is populated, the value of the specified field is retrieved. If multiple items are found, their values are combined using a separator and returned as a single string. |
Department |
Related item list |
Used with fields of type External Lookup, Advanced Table, or CheckboxList. Internal name of a list from which the related item is atempted to be read. If this configuration field is populated, the value of the field provided in the "Related item field" configuration field is retrieved. If multiple items are found, their values are combined using a separator and returned as a single string. |
ApproversList |
Related item list is in Root | Related item list is in root web. Otherwise list is being looked for in current web. |
|
Separator | Separator for multiple value output. If RelatedItemField property is not empty, field is supposed to be lookup (SP lookup or TreeINFO lookup). Value of field with internal name specified in RelatedItemField is attempted to be read from related item. If multiple items are found, values are joined with separator and retrieved as single string. | |
Item id | If empty, workflow associated item is processed. Otherwise you may specify item id of item to process. | |
List | If item id is specified, it is also required to specify list name. | |
CAML query | CAML query for item retrieval. Might be used instead direct entering of item id or instead of current context item |
<Where><Eq><FieldRef |
Item URL | Instead of item Id you may use item full URL |
|
Recursive | If enabled, action is applied to item and if item is folder, also to items in folder. |
|
Scope | Scope for CAML query |
|
Behavior | Behavior for retrieving an item |
|
Label | Descriptive label shown in the action editor. | |
Disabled | The execution of a disabled action is skipped. |
Possible combinations of configuration
The following configurations are mutually exclusive and cannot be executed simultaneously:- Item ID - The action is performed on an item with the specified ID in the list where the workflow was initiated.
- Item ID + List - The action is performed on an item with the specified ID in the list identified by its provided internal name.
- Item Url - The action is executed on an item with the provided URL adress
- CAML Query - The action is performed on an item located using the provided CAML Query in the list where the workflow was initiated.
- CAML Query + List - The action is performed on an item located using the provided CAML Query in the list identified by its provided internal name.
- Related item Field + Related Item list - The action is executed on a related item specified in the "Related Item Field" configuration within the list defined in the "Related Item List" configuration. This can only be used with fields of type External Lookup, Advanced Table, or CheckboxList
Move item

Move item into new destination folder. This functionality is designed to move items in document library from one folder to another or from one library to other. Applicable only for Libraries. If you specify only destination and destination type, workflow will start on current item.
Properties | Description | Value / Comment |
---|---|---|
Destination | Destination folder path (path type is dependent on "Destination type" property) | InboundInvoices |
Destination type |
depending on value of this field, destination property is treated:
|
|
Expression | Can be used instead of directly entered destination | |
Overwrite | If item already exists in destination, will be overwritten |
|
Target variable | If successfully executed, destination item URL will be written to variable. | |
File name | Target file name – optional | |
Item id | If empty, workflow associated item is processed. Otherwise you may specify item id of item to process. | |
List | If item id is specified, it is also required to specify list name. | |
CAML query | CAML query for item retrieval. Might be used instead direct entering of item id or instead of current context item | |
Item URL | Instead of item Id you may use item full URL | |
Recursive | If enabled, action is applied to item and if item is folder, also to items in folder. |
|
Scope | Scope for CAML query |
|
Behavior | Behavior for retrieving an item |
|
Label | Descriptive label shown in the action editor. | |
Disabled | The execution of a disabled action is skipped. |
Possible combinations of configuration
The following configurations are mutually exclusive and cannot be executed simultaneously:- Item ID - The action is performed on an item with the specified ID in the list where the workflow was initiated.
- Item ID + List - The action is performed on an item with the specified ID in the list identified by its provided internal name.
- Item Url - The action is executed on an item with the provided URL adress
- CAML Query - The action is performed on an item located using the provided CAML Query in the list where the workflow was initiated.
- CAML Query + List - The action is performed on an item located using the provided CAML Query in the list identified by its provided internal name.
Copy item

NoteDue to Sharepoint property, copying an item containing "%" symbol will result in a new item containing "%25" instead
Create new item in specified folder and copy all field values from source item. Applicable only for Libraries.
Properties | Description | Value / Comment |
---|---|---|
Copy system field | Enter internal names or abbreviations of system fields separated by commas. Modified, Author, Editor, Created or M, A, E, C | |
Copy only document data | Overwrite field data on target item. |
|
Destination | Destination folder path (path type is dependent on "Destination type" property) |
|
Destination type |
Destination type – depending on value of this field, destination property is treated:
|
|
Expression | Can be used instead of directly entered destination | |
Overwrite | If item already exists in destination, will be overwritten. |
|
Target variable | If successfully executed, destination item URL will be written to variable. | |
File name | Target file name – optional. | |
Item id | If empty, workflow associated item is processed. Otherwise you may specify item id of item to process. | |
List | If item id is specified, it is also required to specify list name. | |
CAML query | CAML query for item retrieval. Might be used instead direct entering of item id or instead of current context item. | |
Item URL | Instead of item Id you may use item full URL. | |
Recursive | If enabled, action is applied to item and if item is folder, also to items in folder. |
|
Scope | Scope for CAML query. |
|
Behavior | Behavior for retrieving an item |
|
Label | Descriptive label shown in the action editor. | |
Disabled | The execution of a disabled action is skipped. |
Possible combinations of configuration
The following configurations are mutually exclusive and cannot be executed simultaneously:- Item ID - The action is performed on an item with the specified ID in the list where the workflow was initiated.
- Item ID + List - The action is performed on an item with the specified ID in the list identified by its provided internal name.
- Item Url - The action is executed on an item with the provided URL adress
- CAML Query - The action is performed on an item located using the provided CAML Query in the list where the workflow was initiated.
- CAML Query + List - The action is performed on an item located using the provided CAML Query in the list identified by its provided internal name.
Delete item

Action enables delete current or related item. Workflow instances will be terminated and the item itself will be deleted from SharePoint.
Properties | Description | Value / Comment |
---|---|---|
Force | Delete item without recycle to bin. |
|
Item id | If empty, workflow associated item is processed. Otherwise you may specify item id of the item to process. | |
List | If item id is specified, it is also required to specify list name. | |
CAML query | CAML query for item retrieval. Might be used instead direct entering of item id or instead of current context item. | |
Item url | Instead of item id you may use item full URL. | |
Recursive | If enabled, action is applied to item and if item is folder, also to items in folder. |
|
Scope | Scope for CAML query |
|
Behavior | Behavior for retrieving an item. |
|
Label | Descriptive label shown in the action editor. | |
Disabled | The execution of a disabled action is skipped. |
Possible combinations of configuration
The following configurations are mutually exclusive and cannot be executed simultaneously:- Item ID - The action is performed on an item with the specified ID in the list where the workflow was initiated.
- Item ID + List - The action is performed on an item with the specified ID in the list identified by its provided internal name.
- Item Url - The action is executed on an item with the provided URL adress
- CAML Query - The action is performed on an item located using the provided CAML Query in the list where the workflow was initiated.
- CAML Query + List - The action is performed on an item located using the provided CAML Query in the list identified by its provided internal name.
Read task property

Enables to read metadata from existing tasks.
Properties | Description | Value / Comment |
---|---|---|
Task instance ID | Multitask ID is generated ID for every new task action. To get the last task you can use replace token {wf:LastMultiTaskId} | {wf:LastMultiTaskId} |
Target variable | Workflow variable name to store action result | ResultRead |
Property name | Property to read – for example CurrentUser or AssignType. All properties and values you can find in Wf_Instances list in Workflow data. Properties from Assign task activity. | By default value: CurrentUser |
Label | Descriptive label shown in the action editor. | |
Disabled | The execution of a disabled action is skipped. |
Query SP

Query list items in SharePoint lists.
Properties | Description | Value / Comment |
---|---|---|
List URL | Specify web relative list URL | Approvers |
Target variable | Specify variable name where result will be stored. Result is stored in variable as XML. | delegateUsers |
Scope |
|
|
Query | CAML query. |
<Neq><FieldRef |
View fields | Specify fields in result. |
<FieldRef Name="appr_approverUser" /> |
Output format | Specify output format of result stored in variable. XML/JSON |
|
Label | Descriptive label shown in the action editor. | |
Disabled | The execution of a disabled action is skipped. |
Read column

Only supported with TreeINFO application. Read single column from TreeINFO Advanced table column and store output in variable. Aggregation function might be applied to data.
Properties | Description | Value / Comment |
---|---|---|
Target field | Internal name of field with advanced table | XW_Table |
Target variable | Variable to store action output | aa |
Column index | Index of column in table to be read. Index is zero based. | 2 |
Column type | Type of data in column. Type is used by aggregation functions to calculate correct output. |
|
Aggregation | Aggregation function to be applied to data. If none is chosen, all values will be present in output separated by separator set in separator property. |
|
Separator | Separator for outputting multiple values into output variable. | By default value: $$ |
Row number | Match row by index. For write: Specifies row number to be updated. If empty, row is added at the end of the table. For read or delete: Specifies row number to be read or deleted. If empty, row is latest at the end of the table. | By default value: 0 |
Row expression | Match row by expression, ex: '[columnIndex]' == 'some value'. If not empty, row expression has higher priority than row number. For write: Specifies row numbers to be updated. If empty, row is added at the end of the table. For read or delete: Specifies row numbers to be read or deleted. If empty, row is latest at the end of the table. | [3] == {Item:ID} |
Item ID | If empty, workflow associated item is processed. Otherwise you may specify item ID of item to process. | |
List | If item ID is specified, it is also required to specify list name. | |
CAML query | CAML query for item retrieval. Might be used instead direct entering of item ID or instead of current context item | |
Item URL | Instead of item ID you may use item full URL |
|
Recursive | If enabled, action is applied to item and if item is folder, also to items in folder. |
|
Scope | Scope for CAML query |
|
Behavior | Behavior for retrieving an item |
|
Label | Descriptive label shown in the action editor. | |
Disabled | The execution of a disabled action is skipped. |
Possible combinations of configuration
The following configurations are mutually exclusive and cannot be executed simultaneously:- Item ID - The action is performed on an item with the specified ID in the list where the workflow was initiated.
- Item ID + List - The action is performed on an item with the specified ID in the list identified by its provided internal name.
- Item Url - The action is executed on an item with the provided URL adress
- CAML Query - The action is performed on an item located using the provided CAML Query in the list where the workflow was initiated.
- CAML Query + List - The action is performed on an item located using the provided CAML Query in the list identified by its provided internal name.
Read row

Only supported with TreeINFO application. Read single row from TreeINFO Advanced table column and store output in variable. Aggregation function might be applied to data.
Properties | Description | Value / Comment |
---|---|---|
Target field | Field to store the result of action | XW_Table |
Target variable | Variable name to store the result of action. | |
Separator | Data separator string. Separator for outputting multiple values into output variable. | By default value: $$ |
Row number | Match row by index. For write: Specifies row number to be updated. If empty, row is added at the end of the table. For read or delete: Specifies row number to be read or deleted. If empty, row is latest at the end of the table. | By default value: 0 |
Row expression | Match row by expression, ex: '[columnIndex]' == 'some value'. If not empty, row expression has higher priority than row number. For write: Specifies row numbers to be updated. If empty, row is added at the end of the table. For read or delete: Specifies row numbers to be read or deleted. If empty, row is latest at the end of the table. | true |
Item ID | If empty, workflow associated item is processed. Otherwise you may specify item id of item to process. | |
List | If item ID is specified, it is also required to specify list name. | |
CAML query | CAML query for item retrieval. Might be used instead direct entering of item id or instead of current context item | |
Item URL | Instead of item ID you may use item full URL |
|
Recursive | If enabled, action is applied to item and if item is folder, also to items in folder. |
|
Scope | Scope for CAML query |
|
Behavior | Behavior for retrieving an item |
|
Label | Descriptive label shown in the action editor. | |
Disabled | The execution of a disabled action is skipped. |
Possible combinations of configuration
The following configurations are mutually exclusive and cannot be executed simultaneously:- Item ID - The action is performed on an item with the specified ID in the list where the workflow was initiated.
- Item ID + List - The action is performed on an item with the specified ID in the list identified by its provided internal name.
- Item Url - The action is executed on an item with the provided URL adress
- CAML Query - The action is performed on an item located using the provided CAML Query in the list where the workflow was initiated.
- CAML Query + List - The action is performed on an item located using the provided CAML Query in the list identified by its provided internal name.
Write table

Only supported with TreeINFO application. Write to TreeINFO Advanced table column. Aggregation function might be applied to data.
Properties | Description | Value / Comment |
---|---|---|
Target field | Advanced table field internal name. | XW_Table |
Values | Value to be written. Columns are separated by the value set in separator property. | {Func:GetSpDateTime}$${Wf:initiator}$${Item:XWF_Choice} |
Keep tokens | If true, TreeINFO replace tokens are not replaced on write. |
for multi-language translations
|
Separator | Separator of columns in row value. Separator for outputting multiple values into output variable. Can be changed by user preferences. | By default value: $$ |
Row number | Match row by index. For write: Specifies row number to be updated. If empty, row is added at the end of the table. For read or delete: Specifies row number to be read or deleted. If empty, row is latest at the end of the table. | |
Row expression | Match row by expression, ex: '[columnIndex]' == 'some value'. If not empty, row expression has higher priority than row number. For write: Specifies row numbers to be updated. If empty, row is added at the end of the table. For read or delete: Specifies row numbers to be read or deleted. If empty, row is latest at the end of the table. | |
Item ID | If empty, workflow associated item is processed. Otherwise you may specify item ID of item to process.¨ | |
List | If item ID is specified, it is also required to specify list name. | |
CAML query | CAML query for item retrieval. Might be used instead direct entering of item id or instead of current context item | |
Item URL | Instead of item ID you may use item full URL |
|
Recursive | If enabled, action is applied to item and if item is folder, also to items in folder. |
|
Scope | Scope for CAML query |
|
Behavior | Behavior for retrieving an item |
|
Label | Descriptive label shown in the action editor. | |
Disabled | The execution of a disabled action is skipped. |
Possible combinations of configuration
The following configurations are mutually exclusive and cannot be executed simultaneously:- Item ID - The action is performed on an item with the specified ID in the list where the workflow was initiated.
- Item ID + List - The action is performed on an item with the specified ID in the list identified by its provided internal name.
- Item Url - The action is executed on an item with the provided URL adress
- CAML Query - The action is performed on an item located using the provided CAML Query in the list where the workflow was initiated.
- CAML Query + List - The action is performed on an item located using the provided CAML Query in the list identified by its provided internal name.
Delete table row

Only supported with TreeINFO application. Delete row from TreeINFO Advanced table.
Properties | Description | Value / Comment |
---|---|---|
Target field | Advanced table field’s internal name. | XW_Table |
Separator | Separator of columns in row value. Separator for outputting multiple values into output variable. Data separator string. | By default value: $$ |
Row number | Match row by index. For write: Specifies row number to be updated. If empty, row is added at the end of the table. For read or delete: Specifies row number to be read or deleted. If empty, row is latest at the end of the table. | |
Row expression | Match row by expression, ex: '[columnIndex]' == 'some value'. If not empty, row expression has higher priority than row number. For write: Specifies row numbers to be updated. If empty, row is added at the end of the table. For read or delete: Specifies row numbers to be read or deleted. If empty, row is latest at the end of the table. | |
Item ID | If empty, workflow associated item is processed. Otherwise you may specify item id of item to process.¨ | |
List | If item ID is specified, it is also required to specify list name. | |
CAML query | CAML query for item retrieval. Might be used instead direct entering of item id or instead of current context item | |
Item URL | Instead of item Id you may use item full URL |
|
Recursive | If enabled, action is applied to item and if item is folder, also to items in folder. |
|
Scope | Scope for CAML query |
|
Behavior | Behavior for retrieving an item |
|
Label | Descriptive label shown in the action editor. | |
Disabled | The execution of a disabled action is skipped. |
Possible combinations of configuration
The following configurations are mutually exclusive and cannot be executed simultaneously:- Item ID - The action is performed on an item with the specified ID in the list where the workflow was initiated.
- Item ID + List - The action is performed on an item with the specified ID in the list identified by its provided internal name.
- Item Url - The action is executed on an item with the provided URL adress
- CAML Query - The action is performed on an item located using the provided CAML Query in the list where the workflow was initiated.
- CAML Query + List - The action is performed on an item located using the provided CAML Query in the list identified by its provided internal name.
Delete permissions

Remove role permission association from item.
Properties | Description | Value / Comment |
---|---|---|
Principal | Principal identification to be removed. |
|
Level | Level to be removed. If empty, all levels will be removed. Use Read/Write or permission levels in site collection. |
|
Item id | If empty, workflow associated item is processed. Otherwise you may specify item id of item to process. | 3 |
List | If empty, workflow associated item is processed. If List is specified, it is also required to specify item ID | Level4 |
CAML query | If empty, workflow associated item is processed. CAML query for item retrieval. Might be used instead direct entering of item id or instead of current context item |
<Where><Eq> |
Item URL | If empty, workflow associated item is processed. Instead of item ID you may use item full URL |
|
Recursive | If enabled, action is applied to item and if item is folder, also to items in folder. |
|
Scope | Scope for CAML query |
|
Behavior | Behavior for retrieving an item |
|
Label | Descriptive label shown in the action editor. | |
Disabled | The execution of a disabled action is skipped. |
Possible combinations of configuration
The following configurations are mutually exclusive and cannot be executed simultaneously:- Item ID - The action is performed on an item with the specified ID in the list where the workflow was initiated.
- Item ID + List - The action is performed on an item with the specified ID in the list identified by its provided internal name.
- Item Url - The action is executed on an item with the provided URL adress
- CAML Query - The action is performed on an item located using the provided CAML Query in the list where the workflow was initiated.
- CAML Query + List - The action is performed on an item located using the provided CAML Query in the list identified by its provided internal name.
Get permissions

Read permission settings into variable. Values retrieved might be filtered by level, mask or regular expression. Able to get permissions for specific person.
Properties | Description | Value / Comment |
---|---|---|
Target variable | Name of variable to store result of action. | ReadPerm |
Principal Mask | Principal name filter. Might be only part of name. | to match "JanNovak", enter "Jan" |
Use Regular Expression | If enabled, principal mask can contain regular expression. |
|
Level | Level name filter. Might be only part of the level name. Use Read/Write or permission levels in site collection. |
|
Item id | If empty, workflow associated item is processed. Otherwise you may specify item id of item to process. | 3 |
List | If empty, workflow associated item is processed. If List is specified, it is also required to specify item ID | Level4 |
CAML query | If empty, workflow associated item is processed. CAML query for item retrieval. Might be used instead direct entering of item id or instead of current context item |
<Where><Eq> |
Item URL | If empty, workflow associated item is processed. Instead of item ID you may use item full URL |
|
Recursive | If enabled, action is applied to item and if item is folder, also to items in folder. |
|
Scope | Scope for CAML query |
|
Behavior | Behavior for retrieving an item |
|
Label | Descriptive label shown in the action editor. | |
Disabled | The execution of a disabled action is skipped. |
Possible combinations of configuration
The following configurations are mutually exclusive and cannot be executed simultaneously:- Item ID - The action is performed on an item with the specified ID in the list where the workflow was initiated.
- Item ID + List - The action is performed on an item with the specified ID in the list identified by its provided internal name.
- Item Url - The action is executed on an item with the provided URL adress
- CAML Query - The action is performed on an item located using the provided CAML Query in the list where the workflow was initiated.
- CAML Query + List - The action is performed on an item located using the provided CAML Query in the list identified by its provided internal name.
Set permissions

Add permission assignment for a user principal to item.
Properties | Description | Value / Comment |
---|---|---|
Principal | Principal name to assign permissions | TestGroup |
Level | Permission level to assign. Use Read/Write or permission levels in site collection. |
|
Overwrite | If enabled, user permissions not specified in action will be removed |
|
Item id | If empty, workflow associated item is processed. Otherwise you may specify item id of item to process. | 3 |
List | If empty, workflow associated item is processed. If List is specified, it is also required to specify item ID | Level4 |
CAML query | If empty, workflow associated item is processed. CAML query for item retrieval. Might be used instead direct entering of item id or instead of current context item |
<Where><Eq> |
Item URL | If empty, workflow associated item is processed. Instead of item ID you may use item full URL |
|
Recursive | If enabled, action is applied to item and if item is folder, also to items in folder. |
|
Scope | Scope for CAML query |
|
Behavior | Behavior for retrieving an item |
|
Label | Descriptive label shown in the action editor. | |
Disabled | The execution of a disabled action is skipped. |
Possible combinations of configuration
The following configurations are mutually exclusive and cannot be executed simultaneously:- Item ID - The action is performed on an item with the specified ID in the list where the workflow was initiated.
- Item ID + List - The action is performed on an item with the specified ID in the list identified by its provided internal name.
- Item Url - The action is executed on an item with the provided URL adress
- CAML Query - The action is performed on an item located using the provided CAML Query in the list where the workflow was initiated.
- CAML Query + List - The action is performed on an item located using the provided CAML Query in the list identified by its provided internal name.
Reset permissions

Reset specific item permissions.
Properties | Description | Value / Comment |
---|---|---|
Reset type |
Reset permissions action:
|
|
Item id | If empty, workflow associated item is processed. Otherwise you may specify item id of item to process. | 3 |
List | If empty, workflow associated item is processed. If List is specified, it is also required to specify item ID | Level4 |
CAML query | If empty, workflow associated item is processed. CAML query for item retrieval. Might be used instead direct entering of item id or instead of current context item |
<Where><Eq> |
Item URL | If empty, workflow associated item is processed. Instead of item ID you may use item full URL |
|
Recursive | If enabled, action is applied to item and if item is folder, also to items in folder. |
|
Scope | Scope for CAML query |
|
Behavior | Behavior for retrieving an item |
|
Label | Descriptive label shown in the action editor. | |
Disabled | The execution of a disabled action is skipped. |
Possible combinations of configuration
The following configurations are mutually exclusive and cannot be executed simultaneously:- Item ID - The action is performed on an item with the specified ID in the list where the workflow was initiated.
- Item ID + List - The action is performed on an item with the specified ID in the list identified by its provided internal name.
- Item Url - The action is executed on an item with the provided URL adress
- CAML Query - The action is performed on an item located using the provided CAML Query in the list where the workflow was initiated.
- CAML Query + List - The action is performed on an item located using the provided CAML Query in the list identified by its provided internal name.
Store permissions

Store item permission state to variable. It is possible to restore permissions by Restore permissions activity.
Properties | Description | Value / Comment |
---|---|---|
Target variable | Name of variable to store permission data | StoredPerm |
Item id | If empty, workflow associated item is processed. Otherwise you may specify item id of item to process. | 3 |
List | If empty, workflow associated item is processed. If List is specified, it is also required to specify item ID | Level4 |
CAML query | If empty, workflow associated item is processed. CAML query for item retrieval. Might be used instead direct entering of item id or instead of current context item |
<Where><Eq> |
Item URL | If empty, workflow associated item is processed. Instead of item ID you may use item full URL |
|
Recursive | If enabled, action is applied to item and if item is folder, also to items in folder. |
|
Scope | Scope for CAML query |
|
Behavior | Behavior for retrieving an item |
|
Label | Descriptive label shown in the action editor. | |
Disabled | The execution of a disabled action is skipped. |
Possible combinations of configuration
The following configurations are mutually exclusive and cannot be executed simultaneously:- Item ID - The action is performed on an item with the specified ID in the list where the workflow was initiated.
- Item ID + List - The action is performed on an item with the specified ID in the list identified by its provided internal name.
- Item Url - The action is executed on an item with the provided URL adress
- CAML Query - The action is performed on an item located using the provided CAML Query in the list where the workflow was initiated.
- CAML Query + List - The action is performed on an item located using the provided CAML Query in the list identified by its provided internal name.
Restore permissions

Restores item permission to state previously saved into variable by Store permissions action.
Properties | Description | Value / Comment |
---|---|---|
Source variable | Name of variable with stored user permission data | StoredPerm |
Item id | If empty, workflow associated item is processed. Otherwise you may specify item id of item to process. | 3 |
List | If empty, workflow associated item is processed. If List is specified, it is also required to specify item ID | Level4 |
CAML query | If empty, workflow associated item is processed. CAML query for item retrieval. Might be used instead direct entering of item id or instead of current context item |
<Where><Eq> |
Item URL | If empty, workflow associated item is processed. Instead of item ID you may use item full URL |
|
Recursive | If enabled, action is applied to item and if item is folder, also to items in folder. |
|
Scope | Scope for CAML query |
|
Behavior | Behavior for retrieving an item |
|
Label | Descriptive label shown in the action editor. | |
Disabled | The execution of a disabled action is skipped. |
Possible combinations of configuration
The following configurations are mutually exclusive and cannot be executed simultaneously:- Item ID - The action is performed on an item with the specified ID in the list where the workflow was initiated.
- Item ID + List - The action is performed on an item with the specified ID in the list identified by its provided internal name.
- Item Url - The action is executed on an item with the provided URL adress
- CAML Query - The action is performed on an item located using the provided CAML Query in the list where the workflow was initiated.
- CAML Query + List - The action is performed on an item located using the provided CAML Query in the list identified by its provided internal name.
Ensure group

Checks for existence of a specified group either in Sharepoint or AD. If such group does not exist, it is created instead. Active Directory groups supported in On-Premises environment.
Properties | Description | Value / Comment |
---|---|---|
Group name | Group name | |
GroupType | Group type |
|
Owner | Owner | |
Description | ||
Parameters | Parameters for creation group | |
Label | Descriptive label shown in the action editor. | |
Disabled | The execution of a disabled action is skipped. |
Group membership

Activity enables multiple action with groups. Active Directory groups supported in On-Premises environment.
Properties | Description | Value / Comment |
---|---|---|
Group name | Specify group name | |
Operation | Define operation for group |
|
UserData | Data to be either added, removed or checked. Works only with Add member, Remove Member and Check user if exists in group operations | |
Recursive | If enabled, action is applied to item and if item is folder, also to items in folder. |
|
TargetVariable | Variable to store action output | |
Label | Descriptive label shown in the action editor. | |
Disabled | The execution of a disabled action is skipped. |
If action

The If activity checks a condition to determine if a Success or Else activities should be taken. For easier editing of longer expressions there is a "Edit" button, which opens a modal window with the editor.
Properties | Description | Value / Comment |
---|---|---|
Expression | Expression which is evaluated and by the result of expression it is decided if "Success" or "Else" actions will be processed. | |
Label | Descriptive label shown in the action editor. | |
Disabled | The execution of a disabled action is skipped. |
With this If action we are evaluating if approval date is empty. It is a value that is automatically set when workflow is started. In this example workflow can be return to start state for cases when author needs to adjust some data on the form/item. But we want to keep the initial start date. We use expression '{Item:s_approvalStart}'.trim() === ''
to determine if the field s_approvalStart is empty. If it is true, we set its value to get the date:
And then the workflow continues to execute the other actions. If the condition is not true, nothing will happen and workflow continues with other actions.
In this example, we set different state to different document types. Document type is dropdown field on form. In first If action we use condition, where we compare field s_invoiceType where the invoice type is stored to value CAPEX. The expression is '{Item:s_invoiceType}' == 'CAPEX'
. If this is true (the value in form field s_invoiceType is CAPEX), workflow will set state to Capex and actions on Capex state will be executed. If it is not true, actions in Else will be executed. There is another If action to evaluate value of s_invoiceType field. The expression is '{Item:s_invoiceType}' == 'Material'. If true, workflow will set state to Material and actions on Material state will be executed. This will repeat until we compare all invoice types. In Else of the last If action is Set state where workflow set state to Cancelled. This will happen if the all the above condition are not met. For example invoice type is empty.
Loop action

Use a Loop activity to automatically control the extraction of data from an array.
This activity lets you take a row at a time from the array and pass it through the workflow before looping back to get the next row. For example, to send an email to a list of resources, you would perform a query to return the list.
Variables during process:
LOOP_INDEX – the current index being processed
LOOP_ITEM_KEY – current processed key (default index – 0, 1, 2..)
LOOP_ITEM_VALUE – current processed value (value of the key)
LOOP_ITEM_COUNT – number of processed indexes
Example of variables used in Write Table activity:
<WriteTiSaTable Disabled="false" Recursive="false" TargetField="s_approvalProcessHistory" Values="{Func:GetSpDateTime}$${Wf:initiator}$$$$### {wf:LOOP_ITEM_KEY} {wf:LOOP_ITEM_VALUE}" KeepTiSaTokens="false" />
Properties | Description | Value / Comment |
---|---|---|
Expression | If an expression is defined, the loop ends according to its evaluation. | |
Limit | Max loop iterations | By default value: 1000 |
Type | Select type of data source |
|
DataSource | Set data source by type | |
DataSourceConfiguration | Set data source configuration by type | |
Label | Descriptive label shown in the action editor. | |
Disabled | The execution of a disabled action is skipped. |
Numeric
The "Numeric" type is used to handle a series of numbers, separated by a specific delimiter. This is particularly useful when you need to process a list of numeric values within a single string input.
Configuration Options
- Separator: The character used to divide each number in the string. Common separators include a comma (,), a pipe (|), or a semicolon (;).
- Javascript Field: Optionally, a JavaScript field can be used to dynamically modify or calculate values in this list.
<DataSource>5..8</DataSource>
<DataSource>6,8,79,6,-12,0</DataSource>
Separated string
The "Separated String" is a data structure used to handle lists of values within a string. Each value in the string is separated by a designated delimiter, making it possible to extract individual entries. This is particularly useful when processing or iterating over multiple entries from a single string input.
Configuration Options
- Separator: The character or characters used to divide values in the string. For example, a semicolon (;), a pipe (|), or any other delimiter.
- Trim: When set to true, this option removes any leading or trailing whitespace from each entry in the separated string.
- Reverse: If set to true, the separated string entries will be processed in reverse order.
- RemoveEmptyEntries: When enabled (true), this option removes any empty entries from the separated string. This is helpful if there are multiple delimiters in a row, which might otherwise create empty entries in the list.
<DataSource>jedna;dva;tři;čtyři</DataSource>
<DataSource>jedna|dva a dva||tři |čtyři|</DataSource>
<DataSourceConfiguration>
{"Separator": ["|"], "Trim": true, "Reverse": false, "RemoveEmptyEntries": true}
</DataSourceConfiguration>
Json
The "JSON" type allows processing structured data, enabling you to work with complex objects or arrays within a JSON string. This setup is ideal when extracting specific fields or values from JSON-based data structures.
Configuration Options
-
DataSourceConfiguration: Configures the JSON parsing behavior with several options:
- KeyExpression: Defines the index or key name to identify each item within the JSON. If not explicitly set, the system automatically assigns an index.
- ValueExpression: Specifies the attribute to extract from each JSON object. This expression uses JSONPath notation (e.g., $.Value1).
- Reverse: If set to true, processes the JSON items in reverse order.
SP
This configuration is set up to retrieve and use specific data from a SharePoint list or data source using CAML queries and JSON expressions.
Configuration Options
- DataSource: Required – a relative path to a list on the current website is expected, e.g., Lists/TestList or SiteAssets.
-
DataSourceConfiguration: The configuration is entered here in JSON format. If a property is not needed, it does not need to be specified.
- CAML : (optional) – If set, the selection of items from the list is restricted based on the CAML query (depending on the "Scope" property setting).
- KeyField : (optional) – Selects the value of a field from the item. The value is available in the automatically created variable LOOP_ITEM_KEY. If not defined, the variable is automatically populated with the item's ID.
- ValueField : (optional) – Selects the value of a field from the item. The value is available in the automatically created variable LOOP_ITEM_VALUE. If not defined, the variable is automatically populated with the item's title.
- UseContextItem : If set to true, the current item is set as the context item for the duration of the loop. This setting is useful when working with items from the source beyond the KeyField/ValueField and the original context item is not required. For example, bulk updating item properties.
- Scope : (optional) – Changes the scope for the CAML query, with the default value being Default. Possible values are: Default, Recursive, RecursiveAll.
<DataSource>
SiteAssets
</DataSource>
Default configuration
<DataSourceConfiguration>
{
"CAML": "",
"KeyField": "",
"ValueField": "",
"UseContextItem": true,
"Scope": "Default"
}
</DataSourceConfiguration>
Example 1.
Generating the AT table based on a query to the contacts list. The contacts list contains folders organized by departments, and it is necessary
to select items where the condition Age >= 21 is met. The data source configuration might be as follows:
<DataSourceConfiguration>
{
"CAML": "21 "
"Scope": "Recursive"
}
</DataSourceConfiguration>
Example 2.
In the register, it is necessary to synchronize the company name for entries with the same Company ID (IČO). The values will be stored in variables,
and within the loop, the context item will be changed.
<DataSourceConfiguration>
{
"CAML": "{item:ico} "
"UseContextItem": true
}
</DataSourceConfiguration>
Xml
You can configure the loop to target specific elements or attributes in an XML structure by using XPath expressions in SourceExpression
, KeyExpression
, and ValueExpression
. This allows you to navigate the XML document, select nodes, and retrieve attributes or text values.
Configuration Options
- SourceExpression: Defines the path to select elements in XML.
- KeyExpression: Specifies an attribute to use as a unique identifier.
- ValueExpression: Specifies the text content of an element or leaves blank for default text.
- Reverse: Optionally reverses the loop iteration.
<DataSource>
<root>
<items>
<item key="a1">
<somevalue>abc</somevalue>
</item>
<item key="a2">
<somevalue>def</somevalue>
</item>
</items>
</root>
</DataSource>
<DataSourceConfiguration>
{
"SourceExpression":"//item", // XPath to select all <item> elements
"KeyExpression":"@key", // Selects the "key" attribute in <item> (e.g., "a1", "a2")
"ValueExpression":"somevalue", // Selects the <somevalue> element text (e.g., "abc", "def")
"Reverse": false // Optional, set to true to iterate in reverse order
}
</DataSourceConfiguration>
<DataSource>
<root>
<items>
<item key="a1">
<somevalue x="11">abc</somevalue>
</item>
<item key="a2">
<somevalue x="12">def</somevalue>
</item>
</items>
</root>
</DataSource>
<DataSourceConfiguration>
{
"SourceExpression":"//somevalue", // XPath to select all <somevalue> elements
"KeyExpression":"@x", // Selects the "x" attribute (e.g., "11", "12")
"ValueExpression":"", // An empty string means to use the element text (e.g., "abc", "def")
"Reverse": false // Optional, iterate in normal order
}
</DataSourceConfiguration>
Infinity loop
In this setup, you’re configuring an infinite loop that continues until a specified condition is met. This kind of loop doesn’t use a data source to iterate over, but rather relies on an expression to control the loop's duration and stop criteria.
Loop will continue to execute as long as the specified expression evaluates to true. This can be useful for cases where you need to repeat an action a certain number of times or until a condition is met, but be cautious as it could lead to infinite processing if the condition is never met.
Be mindful to set the expression and limit carefully to avoid an actual infinite loop that could strain resources or cause errors in the workflow system.
Expression="{wf:LOOP_INDEX} < 5"
Limit="10"
Try-Catch

A Try-Catch activity tries to execute its Try actions. If the Try activity throws any exception, the TryCatch activity uses its Catch collection to match the exception.
Properties | Description | Value / Comment |
---|---|---|
Error Message Variable | Name of variable for store Error Message. | |
Stack Trace Variable | Name of variable for store Stack Trace. | |
Label | Descriptive label shown in the action editor. | |
Disabled | The execution of a disabled action is skipped. |
Throw error

Activity to throw error statement.
Properties | Description | Value / Comment |
---|---|---|
Error Message | Define Error message text. | |
Label | Descriptive label shown in the action editor. | |
Disabled | The execution of a disabled action is skipped. |
Break

The Break activity enables you to stop the loop at a chosen point, and then continues with the next activity.
Properties | Description | Value / Comment |
---|---|---|
Label | Descriptive label shown in the action editor. | |
Disabled | The execution of a disabled action is skipped. |
Continue

Enables you to skip the remaining steps in the current iteration inside a loop activity.
Properties | Description | Value / Comment |
---|---|---|
Label | Descriptive label shown in the action editor. | |
Disabled | The execution of a disabled action is skipped. |
Wait for value

Define a value for which the workflow will wait. Use this when you need repeatedly check to see if a condition is met (an automatic number is generated by receiver or wait for external source to fill in the value).
Properties | Description | Value / Comment |
---|---|---|
Timeout | Web service or web request call timeout in milliseconds. | By default value: 30 |
Tick | Tick interval for testing field value. | By default value: 5 |
Target field | Field to store the result of action. | |
WaitFor | Reason for wait for activity. |
|
Value | Value to be processed by action. | |
Expression | Expression to be evaluated. | |
Item id | If empty, workflow associated item is processed. Otherwise you may specify item id of item to process. | |
List | If item id specified, it is also required to specify list name. | |
CAML query | CAML query for item retrieval. Might be used instead direct entering of item id or instead of current context item. | |
Item URL | Instead of item ID you may use item full URL |
|
Recursive | If enabled, action is applied to item and if item is folder, also to items in folder. |
|
Scope | Scope for CAML query |
|
Behavior | Behavior for retrieving an item |
|
Label | Descriptive label shown in the action editor. | |
Disabled | The execution of a disabled action is skipped. |
Possible combinations of configuration
The following configurations are mutually exclusive and cannot be executed simultaneously:- Item ID - The action is performed on an item with the specified ID in the list where the workflow was initiated.
- Item ID + List - The action is performed on an item with the specified ID in the list identified by its provided internal name.
- Item Url - The action is executed on an item with the provided URL adress
- CAML Query - The action is performed on an item located using the provided CAML Query in the list where the workflow was initiated.
- CAML Query + List - The action is performed on an item located using the provided CAML Query in the list identified by its provided internal name.
Convert document

Convert document from word to PDF using Word automation service. Not applicable for SharePoint Online.
Properties | Description | Value / Comment |
---|---|---|
Source URL | If empty, workflow associated item is processed. Otherwise you may specify full file URL. | http://sps/sites/site1/Docs/document.docx |
Destination URL | If empty, workflow associated item is processed and the extension will be changed to PDF. Otherwise you may specify full file URL. | http://sps/sites/site1/Docs/document.pdf |
Label | Descriptive label shown in the action editor. | |
Disabled | The execution of a disabled action is skipped. |
To ensure proper functionality, additional configurations are required in the central administration:
-
Navigate to the following path and verify that "Word Automation Services" has the "Started" status: Application Management/Service Applications/Manage services on server.
-
If the service status is "Not started", it needs to be installed first. Proceed to the following path and click on "New", then select "Word Automation Services": Application Management/Service Applications/Manage service applications.
-
On the subsequent page, provide a name and choose whether to add this service to an existing application pool or create a new one. Click "Next".
-
Fill in the Database Server and Name fields for where this service will run, then click "Finish".
-
Once the installation is complete, navigate to the following path and select the SharePoint Web Application: Application Management/Service Applications/Service Application Associations.
-
On the subsequent page, switch from "Default" to "Custom" and ensure that all previously selected options in the default setting are checked, along with your Word Automation Service.
-
Finally, verify if the service is running correctly by accessing the following path: Application Management/Service Applications/Manage services on server.
Set variable

Set variable value. If variable doesn’t exist, new is automatically created.
Properties | Description | Value / Comment |
---|---|---|
Variable name | Specify name of the variable. After setting the variable you can use replace token {WF:VariableName} where VariableName is specified name in this action. | VariableName |
Value | Specify value of the variable. You can use replace tokens and other variables. | {Item:Departments} |
Workflow internal name | Specify internal name of the workflow you want to start. May differ from the current workflow instance. | |
Label | Descriptive label shown in the action editor. | |
Disabled | The execution of a disabled action is skipped. |
Set state

Set specific state in current workflow to skip task interaction. Common usage is in "If" action you can set different states based on expression.
There is limited number of hops to new state, workflow is only allowed to do 50 Set state actions per event processing (e.g. in one processinf of completed task or one start of workflow event).
Properties | Description | Value / Comment |
---|---|---|
State internal name | Specify state Internal name. In the designer it will be displayed as dashed transition. | NotApproved |
Transition internal name | Optionally specify a transition, when multiple transitions is defined. | |
Disable transition | Disable process actions from transition if exist. |
|
Label | Descriptive label shown in the action editor. | |
Disabled | The execution of a disabled action is skipped. |
Write log

Write log entry into WF Engine log.
Properties | Description | Value / Comment |
---|---|---|
Value | Log entry value. You can use also replace tokens and variables. | "Starting workflow in item with title {Item:Title}" |
Log level | Log level severity |
|
Label | Descriptive label shown in the action editor. | |
Disabled | The execution of a disabled action is skipped. |
Start workflow

Start an additional workflow. If you specify only internal name, workflow will start on current item.
Properties | Description | Value / Comment |
---|---|---|
Workflow run options |
|
|
Workflow variables | You can add variables used in start form. Variable needs to be initialized in XML of target form as well as StartForm attribute to be set to true in order for this function to work properly. |
|
Workflow internal name | Specify internal name of the workflow you want to start. | Approval |
Item ID | If empty, workflow associated item is processed. Otherwise you may specify item id of item to process. | |
List | If item ID is specified, it is also required to specify list name. | |
CAML query | CAML query for item retrieval. Might be used instead direct entering of item id or instead of current context item | |
Item URL | Instead of item ID you may use item full URL |
|
Recursive | If enabled, action is applied to item and if item is folder, also to items in folder. |
|
Scope | Scope for CAML query |
|
Behavior | Behavior for retrieving an item |
|
Label | Descriptive label shown in the action editor. | |
Disabled | The execution of a disabled action is skipped. |
Possible combinations of configuration
The following configurations are mutually exclusive and cannot be executed simultaneously:- Item ID - The action is performed on an item with the specified ID in the list where the workflow was initiated.
- Item ID + List - The action is performed on an item with the specified ID in the list identified by its provided internal name.
- Item Url - The action is executed on an item with the provided URL adress
- CAML Query - The action is performed on an item located using the provided CAML Query in the list where the workflow was initiated.
- CAML Query + List - The action is performed on an item located using the provided CAML Query in the list identified by its provided internal name.
Stop workflow

Stop an additional workflow. If you specify only internal name, workflow will stop on current item.
Properties | Description | Value / Comment |
---|---|---|
Workflow run options |
|
|
Workflow internal name | Specify internal name of the workflow you want to stop. | Approval |
Item ID | If empty, workflow associated item is processed. Otherwise you may specify item ID of item to process. | |
List | If item ID is specified, it is also required to specify list name. | |
CAML query | CAML query for item retrieval. Might be used instead direct entering of item id or instead of current context item | |
Item URL | Instead of item ID you may use item full URL |
|
Recursive | If enabled, action is applied to item and if item is folder, also to items in folder. |
|
Scope | Scope for CAML query |
|
Behavior | Behavior for retrieving an item |
|
Label | Descriptive label shown in the action editor. | |
Disabled | The execution of a disabled action is skipped. |
Possible combinations of configuration
The following configurations are mutually exclusive and cannot be executed simultaneously:- Item ID - The action is performed on an item with the specified ID in the list where the workflow was initiated.
- Item ID + List - The action is performed on an item with the specified ID in the list identified by its provided internal name.
- Item Url - The action is executed on an item with the provided URL adress
- CAML Query - The action is performed on an item located using the provided CAML Query in the list where the workflow was initiated.
- CAML Query + List - The action is performed on an item located using the provided CAML Query in the list identified by its provided internal name.
Is running

Check if workflow is running.
Properties | Description | Value / Comment |
---|---|---|
Target variable | Variable name to store the result of action. | |
Workflow internal name | Specify internal name of the workflow you want to start. | |
Item ID | If empty, workflow associated item is processed. Otherwise you may specify item ID of item to process. | |
List | If item ID is specified, it is also required to specify list name. | |
CAML query | CAML query for item retrieval. Might be used instead direct entering of item id or instead of current context item. | |
Item URL | Instead of item ID you may use item full URL. |
|
Recursive | If enabled, action is applied to item and if item is folder, also to items in folder. |
|
Scope | Scope for CAML query |
|
Behavior | Behavior for retrieving an item |
|
Label | Descriptive label shown in the action editor. | |
Disabled | The execution of a disabled action is skipped. |
Possible combinations of configuration
The following configurations are mutually exclusive and cannot be executed simultaneously:- Item ID - The action is performed on an item with the specified ID in the list where the workflow was initiated.
- Item ID + List - The action is performed on an item with the specified ID in the list identified by its provided internal name.
- Item Url - The action is executed on an item with the provided URL adress
- CAML Query - The action is performed on an item located using the provided CAML Query in the list where the workflow was initiated.
- CAML Query + List - The action is performed on an item located using the provided CAML Query in the list identified by its provided internal name.
Web request

Call web request. Web request is an activity that can execute HTTP request without the need for Web Service proxy (e.g. to call REST services).
Properties | Description | Value / Comment |
---|---|---|
URL | Web service URL. | |
Method name | Web service method to be called. |
|
UserAgent | User agent value for request. If empty, value is "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)" | |
Accept | Accept value for request. If empty, value is: "text/html,application/xhtml+ xml,application/xml;q=0.9,*/*;q=0.8" | |
Content type | Content type value for request. If Empty, value is: "application/x-www-form-urlencoded" | |
Response encoding | Response data format. |
|
PreAuthenticate | Enable PreAuthenticate. |
|
Async | Enable async call. |
|
Form data | Request input data. | |
Web request POST body | Raw body of the web request. | |
Headers | Request additional headers. | |
User name | Authentication user name | |
Password | Authentication password | |
Timeout | Web service or web request call timeout in milliseconds. | |
Error Action | Workflow activity behavior when errors occur. |
|
Target variable | Variable name to store the result of action. | |
Label | Descriptive label shown in the action editor. | |
Disabled | The execution of a disabled action is skipped. |
Call webservice

Call web service. Allowed web service type is only service with WSDL definition.
Properties | Description | Value / Comment |
---|---|---|
URL | Web service URL | |
Method name | Web service method to be called | |
Service name | Optional attribute, if service WSDL contains multiple services, name must be specified. In other cases, default service name is used and property should be empty. | |
Parameters | Web service method parameter values. | |
User name | Authentication user name. | |
Password | Authentication password. | |
Timeout | Web service or web request call timeout in milliseconds. | |
Error Action | Workflow activity behavior when errors occur. |
|
Target variable | Workflow variable name to store web service call result. | |
Label | Descriptive label shown in the action editor. | |
Disabled | The execution of a disabled action is skipped. |
Query XML

Query XML data using XPath.
Properties | Description | Value / Comment |
---|---|---|
XML Value | Insert XML here or use variable with XML document (Usually its output from Query SP Action) | |
XPath expression | Insert XPath expression. | |
Target variable | Variable where is result stored | |
Output format | If multiple values are retrieved by XPath query, output format specifies in which format data will appear in result. |
|
Record delimiter | For delimited output, this property specifies what record delimiter will be. | |
Field delimiter | For delimited output, this property specifies what field delimiter will be. | |
Label | Descriptive label shown in the action editor. | |
Disabled | The execution of a disabled action is skipped. |
Query SQL

Query SQL data
Properties | Description | Value / Comment |
---|---|---|
Connection string | Connection string for connecting to SQL database | |
Command text | SQL query command text for executing | |
Input parameters | Input parameters collection | |
Output mode | Defines formatting SQL result output |
|
Output variable | Output variable where result value is stored | |
Output variables | Variables for mapping result values | |
Label | Descriptive label shown in the action editor. | |
Disabled | The execution of a disabled action is skipped. |
Change context

Change context of executions of actions specified in this container
Properties | Description | Value / Comment |
---|---|---|
Site URL | If not empty, item is looked up in different site. Url needs to be specified in this field | |
Item id | If empty, workflow associated item is processed. otherwise you may specify item id of item to process | |
List | If item id is specified, it is also required to specify list name | |
CAML query | CAML query for item retrieval. Might be used instead of direct entering of item id or instead of current context item | |
Item url | Instead of item Id you may use item full URL | |
Recursive | If enabled, action is applied to item and item is folder, also to items in folder. | |
Scope | Scope of CAML query |
|
Behavior | Behavior for retrieving an item |
|
Label | Descriptive label shown in the action editor | |
Disabled | The execution of a disabled action is skipped. |
Possible combinations of configuration
The following configurations are mutually exclusive and cannot be executed simultaneously:- Item ID - The action is performed on an item with the specified ID in the list where the workflow was initiated.
- Item ID + List - The action is performed on an item with the specified ID in the list identified by its provided internal name.
- Item Url - The action is executed on an item with the provided URL adress
- CAML Query - The action is performed on an item located using the provided CAML Query in the list where the workflow was initiated.
- CAML Query + List - The action is performed on an item located using the provided CAML Query in the list identified by its provided internal name.
Is user in group

Check if specified user is member of Active Directory group and result is set to specified variable (True / False). Not applicable for SharePoint Online.
Properties | Description | Value / Comment |
---|---|---|
Target variable | Specify variable where action result is stored. Result is True or False. | IsAccountant |
User name | Specify user name or use replace token. | {wf:Initiator} |
Group name | Specify SharePoint group name. | wf-Accountants |
Label | Descriptive label shown in the action editor. | Member of accountants? |
Disabled | The execution of a disabled action is skipped. |
Action container

Container for activities. Action that does not have a function – only stores action to logical units. Can be copied with all nested actions.
Properties | Description | Value / Comment |
---|---|---|
Label | Descriptive label shown in the action editor. | |
Disabled | The execution of a disabled action is skipped. |
Save Changes

Save changes made to context item. In case of problems with data storage and troubleshooting. A workflow stores data only after it has processed all activities.
Properties | Description | Value / Comment |
---|---|---|
Label | Descriptive label shown in the action editor. | |
Disabled | The execution of a disabled action is skipped. |
Cancel Changes

Cancel all changes made to context item and reload context item. In case of problems with data storage and troubleshooting. A workflow stores data only after it has processed all activities.
Properties | Description | Value / Comment |
---|---|---|
Label | Descriptive label shown in the action editor. | |
Disabled | The execution of a disabled action is skipped. |
Replace Tokens
Replaceable parameters, or tokens, can be used to provide values for SharePoint solution items which actual values aren't known at design time. Replace tokens integrate the use of certain functions in the workflow. Allows to repurpose or reuse variable set to SharePoint columns to customize email notifications, user tasks or fields on form.
Replace token is defined with keyword followed by colon and block of code designed to perform a particular task.
The code to be executed is placed inside curly brackets: {}
.
Parameters are listed inside the parentheses ()
separated by commas. Add custom text inside ""
.
Replace tokens can be merged together – as a nested function {Func:GetUserTitle({Func:GetMatrixUsers(Wf_ApprovalMatrix)})}
or by adding different replace tokens together with custom text – New item to approve {Item:Title} by {Wf:initiator}
.
Prefix Item
Replace token with keyword Item {Item:xxx}
. Will return field values from current Item running the workflow. Allows to repurpose or reuse values set to SharePoint columns to customize email notifications, user tasks or conditions in workflow. For xxx can be used any SharePoint column that is defined for item.
Example: Definition {Item:Title}
will return to specified field value from Title field.
User type of field
Designed for user data fields – user login, SharePoint group and / or Active Directory group.
To better display values use properties which return more detailed values.
Replace token | Description | Value / Comment |
---|---|---|
{Item:Approvers} |
Retrieves value of Author field in system format. Retrieves internal name for field defined by SP group. Retrieves value for field defined by AD group. |
i:0#.w|dev\jnovak AdminUsers DEV\testgroup |
{Item:Approvers.Id} |
Property ID retrieves user ID within the site | 2 |
{Item:Approvers.Name} |
Property Name retrieves display name of the user | Jan Novák |
{Item:Approvers.IsSiteAdmin} |
Retrieves value true / false depending on whether the user is site collection administrator | True |
{Item:Approvers.email} |
Retrieves email address | jan.novak@aricoma.com |
Multiple User usage
Multiple users are defined within a field.
Replace token | Description | Value / Comment |
---|---|---|
{Item:Users} |
Retrieves field value in system format. | i:0#.w|dev\jnovak;i:0#.w|dev\test1 |
{Item:Users.Id} |
Property Id retrieves user ID within the site, separated by a semicolon | 2;10 |
{Item:Users.Name} |
Property Name retrieves display name of the user | Jan Novák;Test User 1 |
{Item:Users.IsSiteAdmin} |
Retrieves value true / false depending on whether the user is site collection administrator | True / False |
{Item:Users.email} |
Retrieves email address | jan.novak@aricoma.com; test1@aricoma.com |
Frequently used tokens
Replace token | Description | Value / Comment |
---|---|---|
{Item:Id} |
Retrieves ID value | 45 |
{Item:Url} |
Retrieves current item relative URL address | /sites/wfengine/Level3/46_.000 |
{Item:ContentTypeName} |
Retrieves content type internal name | WFItem |
{Item:ContentTypeId} |
Retrieves content type ID | 0x010080D03C4FB376944E9E623EE81E9C21E50035AE86AADD1C03 |
{Item:DisplayFormUrl} |
Retrieves display form relative URL address | /sites/wfengine/Level3/DispForm.aspx?Id=49 |
{Item:EditFormUrl} |
Retrieves edit form relative URL address | /sites/wfengine/Level3/EditForm.aspx?Id=50 |
{Item:DisplayFormFullUrl} |
Retrieves display form absolute URL address | http://devsp/sites/wfengine/Level3/DispForm.aspx?Id=51 |
{Item:EditFormFullUrl} |
Retrieves edit form absolute URL address | http://devsp/sites/wfengine/Level3/EditForm.aspx?Id=52 |
{Item:ListId} |
Retrieves list ID value | da8181b9-6ee9-48e9-b417-30e90e408479 |
{Item:ListUrl} |
Retrieves parent list URL | Level3 |
{Item:FileExtension} |
Retrieves file extension for file in a document library | |
{Item:FileName} |
Retrieves file name for file in a document library | Invoice_06 |
{Item:Attachments} |
Retrieves true or false, depending on whether the native SharePoint attachment field contains values | True / False |
Prefix WF
Workflow Engine sets some variables automatically. For active instances user can see values in Workflow data in ACTIVE INSTANCES. Prefix {WF:xxx}
can be used to call variable defined by a workflow action, e.g. SET VARIABLE.
Replace token | Description | Value / Comment |
---|---|---|
{WF:Initiator} |
Retrieves the user account under which the instance was created | i:0#.w|dev\irevilakova |
{WF:InstanceId} |
0e4ab564-0f26-4b2a-b1a3-efdff3c9c32b | |
{WF:LastMultiTaskId} |
093020f2-7e69-4b51-b4d3-41138521ae16 | |
{WF:TaskAssignedToUsers} |
Retrieves user to whom the task was assigned | i:0#.w|dev\jnovak |
{WF:LastTaskComment} |
Retrieves the last task comment | I approve the document. |
{WF:OutcomeLabel} |
Retrieves the value of selected outcome. | approve |
{wf:TASK_LAST_USER} |
Retrieves last user who processed the task. | i:0#.w|dev\jnovak |
Prefix Task
Prefix {Task:xxx}
allows you to retrieve values from current task to email notification for Task approvers in workflow.
Replace token | Description | Value / Comment |
---|---|---|
{Task:AssignedTo} |
Retrieves value of users with current assigned task. | |
{Task:Wf_Comment} |
Retrieves value of task comment. Used for workflow history table entry. |
Prefix TiSp
Prefix {TiSp:xxx}
retrieves values from templates defined in TreeINFO application.
Functions
Replace token with keyword Func. With {Func:xxx}
you can define a set of statements that performs a task or calculates a value to repurpose or reuse variable set to SharePoint columns.
Parameters are listed inside the parentheses ()
separated by commas.
Replace token | Description | Value / Comment |
---|---|---|
{Func:IsOnline} |
Retrieves value true/false depending on whether it is SharePoint Online or SharePoint On-Premises | true/false |
{Func:GetVariable(AssignTo,Review)} |
Archaic function – better option is {WF:variable} . Useful when workflow A calls workflow B and we need to retrieve variable AssignTo from workflow Review.GetVariable(parameters) |
lvl1appr |
{Func:IsRunningWorkflow(Acquaint,{wf:publishedItemId},ISOValidDocuments)} |
Retrieves value true/false whether workflow is running. {Func:IsRunningWorkflow(parameter1, parameter2, parameter3)} Parameter 1 – workflow internal name Parameter 2 – list item ID Parameter 3 – list name |
true/false |
{Func:GetSpDate} |
Retrieves current date in format yyyy-MM-dd | 2022-10-10 |
{Func:GetSpDateTime} |
Retrieves current date in format yyyy-MM-ddTHH:mm:SS | 2022-10-10T22:27:17 |
{Func:GetWebUrl} |
Retrieves web full URL | https://sp2022dev.local.int/sites/orders |
{Func:GetWebRelativeUrl} |
Retrieves web relative URL | /sites/orders |
{Func:GetAppUrl} |
Retrieves url of current SP application | https://sp2022dev.local.int |
{Func:GetTiSaAppUrl()} |
Retrieves url of TiSa application | https://sp2022dev.local.int/tisa |
{Func:GetTiSaVariable(SystemUserName)} |
Retrieves variable value defined in TreeInfo application. Alternative to {TiSp:xxx} | Administrator |
{Func:GetItemId} |
Retrieves item ID. Alternative for Item.ID | 2 |
{Func:GetParentFolderId} |
Retrieves parent folder ID. Applicable to libraries | 1 |
{Func:FormatDate({Item:DueDate},MMMM)} |
Retrieves date in the specified format {Func:FormatDate(parameter1, parameter2)} Parameter1 – date Parameter2 – date format according to DOCUMENTATION |
august |
{Func:DateAdd({Item:IssuedDay},month,1)} |
Add value to date {Func:DateAdd(parameter1, parameter2, parameter3)} Parameter1 – date Parameter2 – datePart – year, month, day, hour, minute, second, workday Parameter3 – amount |
2022-08-22T08:51:14.0000000 -> 2022-09-22T08:51:14.0000000 |
{Func:DateDiff({Item:IssuedDay},{Item:DueDate},day,onlyPart)} |
Retrieves difference between two dates {Func:DateDiff(parameter1, parameter2, parameter3, ?parameter4)} Parameter1 – start date Parameter2 – end date Parameter3 – datePart – year, month, day, hour, minute, second, workday Parameter4 – optional – onlyPart – without decimals |
3 |
{func:DateCompare(Item:DueDate),{func:getspDatetime},true)} |
Compares first parameter with second one. If the first parameter is bigger then returns true. {func:DateCompare(parameter1, parameter2, parameter3)} Parameter1 – Date that is being compared Parameter2 – Date that is being compared to Paramater3 – boolean (default false) – optional – If set to true only date will be compared, if set to false time will be taken into consideration if provided |
true |
{Func:GetMatrixUsers(Wf_ApprovalMatrix)} |
Retrieves relevant approvers from the approval matrix if applied | i:0#.w|local\test4;i:0#.w|local\test6 |
{Func:GetLookupValue({Item:Departments})} |
Retrieves lookup value without ID#; | 1#;HR -> HR |
{Func:GetLookupID({Item:Departments})} |
Retrieves ID value from lookup | 1#;HR -> 1 |
{Func:Expr('{Item:amountWithoutVat}'.replace(',','.'))} |
Retrieves Javascript expression | 857900,00 -> 857900.00 |
GetManagedMetadataTextField |
|
|
{Func:GetUserTitle({Item:Author})} |
Retrieves user display name. For multiple users (separated by a semicolon) separates output. | Jan Novák |
{Func:GetUserEmail({Item:Author})} |
Retrieves user email | jan.novak@example.com |
{Func:GetUserId({Item:Author})} |
Retrieves user ID | 12 |
{Func:ExpandUsers(AdminUsers)} |
Retrieves list of system names from AD / SP Group separated by semicolon | i:0#.w|dev\jnovak;i:0#.w|dev\test1 |
{Func:JsonPath('{WF:LOOP_ITEM_KEY}', $[0].Key)} |
Function for extracting data out of json files | |
{Func:XPath(parameters)} |
Function for extracting data out of xml files | |
{Func:Substring('{Item:RequestDescription}', 60)} |
Function for trimming strings. {Func:SubString(parameter1, parameter2, parameter3)} Parameter1 – input Parameter2 – max length of final string |
|
{Func:GetValidName('{Item:ord_Applicant}', 40)} |
Function for trimming invalid characters #% *: <> \ / | `" '& {} $ @! {Func:GetValidName(parameter1, parameter2, parameter3, parameter4, parameter5, parameter6)} Parameter1 – input Parameter2 – max length of final string Parameter3 – true/1 will keep file extension Parameter4 – file path Parameter5 – host URL |
Parameter6 – Optional, boolean – removes redundant symbols (such as dots and spaces) from the name of the file if set to true
i:0#.w|local\jnovak -> i_0_.w_local_jnovak |
{Func:Enc(value,value)} |
Retrieves encoded value without special characters(/,) used in workflow arguments | |
{Func:Replace('{Item:Note}','Lorem', 'Dolor')} |
Replaces value in the text. {Func:Replace(parameter1,parameter2,parameter3,parameter4)} Parameter1 – input; Parameter2 – what is being replaced Parameter3 – replacing string parameter4 – regex option |
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. -> Dolor ipsum dolor sit amet, consectetuer adipiscing elit. |
{Func:Match({WF:str},abcd?(\\d+), 1, '')} |
For extracting a string from a text or regular expression {Func:Match(parameter1, parameter2, parameter3, parameter4, ?parameter5)} Parameter1 – string / input Parameter2 – pattern Parameter3 – matchGroups Parameter4 – regexOptions Parameter5 – optional – separator |
{Func:Match({WF:str},(? |
{Func:EncText({Item:Comment})} |
For encoding invalid symbols; useful in workflow conditions | |
{Func:EncJson({Item:CurMessages})} |
For encoding invalid symbols in json files | |
{Func:EncLineBreak({Item:Comment})} |
Removes line breaks | |
{Func:Delegate({WF:signator}, sign)} |
Function for using workflow delegation function out of out of office settings. Definition is within workflow xml in configuration section. Not available in designer UI. Example code below. | |
{Func:UserProp({Task:AssignedTo}, Manager)} |
Retrieves user properties from Active Directory. For SharePoint Online, Workflow Engine must have read only permissions to Azure Active Directory. SharePoint On-Premises has automatically assigned rights. |
Delegation definition example:
<Configuration SchemaVersion="3" StartForm="false" CustomForm="false" IsFormAsync="false" AllowMultipleInstances="false" IsTemplate="false" TemplateColor="" TemplateIcon="" TemplateSortOrder="0">
<UserDelegations>
<UserDelegation ListUrl="Wf_OOF" SiteUrl="{const:RootUrl}" UserField="XWF_OOF_User" UserDelegateField="XWF_OOF_UserSign" DateFromField="XWF_OOF_From" DateToField="XWF_OOF_To" Name="sign" />
</UserDelegations>
<Designer HasLayout="true" />
</Configuration>
Debugging
Activities grouped in group Debug allow user to accomplish debugging function.
The Workflow Designer provides the ability to debug workflows and custom activities. Debugger provides the possibility to test workflow functionality in the context of a particular instance. Like in debug programs written in other programming languages, you can trace events step by step, stop the instance at some point and try to observe behavior and variable values.
You can connect to a running instance, see the current values in it, and eventually try to run the activity in context of that instance and examine the result.
When connected to a workflow instance in the debugger, you can try functionality of various replace tokens.
In designed workflow click the Debug tab from ribbon.
Property | Description | Value / Comment |
---|---|---|
Run | Runs the instance | |
Select instance | Select from list of active instances running on items in list associated to current workflow. | |
List item ID | Retrieves selected item ID | |
List URL | Retrieves selected list URL |
Click select instance to open a specific item with running instance. When selected, the ribbon changes – the item ID and list URL will be added.

To practice the basic properties and functionalities (e.g. replace tokens) is ideal to use basic activity such as SET FIELD VALUE. You add it to your workflow and set required properties or choose from already existing actions. Go back to debug window. The action have to be selected (you see dotted line) to click the Run button..
A window will appear showing the properties related to selected action.

Properties can be changed. Clicking the Run button in the lower right of the window will start the action in the background. Clicking Run will display the loading wheel so the user has information that the activity is being processed.
After the workflow is completed, the application log appears in the right part of the window. If the test action is successful, the tested value is overwritten in specified item field.
On tab Variables is list of replace tokens with values related for running instance.
Log
SharePoint Online
With the SharePoint Online solution, logs are recorded to our in-house Azure database and are therefore inaccessible to users. Production logs are kept for a period of four months.
SharePoint On-Premises
Application logs can be set to both the file and the database or to both places at the same time. Logs are stored in one database, it cannot be distinguished, it is shared within the SharePoint farm.
The setup is done in the nlog.nlog file where the paths for log records are set.
Example of logs from the file system.
Example of database table dbo.Log.
Example of query results over the dbo.Log table.
FAQ
A FAQ is a list of frequently asked questions (FAQs) and answers on a particular topic.
More questions can be found in dedicated Stack Overflow TreeINFO Team. If you need access, contact treeinfo@aricoma.com.
{wf:TASK_LAST_USER}
Support
If this documentation doesn't answer your questions, please send us an email at treeinfo@aricoma.com.
Changelog
See the changes, fixes, improvements and updates released in the latest versions.
Build 3.20.2505.14001 Microsoft 365 (22.5.2025)
- Added Workflow Engine – Identifier Mapping – Identifier mapping has been introduced for new registrations in accordance with Microsoft’s updated requirements.
- Added Azure OCR – Document Digitization – A new activity enables the processing of incoming documents using the Azure AI Document Intelligence (OCR) cloud service. The use of this service is billed based on the number of pages processed.
Build 3.19.2502.18001 (27.2.2025)
- Updated Manual bulk delegation function – Updated the From User field in Workflow Designer to search for specified users in the task list instead of Active Directory, allowing delegation from users removed from Active Directory but who still have assigned tasks in SharePoint.
- Updated Serial Assign Task delegation entries – Optimized history entry during delegation when using serial Assign task with approval matrix.
- Updated SP2SQL Function Logging Enhancement – Extended SP2SQL function logging for more detailed analysis of errors occurring during performed actions.
- Fixed Try-Catch OnError action – Resolved an issue where, after placing an action in the OnError section of the Try-Catch action and saving the workflow, the state could not be opened again when reloading the workflow in Designer.
- Fixed Add File action – Replace Tokens in Content property – Resolved an issue where replace tokens in the Content property were not recognized, causing the action to return the specified configuration instead of desired values.
Build 3.14.2410.18002 On-Premises (5.11.2024)
- Added Assign Task On Complete Event – Introduced a new "On Complete" event that triggers after a task is completed. This event activates for each instance of a completed task. It will be in the upcoming release online.
- Fixed Convert Document Action Bug – Resolved an issue that prevented the Convert Document action from functioning correctly.
- Fixed SP2SQL Full Sync Child Items Bug – Fixed an issue where the SP2SQL full sync functionality failed to synchronize items located outside the root folder of a list.
Build 3.15.2409.10003 Hotfix (10.9.2024)
- Fixed Delegation to Oneself Bug – Fixed an issue where the delegation function failed to work correctly if a user delegated a task to themselves.
- Fixed Set Permission with Overwrite Bug – Fixed an issue where existing permissions were deleted when the Set Permission action was used with the Overwrite property enabled.
Build 3.14.2406.19001 (19.06.2024)
- Fixed TaskForm and DocumentPreview relative URL update – Updated the relative URLs for TaskForm (/sitepages/tisa/TaskFrom.aspx -> /tisa-sitepages/tisa/TaskFrom.aspx) and DocumentPreview (/sitepages/tisa/tisa.preview.aspx -> /tisa-sitepages/tisa/tisa.preview.aspx) in response to the latest Microsoft update, which prevents .aspx files from being added to the SitePages document library.
Build 3.13.2404.16001 (18.04.2024)
- Added Workflow start command – try parameter – Implemented the "try" parameter in the Workflow start command. When this parameter is added, errors occurring during the start or stop of the workflow will not generate an error. Additionally, attempting to stop a workflow with the "try" parameter will not cause the workflow to halt; instead, it will provide informational feedback that it is a feasible action.
- Updated Out of office action documentation – Revised the Out of Office section of the documentation to include essential configuration steps required for proper functionality. Included are basic rules governing Out of Office behavior and examples of potential scenarios along with their respective outcomes.
- Fixed Delegation loop – Resolved an issue that resulted in delegation being sent multiple times in the online environment.
- Fixed TiSa/WFE workflow desync fix – Resolved an issue leading to workflow desynchronization between the WFE version and the TiSa version.
- Fixed Convert document action fix – Resolved an issue that was causing the convert document action to malfunction. Additionally, the documentation regarding this action has been expanded to include essential configuration requirements for proper functionality.
Build 3.12.2402.05002 (08.02.2024)
- Added Property 'Folder URL' for the 'Add List Item' action – added the 'Folder URL' property for the 'Add List Item' action for cases when it is necessary to add a list item at a different URL address.
- Added System workflow overview in workflow menu – The system workflows have been added to the workflow overview. A new column has been added to indicate whether a specific workflow is system, non-system, or based on a system workflow with the ability to roll back to the system version.
- Updated Workflow start/stop failure logging – Logging modified by adding the 'try' parameter. If the 'try' parameter is used, workflow start/stop failures will not be logged as errors.
- Updated Online environment logging optimalization – Optimization of logging in online environment by removing dependency logging for AppInsights
- Fixed Additional approval workflow bug – Fixed an issue in the system workflow for additional approval, which allowed editing the item over which the workflow was initiated
- Fixed Online workflow instance optimalization – Optimization of online workflow instances, addressing cases where workflows occasionally would fail to start
- Fixed MultiTask ID generation bug – Fixed an issue in MultiTask ID generation, which led to the creation of duplicate tasks under the same instance if the instance was re-saved or if a similar action was performed, has been resolved.
- Fixed AD group in SP group bug – Fixed an issue causing an error whenever a SharePoint group containing an Active Directory group was called within the workflow.
- Fixed Try Catch saving bug – Fixed an issue causing entered configuration not to be saved in the Try-Catch action.
- Fixed Bulk delegation fix in online environment – Resolved an issue where the bulk delegation function was not working properly in the SharePoint Online environment.
Build 3.12.2310.30001 (08.11.2023)
- Added New tabs for activities – Workflow activities are now grouped into separate tabs for an improved user experience – Actions [workflow], Actions [SharePoint] and Actions [other].
- Added Query SQL action – Added Query SQL action in the Actions [other] category. Can be used to create queries to SQL database in Scalar, Par, JSON and SEP format.
- Added Disable option in every Action – Added a Disable parameter to every Action in Workflow Engine Designer. Setting this parameter to true will skip this action.
- Added Bulk delegation in Workflow Engine Designer – Added an option to manually delegate tasks of specified workflow in bulk through Workflow Designers UI.
- Updated Expanded logging – Updated logging to include exceptions related to name duplicity and similar validation errors.
- Updated Workflow Engine Designer workflow creation – Updated Workflow Engine Designer workflow creation so user can create workflow right after opening workflow designer without the need to press New button in Workflow designer tab.
- Updated SP2SQL UI update – Updated SP2SQL UI popup messages to standardize the visual aspect and enhance usability.
- Updated Assign Task – Write on assign – Updated Assign Task action to contain Write on assign tab. Actions placed in this tab will be executed after assigning a task.
- Fixed GetFieldValue fix – Fixed an issue that would trigger an error when the 'GetFieldValue' action was referencing a user who had already been deleted.
- Fixed UserProp multidomain fix – Fixed an issue that prevented 'UserProp' from being able to differentiate between users with the same name originating from different domains.
- Fixed StartForm metadata read issue – Fixed an issue that caused metadata to be incorrectly read in StartForm. For example if there was a boolean checkbox present in StartForm with default value "true" the checkbox would not be checked.
- Fixed Workflow Engine tasks overflow fix – Fixed an issue with the task list exceeding 5000 items by indexing default columns.
- Fixed Default AskQuestion workflow fix – Fixed an issue in the default AskQuestion workflow that caused the QuestionUser variable to not change if the questioned user was delegated.
- Fixed Move item / Copy item new folder Online fix – Fixed an issue where the 'Move item' or 'Copy item' action would result in an error when referencing a non-existing folder, instead of creating one.
Build 3.11.2308.21001 (24.08.2023)
- Added PartialSyncList SP2SQL Online Added PartialSyncList functionality to Online SP2SQL
- Added Reset permissions + break and author read/write Added break and author read/write options to Reset permissions actions that break permissions on selected item and then add read or write permition to the author of the item
- Added Automatic repair of stuck Instances Added function that if turned on can automaticaly repair stuck instances
- Added Automatic Retry function Added automatic retry function if an item was updated during scope procedure
- Updated SP2SQL UI feedback update – Updated the UI visuals to better fit with the rest of Sharepoint UI
- Fixed Replace function bug – Fixed an issue that caused certain forbidden symbols to be incorrectly copied to destination file (symbol '%' still causes issues, if coppied the resulting file will contain '%25' instead of '%')
- Fixed Automatic delegation and manual delegation bug – fixed an issue that caused tasks to not be created if automatic delegation or manual delegation was used in a certain order on a member of a group
- Fixed Time window during creation of new item – fixed an issue that caused time window to occur during creation of an item in which no user has any rights towards the item
- Fixed UserProp and IsUserInGroup bug – fixed an issue that caused UserProp function and IsUserInGroup action to no take into consideration domain name in multidomain environment
Build 3.11.2305.25001 (25.05.2023)
- Added GetValidName – Simplify property Added Simplify property to GetValidName function. If set true redundant symbols (such as spaces and dots) will be removed from the name of the file
- Fixed Nonfunctional SP2SQL configuration for online environment – fixed an issue that caused SP2SQL configuration sequence to end in an error
- Fixed Copy bug – fixed an issue that caused file to be incorectly coppied to a root folder if target folder was nested
- Fixed Subweb OOF bug – fixed an issue that caused automaticaly delegated task to end in an error if used in a subweb
- Fixed OOF multitask bug – fixed an issue that caused tasks to be incorrectly generated if used in combination with multitask mode and if the target user was from the same group. Only delegated task would be generated and not the target users own task.
Build 1.12.2301.23001 (26.01.2023)
- Added Additional approval – Added additional approval function. Can be activated on Assign task action in Workflow Engine Designer. Can be used to request additional approval from selected user.
- Updated Out of office new features – Added a new option to Assign task in Workflow Engine Designer called "Enable out of office automatic delegation" which enables separate use of delagation and out of office functions.
- Updated SP2SQL configuration feedback – Added a feature that warns the user if an error occurred during configuration of SP2SQL function.
- Updated Number of uses of Set State function during one instance of Workflow – Increased the number of possible uses of Set State functions during one instance of Workflow from 10 to 50.
- Updated GetParentFolderId – wider usage – GetParentFolderId can now be used in list in addition to library.
- Fixed Workflow Engine Definitions Cache – Fixed an issue where Workflow designer showed incorrect WF according to cache.
- Fixed Number field to number field conversion bug – Fixed an issue that cause decimal numbers to be rounded to whole numbers if a decimal number was assigned through set field value from a number field to another number field.
- Fixed ShowOnStartForm bug – Fixed an issue that caused the property ShowOnStartForm to not function properly.
- Fixed WaitForFieldValueAction online bug – Fixed an issue that caused WaitForFieldValueAction to not function properly if global inmemory cache was not set up.
- Fixed Difference in exported Workflow Engine fix – Fixed an issue that caused difference in exported Workflow Engine when exported by User Interface as oppose to by script.
- Fixed Serialization of string if Web Service is used fix – Fixed an issue that caused strings to be serialized if web service was called.
Build 3.10.2210.27001 (21.11.2022)
- Updated WFE Online optimalization – Workflow Engine Online optimalization in response to increased number of error instances.
Build 3.10.2210.14001 (13.10.2022)
- Updated Extend activity permissions – Setting permissions is now possible with WF activities to other than the current item.
Release Q2 (2022)
- Added Workflow with start form can be now launched for multiple items
- Added EncText function
- Updated Binary parameter – The web service call activity now supports Binary data (byte[]).
- Fixed Remind task – If an error occurred in On Remind, the deadline was not moved and activities repeated after 15 minutes in an infinite loop.
- Fixed Send email – If the subject and body are not filled in, the email will not be sent.