Skip to main content

Process flow connectors

Introduction to process flow connectors

Various special process action types are available, called connectors. Connectors differ from the other process action types in that they do not expose GUI features for automation but enable you to connect to other applications, services and media through various common protocols.

Application connector

Starting point Universal GUIStarting point Win/Web GUIStarting point system flow (Indicium)System flow action
--++

The Application connector provides input options to establish a connection to the database of another application. The command will be executed using the pool account configured for Indicium. The user initiating the process flow will not be impersonated. The Application connector has no limit to the command wait time; no timeout will occur.

The Application connector can retrieve multiple result sets:

  • From a single query.
  • By using multiple queries, separated by a delimiter specified in the process flow.

If multiple result sets are detected, the Application connector will retrieve them and put them in a single JSON file. You can use this for a stored procedure in the Application connector, returning multiple result sets.

If a tsf_send_message procedure sends a message to the Application connector, the message is translated into the language of the user who initiated the process flow. If the Application connector is called from a system flow, then the message is translated into the application's fallback language.

warning

Contrary to the Database connector, parameterization of the statements is not yet available. Be careful when creating SQL queries on-the-fly using the textual values of process variables or data present in the database. This can open up the application to SQL Injection attacks.

Input options
Application id/aliasThe ID or the alias of an active application (or runtime configuration) present in the same IAM (or SF). For example 211 or insights. Using an alias is recommended as this can remain stable throughout environments and versions.
SQLThe SQL executed by this process action, for example:
select total_amount from sales_order where customer_id = 15 and sales_order_id = 21
Or:
exec generate_sales_order 15, 10
Command timeout (s)Optional. The time in seconds after which a command is terminated automatically.
Command delimiter (regex)Optional. A C# regular expression used to instruct the connector to execute multiple sequential commands on the same connection.
The SQL value will be split into multiple commands using this regular expression.
Continue on errorOptional. Use in conjunction with Command delimiter (regex). If an error occurs during command execution, the next command can be executed or the execution can be halted based on this setting.
Yes continue_on_error_yes
No (default) continue_on_error_no
Start from indexWhen multiple statements are specified with a delimiter, Indicium will start with the one indicated by the Start from index parameter, ignoring all the statements before that.

Command delimiter (regex) example:

;[^;]*(?:\z|--go\r\n|--go\n|--GO\r\n|--GO\n)

This example regular expression will split the commands using a semicolon followed by --GO in various casings. This is the command delimiting style used by the Software Factory for generated DB2 code.

Output options
Status codeThe status code of the executed action.
0 - Successful
-1 - Unsuccessful (unknown)
-2 - Unsuccessful (Missing application id or alias)
-3 - Unsuccessful (Unknown application id or alias)
-4 - Unsuccessful (no command text)
-5 - Unsuccessful (could not parse command delimiter regex)
-6 - Unsuccessful (could not load application model)
-7 - Unsuccessful (could not open database)
-8 - Unsuccessful (could not connect to database server)
-9 - Unsuccessful (invalid credentials for database connection)
-10 - Unsuccessful (command timed out)
-100 - Unsuccessful (Indicium is not used by the client executing the process flow)
ResultA JSON-formatted list containing the success status and result set(s) of the executed command.
When using a Command delimiter: A JSON-formatted list of executed commands with corresponding results.
MessagesA JSON-formatted list of messages thrown by the executed command. These messages are pre-parsed to formal messages using the model of the target application.
When using a Command delimiter: A JSON-formatted nested list of executed commands with corresponding messages.

Web connection connector

Starting point Universal GUIStarting point Win/Web GUIStarting point system flow (Indicium)System flow action
--++

Use a Web connection to communicate with any service or third party online. It is re-usable and stores information such as the base URL, (encrypted) authentication details, endpoints, and much more within the model.

  • You can set up the connection details in the model, see Web connections. The parameters created there are available in the Web connection process action.
  • For the fields Web connection and Endpoint, you can enter more details in the lookup, such as the path, body type, content type, form fields, query string parameters, and request headers.

Example use-case

Example

