Skills
The Skills column of a workflow shows the skill (or skills) that will be deployed to the workflow's devices. A skill is a containerized application — see Skills Overview for a general introduction.
Each skill added to a workflow is independently configurable: you can give it a custom display name, pin it to a specific version, configure its inputs, choose which outputs to enable, and control how its optional web interface is exposed.
Adding a skill
- In the Skills column, click the plus (+) icon.
- Browse or search for a skill in your organization's library.
- Select the skill to open the configuration screen.
- Review or adjust the settings (see Configuring a skill below).
- Click Save.
The skill appears in the Skills column. A sync icon (⟳) indicates there are pending changes — click Sync to deploy the skill to your devices.
If you don't have a skill yet, you can click New Skill from within the skill selector to create one inline. See Add a Skill for a full guide.
Configuring a skill
Click on any skill in the Skills column to open the Edit Skill panel.
Name
The skill's display name within this workflow. By default it uses the skill's own name, but you can rename it to something more descriptive for your context.
Version
Choose which version of the skill to deploy. The currently deployed version is shown by default.
An update available badge appears when a newer version of the skill has been published. To upgrade, select the newer version from the version dropdown and click Save, then sync the workflow.
Inputs
Inputs are key/value configuration values delivered to the skill on the device through the Azure IoT module twin desired settings. Each input has a label and an expected type (text, number, etc.).
Fill in any required input values. These values are sent to every device running this workflow via the Azure IoT module twin when the workflow is synced.
Outputs
Outputs are the data channels that the skill publishes via Azure IoT messages. Use the Outputs section to enable or disable individual output channels.
- Enabled outputs are available for use in Actions
- Disabled outputs are ignored and not forwarded to any action
You do not need to enable all outputs — only enable the ones you intend to use.
Web UI port
Some skills include a built-in web interface. If the skill has one, you can configure which port it runs on:
- Automatic port — The portal assigns an available port automatically (recommended for most setups)
- Manual port — Enter a specific port number if you need it to be consistent
Expose to network
Toggle Expose to Network to control who can reach the skill's web interface:
- On (default) — The web UI is accessible on the device's local network
- Off — The web UI is only accessible from the device itself and via tunneling from the portal
Port and network exposure settings only apply to skills that include a web interface. These fields are hidden for skills that don't expose a UI.
Removing a skill
- Click on the skill in the Skills column to open the Edit Skill panel.
- Click Remove (top right of the panel).
- Confirm when prompted.
The skill is marked with a trash icon and strikethrough. It will be uninstalled from all devices in the workflow on the next sync.
Skill status indicators
| Indicator | Meaning |
|---|---|
| ⟳ Sync icon | Unsynchronized changes — sync required |
| 🗑 Trash icon | Removed, pending sync |
| 🚫 Disabled badge | Skill cannot be deployed (see below) |
| 🔄 Update badge | A newer version is available |
Disabled skills
A skill may be shown as disabled if it is in a state that prevents deployment (for example, if the underlying skill version has become unavailable). A tooltip explains the specific reason. You will need to resolve the issue (such as selecting a different version) before the workflow can be synced.
Bulk editing device and skill configuration
If your organization has the Bulk Edit feature enabled, a Bulk Edit option appears in the workflow's gear menu. This allows you to upload a CSV file to batch-update skill inputs and device environment variables across many devices at once.
The CSV format requires the following columns:
| Column | Description | Example |
|---|---|---|
id | Item type and ID (or serial number for devices), separated by : | workflowsSkills:abc123, devices:8080000000001 |
key | Input key or environment variable name | THRESHOLD |
value | Value to set | 0.75 |
type | Either input (skill input) or env (device env var) | input |
name | (Optional) Display name of the item | My Skill |