Actions used in workflow

Each process contains Activities, Gateways, and paths. For every Activity and Gateway, you have to configure an action. This is a built-in action to be run when executing a process stage. We have a selection of activities to choose from. Each needs to be configured in the Activity settings dropdown located in the General tab.

User Activity #

It is the most commonly used action. When an actor in the process is to perform an activity, you choose this action. You can also change the value of the field in this action.

Activity executors – The user needs to add at least one user to set as an executor of the activity.

Available options (we can add more than one condition with and/or operators):

  • Process owner – the user set as the owner of the process
  • User – a specific user by name from the user’s list
  • Each group member – the action must be processed by all users from the chosen department, defined user group, or everyone in the company.
  • Any group member – the action must be processed by at least one user from the chosen department, defined user group, or everyone in the company. The first user acting ends the process step
  • Each user from the field – the action must be processed by all users from the field on the form containing users
  • Any user from the field – the action must be processed by at least one user from the field on the form containing users

Send email – Choose whether you want to send an email notification to activity executors

Show notification – Choose whether you want to send a system notification to activity executors

Change field value – It is an additional option to change field values on the document at the same time as the user action is performed. It works the same way as settings in the Change field value action.

Create document #

Action is used to create a new document or to copy an existing document into a new one.

Create mode – Choose how to create the new document. You can create a blank document and set the value of each attribute (“New document” option) or clone/copy an existing document ( on which the process is running) and modify selected attributes (“Clone processed document” option)

Choose form for creating a document – The user must choose a document form for the creation of a new document.

Document fields – we pick fields we want to set value when creating a new document. When the field is chosen we set the Value tab.

For dropdown type fields:

  • Set – the system sets a new value of a field based on the available field option like list or dictionary
  • Clear – the system clears the value of a field
  • Match – the system copies value from related field set from document fields or system fields like user ID and user details

For date type fields:

  • Value – the system sets the new value of a field in a date format
  • Function – Allows setting the shift mode. When set to the Current day, the shift is applied to the date, when set to the Current hour, the shift is applied to the time. We use decimal values to define the shift of the date/time. A positive value means a shift to the future, a negative value means a shift to the past, zero value means the current date/time.
  • Dynamic value

For text/integer type fields:

  • Value – the system sets the new value of a field based on dynamic content or value entered by the user.

Select process to start – the user may select a process from the list to automatically start upon creating a document.

Change field value #

Action is used to change the field value on the document.

Document – Determine which document will be changed. Options are:

  • Current document – the document on which the process is running will be changed
  • Document from attribute – the document from the list based attribute on the current form. Used to change field values in a document indicated by the Attribute (ex. Dropdown) on the from on which the process is running
  • Documents from other activity – the documents created previously in the process

Change field value – we pick fields we want to change the value on. When the field is chosen we set the Value tab.

For dropdown type fields:

  • Set – the system sets a new value of a field based on the available field option like list or dictionary
  • Clear – the system clears the value of a field
  • Match – the system copies value from the related field set from document fields or system fields like user ID and user details

For date type fields:

  • Value – system sets the new value of a field in a date format
  • Function – Allows setting the shift mode. When set to the Current day, the shift is applied to the date, when set to the Current hour, the shift is applied to the time. We use decimal values to define the shift of the date/time. A positive value means a shift to the future, a negative value means a shift to the past, zero value means the current date/time.
  • Dynamic value

For text/integer type fields:

  • Value – the system sets the new value of a field based on dynamic content or value entered by the user.

For attachment type fields:

  • Set – the system sets a new value of a field based on the available field option like list or dictionary
  • Clear – the system clears the value of a field
  • Match – the system copies value from the related field set from document fields or system fields like user ID and user details

We also choose the source the attachment will be taken from (another attachments field) and mode to point out which attachment from the list to use (First, Last). For the SQL option, we can also choose the new name of a file using the field File name.

As an additional feature to action on the workflow step, it is possible to change field values on the paths in the tab Path settings.