This example use-case defines a Hubspot link. The bearer token used for authentication can be overridden in IAM. For more info about the API, see https://developers.hubspot.com/docs/api/crm/contacts. There are 3 endpoints that can be used in process actions.

Get contacts

  • Input: top_n
  • Output: json array with contacts

Get contact

  • Input: hs_contact_id
  • Output: email, first_name, last_name, phone, company, website

Create contact

  • Input: email, first_name, last_name, phone, company, website
  • Output: hs_contact_id

These endpoints can be used in a process flow to quickly read and add contacts.

Web connection: Hubspot

Endpoints

Endpoint: Get contacts

  • Endpoint URL: /objects/contacts
  • Method: GET
Endpoint parameterDefault value
top_n10
Query string parameterValueOmit when empty
limit{top_n}Yes
archivedfalse
Endpoint outputMappingJSON PathAlways as array
http_statusHTTP status code-
resultsResponse body$.results..propertiesYes

Endpoint: Get contact

  • Endpoint URL: /objects/contacts/{hs_contact_id}
  • Method: GET
Endpoint parameterSanitize
hs_contact_idAuto
Endpoint outputMappingJSON PathAlways as array
http_statusHTTP status code-
hs_contact_idResponse body$.idNo
emailResponse body$.properties.emailNo
first_nameResponse body$.properties.firstnameNo
last_nameResponse body$.properties.lastnameNo
phoneResponse body$.properties.phoneNo
companyResponse body$.properties.companyNo
websiteResponse body$.properties.websiteNo

Endpoint: Create contact (marketing qualified lead)

  • Endpoint URL: /objects/contacts

  • Method: POST

  • Body type: JSON

  • Body:

    {
    "properties": {
    "email": "{email}",
    "firstname": "{first_name}",
    "lastname": "{last_name}",
    "phone": "{phone}",
    "company": "{company}",
    "website": "{website}",
    "lifecyclestage": "marketingqualifiedlead"
    }
    }
Endpoint parameterDefault valueSanitize
emailAuto
first_nameAuto
last_nameAuto
phoneAuto
companyAuto
websiteAuto
Query string parameterValueOmit when empty
limit{top_n}Yes
archivedfalse
Endpoint outputMappingJSON PathAlways as array
http_statusHTTP status code-
hs_contact_idResponse body$.idNo
Input options
Input parametersThe input parameters set for the Web connection in the model.
Output options
Endpoint output (tab)The output parameters set for the Web connection in the model.
Status code0 - Successful
-6 - Unsuccesful - (request time-out)
-7 - Unsuccesful - (web connection not found)
-8 - Unsuccesful - (web connection configuration not found)
-9 - Unsuccesful - (web connection endpoint not found)
-10 - Unsuccesful - (OAuth server configuration not found)
-11 - Unsuccesful - (invalid certificate, possible invalid password)
-12 - Unsuccesful - (invalid OAuth token response)
-13 - Unsuccesful - (invalid Azure managed Identity environment, Managed Identity only works on Azure environments)
-14 - Unsuccesful - (invalid Azure endpoint URL, only blob storage, keyvault and MS Graph API endpoints are supported)
-15 - Unsuccesful - (invalid Azure token endpoint response)
-16 - Unsuccesful - (transformation failed, invalid JSON)
-17 - Unsuccesful - (transformation failed, invalid JSON Path)
-18 - Unsuccesful - (transformation failed, invalid XML)
-19 - Unsuccesful - (transformation failed, invalid XML XPath)
-20 - Unsuccesful - (transformation failed, XML XPath returned multiple values)
-21 - Unsuccesful - (transformation failed, invalid regular expression)
-22 - Unsuccesful - (transformation failed, invalid regular expression, a capture group is required)

HTTP connector

Starting point Universal GUIStarting point Win/Web GUIStarting point system flow (Indicium)System flow action
--++
tip

Instead of using the HTTP connector, we recommend to use a Web connection. It is an enhanced version of the HTTP connector. Using parameters is easier in a web connection, and it is re-usable.

The HTTP connector provides the following input options with which several properties of an http request can be controlled.

