Automations
Overview
Automations in Skills Workflow allow users to configure business rules that are triggered automatically based on system events. These automations can be used to streamline processes such as sending notifications, updating data, or integrating with external systems via webhooks.
The automation process is composed of:
- Trigger – Defines the event that starts the automation.
- Condition – An optional filter to limit when the automation should proceed.
- Actions – Defines what should happen once the automation is triggered and conditions are met.
Automations are a powerful way to respond to internal changes in the system or to interact with external services in real-time.
Technology
The Automation Workflows feature allows you to create and chain multiple automatic actions in response to system events. These actions are configurable and support a wide variety of operations.
The full list of supported actions is available in the official Actions documentation, where you can find descriptions, expected JSON structures and practical examples for each type.
Supported Actions
Here is an overview of the most commonly used actions:
-
REST API Call
Sends HTTP requests to external APIs, including contextual data from the workflow. Ideal for integrations with other systems. -
SFTP
Connects to SFTP servers to download, upload or move files. Useful for interacting with secure file storage systems. -
CSV Converter
Converts arrays of data into CSV files, useful for reporting or formatted data exports. -
Send Email
Sends emails based on the automation results, with support for attachments and customizable content. -
Logical Action
Controls the workflow execution flow with conditions, validations or loops. -
HTTP Response
Returns a structured HTTP response, useful for synchronous integrations where the triggering system expects a result.
Configurations
An Automation Workflow is made of actions.
- There are two actions that must exist and be properly configured in order to save an Automation Workflow successfully
- Start
- Result
Everytime an action is executed, it will produce a result, made available in the action's content.
It is possible to access an action result by invocating its "Content".
To invoke the action content use the following statement: {{['actionName']}}
- It can be evaluated using JsonPath syntax
Please see the example below to see access to the action GetProjectFile and get the Uri:
{
"actionType": "Download",
"name": "DownloadFile",
"next": "UploadFile",
"url": "{{['GetProjectFile']$.Content.Uri}}`"
}
Parameters
{{['#HttpRequest']}}
Full HttpRequest that triggered the Automation Workflow.
{
"Scheme": "https",
"Host": "integrationworkflow-skills-dev-we.azurewebsites.net",
"Path": "/api/tenants/{tenantId}/integration-workflows/{AutomationId}/execute",
"Method": "POST",
"Query": {
"TenantName": [
"playground-dev"
]
},
"Headers": {
"Accept": [
"application/json"
]
},
"Body": {
"parameter": "value"
}
}
Functions
Functions replace evaluated value with a function that runs a specific Task.
{{NewGuid}}- Returns a new Guid{{NewDateUtc(value[Required])}}- returns a new Utc DateTime- value:
{{NewDateUtc(Now)}}-returns a new Utc DateTime with current time{{NewDateUtc(Today)}}- returns a new Utc DateTime with time set to MidNight (00:00:00){{NewDateUtc(Yesterday)}}- returns a new Utc DateTime with time set to Yesterday's MidNight (00:00:00){{NewDateUtc(FirstDayOfYear)}}- returns a new Utc DateTime with time set to new Years Day at MidNight (00:00:00){{NewDateUtc(LastDayOfYear)}}- returns a new Utc DateTime with time set to last day of the current Year at MidNight (00:00:00)
- value:
Pipe Functions
Pipe Functions enable transformations on evaluated values using '|' modifier after the value and a specific Pipe Function. Pipe Functions support arguments between parentheses
Converters
- ToBase64 -
{{['CreateCsv']$ | ToBase64}} - FromBase64 -
{{['CreateCsv']$ | ToBase64}} - UrlEncode -
{{['GetProjectFile']$.Content.Url | UrlEncode}} - ToJsonString -
{{['GetProjectFile']$.Content | ToJsonString}} - ToDateUtc -
{{['GetProjectFile']$.Content.CreatedOn | ToDateUtc}} - ToJson -
{{['CreateCsv']$ | ToJson}} - ToJsonString -
{{['CreateCsv']$ | ToJsonString}} - FromUnixTimeSeconds -
{{['CreateCsv']$ | FromUnixTimeSeconds}} - FromUnixTimeMilliSeconds -
{{['CreateCsv']$ | FromUnixTimeMilliSeconds}}
Boolean Operators
- IsNullOrEmpty -
{{['CreateCsv']$ | IsNullOrEmpty}} - Contains -
{{['MyText'] | Contains('Text to check if exists')}} - Join -
{{['MyText'] | Join('Text to append')}} - Split -
{{['My/Text'] | Split('Separator Char')}}
Arithmetic Operators
- AddDecimal(value) -
{{['MyIntValue'] | AddDecimal(2)}} - Sum -
{{['ArrayOfValues']$ | Sum}} - Min -
{{['ArrayOfValues']$ | Min}} - Max -
{{['ArrayOfValues']$ | Max}} - Avg -
{{['ArrayOfValues']$ | Avg}}
Date Operators
- AddMonths(value) -
{{['StartDate'] | AddMonths(2)}} - AddDays(value) -
{{['StartDate'] | AddDays(-1)}} - AddHours(value) -
{{['StartDate'] | AddHours(12)}} - AddMinutes(value) -
{{['StartDate'] | AddMinutes(2)}}