Create or update #

This action is to be used when we want a system to check the list of documents and at the same time update the records if exist and create new ones if they don’t exist on the list.

To use it we select a list of documents, filter it with a specific condition (this example – only documents with Code=USD), and define fields to update or create. In this example, the system will first check if a currency with a code USA exists, then either create it or update the existing one.

Delete document #

This action is to be used when we want to delete a document during the process or create a specific button to delete the document. In settings, we choose between 3 options. The process can delete:

  • Current document – the document we are working on will be deleted
  • Related document – the document from the list based attribute on the current form.
  • Documents from other activity – the document created in the process

Checkbox: Permanently delete the document, gives the user the option whether to delete it permanently or move it to the trash for 30 days.

Notice that when deleting the current document with this action you cannot perform any following actions on this document as it has been deleted. After performing this action the document view will stay the same even though it has been deleted.

Change permissions #

We use this action to change permissions during the process by pointing to the Source (User, Groups, or the field on the form), then Attribute from this source and decide on the Permission type (Read, Edit, Delete).

Change permission mode:

  • Add permissions – Add privileges for the document
  • Delete permissions – delete privileges from the document
  • Overwrite permissions – delete all permissions and add selected permissions
  • Delete all – Remove all privileges from the selected area.

New document form view #

This action is available to use only on the first step of the process. It sets the view of the form at the beginning of the process. In settings, we can choose which attributes from the given form are to be visible, editable, or required.

Form view after finishing the process #

This action is available to use only in the last step of the process. It sets the view of the form at the end of the process. In settings, we can choose which attributes from the given form are to be visible, editable, or required.

Loop #

In computer programming, a loop is a sequence of instructions continually repeated until a certain condition is reached. Typically, a certain process is done, such as getting an item of data and changing it, and then some condition is checked such as whether a counter has reached a prescribed number.

A loop in Navigator365 is a more complex type of activity because it is composed of two interrelated layers.  The first layer we can set in Activity settings.

To set the Data source you mention a field or a variable from the mentioning section under the sign @. This works similarly to the for-each loop, which can be found in many programming languages. For-each loop type is a control flow statement for traversing items in a collection. You have three options available.

Lists – The collection being searched is the list of documents. The loop will examine each item from the list mentioned. This list could be additionally limited by using the standard filter configuration.

Forms – If the form on which the process is sourced has a field List of attributes, the loop will iterate on each element from this list.

Json variable – The loop will search the collection assigned to a JSON-type variable. This variable can be indicated using the Variable drop-down list, which will appear after selecting the appropriate option. In addition, you can indicate the property that holds the data collection using the list JSON node with data collection.

 

The second layer can be opened using an arrow pointing to the lower right corner icon on the process diagram. Switching between layers is possible by an unnamed list visible in the upper right corner of the process creation window.

The second layer is an additional process containing an action or set of actions that will execute for each collection item reached by the loop. Settings are similar to the typical action settings. You can use data from the document in which a loop step is located and use it, for example, in the document created by the action from the discussed layer. These variables are marked with a rounded arrow icon and can be referenced using mentions.

Logic gate XOR #

This is a special action that implements the boolean function where only one path can be chosen. Depending on the fulfillment of truth or false conditions, the process will be directed to the appropriate path. To make it easier to configure the logic gate, it is a good idea to configure the other elements of the process and then return to the step with the logic gate. This way, there will be created paths in the logic gate where you just need to assign the necessary conditions.  

A list of fields will appear under the Activity type list. There will be a Path name, Next activity, and a special field containing the configuration of conditions for selecting the way to the next path. The number of rows in this list depends on the number of paths coming out of the logic gate. 

Configuring the conditions for moving to a particular path works similarly to configuring filters on lists. You can learn more about it in this article. Depending on which condition is satisfied, the process will take the right path. 

Logic gate OR #

This is a special action that implements the boolean function where more than one path can be chosen. Setting it up is similar to action Logic gate XOR.