Input options
URLThe complete url that will be used for the request.
HTTP methodThe HTTP method that will be used for the request. You can use any HTTP method, for example, MERGE, or GET. The HTTP method value is not case-sensitive.
For backward compatibility, the following predefined HTTP methods are also still supported:
http_method_delete
http_method_get
http_method_head
http_method_options
http_method_patch
http_method_post
http_method_put
http_method_trace
HeadersOptional. The header that will be provided with the request. This input option must be completed in the following manner:
[ { "Key": "Header1", "Value": "Value1" }, { "Key": "Header2", "Value": "Value2" } ]
When specifying a Headers input option, the Key attribute cannot be empty.
Indicium A default User-Agent header with the value Indicium/<version> is added to every request.
Windows GUI A default User-Agent header with the value ThinkwiseWinGUI/<GUI version> is added to every request.
CookieOptional. A possible cookie that will be provided with the request.
Content-TypeOptional. The MIME type for the content that will be provided with the request.
ContentOptional. The content that will be sent with the request, for instance with a POST.
Authentication typeOptional. The authentication type that will be used for the request.
None (default) http_auth_none - No authentication
Basic http_auth_basic - Basic authentication
Bearer - Bearer authentication. Enter the access token in the field Bearer token.
Digest http_auth_digest - Digest authentication
Windows (Negotiate) http_auth_negotiate - Negotiate (NTLM/Kerberos)
Bearer tokenOptional. If you selected authentication type Bearer, enter the access token here.
UsernameOptional. The user name that will be used for the authentication, if applicable.
PasswordOptional. The password that will be used for the authentication, if applicable.
TimeoutOptional. An integer that indicates the timeout of the request in milliseconds. Default is 100,000.
Output options
Status codeThe status code of the executed action.
0 - Successful
-1 - Unsuccessful (unknown)
-2 - Unsuccessful (invalid URL)
-3 - Unsuccessful (invalid HTTP method)
-4 - Unsuccessful (invalid headers)
-5 - Unsuccessful (invalid cookie)
-6 - Unsuccessful (request timed out)
HTTP status codeThe HTTP status code of the response. For example 200, 403, 404, 500, etc.
HeadersThe headers of the response, for example:
[{"Key":"Content-Type","Value":"application/json"},{"Key":"Content-Encoding","Value":""}]
Set-CookieThe HTTP Cookie that possibly returns with the response.
Content-TypeThe MIME type for the content that was returned with the response.
Content encodingThe encoding that is used for the content in the response.
Content-LengthThe length of the content of the response.
Indicium The Content-Length header is set to 0 for POST, PUT, and PATCH requests that do not specify a request body or a Transfer-Encoding header.
Content-DispositionPossibly contains a suggestion for a file name.
ContentThe content of the response.

SMTP connector

Starting point Universal GUIStarting point Win/Web GUIStarting point system flow (Indicium)System flow action
--++

This connector provides the following input options to control several properties of an SMTP request and an SMTP message:

note
  • If you have selected a Storage location and wish to make attachments available, use input parameter Storage attachment path.
  • For attachments without using a file storage location, use the Disk file attachments and Disk file deletable attachments input parameters.
