Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
---
title: "Workflow Automation in Kiosk Environment"
description: ""
lead: ""
date: 2025-12-30T11:07:06+03:30
lastmod: 2025-30-14T11:07:06+03:30
draft: false
images: []
type: docs
weight: 321120
---

Due to Windows limitations in kiosk environments, only one application can run at a time. This means the IDmelon Workflow Editor cannot be executed directly in kiosk mode.

The recommended solution is to create the workflow in a standard Windows account. For example, if Microsoft Edge is configured as the kiosk application, you can open Edge in a normal Windows account, manage your workflow there, and then export it for use in kiosk mode.

> To ensure that the workflow created in the normal account functions properly in kiosk mode, verify that the selector for each UI element is correctly configured (see [UI element selector](../workflow_automation/#ui-element-selector)).

## Workflow Runner in Kiosk Mode

To execute workflows, the **Workflow Runner** must run in the background. As noted earlier, kiosk mode restricts the number of applications that can run simultaneously. To bypass this limitation, follow the steps below:

### Multi-app kiosk mode

If you are using **Microsoft Intune** as an MDM provider, do the following steps:

1. Go to [Intune Portal](https://intune.microsoft.com).
2. Navigate to **Devices > Windows > Configuration**, and select the kiosk configuration you previously created.
3. In the **Configuration settings** section, select **Edit**.
4. Under **Browsers and Applications**, select **Add Win32 app**.
5. Complete the following fields:
- **Application name**: IDmelon Workflow Runner
- **Local path to app executable file**: C:\Program Files\IDmelon\Workflow Automation\WorkflowRunner.exe
- **Application user model ID**: com.idmelon.workflowrunner
6. Click **OK**.
7. Uncheck the **Autolaunch**.
8. Save the configuration.

### Single-app kiosk mode

If your kiosk is configured in single-app full-screen mode, you should configure the **IDmelon Accesskey** to launch the Workflow Runner app when the user logs in.

To configure, do the following steps:

1. Make a new folder named `Startup` in the following path if it does not already exist:

```bash
C:\Program Files (x86)\IDmelon\Accesskey
```

2. Place a shortcut of `WorkflowRunner.exe` (located in `C:\Program Files\IDmelon\Workflow Automation`) in the `Startup` folder.

> If your kiosk environment is configured using Assigned Access (see [Configure a single-app kiosk with Assigned Access](https://learn.microsoft.com/en-us/windows/configuration/assigned-access/configure-single-app-kiosk?tabs=ps)), you can add the Workflow Automation path as an allowed path in AppLocker to ensure the Workflow Runner app is not blocked from running.
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,15 @@ weight: 321110

## Workflow Editor

The Workflow Editor is the central environment for creating, managing, testing, and executing workflows. Within the `IDmelon Workflow Automation` app, you can design and refine workflows, then export them as JSON files for use with the Workflow Runner.
The Workflow Editor is the central environment for creating, managing, testing, and executing workflows. Within the `Workflow Editor` app, you can design and refine workflows, then export them as JSON files for use with the Workflow Runner.

### Workflows

A workflow is a structured sequence of actions or tasks that are executed step by step to achieve a specific outcome. In automation systems, a workflow typically consists of a list of predefined activities—such as reading data, clicking buttons, entering text, or processing information—that are carried out in order, one after another. Each action depends on the completion of the previous step, creating a logical flow from start to finish.

#### Export a Workflow

To export a workflow in the `IDmelon Workflow Automation` app, select it from the list and click the `Export` button. The workflow will be saved as a JSON file, which you can store on your PC or other systems. This file is required for running the workflow via Accesskey scripts.
To export a workflow in the `Workflow Editor` app, select it from the list and click the `Export` button. The workflow will be saved as a JSON file, which you can store on your PC or other systems. This file is required for running the workflow via Accesskey scripts.

### Actions

Expand All @@ -39,6 +39,7 @@ Simulates a mouse click on a specified UI element, allowing the automation proce

| Argument | Optional | Accepts | Default Value | Description |
| ---------- | -------- | ------------------------------------- | ------------- | ---------------------------- |
| UI element | No | UI element | - | The UI element to click on |
| Click type | No | Left click, Double click, Right click | Left click | The kind of click to perform |

#### Hover mouse over UI element
Expand All @@ -47,17 +48,20 @@ Moves the cursor over a UI element.

**Input Parameters:**

No Inputs needed.
| Argument | Optional | Accepts | Default Value | Description |
| ---------- | -------- | ---------- | ------------- | ------------------------------------ |
| UI element | No | UI element | - | The UI element to hover the mouse on |

#### Populate text field

Fills a text field with the entered text.

**Input Parameters:**

| Argument | Optional | Accepts | Default Value | Description |
| --------------- | -------- | ------- | ------------- | ---------------------------------- |
| Text to fill-in | No | Strings | Empty | The text to fill in the text field |
| Argument | Optional | Accepts | Default Value | Description |
| --------------- | -------- | ---------- | ------------- | ---------------------------------- |
| UI element | No | UI element | - | The text field to populate |
| Text to fill-in | No | Strings | Empty | The text to fill in the text field |

> **Note**: This action can be applied only to Inputs.
>
Expand All @@ -69,7 +73,9 @@ Sets the focus on a UI element.

**Input Parameters:**

No Inputs needed.
| Argument | Optional | Accepts | Default Value | Description |
| ---------- | -------- | ---------- | ------------- | ---------------------------------- |
| UI element | No | UI element | - | The UI element to set the focus on |

#### Get details of the UI element

Expand All @@ -79,6 +85,7 @@ Gets the value of a UI element's attribute.

| Argument | Optional | Accepts | Default Value | Description |
| ---------------- | -------- | ----------------------------------------------------- | ------------- | ----------------------------------------------- |
| UI element | No | UI element | - | The UI element to get details from |
| Attribute name | No | UI element Attributes (Id, Name, Class, Enabled, ...) | Id | The attribute name |
| Bind to variable | No | Variable name (String) | Empty | The variable where the attribute will be stored |

Expand All @@ -88,9 +95,10 @@ Waits until a UI element appears on screen.

**Input Parameters:**

| Argument | Optional | Accepts | Default Value | Description |
| -------- | -------- | --------------- | ------------- | ----------------------------------------------------------- |
| Timeout | No | Number (Double) | 10 | Maximum number of seconds to wait for the element to appear |
| Argument | Optional | Accepts | Default Value | Description |
| ---------- | -------- | --------------- | ------------- | ----------------------------------------------------------- |
| UI element | No | UI element | - | The UI element to wait for to appear |
| Timeout | No | Number (Double) | 10 | Maximum number of seconds to wait for the element to appear |

#### Send mouse click

Expand Down Expand Up @@ -241,7 +249,7 @@ Executes some custom PowerShell script and retrieves its output into a variable.

Conditional actions are workflow steps that execute only when specific conditions are met. They are useful for tasks like checking the value of a variable, verifying whether an element exists on screen, or controlling the flow of automation based on dynamic criteria.

##### If
#### If

Check if two values match.

Expand All @@ -253,7 +261,7 @@ Check if two values match.
| Operator | No | Equal to (=), Not equal to (!=), Greater than (>), Greater than or equal to (>=), Less than (<), Less than or equal to (<=), Contains, Does not contain, Starts with, Ends with, Is empty, Is not empty | Equal to (=) | The relationship of first operand to the second operand |
| Second operand | No | String/Number | Empty | Enter a value name produced by a previous action, text, number or expression to compare with the first operand |

##### Else if
#### Else if

Starts a block of actions that run only if earlier `If` or `else if` checks fail, and this condition is true.

Expand All @@ -265,22 +273,23 @@ Starts a block of actions that run only if earlier `If` or `else if` checks fail
| Operator | No | Equal to (=), Not equal to (!=), Greater than (>), Greater than or equal to (>=), Less than (<), Less than or equal to (<=), Contains, Does not contain, Starts with, Ends with, Is empty, Is not empty | Equal to (=) | The relationship of first operand to the second operand |
| Second operand | No | String/Number | Empty | Enter a value name produced by a previous action, text, number or expression to compare with the first operand |

##### Else
#### Else

Starts a block of actions when none of the preceding `if` or `else if` conditions are met.

**Input Parameters:**

No Inputs needed.

##### If UI element exists
#### If UI element exists

Checking whether a UI element exists on the screen.

**Input Parameters:**

| Argument | Optional | Accepts | Default Value | Description |
| ------------- | -------- | -------------------- | ------------- | ------------------------------------------------------------ |
| UI element | No | UI element | - | The UI element to check if it exists |
| If UI element | No | Exist, Doesn't exist | Exist | Specifies the condition to check for the UI element’s presence or absence on the screen. |
| Timeout | No | Number (Double) | 2 | Search timeout in seconds |

Expand Down Expand Up @@ -476,37 +485,24 @@ To test the selected flow, click on the **Test selected action** button.

Workflow Runner is a tool for running the workflow when the Accesskey Automate Access command triggers.

> The app exists in the installation directory in: **C:\Program Files\IDmelon\Workflow Automation\IDmelonWorkflowRunner.exe**
> The app exists in the installation directory in: **C:\Program Files\IDmelon\Workflow Automation\WorkflowRunner.exe**

### Using the Workflow Runner in in the Accesskey script
### Configuring Accesskey

To run a workflow on the security key presence (card tap) trigger, do the following steps:

1. Export the desired workflow from the Workflow Editor.

2. Make a new text file, fill it with the following lines, and save it as a **.ps1** file.
2. Enter the following command in PowerShell to activate the automation.

```bash
# Launches the workflow runner if it's not running
$processName = "idmelonworkflowrunner"
if (-not (Get-Process -Name $processName -ErrorAction SilentlyContinue)) {
Start-Process $processName
}
# Runs the workflow on each card tap
# Timeout is the maximum time (in milliseconds) that the Accesskey will wait for the automation result
accesskey access-automation automation-app execute automate -p "WORKFLOW_JSON_FILE_PATH" -t TIMEOUT_IN_MILLISECONDS
```

3. Enter the following command in PowerShell to activate the automation.

```bash
accesskey config access-automation set --trigger-condition onSecurityKeyPresence --script-path "PS1_SCRIPT_PATH"
accesskeycli workflow-automation -s -t automation-app --action execute --workflow-path "PATH_TO_WORKFLOW_FILE"
```

> To disable the automation, enter the following command in PowerShell:
>
> ```bash
> accesskey config access-automation remove all
> accesskeycli workflow-automation -t automation-app -r
> ```

### Test Workflow
Expand Down
Loading