Wait for the condition #

Activity type is used to hold the process and direct it to a specific path name when conditions are met. It is possible to have many paths available each with different conditions to meet. This functionality goes beyond just waiting for action and creates a process crossroads to different paths. There can be more than one condition for each path using AND (both need to be met) and OR (only one needs to be met to proceed).

We set conditions based on form fields and typical operators. It is important to know that we set conditions in the Path name section not in a Activity settings tab. You can read more about setting filters here.

The system checks this condition every minute. In this example the status is checked – Path name: “Status” Equal “Function” “Replied”

Wait for the time #

It is an automatic action to hold the process for a specific period of time (specified in seconds, minutes, or hours). In this example, the process is held for 24 hours.

 

Generate PDF #

Action is used to create a PDF file based on the template and data from the document fields. You can read more about creating templates in Word here.

Add template – You must prepare a Word document that contains the template for the PDF document.

Add files – Here you can add such a document from your hard drive.

Get from form – Here we can assign a code on the template to a specific field on the document form. The value from this field will be inserted into the new PDF file. Instead of a form field user can create an SQL expression.

Add field – Here we can add an extra field to use on codes on the template.

Save output file as attachment – The generated file can be stored in an Attachment attribute. Here you can choose which attachment attribute to use to store generated PDF files.

Save in global variable – The document is saved in Process variables for future use, ex. Sending email with attachments.

Download in browser – Check to download the output file in a browser. The file will be automatically downloaded instead of being saved in variables or attachments.

Output file type – Choose between PDF or Word format.

Output file name – enter the name of the PDF file or use dynamic content.

Add attachment #

The file is saved in Process variables for future use ex. Sending email with attachments.

File name – Attachment filename. When there is no value set source filename will be used as the new file’s filename.

Variable – Process variable to store the fetched data

Field – Form view field.

Fetch attachment #

The document is taken from saved documents in Process variables.

Modify attachments #

Action is used to modify files stored in the attachments attribute. The user provides a source, an attribute where attachments are stored, and decides on the fetching type (First, Last, All). Available options to amend a file are:

  • Convert image to PDF file
  • Remove digital signatures – it is not easy to remove a digital signature from a PDF file directly so this action can remove it from a previously signed file and get it ready for changes and a new signature
  • Resize – it can resize the image with a simple step to provide a new width for the image
  • Rename the file – it can change the name of the file with the possibility to use data from the form or environmental variables.

Import from excel #

This action allows a user to extract data from Excel files and use it in the process. A good example would be creating documents for each row of the Excel file and extracting data from the columns to specific fields on the form. To use the action the first step would be an action step Import from Excel where the user adds the Excel file directly or point out the attachment field on the form. The system reads the file and has the data available to use in the following steps.

Later the user creates the loop Action where the data source the Excel file from the previous step should be chosen. It is done by mentioning the step and the Excel file as on the screen below.

In the last step, the user chooses the action to use the Excel data. In this example, the step Create the task will create Task documents for every row in the Excel file and fill it with the data extracted from columns.

Again it is possible to just mention the column name in the Excel file (Data from the loop Iterate on Excel rows) and match it with a field on the created document.

Send mail #

Action is used to send emails from the system. In the activity setting, we have 2 tabs to configure.

Message tab:

Here we have some typical data used in creating emails.

To – we add dynamic content based on form fields and system IDs.

Carbon Copy – we add dynamic content based on form fields and system IDs.

Subject – we add dynamic content based on form fields and system IDs.

Body – we add dynamic content based on form fields and system IDs.

Add attachments – we can add an attachment from the Process Variables tab. To be able to use this option, we need to add some File type variables to the Process variable tab in the main process settings.

Server Configuration:

Here we have a configuration for an outgoing mail server. You can choose an existing configuration (by selecting its name) or choose Other to manually configure the server. If you do not know which server to choose or do not know the server parameters ask your system administrator.