Input options
SMTP server addressThe host name or the IP address of the SMTP server with which the email will be sent.
SMTP server portThe port to which the SMTP server listens.
Use SSLOptional. Whether SSL must be used for the connection.
No (default) smtp_ssl_off
Yes smtp_ssl_on
smtp_con_usernameOptional. The user name that will be used for the authentication.
PasswordOptional. The password that will be used for the authentication.
From addressThe email address that will be used as sender of the email.
From nameOptional. The display of the sender of the email. If not specified, this will be equal to From address.
To recipientsOptional. A list of email addresses separated by semi-colons. These addresses appear in the TO field of the email.
CC recipientsOptional. A list of email addresses separated by semi-colons. These addresses appear in the CC field of the email.
BCC recipientsOptional. A list of email addresses separated by semi-colons. These addresses appear in the BCC field of the email.
SubjectThe subject with which the email will be sent.
MessageOptional. The message of the email.
Message encodingOptional. The encoding for the message of the email.
ASCII smtp_enc_ascii
UTF8 (default) smtp_enc_utf8
UTF16 smtp_enc_utf16
UTF32 smtp_enc_utf32
Allow HTMLOptional. Indicates whether the content of the message can be interpreted as HTML.
No (default) smtp_body_html_off
Yes smtp_body_html_on
Disk file attachmentsOptional. A list of file paths separated by semi-colons. The files will be added as an attachment to the email. Only for use without a file storage location.
Disk file deletable attachmentsOptional. A list of file paths separated by semi-colons. The files will be added as an attachment to the email. These files will be deleted after transmission of the email. Only for use without a file storage location.
PriorityOptional. Gives the priority of the email to be sent.
Low smtp_msg_priority_low
Normal (default) smtp_msg_priority_normal
High smtp_msg_priority_high
SignatureOptional. The signature that is placed under the email to be sent.
Storage attachments pathOptional. You can add one absolute path that refers to a file in the file storage containing the email attachments.
This parameter can only be used when a file storage location is specified in this process action's Form tab.
Output options
Status codeThe status code of the executed action.
0 - Successful
-1 - Unsuccessful (unknown)
-2 - Unsuccessful (making a connection with server failed)
-3 - Unsuccessful (from address not entered)
-4 - Unsuccessful (one or more addressees could not be reached)
-5 - Unsuccessful (one or more attachments could not be deleted)
-6 - No storage configuration was configured.
-7 - The storage attachments path input parameter was given an invalid value, it must be a valid, absolute path.
-8 - The storage attachments path input parameter refers to a file that does not exist, or a folder instead of a file.

Email connector

Starting point Universal GUIStarting point Win/Web GUIStarting point system flow (Indicium)System flow action
--++

With the Email connector, you can send informative emails from an application, and even include data from the application in the email.

You can either enter the input parameters manually or select a provider from a list of previously configured email providers. See Email providers. By selecting a predefined email provider with all its settings, you do not need to set up all the generic parameters again for each process flow.

