Tags
Tags function as customizable metadata that you assign to folders, workflows, and tasks. These tags identify the specific source of an event and provide custom context about that specific entity. You can assign multiple tags to a single entity.
When an entity triggers an internal event, the system populates that event with the attached tags. These tags propagate through the triggered JSONata context entity, which then forwards them into the context of a notification workflow. This allows the notification workflow to read the tags as variables and customize its actions accordingly. In short, tags act as custom data that the source injects into an event, rather than being a result of the event itself.
When an event occurs, these tags travel with it. You use them as variables, such as
${js.trigger.completed.tags.email}, within your universal
notification workflow. By reading
these tags, the workflow dynamically
customizes its operations.
- Dynamic notifications: Sends emails to different users based on the specific tag values passed by the event source.
- Tasks suppression: Triggers emails or actions only when specific workflow statuses are met.
This feature helps you to use one centralized workflow to handle notifications from various sources. Instead of creating separate workflows for every internal event, you use tags to route information. This solves the challenge of notifying different users based on where a specific event originates.
- Tags as custom variables
-
When you attach a tag to a folder, workflow, or task, you are effectively creating a custom metadata point. You can reference this information directly within your workflows or tasks using the
${var.tag_name}syntax. At runtime, the system automatically replaces this placeholder with your assigned value, treating it exactly like a standard variable.When multiple variables share the exact same name, the system uses a specific hierarchy to determine which value takes precedence. Variables are evaluated from the most specific (highest priority) to the most broad (lowest priority):- Submission values
- Task tags
- Workflow tags
- Variable table tags
- Folder tags
Practical application
- The company mailroom
-
Imagine a company with three departments: IT, HR, and Security. Every time a process related to a specific department finishes, the system sends an alert to the manager of the department. In the old system, building a custom mail delivery system for each department created a massive amount of extra work.
- The New Way: Tags
-
The tag feature enables you to build one single, smart mailroom - a universal notification workflow- that handles alerts for the entire company. To route these alerts, you apply tags function like metadata sticky notes.
The Renewal of software licenses workflow contains a tag with the value Email: IT-Manager. Similarly, the Monthly payroll and Security drill workflows contain tags with their respective email addresses as tag values. These workflows act as event sources. When a workflow finishes, the system packages the tags from that source and sends them as a data payload to the universal notification workflow.
The alert arrives at the notification workflow, where the system reads the tag, identifies the value (such as Email: IT-Manager), and forwards the message to that specific department. Similarly, when the Monthly payroll or Security drill workflow finishes, the alert reaches the same universal notification workflow, which then routes the email to the concerned department based on its unique tag. This eliminates the need to build separate mail delivery systems; you simply use one universal workflow and apply different tags to your tasks to direct the actions of the system.
The system propagates only tags from the task, workflow, and folder hierarchy into these events. When a workflow runs, you might introduce temporary variables via manual submission values or predefined variable tables. Although submission values have the absolute highest priority when the system resolves variable names locally, the system ignores them entirely when generating the event payload.
Examples
-
Define the definition as follows to add a tag to a folder:
--- kind: Folder def: folder: /FOLDER_1/ description: This is folder 1 tags: - name: IT_DEP value: itdep@hcl.com - Define the definition as follows to add tags to a workflow and
task:
--- kind: JobStream def: folder: / name: WKF01 workstation: /CLOUD tags: - name: FRUITS value: Mango - name: WEATHER value: Cloudy saturdayIsFree: true sundayIsFree: true priority: 10 asap: false perJobLatestStart: false lateStartAction: doNotRun matchingCriteria: type: previous resourceDependencies: [] jobs: - name: EXECUTABLE_HIERARCHY workstation: /HCL_K8S_AGT_0 tags: - name: FRUITS value: Peach - name: AGENCY value: Sales jobDefinition: type: executable task: executable: interactive: false suffix: "" script: |- echo "Those are the Workflow tags" echo ${var.FRUITS} echo ${var.WEATHER} echo "Those are the Task tags" echo ${var.AGENCY} echo ${var.FRUITS} credential: {} recovery: action: STOP repeatAffinity: false priority: 10 asap: false lateStartAction: doNotRun lateAction: continue resourceDependencies: [] minDurationAction: continue maxDurationAction: continue skipLateAction: overlap - name: EXECUTABLE_NO_HIERARCHY workstation: /HCL_K8S_AGT_0 jobDefinition: type: executable task: executable: interactive: false suffix: "" script: |- echo "Those are the Workflow tags" echo ${var.FRUITS} echo ${var.WEATHER} echo "This Task has no tags" credential: {} recovery: action: STOP repeatAffinity: false priority: 10 asap: false lateStartAction: doNotRun lateAction: continue resourceDependencies: [] minDurationAction: continue maxDurationAction: continue skipLateAction: overlapThe workflow generates the following output for both tasks:Task log details =============================================================== = JOB : /CLOUD#WKF01[(1357 04/02/2026)].EXECUTABLE_NO_HIERARCHY = JOB STREAM ID : xyfgrb4658-8591-460e-b511-fbghtyunsja = JOB ID : ghbfyrhd-d78b-47fa-8c3d-9fbgythdjd = TASK : --- executable: interactive: false suffix: "" script: |- echo "Those are the Workflow tags" echo Mango echo Cloudy echo "This Task has no tags" credential: {} = AGENT : /HCtg_hjtbf_gtyf_0 = Job Number : 604442 = Thu 04/02/2026 13:57:49 Z: =============================================================== Those are the Workflow tags Mango Cloudy This Task has no tags =============================================================== = Exit Status: 0 =============================================================== = Output Properties: = processId : rfdtyhu = returnValue : 0 =============================================================== = Elapsed Time (hh:mm:ss) : 00:00:00 = Thu 04/02/2026 13:57:49 Z ===============================================================Task log details =============================================================== = JOB : /CLOUD#WKF01[(1357 04/02/2026)].EXECUTABLE_HIERARCHY = JOB STREAM ID : drftgyu-8591-erdft-b511-ghbyuj = JOB ID : dfrcftg-ef56-rft5-8d11-frgtyhv = TASK : --- executable: interactive: false suffix: "" script: |- echo "Those are the Workflow tags" echo Peach echo Cloudy echo "Those are the Task tags" echo Sales echo Peach credential: {} = AGENT : /HfL_edfrt_tgy_0 = Job Number : 661635 = Thu 04/02/2026 13:57:49 Z: =============================================================== Those are the Workflow tags Peach Cloudy Those are the Task tags Sales Peach =============================================================== = Exit Status: 0 =============================================================== = Output Properties: = processId : ftgyu = returnValue : 0 =============================================================== = Elapsed Time (hh:mm:ss) : 00:00:00 = Thu 04/02/2026 13:57:49 Z ===============================================================