Select mail account configuration – The user chooses a previously configured e-mail service or sets a dedicated server by entering:

  • SMTP username
  • SMTP password
  • SMTP port
  • SMTP server address
  • Use TLS encryption

 

Get mails #

Action is used to pull emails from the dedicated mail account. We only have 1 tab to configure which is selecting a mail account. A list of available mail accounts is taken from Mail accounts set in the System application.

In case there is a one-off email account required, a list of necessary fields should be added to the form. Therefore the user can configure an email account by mentioning the IMAP username, IMAP password, IMAP server address, and IMAP port, Use TLS encryption (checkbox field), and specify how many days of messages would like to use (1 means from yesterday midnight).

Later you can use data from emails like To, From, Subject, etc., and use the values when creating new documents in a loop iterating on retrieved emails.

Slack #

Action is used to send alerts to a Slack channel. In the activity settings, we have 2 tabs to configure. Webhook URL is an Incoming webhook URL created in the Slack application.  Message can be a standard written message in the field or mentioned field from our form. To mention a field containing a message on the form use @.

Teams #

Action is used to send notifications to the MS Teams channel. In the activity settings, we have 2 tabs to configure. Webhook URL is an Incoming webhook URL created in the Teams application.  Message can be a standard written message in the field or mentioned field from our form. To mention a field containing a message use @.

 

Export user to domain #

In the activity setting, we have 2 tabs to configure.

Domain configuration – Enter a domain, container, username (Login of the user who has permission to add users to the domain), and password.

User account configuration – Enter username, password (If the password in this field is left blank, the user will be asked to create a password the first time they log in), first name, last name, and user’s e-mail.

Resend activation email #

When you create a new user account in the system, the system usually sends an email to confirm the account. If something goes wrong eg. the email is lost, and the user cannot log into the system, you can resend the confirmation email by using this action.

Enter User – User document’s ID that will be used to send again e-mail that activates the account.

Start process #

Users may select a process from the list to automatically start. The process can be started on the current document, related document from the form or a document created within this process before (document from other activity). The choice of available processes is limited to application processes and other processes with accesibility set to public or shared with this appplication.

Move to activity #

The action is used to jump between steps in the process. Current waiting steps will be terminated and the process will carry on from the chosen step or finish if the end step has been chosen. The user selects a process and the specific step to move the workflow to. It can jump to a step in:

  • Current document – the document on which the process is running
  • Related document – the document from the list-based attribute (ex. Dropdown) on the current document on which the process is running
  • Documents from other activity – the documents created previously in the process

Add substitution #

The action will add a substitution role to a user in the system. When substitution is on,  the documents waiting in the process for a user will be also showing for another user with substitution added. It is to be used when managing the absences of users. When adding a user and dates you can mention fields from ex. an absence form.

Change process variable #

The action allows a change of a variable during the process. Important to note is the action only works and is available to set when at least one variable in the process is defined before. To set the action we only select a variable and define a new value. The value can be entered directly or by mentioning another field or variable.

Redirect to URL #

Target URL after executing an action. Enter the URL or use dynamic content.

 

Call REST API #

This is one of the most difficult to configure and technical action. If you are going to use it, you have to understand the technology behind it. In short, REST API is a software architecture style that describes the interface between systems in client-server architecture across the Internet. 

To use this action, you have to configure the method, URL of the service, and authorization. Furthermore, you have to prepare JSON (JavaScript Object Notation) with the calling parameters of the service. The data you get or change after the call depends on the particular API. 

In the activity setting, we have 2 tabs to configure. 

Request configuration 

HTTP request method – Choose the method from PUT, POST, DELETE, PATCH, or GET. 

 

GET – this method is used to request data from a specified source. After selecting this method, enter the API endpoint address in the field that appears below (Service URL). You can use mentions to select dynamic values for your link. This is useful when your API endpoint requires a specific object identifier. You can store the result of the API query in a global variable. You can select it from the Save in the global variable list. By default, the list is empty. To make values appear in it, you need to create a global variable in the Process Variables tab of the process and select the appropriate data type. You can learn more about global variables in this article. 