Input options
From addressOptional. The email address that serves as the email's sender. If not specified, it will default to the From address of the specified email provider.
From nameOptional. The display name of the email sender. If not specified, it will default to the From name of the specified email provider.
To recipientsOptional. A list of email addresses separated by semi-colons. These addresses appear in the TO field of the email.
CC recipientsOptional. A list of email addresses separated by semi-colons. These addresses appear in the CC field of the email.
BCC recipientsOptional. A list of email addresses separated by semi-colons. These addresses appear in the BCC field of the email.
SubjectOptional. The subject with which the email will be sent.
MessageOptional. The message of the email.
Message encodingOptional. Specifies how your email message should be processed. If not specified, it will use the default ASCII encoding.
Allow HTMLOptional. Indicates whether the content of the message can be interpreted as HTML.
No email_body_html_off
Yes (default) email_body_html_on
PriorityOptional. Gives the priority of the email to be sent.
High email_msg_priority_high
Low email_msg_priority_low
Normal (default) email_msg_priority_normal
Storage attachments pathOptional. An absolute path to either a file or directory on the configured file storage provider. In case of a directory, all top-level files inside it will be used as attachments in the email.
This parameter can only be used when a (non database) storage configuration is specified in this process action's Form tab.
Output options
Status codeThe status code of the executed action.
0 - Successful
-1 - Unsuccessful (unknown)
-2 - Unsuccessful (no email provider, check the configuration)
-3 - Unsuccessful (no recipients, To, CC and BCC are empty)
-4 - Unsuccessful (error while sending the email to the email server. Check the Indicium error log.)
-5 - Unsuccessful (file storage provider could not be found. Check the connector's configuration. Database storage provider is not allowed.)
-6 - Unsuccessful (a problem with the file storage path. This should be an absolute path on the configured storage provider.)
-7 - Unsuccessful (file storage path is considered valid but one or more file streams on it cannot be opened.)

Database connector

Starting point Universal GUIStarting point Win/Web GUIStarting point system flow (Indicium)System flow action
--++

The Database connector provides the following input options to establish a database connection. The command executed by the Database connector has no limit to the wait time; no timeout will occur.

note

If you plan to use the Database connector, verify that your ODBC driver version is compatible with your SQL Server edition.

Input options
Connection stringThe ODBC connection string that includes the source database name, and other parameters needed to establish the initial connection, for example:
- SQL Server standard: Driver={SQL Server}; Server=myServerAddress; Database=myDataBase; User Id=myUsername; Password=myPassword;
- SQL Server Trusted: Driver={SQL Server}; Server=myServerAddress; Database=myDataBase; Trusted_Connection=True;
- DB2 standard: Driver={iSeries Access ODBC Driver}; System=myServerAddress; DefaultLibraries=myDataBase; UserId=myUsername; Password=myPassword; CommitMode=2; QueryTimeout=0;
- DB2 DSN: Dsn=myDsnName;Uid=myUsername;Pwd=myPassword
SQLThe SQL statement executed by this process action.
Parameters (JSON)Optional. A JSON-formatted list of parameters. See example below.
ParametersOptional. A comma-separated list of process flow variables to be used as parameters, for example:
customer_id,sales_order_id

The command parameter name and datatype will be based on the process variable.
Input parametersOptional. Use in conjunction with Parameters. A comma-separated list of parameters marked to be input for the command(s), for example: customer_id

The value will automatically be mapped from the process variable.
Output parametersOptional. Use in conjunction with Parameters. A comma-separated list of parameters marked to be output in the command(s), for example: sales_order_id

Note: the output value will not automatically be mapped back to the process variable.
Command delimiter (regex)Optional. A C# regular expression used to instruct the connector to execute multiple sequential commands on the same connection.
The SQL value will be split into multiple commands using this regular expression.
Continue on errorOptional. Use in conjunction with Command delimiter (regex). If an error occurs during command execution, the next command can be executed or the execution can be halted based on this setting.
Yes continue_on_error_yes
No (default) continue_on_error_no
Start from indexWhen multiple statements are specified with a delimiter, Indicium will start with the one indicated by the Start from index parameter, ignoring all the statements before that.

SQL statement in database connector

The SQL statement in a database connector uses placeholders for each input parameter. These placeholders are single question marks without quotes. ODBC does not use named parameters.

For example:

select total_amount from sales_order where customer_id = ? and sales_order_id = ?

Or:

exec generate_sales_order ?,?
warning

The input parameters must be specified in the exact order in which they appear in the SQL statement.

If you want to return a value, you can do it in two ways:

  • Explicitly select the value. In the select statement above, this is total_amount. The selected value is returned in the result set.
  • Use question mark ? placeholders for parameters. The exec statement above contains two placeholders. For more information on parameters in process procedures, see Business logic in a process flow.

Parameters (JSON) example

[
{
"Name": "customer_id",
"Value": "test",
"Type": "VarChar",
"Size": 100
},
{
"Name": "sales_order_id",
"Value": 0,
"Type": "Int",
"Output": true
}
]

Command delimiter (regex) example

;[^;]*(?:\z|--go\r\n|--go\n|--GO\r\n|--GO\n)

This example regular expression will split the commands using a semicolon followed by --GO in various casings. This is the command delimiting style used by the Software Factory for generated DB2 code.

Output options
Status codeThe status code of the executed action.
0 - Successful
-1 - Unsuccessful (unknown)
-2 - Unsuccessful (empty connection string)
-3 - Unsuccessful (no command text)
-4 - Unsuccessful (invalid parameter JSON structure)
-5 - Unsuccessful (cannot combine JSON parameters with mapped process variable parameters)
-6 - Unsuccessful (input or output parameter was not found as mapped process variable parameter)
-7 - Unsuccessful (mapped process variable parameter was not set as input or output)
-8 - Unsuccessful (mapped process variable parameter was not found as process variable)
-9 - Unsuccessful (could not parse command delimiter regex)
ResultA JSON-formatted list containing the result set(s) of the executed command, for example:
[{"result":[{"customer_id":1,"sales_order_id":14},{"customer_id":2,"sales_order_id":15}]}]

When using a Command delimiter: A JSON-formatted list of executed commands with corresponding results.

Use the OPENJSON and JSON_VALUE SQL functions to select from the JSON result, for example:
select json_value(value, '$.customer_id'), json_value(value, '$.sales_order_id') from openjson(@result, '$[0].result')
Output parametersA JSON-formatted list of the output parameter values of the executed command, for example:
[{"Name":"sales_order_id","Value":16}]

When using a Command delimiter: A JSON-formatted nested list of executed commands with corresponding output parameters and output parameter values.
SQL info messageA JSON-formatted list of info messages thrown by the executed command.
When using a Command delimiter: A JSON-formatted nested list of executed commands with corresponding info messages.
SQL error messageError message thrown when opening the connection or by the executed command.
When using a Command delimiter: A JSON-formatted list of executed commands with corresponding error message.
SQL error codeError code thrown when opening the connection or by the executed command.
When using a Command delimiter: A JSON-formatted list of executed commands with corresponding error code.

Convert JSON to XML/convert XML to JSON

Starting point Universal GUIStarting point Win/Web GUIStarting point system flow (Indicium)System flow action
--++

The conversion between JSON and XML can be done with this connector. SQL Server offers built-in support for JSON starting with version 2016.

Input options
Convert inputThe input value that needs to be converted.
Output options
Status codeThe status code of the executed action.
0 - Successful
-4 - Unsuccessful (no input)
Convert outputThe converted output value.

Extract JSON data

Starting point Universal GUIStarting point Win/Web GUIStarting point system flow (Indicium)System flow action
--++

With the system flow connector Extract JSON Data you can extract specific data from a JSON object without depending on process application logic. This connector is useful in various scenarios:

  • Alongside HTTP connectors and application connectors to extract relevant information from JSON data received from other systems.
  • When processing JSON files or other JSON data used by your application.

With JSONPath, a query language for JSON, you can write the extracted data directly to a process variable. Note that JSONPath is case-sensitive. For more information on its syntax and capabilities, see JSONPath.

Input options
InputThe JSON value containing the data to be extracted. See the example below.
JSON PathThe JSONPath expression to load the data. For example, to extract the email: $.result.email
Always return JSON arrayOptional. Deactivated by default, so single literal results will be unescaped, non-JSON text, and single JSON object results will not have an array wrapper. Multiple matches will always be a JSON array. Varying input may cause the JSONPath to result in both single values and multiple values. Set this parameter to Yes to maintain a consistent response format and prevent issues downstream in the processing chain.
Input example
{
"result": {
"id": 1,
"name": "John Doe",
"email": "john@doe.com"
},
"status": {
"code": 200,
"message": "OK"
}
}

Output options
Status code0 Successful
-1 Unsuccessful (Unknown)
-2 Unsuccessful (No input was provided)
-3 Unsuccessful (No JSON Path was provided)
-4 Unsuccessful (Input was invalid JSON)
-5 Unsuccessful (JSONPath was invalid)
OutputThe extracted literal value, JSON object, or JSON array

Example of the Extract JSON Data connector in a system flow

Generate report

Starting point Universal GUIStarting point Win/Web GUIStarting point system flow (Indicium)System flow action
--++

With this process action, you can generate reports via system flows and use the returned report data in, for example, a Write file connector. The process action will not use any default or layout procedures attached to the report.

Output parameters
Status codeThe status code of the executed action.
0 - Successful
-1 - Unsuccessful (unknown)
-2 - Unsuccessful (no report context)
-3 - Unsuccessful (mandatory parameter empty)
-4 - Unsuccessful (export path contains invalid character)
-5 - Unsuccessful (report parameter with a Property of the type Action contains no integer)
File nameFor example, text.rpt.
Report dataA binary string that can be used for storage in the database or to write a report to file with a Write file connector.

See also:

AutoML and Time-series forecasting connectors

See AutoML for more information.

Large Language Model connectors

See Generative AI for more information.

Was this page helpful?