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 GUI | Starting point Win/Web GUI | Starting 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.
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/alias | The 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. |
SQL | The 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 error | Optional. 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 index | When 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 code | The 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) |
Result | A 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. |
Messages | A 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 GUI | Starting point Win/Web GUI | Starting 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
- Web connection: Hubspot
- Base URL: https://api.hubapi.com/crm/v3/
- Authentication: Bearer token
Endpoints
Endpoint: Get contacts
- Endpoint URL:
/objects/contacts
- Method: GET
Endpoint parameter | Default value |
---|---|
top_n | 10 |
Query string parameter | Value | Omit when empty |
---|---|---|
limit | {top_n} | Yes |
archived | false |
Endpoint output | Mapping | JSON Path | Always as array |
---|---|---|---|
http_status | HTTP status code | - | |
results | Response body | $.results..properties | Yes |
Endpoint: Get contact
- Endpoint URL:
/objects/contacts/{hs_contact_id}
- Method: GET
Endpoint parameter | Sanitize |
---|---|
hs_contact_id | Auto |
Endpoint output | Mapping | JSON Path | Always as array |
---|---|---|---|
http_status | HTTP status code | - | |
hs_contact_id | Response body | $.id | No |
Response body | $.properties.email | No | |
first_name | Response body | $.properties.firstname | No |
last_name | Response body | $.properties.lastname | No |
phone | Response body | $.properties.phone | No |
company | Response body | $.properties.company | No |
website | Response body | $.properties.website | No |
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 parameter | Default value | Sanitize |
---|---|---|
Auto | ||
first_name | Auto | |
last_name | Auto | |
phone | Auto | |
company | Auto | |
website | Auto |
Query string parameter | Value | Omit when empty |
---|---|---|
limit | {top_n} | Yes |
archived | false |
Endpoint output | Mapping | JSON Path | Always as array |
---|---|---|---|
http_status | HTTP status code | - | |
hs_contact_id | Response body | $.id | No |
Input options | |
---|---|
Input parameters | The 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 code | 0 - 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 GUI | Starting point Win/Web GUI | Starting point system flow (Indicium) | System flow action |
---|---|---|---|
- | - | + | + |
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 | |
---|---|
URL | The complete url that will be used for the request. |
HTTP method | The 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 |
Headers | Optional. 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. |
Cookie | Optional. A possible cookie that will be provided with the request. |
Content-Type | Optional. The MIME type for the content that will be provided with the request. |
Content | Optional. The content that will be sent with the request, for instance with a POST. |
Authentication type | Optional. 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 token | Optional. If you selected authentication type Bearer, enter the access token here. |
Username | Optional. The user name that will be used for the authentication, if applicable. |
Password | Optional. The password that will be used for the authentication, if applicable. |
Timeout | Optional. An integer that indicates the timeout of the request in milliseconds. Default is 100,000. |
Output options | |
---|---|
Status code | The 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 code | The HTTP status code of the response. For example 200, 403, 404, 500, etc. |
Headers | The headers of the response, for example: [{"Key":"Content-Type","Value":"application/json"},{"Key":"Content-Encoding","Value":""}] |
Set-Cookie | The HTTP Cookie that possibly returns with the response. |
Content-Type | The MIME type for the content that was returned with the response. |
Content encoding | The encoding that is used for the content in the response. |
Content-Length | The 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-Disposition | Possibly contains a suggestion for a file name. |
Content | The content of the response. |
SMTP connector
Starting point Universal GUI | Starting point Win/Web GUI | Starting 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:
- 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 address | The host name or the IP address of the SMTP server with which the email will be sent. |
SMTP server port | The port to which the SMTP server listens. |
Use SSL | Optional. Whether SSL must be used for the connection. No (default) smtp_ssl_off Yes smtp_ssl_on |
smtp_con_username | Optional. The user name that will be used for the authentication. |
Password | Optional. The password that will be used for the authentication. |
From address | The email address that will be used as sender of the email. |
From name | Optional. The display of the sender of the email. If not specified, this will be equal to From address. |
To recipients | Optional. A list of email addresses separated by semi-colons. These addresses appear in the TO field of the email. |
CC recipients | Optional. A list of email addresses separated by semi-colons. These addresses appear in the CC field of the email. |
BCC recipients | Optional. A list of email addresses separated by semi-colons. These addresses appear in the BCC field of the email. |
Subject | The subject with which the email will be sent. |
Message | Optional. The message of the email. |
Message encoding | Optional. 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 HTML | Optional. 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 attachments | Optional. 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 attachments | Optional. 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. |
Priority | Optional. 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 |
Signature | Optional. The signature that is placed under the email to be sent. |
Storage attachments path | Optional. 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 code | The 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 GUI | Starting point Win/Web GUI | Starting 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 address | Optional. 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 name | Optional. The display name of the email sender. If not specified, it will default to the From name of the specified email provider. |
To recipients | Optional. A list of email addresses separated by semi-colons. These addresses appear in the TO field of the email. |
CC recipients | Optional. A list of email addresses separated by semi-colons. These addresses appear in the CC field of the email. |
BCC recipients | Optional. A list of email addresses separated by semi-colons. These addresses appear in the BCC field of the email. |
Subject | Optional. The subject with which the email will be sent. |
Message | Optional. The message of the email. |
Message encoding | Optional. Specifies how your email message should be processed. If not specified, it will use the default ASCII encoding. |
Allow HTML | Optional. Indicates whether the content of the message can be interpreted as HTML. No email_body_html_off Yes (default) email_body_html_on |
Priority | Optional. 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 path | Optional. 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 code | The 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 GUI | Starting point Win/Web GUI | Starting 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.
If you plan to use the Database connector, verify that your ODBC driver version is compatible with your SQL Server edition.
Input options | |
---|---|
Connection string | The 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 |
SQL | The SQL statement executed by this process action. |
Parameters (JSON) | Optional. A JSON-formatted list of parameters. See example below. |
Parameters | Optional. 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 parameters | Optional. 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 parameters | Optional. 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 error | Optional. 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 index | When 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 ?,?
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 istotal_amount
. The selected value is returned in the result set. - Use question mark
?
placeholders for parameters. Theexec
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 code | The 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) |
Result | A 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 parameters | A 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 message | A 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 message | Error 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 code | Error 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 GUI | Starting point Win/Web GUI | Starting 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 input | The input value that needs to be converted. |
Output options | |
---|---|
Status code | The status code of the executed action. 0 - Successful -4 - Unsuccessful (no input) |
Convert output | The converted output value. |
Extract JSON data
Starting point Universal GUI | Starting point Win/Web GUI | Starting 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 | |
---|---|
Input | The JSON value containing the data to be extracted. See the example below. |
JSON Path | The JSONPath expression to load the data. For example, to extract the email: $.result.email |
Always return JSON array | Optional. 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 code | 0 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) |
Output | The extracted literal value, JSON object, or JSON array |
Example of the Extract JSON Data connector in a system flow
Generate report
Starting point Universal GUI | Starting point Win/Web GUI | Starting 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.
A ready-made system flow for generating reports is available in the Thinkstore. See Reporting service for more information.
Output parameters | |
---|---|
Status code | The 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 name | For example, text.rpt. |
Report data | A 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.