DELETE – this method is used to delete the specified resource. The configuration for this method is similar to the GET method explained above. 

 

POST – this method is used to send data to a server to create/update a resource. After selecting this method, enter the API endpoint address in the field that appears below (Service URL). You can use mentions to select dynamic values for your link. Then you can choose between two ways to deliver the content (Content type list). The first option is Json (text). When you select this option, you can enter the request in JSON format in the JSON content field that will appear below. You can use mentions to select dynamic values for your JSON request. The second option Json (creator) will activate the field Template to fill in. Once the template (the sample response for our query from the service URL) is entered the user can press the button Get from template. This will create referenced fields of objects and values required to prepare a JSON request. These must match the data the API expects. You can store the result of the API query in a global variable. You can select it from the Save in the global variable list. By default, the list is empty. To make values appear in it, you need to create a global variable in the Process variables tab and select the appropriate data type. 

PUT – this method is used to send data to a server to create/update a resource. The difference between POST and PUT is that PUT requests are idempotent. That is, calling the same PUT request multiple times will always produce the same result. In contrast, calling a POST request repeatedly has the side effect of creating the same resource multiple times. The configuration for this method is similar to the POST method explained above. 

PATCH – this method is used to apply partial modifications to a resource. The configuration for this method is similar to the POST method explained above.  

 

Authorization 

Regardless of the method selected, this tab will be available on the right side of the Request Configuration tab. By default, the Authorization type field is set to NONE.

Authorization type: 

NONE – this authorization type should be selected when the chosen API does not require credentials for successful execution. 

Basic – this type of authorization should be selected when the chosen API requires a username and password for successful execution. 

Token – This is the most advanced form of credentials. You can either enter the token manually or mention it from another place in the system where is securely stored under the Password type attribute.API (after selecting Get from API). If you select the second option, additional fields will appear in the form. Regardless of the method user needs to request or generate a token from a source API service.

Execute SQL #

Enter SQL code using pure SQL query or adding dynamic content. This is a low-code option for advanced users as the Navigator365 database can be accessed, altered and even deleted from this action.

Get data from database #

This action can retrieve specific data from a SQL database and save it as the process variable. To use it you need first to obtain a connection string for a required database. Ask your server system administrators for these details. As it is a Low-Code option, the user/administrator needs to have access to SQL Server Management Studio. You can find values like Server Name and Database name in the database Object Explorer under the Properties and Connection tab. You can use this data to create a connection string. It is also possible to obtain the required connection string from a web.config file in the root directory of your web application.

Connection strings consist of several key-value pairs that provide information about how to connect to a SQL database. The most common are Server, Database, User ID, and Password when using standard security connection. It is however not recommended to store passwords directly in the action properties. For trusted connections, like your Navigator365 database based on your server, we use DataSource, Database, Integrated security, and TrustServerCertificate.  An example to connect to your own database: Data Source=.;Database=fructon_nav_365;Integrated Security=True;TrustServerCertificate=True.

In the SQL command, we need to enter a query written in the SQL language. It is a good practice to test it first in SQL Server Management Studio. In the end, we choose a variable to have data saved for future use.

 

Merge JSON #

This action can manipulate JSON files. When you use Call REST API to integrate two systems often you get some data in JSON format from one system and change it on the second system. For example, add an entry to the list and return it to the first system.

This action can merge two JSONs so you can prepare data in Navigator365, merge it with data retrieved from another system, and then send it back.

 

Action has 4 options to merge JSON with different results:

Join ALL values – Concatenate arrays. Creates a new JSON containing all elements from both in the order of appearance.

Join values without duplicates – Union arrays, skipping existing items to avoid duplicates.

Replace all values – Replace all array items completely with new values.

Replace values with order – Merge array items together, matched by index. It applies a custom logic based on a specific key or property.

Become a partner