Skip to main content
Version: 3.9

Workflow Action Reference

Actions are modular, executable building blocks that define specific operations within a workflow. Each action performs a discrete task, such as manipulating data, interacting with APIs, controlling logic flow, or performing system-level operations.

This article provides a quick reference to all available workflow actions, along with their parameter descriptions and usage details. Use it to understand what each action does and how to configure it when building or troubleshooting workflows.


info

General Info​

Most action parameters support two modes:

  • Static: Assigns a constant value that remains unchanged throughout the workflow.
  • Dynamic: Assigns a variable or object whose value is resolved at runtime and may change during execution.

Display Settings​

Each action module includes customizable display settings that control how it appears in the interface:

  • Background Color: Sets the background color of the action module.
  • Text Color: Defines the color of the text displayed within the module.
  • Action Display Name: Allows you to specify a custom name for the action module.
  • Display Description: A brief description that provides context or details about the module’s purpose.


AddJobTags (V1)​

The AddJobTags action assigns one or more tags to the current workflow job. Tags are used for categorization, filtering, monitoring, and reporting purposes.

This action does not alter workflow execution logic — it enriches the workflow job with metadata.

Functionality​

Input:

  • A list of tags (TAGS)

Process:

  • Reads the provided list of tag strings.
  • Adds the tags to the current workflow job.
  • Existing tags remain unchanged unless system behavior defines duplicate handling internally.

Output:

  • The workflow job is updated with the specified tags.
  • Execution continues normally.

⚙ Parameters​

NameModeTypeDescription
TAGSStaticList<String>One or more tags to assign to the current workflow job.
info
  • Tags can be used for:
    • Filtering workflow jobs in monitoring views
    • Grouping related executions
    • Triggering external reporting or analytics
  • Use consistent naming conventions (e.g., Finance, HighPriority, ImportJob, Customer:ABC) to ensure reliable filtering.
  • Multiple tags can be applied in a single action.
  • Job tags assigned to workflow job will be listed under workflow job for that instance.
warning

Tags are metadata only and do not influence workflow logic unless explicitly referenced elsewhere.

Avoid inconsistent or free-form tag naming, as this reduces filtering reliability.


AddTime​

The AddTime action adjusts a date/time value by adding or subtracting a specified duration. The result is stored in a target variable as a DateTimeOffset. This block is commonly used for scheduling, calculating expirations, or adjusting timestamps.

Functionality​

Input: A base DateTimeOffset value, an operation (+ or -), and a duration string (e.g., 2d, 5h30m).

Process: Performs the time addition or subtraction. Duration is interpreted as days, hours, minutes, and seconds.

Output: A new DateTimeOffset value stored in RESULT_VAR.

⚙ Parameters​

NameModeTypeDescription
DATETIMEStatic/DynamicDateTimeOffsetBase date/time value to adjust.
OPERATIONStatic/DynamicStringMust be "+" (add) or "-" (subtract).
VALUEStatic/DynamicStringTime string in format like 1d2h30m10s.
RESULT_VARStaticStringVariable name to store the resulting DateTimeOffset.

⏱ Time Format Examples​

  • 2d → 2 days
  • 5h30m → 5 hours and 30 minutes
  • 10s → 10 seconds
  • 1d2h15s → 1 day, 2 hours, 15 seconds
warning

Do not use negative values inside VALUE. To subtract time, set OPERATION = "-".


AddToList (V1)​

The AddToList action adds one or more items to an existing list (LIST_VAR). You can add up to 5 items at once using ELEMENT1 through ELEMENT5.

ELEMENT1 is required; the rest are optional — leave them blank to skip. Each item must match the type the list holds (e.g., text items for a text list). The list is updated immediately and available to the next Actions.

Functionality​

Input:

  • An existing list or list variable (LIST_VAR).
  • Up to 5 elements to add (ELEMENT1 to ELEMENT5).

Process:

  • Adds the provided elements to the list.
  • Fails with an error if the list variable is missing, is not a list, or if an item type does not match.

Output:

  • The list is updated in-place with the new elements.

⚙ Parameters​

NameModeTypeDescription
LIST_VARStatic/DynamicStringThe list variable to add elements to.
ELEMENT1Static/DynamicObjectRequired. The first element to add.
ELEMENT2Static/DynamicObjectOptional. The second element to add.
ELEMENT3Static/DynamicObjectOptional. The third element to add.
ELEMENT4Static/DynamicObjectOptional. The fourth element to add.
ELEMENT5Static/DynamicObjectOptional. The fifth element to add.
warning

Fails with an error if the list variable is missing, is not a list, or if an item type does not match.


Base64 (V1)​

The Base64 (V1) action encodes or decodes the given string value (SOURCE_VAR) using Base64 and stores the result in TARGET_VAR.

Select the operation mode (OPERATION_MODE) with 'Encode' or 'Decode'.

Functionality​

Input:

  • A source string (SOURCE_VAR).
  • An operation mode (OPERATION_MODE) set to either Encode or Decode.

Process:

  • Either encodes the data to Base64 or decodes it from Base64 based on the OPERATION_MODE.
  • Returns true if the operation was successful.

Output:

  • The resulting string is stored in TARGET_VAR.

⚙ Parameters​

NameModeTypeDescription
OPERATION_MODEStatic/DynamicStringOperation to perform (e.g. Encode or Decode).
SOURCE_VARStatic/DynamicStringThe input string to be encoded or decoded.
TARGET_VARStaticStringVariable name where the resulting string is stored.

CastBool​

The CastBool action converts an object value into a Boolean (true or false) and stores the result in a workflow variable.

info

This block is often used when values are extracted as generic objects (for example, usnig JsonPathValue) but need to be explicitly interpreted as Boolean values for conditions or branching logic.

Functionality​

Input: A source object (SOURCE_VAR) that contains a value representing a Boolean.

Process: Casts the object into a Boolean.

Output: The resulting Boolean value is stored in RESULT_VAR.

⚙ Parameters​

NameModeTypeDescription
SOURCE_VARStatic/DynamicObjectInput object containing a value to be cast into a Boolean.
RESULT_VARStaticStringVariable name to store the resulting Boolean.
info

Use CastBool after JsonPathValue when extracting Boolean values from JSON. Since JSON booleans are often stored as generic objects, this ensures they are converted into usable Boolean workflow variables.

warning

The action will fail if the input is null or if the value is not recognizable as a Boolean (e.g., "abc").


CastDateTime​

The CastDateTime action converts a DateTime object into a proper workflow variable that can be used in the workflow.

It is especially useful when values are extracted using actions like JsonPathValue, which store date fields as generic objects instead of typed DateTime variables.

Functionality​

Input: A source object (SOURCE_VAR) that must already contain a DateTime value. (For example, a JSON field like "2025-05-21T15:30:00Z" extracted into an object.)

Process: Casts the object into a DateTime variable.

Output: The resulting DateTime value is stored in RESULT_VAR.

⚙ Parameters​

NameModeTypeDescription
SOURCE_VARStatic/DynamicObjectThe input object that contains a DateTime value.
RESULT_VARStaticStringVariable name to store the resulting DateTime.
tip

Use CastDateTime after JsonPathValue when you need to convert a JSON-extracted date (stored as an object) into a proper DateTime variable for workflow logic.

warning

This action will not convert arbitrary objects. The input must be an object containing a valid DateTime.


CastDateTimeOffset​

The CastDateTimeOffset action converts a DateTime object with offset information into a proper workflow variable.

This is particularly useful when values are extracted as generic objects (for example, using JsonPathValue from a JSON payload). In such cases, the block ensures the value is converted into a usable, time zone–aware DateTime variable.

Functionality​

Input: A source object (SOURCE_VAR) that contains a DateTime value with offset or UTC information.

Process: Attempts to cast the object into a DateTimeOffset variable. Supported formats include:

  • ISO 8601 → "2025-05-21T14:45:00+05:30"
  • UTC string → "2025-05-21T09:15:00Z"

Output: The resulting DateTimeOffset is stored in RESULT_VAR.

⚙ Parameters​

NameModeTypeDescription
SOURCE_VARStatic/DynamicObjectInput object containing a DateTime value with offset (often extracted via JsonPathValue).
RESULT_VARStaticStringVariable name to store the resulting DateTimeOffset.
tip

Use CastDateTimeOffset after JsonPathValue when extracting timestamp fields from JSON payloads. This ensures the value is converted into a proper, time zone–aware DateTime variable for workflow calculations.

warning

The input must be an object containing a valid DateTime with offset. If the object is null or in an invalid format, the action fails.


CastDecimal (V1)​

The CastDecimal action casts a given object into a Decimal and stores the result in a workflow variable.

Functionality​

Input: A source object (SOURCE_VAR) that must represent a value convertible to a decimal.

Process: Attempts to cast the object into a Decimal.

Output: The resulting decimal value is stored in RESULT_VAR.

⚙ Parameters​

NameModeTypeDescription
SOURCE_VARStatic/DynamicObjectInput object to be cast into a decimal.
RESULT_VARStaticStringVariable name to store the resulting decimal value.
warning

The action fails if the source is null or cannot be converted to a decimal.


CastDictionary​

The CastDictionary action converts a source object into a Dictionary<string, object> and stores it in a workflow variable.

This is especially useful when values are extracted as generic objects (for example, using JsonPathValue from JSON payloads) but need to be handled as a structured dictionary for further processing.

Functionality​

Input: A source object (SOURCE_VAR) that must be compatible with a dictionary structure.

Process: Attempts to cast the object into a Dictionary<string, object>.

  • Works well with deserialized JSON objects.
  • Supports generic objects returned by APIs or workflows.

Output: The resulting dictionary is stored in RESULT_VAR.

⚙ Parameters​

NameModeTypeDescription
SOURCE_VARStatic/DynamicObjectThe source object to cast into a dictionary (commonly extracted via JsonPathValue or from deserialized JSON).
RESULT_VARStaticStringVariable name to store the resulting dictionary object.
info

Use CastDictionary when working with JSON data or API responses where objects are returned as generic types. Casting them into dictionaries makes it easier to access keys and values in workflows.


CastDictionaryList(V1)​

The CastDictionaryList action converts an object into a List<Dictionary<string, object>> and stores the result in a workflow variable.

This is particularly useful when handling JSON arrays or API responses that return lists of key–value pair objects. It ensures that tabular or structured data represented as generic objects can be safely cast and used in workflows.

Functionality​

Input: A source object (SOURCE_VAR) that must represent a list of dictionaries (with string keys).

Process: Attempts to cast the object into a List<Dictionary<string, object>>.

  • Works well with JSON arrays of objects.
  • Supports tabular-style data transformations.

Output: The resulting list of dictionaries is stored in RESULT_VAR.

⚙ Parameters​

NameModeTypeDescription
SOURCE_VARStatic/DynamicObjectInput object expected to be a list of dictionaries (e.g., JSON arrays of objects, API responses).
RESULT_VARStaticStringVariable name to store the resulting List<Dictionary<string, object>>.
tip

Use CastDictionaryList when processing data from JSON payloads or web services that return collections of objects. This allows workflows to iterate through rows and access values by keys.

warning

The input must strictly conform to a list of dictionaries with string keys. The action fails if the source is null or incompatible with the required structure.


CastDictionaryList(V2)​

The CastDictionaryList action converts an object into a List<Dictionary<string, string>> and stores the result in a workflow variable.

This is particularly useful when handling JSON arrays or API responses that return lists of key–value pair objects. It ensures that tabular or structured data represented as generic objects can be safely cast and used in workflows.

Functionality​

Input: A source object (SOURCE_VAR) that must represent a list of dictionaries (with string keys and values).

Process: Attempts to cast the object into a List<Dictionary<string, string>>.

  • Works well with JSON arrays of objects.
  • Supports tabular-style data transformations.

Output: The resulting list of dictionaries is stored in RESULT_VAR.

⚙ Parameters​

NameModeTypeDescription
SOURCE_VARStatic/DynamicObjectInput object expected to be a list of dictionaries (e.g., JSON arrays of objects, API responses).
RESULT_VARStaticStringVariable name to store the resulting List<Dictionary<string, string>>.
tip

Use CastDictionaryList when processing data from JSON payloads or web services that return collections of objects. This allows workflows to iterate through rows and access values by keys.

warning

The input must strictly conform to a list of dictionaries with string keys. The action fails if the source is null or incompatible with the required structure.


CastGuid (V1)​

The CastGuid action casts a given string from SOURCE_VAR into a Guid and stores the result in a workflow variable.

Functionality​

Input: A source object (SOURCE_VAR) that must represent a valid Guid string.

Process: Attempts to cast the object into a Guid. Fails if the source is null, empty, or not a valid Guid.

Output: The resulting Guid is stored in RESULT_VAR.

⚙ Parameters​

NameModeTypeDescription
SOURCE_VARStatic/DynamicObjectInput object (string) to be cast into a Guid.
RESULT_VARStatic/DynamicStringVariable name to store the resulting Guid.
warning

The action fails if the source is null, empty, or not a valid Guid format.


CastInt​

The CastInt action converts the value in SOURCE_VAR into an integer and stores it in a workflow variable.

This is useful when values are provided as generic objects but need to be handled as integers inside workflows.

Functionality​

Input: A source object (SOURCE_VAR) that must represent a value convertible to an integer.

Process: Attempts to cast the object into an integer.

Output: The resulting integer is stored in RESULT_VAR.

⚙ Parameters​

NameModeTypeDescription
SOURCE_VARStatic/DynamicObjectThe input object to cast to an integer.
RESULT_VARStaticStringVariable name to store the resulting integer.
warning

The action fails if the source is null or cannot be converted to an integer.


CastObject (V1)​

The CastObject action casts a given value into a generic Object and stores the result in a workflow variable.

Functionality​

Input: A source value (SOURCE_VAR) to be cast as an object.

Process: Casts the input into a generic Object.

Output: The resulting object is stored in RESULT_VAR.

⚙ Parameters​

NameModeTypeDescription
SOURCE_VARStatic/DynamicObjectInput value to be cast into a generic object.
RESULT_VARStaticStringVariable name to store the resulting object.

CastObjectList​

The CastObjectList action converts an input object into a List<object> and stores it in a workflow variable.

This is useful when values are extracted as generic objects (for example, JSON arrays or API responses) but need to be treated as a list for iteration or further processing.

Functionality​

Input: A source object (SOURCE_VAR) that must represent a list.

Process: Attempts to cast the object into a List<object>.

Output: The resulting list is stored in RESULT_VAR.

⚙ Parameters​

NameModeTypeDescription
SOURCE_VARStatic/DynamicObjectInput object expected to be a list.
RESULT_VARStaticStringVariable name to store the resulting List<object>.
warning

The action fails if the source is null or if it cannot be cast into a list.


CastString​

The CastString action converts an input object into a string and stores the result in a workflow variable.

This is useful when values are provided as generic objects (for example, from JSON or API responses) but must be explicitly treated as strings for downstream processing, comparisons, or display.

Functionality​

Input: A source object (SOURCE_VAR) that must represent a value convertible to string.

Process: Attempts to cast the object into a string.

Output: The resulting string is stored in RESULT_VAR.

⚙ Parameters​

NameModeTypeDescription
SOURCE_VARStatic/DynamicObjectInput object to be cast into a string.
RESULT_VARStaticStringVariable name to store the resulting string.
info

Use CastString to normalize values into string from JSONPath action or format before logging, formatting messages, or passing data to endpoints that expect string input.

warning

The action fails if the source is null or cannot be converted to a string.


CheckStorageExists​

The CheckStorageExists action verifies whether a storage entity exists at a specified level (Number, Location, Area, or Bin).

If the name is found, the corresponding internal ID is returned. If it does not exist, the result is 0.

This is especially useful when building workflows that need to confirm the presence of storage zones before creating or updating them.

Functionality​

Input: A storage level (Number, Location, Area, or Bin) and the name to check.

Process: Looks up the storage hierarchy at the specified level and searches for the given name.

Output: The internal ID of the storage entity is stored in outputVar. If no match is found, 0 is stored.

⚙ Parameters​

NameModeTypeDescription
levelStatic/DynamicStringStorage level to check (Number, Location, Area, or Bin).
nameStatic/DynamicStringName of the storage entity to look for.
outputVarStaticStringVariable name to store the resulting ID. Will be 0 if not found.
tip

Use CheckStorageExists together with CreateStorageLocation to implement conditional logic — for example, check if a zone exists first, and only create it if the result equals 0.


Condition​

The Condition action evaluates a Boolean expression and returns either true or false. It is commonly used to control workflow logic, such as branching paths (if/else), loop execution, or conditional task execution.

Functionality​

Input: A Boolean expression (EXPRESSION) that must evaluate to true or false.

Process: The workflow evaluates the expression during execution.

Output: The result of the evaluation (true or false) determines which workflow path continues.

⚙ Parameters​

NameModeTypeDescription
EXPRESSIONStatic/DynamicBoolBoolean expression to evaluate. Must resolve to true or false.
tip

Use Condition for decision-making in workflows, such as:

  • Branching logic (if/else)
  • Controlling loops (while or until)
  • Guarding actions that should only run when certain conditions are met

✅ Example

VAR1 > 10 && VAR2 == "active"

ContainsItem (V1)​

The ContainsItem (V1) action checks whether a specific value (ITEM) exists anywhere in a list (SOURCE_VAR).

Works with any list type — text, numbers, booleans, and more. It takes the true (green) path if the value is found, or the false (red) path if it is not — a missing value is not treated as an error, it just routes differently. An error occurs only if the list variable is not set or is not a valid list.

Functionality​

Input:

  • A source list (SOURCE_VAR).
  • A specific value to check for existence (ITEM).

Process:

  • Checks if the specified value exists in the list.
  • Does not raise an error for missing values.
  • Raises an error if SOURCE_VAR is missing or is not a valid list.

Return:

  • true → if the item exists in the list.
  • false → if the item does not exist.

⚙ Parameters​

NameModeTypeDescription
SOURCE_VARStatic/DynamicList<items>The list variable to search within.
ITEMStatic/DynamicObjectThe specific value to look up in the list.

ContainsKey (V1)​

The ContainsKey (V1) action checks whether a given key (KEY) exists in a dictionary (SOURCE_VAR).

It takes the true (green) path if the key is found, or the false (red) path if it is not — no error is raised for a missing key, it simply routes differently. An error occurs only if the dictionary variable is not set or is not a valid dictionary.

Functionality​

Input:

  • A source dictionary (SOURCE_VAR).
  • A string key to check for existence (KEY).

Process:

  • Checks if the specified key exists in the dictionary.
  • Does not raise an error for missing keys.
  • Raises an error if SOURCE_VAR is missing or is not a valid Dictionary.

Return:

  • true → if the key exists in the dictionary.
  • false → if the key does not exist.

⚙ Parameters​

NameModeTypeDescription
SOURCE_VARStatic/DynamicDictionary<string,object>The dictionary variable to check for the key.
KEYStatic/DynamicStringThe key to look up in the specified dictionary.

ConvertToGhostData​

The ConvertToGhostData action transforms structured data into the GhostData format — a compact serialization type used by RcomMobile.

It takes a complex dictionary of lists and serializes it into a JSON string that represents a valid GhostData object.

Functionality​

Input: A dictionary object (SOURCE_VAR) of the type: Dictionary<string, List<Dictionary<string, object>>>

Process: Converts the dictionary into a GhostData object and serializes it into JSON format.

Output: The resulting GhostData JSON string is stored in RESULT_VAR.

⚙ Parameters​

NameModeTypeDescription
SOURCE_VARStatic/DynamicObjectInput object of type Dictionary<string, List<Dictionary<string, object>>>.
RESULT_VARStatic/DynamicStringVariable name to store the serialized GhostData JSON string.
tip

Use ConvertToGhostData when preparing structured data for RcomMobile or for workflows that require GhostData format as input.

warning

The source object must strictly follow the required structure (string keys mapped to lists of dictionaries). If the structure is invalid, the conversion will fail.


CreateEpcisEvent (V1)​

The CreateEpcisEvent (V1) action creates an EPCIS 2.0 JSON-LD Document with an event. Supports event types: ObjectEvent, AggregationEvent, TransactionEvent, TransformationEvent, AssociationEvent. Output is stored in RESULT_EPCIS_EVENT (event as object) or RESULT_EPCIS_DOCUMENT (complete JSON-LD document as string).

Functionality​

Input:

  • Event metadata such as EPCIS_EVENT_TYPE, EPCIS_ACTION, BIZ_STEP, etc.
  • A list of EPCs (EPC_LIST).
  • Optional extensions and timezone offsets.

Process:

  • Generates an EPCIS 2.0 event object.
  • If requested, wraps it into a complete EPCIS 2.0 JSON-LD document.

Output:

  • Event object stored in RESULT_EPCIS_EVENT.
  • Full JSON-LD document stored in RESULT_EPCIS_DOCUMENT.

⚙ Parameters​

NameModeTypeDescription
EPCIS_EVENT_TYPEStatic/DynamicStringTarget EPCIS event type.
EPCIS_ACTIONStatic/DynamicStringEPCIS action (OBSERVE, ADD, DELETE).
BIZ_STEPStatic/DynamicStringEPCIS Business Step URI.
EPC_LISTStatic/DynamicList<String>List of EPCs for the event.
EVENT_TIMEStatic/DynamicStringEvent time timestamp string.
EVENT_TIME_ZONE_OFFSETStatic/DynamicStringEvent time zone offset string.
READ_POINTStatic/DynamicStringRead point URI identifier.
EVENT_EXTENSIONStatic/DynamicDictionary<string,object>Custom dictionary of event extensions.
EXTENSION_NAMESPACEStatic/DynamicStringNamespace URI for the extensions.
EXTENSION_PREFIXStatic/DynamicStringPrefix used for the extension in the generated JSON-LD output. The default is rbExt.
EXTENSION_PROPERTY_NAMEStatic/DynamicStringProperty name used for the extension in the generated JSON-LD output. The default is EventExtension.
RESULT_EPCIS_EVENTStatic/DynamicStringTarget variable for the event object output.
RESULT_EPCIS_DOCUMENTStatic/DynamicStringTarget variable for the JSON-LD doc output.

Use EXTENSION_NAMESPACE, EXTENSION_PREFIX, and EXTENSION_PROPERTY_NAME to configure the extension name written to the EPCIS JSON-LD output. This lets the generated document use the extension naming required by the receiving system.


CreateExcelSheet​

The CreateExcelSheet block creates an Excel file from a list of dictionaries based on the the columns specified in COLUMN_HEADERS and stores the result as a byte array.

⚙️ Parameters​

NameModeTypeDescription
TABLE_DATAStatic/DynamicList<Dictionary<string,object>>The data rows to include in the sheet. Each item should be a dictionary representing a row.
COLUMN_HEADERSStatic/DynamicList<string>The ordered list of column headers. Must be defined before execution using SetVar.
RESULT_VARStaticStringThe name of the variable that will store the generated Excel file as a byte array.
info

💡 Tip: Use CreateTemporaryFile to save the generated file in database.


CreateObject​

The CreateObject action creates a new instance of an object in the system and returns its unique identifier (OBJECT_ID).

Every new object must be assigned to an Object Schema afterward, typically using the SetObjectGroupAttribute action.

Functionality​

Input: No input is required other than specifying the result variable.

Process: Creates a new object record in the gateway.

Output: The newly generated OBJECT_ID is stored in RESULT_VAR.

⚙ Parameters​

NameModeTypeDescription
RESULT_VARStatic/DynamicStringVariable name to store the new OBJECT_ID.
tip

Always follow CreateObject with SetObjectGroupAttribute to assign the object to a specific Object Schema, otherwise it will remain unlinked and unusable.


CreateStorageLocation​

The CreateStorageLocation action creates a new entry in the storage hierarchy under a specified storage number.

You can define sublevels such as Location, Area, and Bin, but each level must follow the correct hierarchy:

  • Location requires a valid Number.
  • Area requires a valid Location.
  • Bin requires a valid Area.

This action is commonly used to build structured storage systems such as warehouses, factories, or hospital inventory zones.

Functionality​

Input: A required top-level storage number, and optionally a location, area, or bin.

Process: Creates a new storage entry at the specified level. If a sublevel is provided, all parent levels must already exist.

Output: A new storage location (Number, Location, Area, or Bin) is created under the given hierarchy.

⚙️ Parameters​

NameModeTypeDescription
numberStatic/DynamicStringRequired. Top-level identifier (e.g., warehouse or zone).
locationStatic/DynamicStringOptional. Required if Area or Bin is defined. Represents a sublocation.
areaStatic/DynamicStringOptional. Required if Bin is defined. Represents an internal zone or section.
binStatic/DynamicStringOptional. Represents the final slot or compartment within an area.
tip

Use CheckStorageExists before running this action to avoid duplicates and to implement conditional creation logic.

warning

All parent levels must exist before creating a sublevel.

The system does not auto-create missing parents. For example, to create a Bin, you must first ensure the corresponding Area and Location exist.


CustomLinqQuery (V1)​

The CustomLinqQuery (V1) action executes a LINQ method-chain script against dynamic object-group tables (T_OGA_*). Table names support both the full format (e.g., T_OGA_ASSETS) or the short format (e.g., ASSETS).

Functionality​

Input:

  • A LINQ script (SCRIPT).
  • Flags JOIN_OBJECT_TABLE and IS_OBJECT_SELECTION.

Process:

  • Evaluates the LINQ script.
  • Supported operators: Where, OrderBy, OrderByDescending, ThenBy, ThenByDescending, Select, Take, Skip, Join, Count, Any, Sum, Min, Max, Average, First, FirstOrDefault.
  • Join syntax: .Join(TABLE, "KEY") for the same column name, or .Join(TABLE, "LEFT_KEY", "RIGHT_KEY") for different column names.
  • Disambiguation: If both tables share a column name, disambiguate with dot notation (x.ASSETS.NAME) or underscore format (x.ASSETS_NAME).
  • Selection: Select supports aliases: .Select(x => new { AssetName = x.ASSETS.NAME, x.LOCATION }).
  • Filtering and validation: Filter expressions are evaluated with awareness of the target column data type. Validation messages identify invalid expressions or incompatible values.

Output:

  • The retrieved data or scalar result is stored in RESULT_VAR.

String Matching and Wildcards​

Use ==, !=, Contains, StartsWith, or EndsWith for string matching. Use Like when the filter needs SQL-style wildcard matching:

  • % matches any sequence of characters.
  • _ matches exactly one character.
  • Escape % or _ with a backslash when the character must be matched literally. For example, .Like("100\\% cotton") matches 100% cotton.

For example, .Like("abcd%fg1") matches values that begin with abcd and end with fg1.

⚙ Parameters​

NameModeTypeDescription
SCRIPTStatic/DynamicStringThe LINQ method-chain script to execute.
JOIN_OBJECT_TABLEStatic/DynamicBoolFlag to enable joining the object tables.
IS_OBJECT_SELECTIONStatic/DynamicBoolSet to true if the script returns object(s) rather than a scalar.
RESULT_VARStatic/DynamicStringTarget variable to store the result.
tip

✅ Example

ASSETS.Join(MAINTENANCE_LOGS, "ASSET_ID").Where(x => x.STATUS == "Active").OrderBy(x => x.ASSET_NAME).Select(x => new { Name = x.ASSETS.NAME, x.LOCATION }).Take(50)

CustomMySQL​

The CustomMySQL block executes a custom SQL query on a specified MySQL database connection. It can be used for both data retrieval and scalar queries, depending on the query type and the IS_OBJECT_SELECTION flag.

This block is ideal for interacting with external MySQL databases during workflow execution, such as fetching reference data, validating inputs, or updating external systems.

Functionality​

  • Input: MySQL connection string and SQL query.
  • Process: Runs the query against the database and stores the result in a workflow variable.
    • If IS_OBJECT_SELECTION is set to true, the result is stored as a DataContext (multiple rows/columns).
    • If IS_OBJECT_SELECTION is false, the result is treated as a scalar value (single value).
  • Output: The result of the SQL query, stored in RESULT_VAR.

⚙ Parameters​

NameModeTypeDescription
CONNECTION_STRINGStatic/DynamicStringMySQL connection string (must include host, port, username, password, and database name).
QUERYStatic/DynamicStringSQL query to execute. Ensure correct syntax and table/column references.
RESULT_VARStaticStringName of the variable where the result will be stored.
IS_OBJECT_SELECTIONStatic/DynamicBoolSet to true if the query returns a rowset (e.g., SELECT *); false if the result is a single value.
warning

Ensure that the query is properly sanitized and that the connection string has only the necessary permissions. Avoid running destructive operations like DROP, DELETE, or unrestricted UPDATE unless explicitly required.


CustomPostgresSQL (V1)​

The CustomPostgresSQL block executes a custom SQL query on a specified PostgreSQL database connection. It can be used for both data retrieval and scalar queries, depending on the query type and the IS_OBJECT_SELECTION flag.

Functionality​

  • Input: PostgreSQL connection string and SQL query.
  • Process: Runs the query against the database and stores the result in a workflow variable.
    • If IS_OBJECT_SELECTION is true, the result is treated as a rowset (multiple rows/objects).
    • If IS_OBJECT_SELECTION is false, the result is treated as a scalar value (single value).
  • Output: The result of the SQL query, stored in RESULT_VAR.

⚙ Parameters​

NameModeTypeDescription
CONNECTION_STRINGStaticStringPostgreSQL connection string (must include host, port, username, password, and database name).
QUERYStaticStringSQL query to execute. Ensure correct syntax and table/column references.
RESULT_VARStaticStringName of the variable where the result will be stored.
IS_OBJECT_SELECTIONStaticBoolSet to true if the query returns a rowset (e.g., SELECT *); false if the result is a single value.
warning

Ensure that the query is properly sanitized and that the connection string has only the necessary permissions. Avoid running destructive operations like DROP, DELETE, or unrestricted UPDATE unless explicitly required.


CustomPostgresSQL (V2)​

The CustomPostgresSQL (V2) block extends V1 with an optional COMMAND_TIMEOUT parameter and a dedicated IS_FETCH_QUERY flag. If COMMAND_TIMEOUT is not provided, the default timeout behavior applies (default = 0, no timeout).

Functionality​

  • Input: PostgreSQL connection string, SQL query, and optional timeout.
  • Process: Runs the query against the database. Uses IS_FETCH_QUERY to determine whether to return a rowset or scalar, and respects the command timeout if specified.
  • Output: The result of the SQL query, stored in RESULT_VAR.

⚙ Parameters​

NameModeTypeDescription
CONNECTION_STRINGStaticStringPostgreSQL connection string.
QUERYStaticStringSQL query to execute.
IS_FETCH_QUERYStaticBoolSet to true if the query returns rows; false for non-fetch (e.g., INSERT, UPDATE) operations.
IS_OBJECT_SELECTIONStaticBoolSet to true if the query returns a rowset; false if the result is a single scalar value.
COMMAND_TIMEOUTStaticIntTimeout in milliseconds for the query. Set to 0 or omit for no timeout.
RESULT_VARStaticStringName of the variable where the result will be stored.
warning

Ensure that the query is properly sanitized and that the connection string has only the necessary permissions. Avoid running destructive operations like DROP, DELETE, or unrestricted UPDATE unless explicitly required.


CustomScript​

The CustomScript action executes a script written in the Gateway Interpreter scripting language.

This block is intended for advanced scenarios where built-in workflow actions are not sufficient, allowing you to implement custom logic, calculations, or transformations directly within a workflow.

Functionality​

Input: A script string written in the Gateway Interpreter language.

Process: Executes the provided script according to the interpreter’s syntax and rules.

Output: Any results defined in the script execution are applied to the workflow context (e.g., variable assignments, transformations).

⚙ Parameters​

NameModeTypeDescription
SCRIPTStatic/DynamicStringThe Gateway Interpreter script to execute.
tip

Use CustomScript when you need specialized logic that cannot be achieved with standard workflow blocks.

warning
  • Scripts must strictly follow the Gateway Interpreter syntax.
  • Invalid or malformed scripts will cause execution to fail.

CustomSQL​

The CustomSQL action executes a SQL query against a SQL Server database using the provided connection string.

It can handle both object result sets (from SELECT queries) and scalar results (from single-value queries). The query results are stored in the specified workflow variable.

Functionality​

Input: A valid SQL Server connection string and a SQL query.

Process:

  • Connects to the database, executes the query, and retrieves results.
  • If IS_OBJECT_SELECTION = true, results are returned as rows (objects).
  • Otherwise, the result is treated as a scalar value.

Output: The query result is stored in RESULT_VAR.

⚙ Parameters​

NameModeTypeDescription
CONNECTION_STRINGStatic/DynamicStringSQL Server connection string. Must have appropriate permissions.
QUERYStatic/DynamicStringSQL query to execute.
RESULT_VARStatic/DynamicStringVariable name to store the query result.
IS_OBJECT_SELECTIONStatic/DynamicBoolSet to true if the query returns rows (SELECT). Otherwise, false for scalar results.
warning
  • Ensure the SQL query is valid.
  • The CONNECTION_STRING must have the required access rights.
  • Poorly structured queries may cause workflow errors or performance issues.

CreateTemporaryFile​

The CreateTemporaryFile action saves a file (provided as a byte array) into the Gateway database and returns a unique File ID.

This is useful when workflows generate files (such as Excel reports) that need to be stored temporarily for later retrieval, download, or further processing.

Functionality​

Input: File content in byte array format, along with a name and MIME type.

Process: Stores the file in the Gateway database.

Output: The generated File ID is stored in RESULT_VAR.

⚙ Parameters​

NameModeTypeDescription
DATAStatic/DynamicByte[]File content in byte array form.
FILE_NAMEStatic/DynamicStringName of the file (e.g., report.xlsx).
CONTENT_TYPEStatic/DynamicStringMIME type of the file (e.g., application/vnd.openxmlformats-officedocument.spreadsheetml.sheet).
RESULT_VARStaticStringVariable name to store the resulting File ID.
tip

Use CreateTemporaryFile together with LoadTemporaryFile to save and later retrieve files inside workflows.


Decode6Bit​

Decodes the given 6-bit encoded EPC hex string (EPC_HEX) into ASCII and stores the result in TARGET_VAR. If REMOVE_EOT is set to true, the decoded string will be truncated at the End-of-Transmission (EOT) character. Returns true if decoding is successful.

⚙️ Parameters​

ParameterModeTypeDescription
EPC_HEXStatic/DynamicStringHexadecimal EPC input to decode
REMOVE_EOTStatic/DynamicBoolIf true, truncate output at the EOT character (if present)
TARGET_VARStaticStringVariable to store the decoded ASCII result

This block is especially useful in RFID/EPC workflows.


DecodeData​

Decodes the input data (DATA_TOBE_DECODED) based on predefined command type rules and stores the structured result in the specified RESULT_VAR. Returns decoded fields as a databag (key-value format) suitable for further processing.

⚙️ Parameters​

ParameterModeTypeDescription
DATA_TOBE_DECODEDStatic/DynamicStringInput data string to decode
RESULT_VARStaticStringOutput variable to store the decoded databag

DecodeGS1​

Decodes the provided EPC hex string (EPC_HEX) into its corresponding GS1 EPC URI representations. Stores the results in EPC_URI (pure identity URI) and EPC_TAG_URI (tag-level URI). Returns true if decoding is successful and the EPC conforms to a recognized GS1 scheme.

⚙️ Parameters​

ParameterModeTypeDescription
EPC_HEXStatic/DynamicStringHex-encoded EPC to decode
EPC_URIStaticStringOutput variable for GS1 EPC URI (pure identity format)
EPC_TAG_URIStaticStringOutput variable for GS1 EPC Tag URI (with filter and type)

DeleteAttachment (V1)​

The DeleteAttachment action instantly removes an attachment file with the specified filename associated with the provided OBJECT_ID.

If the item is not deleted, the action result returns false.

Functionality​

Input:

  • Object ID (OBJECT_ID)
  • Attachment file name (FILE_NAME)

Process:

  • Locates the object by OBJECT_ID.
  • Attempts to find and remove the attachment matching FILE_NAME.

Output:

  • Returns true when deletion succeeds.
  • Returns false when no matching attachment is deleted.

⚙ Parameters​

NameModeTypeDescription
OBJECT_IDStatic/DynamicGuidUnique identifier of the object containing the attachment.
FILE_NAMEStaticStringExact filename of the attachment to remove with file type. (example: data.csv)
warning

Ensure FILE_NAME exactly matches the stored attachment name with file extension.


DeleteObject (V1)​

The DeleteObject (V1) action deletes an object identified by OBJECT_ID.

Optionally, the object's history data can also be removed using DELETE_HISTORY.

Functionality​

Input:

  • Object ID of the object to delete
  • Optional history deletion setting

Process:

  • Deletes the object matching the provided OBJECT_ID.
  • If DELETE_HISTORY is enabled, the object's history data is also removed.

Output:

  • The specified object is deleted.

⚙ Parameters​

NameModeTypeDescription
OBJECT_IDStatic/DynamicGuidUnique identifier of the object to delete.
DELETE_HISTORYStatic/DynamicBoolIf enabled, removes the object's history data.
warning

Deleting an object is irreversible. Use DELETE_HISTORY carefully, because removing history data also removes audit trails associated with the object.

info

Use this action when objects need to be permanently removed from the system, optionally including their historical records.


DeleteObject (V2)​

The DeleteObject (V2) action deletes an object identified by OBJECT_ID.

Compared to V1, this version adds the SOFT_DELETE option. When SOFT_DELETE is enabled,The object is not permanently deleted so you can choose to recover it later. Also the object is soft deleted and its history is automatically removed.

Functionality​

Input:

  • Object ID of the object to delete
  • Optional history deletion setting
  • Optional soft delete setting

Process:

  • Deletes the object matching the provided OBJECT_ID.
  • If DELETE_HISTORY is enabled, the object's history data is also removed.
  • If SOFT_DELETE is enabled, The object is not permanently deleted so you can choose to recover it later. Also the object is soft deleted and its history is automatically removed.

Output:

  • The specified object is deleted.

⚙ Parameters​

NameModeTypeDescription
OBJECT_IDDynamicGuidUnique identifier of the object to delete.
DELETE_HISTORYStaticBoolIf enabled, removes the object's history data.
SOFT_DELETEStaticBoolIf enabled, performs a soft delete and automatically removes history.
warning

Deleting an object can affect dependent workflows and object references. Use DELETE_HISTORY and SOFT_DELETE carefully, because history data and audit trails may be removed.


DeleteObjectInstant​

The DeleteObjectInstant block deletes an object from an Object Schema immediately during workflow execution. Unlike queued deletion at the end of a workflow, this block performs the removal in real time, allowing subsequent steps to react accordingly.

Functionality​

Input: The object’s unique ID (GUID).

Process:

  • Instantly deletes the object from its Object Schema.
  • Optional: Also deletes its history.
  • Optional: Performs soft delete (retains object metadata but marks it as deleted).

Output: No return data, but the object is removed immediately.

Return:

  • true → if deletion is successful.
  • false → if the object does not exist or deletion fails.

⚙ Parameters​

NameModeTypeDescription
OBJECT_IDDynamic/StaticGuidThe unique identifier of the object to be deleted.
DELETE_HISTORYStatic/DynamicBoolIf enabled, removes the entire history of the object. Default is false.
SOFT_DELETEStaticDynamicBoolIf enabled, performs a soft delete (marks the object as deleted rather than removing it completely). Default is false.
tip

Use DeleteObjectInstant in cases where object removal must take effect before proceeding to downstream workflow logic (e.g., cleanup before recalculation or ID reuse).


Encode6Bit​

Converts an ASCII string (SOURCE_VAR) into a 6-bit encoded hexadecimal string (TARGET_VAR). Optionally appends an EOT (End Of Transmission) character if specified. It can also validate the total length does not exceed the allowed MAX_LENGTH_WORDS (if set).

⚙️ Parameters​

ParameterModeTypeDescription
SOURCE_VARStatic/DynamicStringThe input ASCII string to encode.
TARGET_VARStaticStringThe variable where the encoded result will be stored.
ADD_EOTStatic/DynamicBoolIf true, an EOT character will be appended unless already present.
MAX_LENGTH_WORDSStatic/DynamicIntMaximum allowed word length. <= 0 disables the check.
  • EOT Handling: If ADD_EOT is true and the EOT character (\x04) is not already present, it is appended automatically.

  • Length Check: The encoded result is validated against MAX_LENGTH_WORDS. If it exceeds this length due to EOT or initial content, the operation fails.

  • Return: true if successful and all conditions (including optional length check) are met.


EncodeGS1​

Converts the given GS1 EPC identifier (SOURCE_VAR, in EPC URN format) into a GS1 EPC URI scheme and stores the result in TARGET_VAR. Optionally, apply a FILTER value to specify the EPC filter field. Returns true if the conversion is successful and the scheme is valid.

⚙️ Parameters​

ParameterModeTypeDescription
SOURCE_VARStatic/DynamicStringGS1 EPC identifier in EPC URN format
TARGET_VARStaticStringVariable to store the resulting GS1 EPC URI
FILTERStatic/DynamicIntOptional EPC filter value (e.g., 0–7)
info

Ensure SOURCE_VAR follows the correct EPC URN syntax. FILTER affects URI encoding for certain EPC schemes.

ForEach​

Iterates over each item in the specified list (LIST_NAME), processing them one by one. The current item is assigned to ITEM_VAR, and its zero-based index is assigned to INDEX_VAR.

Supports input lists of types: List, Dictionary, String, or Object (iterable).

⚙️ Parameters​

ParameterModeTypeDescription
LIST_NAMEStatic/DynamicList, Dictionary, String, ObjectThe collection to iterate over
ITEM_VARStaticStringVariable name to hold the current item
INDEX_VARStaticStringVariable name to hold the current item's index

EncodeGs1TagUri​

The EncodeGs1TagUri block is designed to convert a GS1 EPC identifier provided in URN tag format into a GS1 EPC URI scheme and store the converted value in a variable.

Functionality​

  • Input: A GS1 EPC identifier in URN tag format (example: urn:epc:tag:sgtin-96:3.0614141.812345.6789)

  • Process: Converts the URN into the GS1 EPC URI scheme.

  • Output: Stores the result in the specified TARGET_VAR.

  • Return:

    • true → if conversion was successful and the scheme is valid.
    • false → if conversion failed.

⚙ Parameters​

NameModeTypeDescription
SOURCE_VARStatic/DynamicStringGS1 EPC identifier in URN tag format (e.g., urn:epc:tag:sgtin-96:3.0614141.812345.6789).
TARGET_VARStaticStringVariable name where the resulting GS1 EPC URI will be stored.
tip

Ensure the EPC in SOURCE_VAR follows the GS1 URN syntax. If the EPC type supports filters, setting FILTER will adjust the resulting EPC URI accordingly.


FlushContext (V1)​

The FlushContext action manages workflow context variables based on the selected FLUSH_MODE.

  • WhiteList: Keeps only the specified variables and removes all others.
  • BlackList: Removes only the specified variables and keeps all others.

It accepts * (all) or a comma-separated list of context variable names.

Functionality​

Input:

  • Flush mode (FLUSH_MODE)
  • Context variable names (CONTEXT_VARIABLES)

Process:

  • Parses the variable list.
  • Applies whitelist or blacklist filtering to workflow context.

Output:

  • Returns true if at least one variable was flushed.
  • Returns false if nothing was flushed.

⚙ Parameters​

NameModeTypeDescription
FLUSH_MODEStaticStringFlush strategy: BlackList or WhiteList.
CONTEXT_VARIABLESStaticString* or comma-separated context variable names.
info

Use BlackList with * to clear all variables, or WhiteList with * to keep all variables.


GenerateGuid​

Generates a new random Guid (Globally Unique Identifier) and stores it in the specified RESULT_VAR. Useful for creating unique IDs for objects, sessions, or transactions.

⚙️ Parameters​

ParameterModeTypeDescription
RESULT_VARStaticStringVariable to store the generated GUID
info

GUIDs follow the standard 128-bit format (e.g., xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).


GetAttachment (V1)​

The GetAttachment action retrieves a stored attachment file associated with a specific object and makes its binary content available inside the workflow. Use this action when files (e.g., documents, images, exports) are stored as object attachments and must be accessed for further processing, export, or transmission.

Functionality​

Input:

  • An object identifier (OBJECT_ID)
  • The exact attachment file name with extension (FILE_NAME)
  • Target variable names for file extension and file data

Process:

  • Searches for the attachment linked to the specified OBJECT_ID.
  • Matches the attachment using the provided FILE_NAME.
  • If found:
    • Extracts the file content as binary data.
    • Determines or assigns the file extension.
  • If not found:
    • The action returns false.

Output:

  • RESULT_DATA contains the file content as List<Byte>.
  • RESULT_FILE_EXTENSION contains the file extension (e.g., docx, pdf, png).

⚙ Parameters​

NameModeTypeDescription
OBJECT_IDStatic/DynamicGuidUnique identifier of the object that contains the attachment.
FILE_NAMEStatic/DynamicStringExact name of the attachment file with extension to retrieve (case sensitivity depends on system configuration).
RESULT_FILE_EXTENSIONStaticStringWorkflow variable name that will store the file extension of the retrieved attachment.
RESULT_DATAStaticStringWorkflow variable name that will store the attachment file data as List<Byte>.
info
  • The file name must exactly match the stored attachment, including the file extension (e.g., file.docx).
  • The action does not perform partial or fuzzy matching.

The resulting RESULT_DATA can be used in:

  • Export actions
  • Email attachments
  • File storage actions
  • Document processing actions (e.g., Word or PDF processing)
warning

Common failure causes

  • OBJECT_ID does not exist.
  • The object has no attachments.
  • The specified FILE_NAME does not match any stored attachment.
  • Insufficient permissions to access the object or its attachments.

GetCustomTypeName (V1)​

The GetCustomTypeName action converts a Custom Type internal integer value to its technical name. Use it when a workflow has a stored Custom Type value and needs the corresponding technical name for a comparison, mapping, or downstream action.

⚙ Parameters​

NameModeTypeDescription
CUSTOM_TYPEStatic/DynamicStringSelects the Custom Type that contains the value.
VALUEStatic/DynamicIntThe internal Custom Type value to resolve.
RESULT_VARStaticStringThe workflow variable that receives the resolved technical name.
warning

The action follows the false edge when VALUE is not defined for the selected CUSTOM_TYPE.


GetCustomTypeValue (V1)​

The GetCustomTypeValue action converts a Custom Type technical name to its internal integer value. Use it when a workflow receives or stores a technical name but requires the corresponding value for a Custom Type.

⚙ Parameters​

NameModeTypeDescription
CUSTOM_TYPEStatic/DynamicStringSelects the Custom Type that contains the technical name.
TECHNICAL_NAMEStatic/DynamicStringThe technical name to resolve. Matching is case-insensitive.
RESULT_VARStaticStringThe workflow variable that receives the resolved internal integer value.
warning

The action follows the false edge when TECHNICAL_NAME is not defined for the selected CUSTOM_TYPE.


GetDate​

Retrieves the current date and time and stores it in the specified RESULT_VAR. Set USE_UTC to true to return the time in UTC; otherwise, the local server time is used.

⚙️ Parameters​

ParameterModeTypeDescription
USE_UTCStatic/DynamicBoolIf true, returns time in UTC format
RESULT_VARStaticStringVariable to store the current date and time
info

The returned value is in ISO 8601 format.


GetDateOffset​

Retrieves the current DateTimeOffset, which includes both the date/time and the timezone offset, and stores it in RESULT_VAR. Set USE_UTC to true to return the value in Coordinated Universal Time (UTC); otherwise, local time with offset is returned.

⚙️ Parameters​

ParameterModeTypeDescription
USE_UTCStatic/DynamicBoolIf true, returns the DateTimeOffset in UTC
RESULT_VARStaticStringVariable to store the resulting DateTimeOffset value
info

DateTimeOffset is ideal when tracking both absolute time and the originating timezone.


GetGroup (V1)​

The GetGroup block retrieves the group name associated with a specific GROUP_ID (GUID). This is useful when workflows need to resolve or display the human-readable group name based on a stored reference or ID.

Functionality​

  • Input: A static GUID that represents the group.
  • Process: Fetches the corresponding group name using the provided GROUP_ID.
  • Output: Stores the resolved group name in the specified workflow variable.

⚙ Parameters​

NameModeTypeDescription
GROUP_IDStaticGuidThe unique identifier of the group.
RESULT_VARStaticStringName of the variable where the group name will be stored.
info

✅ Tip: Use this block when you have a GROUP_ID stored in your object or data context and need to resolve the readable group name—for display, logging, or to pass in SetObjectAttributes action..


GetGroupId (V1)​

The GetGroupId action converts a user Group name to its UUID. Use it when a workflow has a Group name and needs the corresponding UUID for a later action or data operation.

⚙ Parameters​

NameModeTypeDescription
GROUP_NAMEStatic/DynamicStringThe user Group name to resolve. Matching is case-insensitive.
RESULT_VARStaticStringThe workflow variable that receives the resolved Group UUID.
warning

The action follows the false edge when GROUP_NAME matches no Group or more than one Group.


GetKeyList​

Retrieves all keys from the dictionary specified in SOURCE_VAR (Dictionary<string, object>) and stores them as a list in RESULT_VAR. Fails if the source is null or not a valid dictionary.

⚙️ Parameters​

ParameterModeTypeDescription
SOURCE_VARStatic/DynamicDictionary<string,object>The source dictionary from which to extract keys
RESULT_VARStaticStringVariable to store the resulting list of keys
info

The result is typically a List<string> representing all the top-level keys in the dictionary.


GetObjectAttachments (V1)​

The GetObjectAttachments (V1) action retrieves the list of attachments associated with a given object.

It takes an OBJECT_ID as input and returns attachment metadata, such as filename, type, and identifiers, as a List<Dictionary<string, string>> in the specified result variable.

This action returns metadata only. It does not return file content or bytes.

Functionality​

Input:

  • An object identifier (OBJECT_ID)

Process:

  • Looks up the object using the provided OBJECT_ID.
  • Retrieves the attachment entries associated with that object.
  • Maps each attachment into metadata fields such as filename, type, and identifier.

Output:

  • Stores the attachment metadata list in RESULT_VAR as List<Dictionary<string, string>>.

⚙ Parameters​

NameModeTypeDescription
OBJECT_IDStatic/DynamicGuidUnique identifier of the object whose attachments should be listed.
RESULT_VARStaticStringVariable name to store the resulting attachment metadata list.
info

Use GetObjectAttachments (V1) when you need to inspect or iterate over attachment metadata before deciding whether to download, link, or delete a specific file.

info

How to download a file​

GetObjectAttachments (V1) returns only metadata, not the file itself. To download the actual file, follow these steps:

  1. Run GetObjectAttachments (V1) and read the attachment/file ID from the returned metadata list (RESULT_VAR). Each entry is a Dictionary<string, string> containing the attachment identifier along with fields like filename and type.
  2. Identify the storage provider linked to the selected Object Schema and copy its provider ID from the Manage Storage Provider page.
  3. Call the download endpoint below with that attachment ID to receive the file stream.

Download endpoint​

GET https://example-gateway.com/RCOMAPI/api/binary-storage/download/{attachmentId}
  • Replace {attachmentId} with the attachment/file ID from step 1.

  • Authorization header is optional and only required when the gateway enforces authentication:

    Authorization: Bearer <token>

Example:

curl -X GET "https://example-gateway.com/RCOMAPI/api/binary-storage/download/<Attachment ID>" \
-H "Authorization: Bearer <token>" \
--output example.pdf

The response returns the binary file stream with the correct Content-Type, and typically a Content-Disposition header carrying the original filename.

warning

This action returns metadata only. If you need the actual file bytes, use GetAttachment (V1) with the exact file name.

GetObjectChangeHistory​

The GetObjectChangeHistory action retrieves the historical changes of one or more attributes for a specific object within an Object Schema, constrained by an optional time window.

Use this when you need an auditable trail of how selected fields evolved over time—for example, to investigate discrepancies, generate compliance reports, or drive workflow logic based on last-known changes.

Functionality​

Input:

  • A target OBJECT_ID in the selected Object Schema.
  • A list of ATTRIBUTES to track.
  • Optional START_DATE and END_DATE to filter results by time.

Process:

  • Queries the change log for the specified object and returns only the events that affect the requested attributes.
  • Applies the time filter if provided.

Output:

  • Writes a collection of change entries to RESULT_VAR.
  • Each entry represents a single change event for a tracked attribute.

⚙ Parameters​

NameModeTypeDescription
OBJECT_IDStaticGuidThe unique identifier of the object whose attribute history should be fetched.
ATTRIBUTESStaticList<String>One or more attribute names to include in the history query. Provide at least one.
START_DATEStatic (Optional)DateTimeOffsetLower bound (inclusive) for change timestamps. If omitted, history is fetched from the earliest available record.
END_DATEStatic (Optional)DateTimeOffsetUpper bound (inclusive) for change timestamps. If omitted, history is fetched up to the latest available record.
RESULT_VARStaticStringWorkflow variable name that will receive the resulting collection of change records.
warning
  • ATTRIBUTES is required. Supplying an empty list will result in no data and may cause the action to fail validation.
  • Ensure START_DATE ≤ END_DATE. If the range is inverted, the result set will be empty.

GetObjectGroupSchema (V1)​

The GetObjectGroupSchema block retrieves the schema of a specified Object Schema and maps key metadata-column types, nullability, and primary keys into individual workflow variables. These variables are populated as dictionaries, allowing downstream actions to dynamically interpret and use the structure of the Object Schema.

Functionality:​

Input: Object Schema name (dynamic).

Process: Queries the Object Schema definition from the platform and extracts structural metadata.

Output: Maps three sets of information into the workflow:

  • Column names and their data types (Dictionary<string, string>)
  • Column names and nullability (Dictionary<string, bool>)
  • Primary key columns (List<string>)

These outputs are useful when workflows need to validate data, generate forms, or perform structure-aware operations dynamically.

Return:

  • true → if the schema was successfully retrieved and mapped.
  • false → if the Object Schema is not found or an error occurs.

⚙ Parameters​

NameModeTypeDescription
OBJECT_GROUP_NAMEDynamic/StaticStringInternal name of the Object Schema whose schema is to be retrieved.
COLUMN_TYPEStaticStringVariable name where column types will be stored as a Dictionary<string, string>. Example: { "ID": "Number", "DOB": "Date" }
NULLABLEStaticStringVariable name to store nullability as a Dictionary<string, bool>. Example: { "DOB": true, "ID": false }
PRIMARY_KEYSStaticStringVariable name to store a list of primary key columns as a stringified List<string>. Example: [ "ID", "TEMP_ID" ]
tip

These output variables can be used in later steps for building dynamic logic based on field types, form constraints, or validation rules.


GetObjectGroupSchema (V2)​

The GetObjectGroupSchema (V2) action returns the schema of the specified Object Schema based on OBJECT_GROUP_NAME. It includes column types, nullability, descriptions, RegEx patterns, and the Custom Type configured for each Custom attribute.

What's Different from V1​

  • New Schema Outputs: V2 adds mapping outputs for column descriptions (COLUMN_DESCRIPTION) and regular expression validation patterns (COLUMN_REGEX).
  • Unique Keys: V2 extracts unique constraint identifiers (UNIQUE_KEY) as part of the schema response instead of just primary keys.
  • Custom Types: COLUMN_CUSTOM_TYPE identifies the Custom Type configured for each column whose type is reported as Custom.

Functionality​

Input:

  • The Object Schema name (OBJECT_GROUP_NAME).

Process:

  • Retrieves the schema details for the specified Object Schema.

Output:

  • The action returns multiple mappings containing column details such as type, nullability, descriptions, RegEx, unique keys, and configured Custom Types, stored into their respective target variables.

⚙ Parameters​

NameModeTypeDescription
OBJECT_GROUP_NAMEStatic/DynamicStringThe unique name of the Object Schema whose schema is being retrieved.
COLUMN_TYPEStatic/DynamicStringTarget variable to store column types mappings.
NULLABLEStatic/DynamicStringTarget variable to store column nullability mappings.
COLUMN_DESCRIPTIONStatic/DynamicStringTarget variable to store column description mappings.
COLUMN_REGEXStatic/DynamicStringTarget variable to store column regular expression pattern mappings.
UNIQUE_KEYStatic/DynamicStringTarget variable to store the unique key identifiers.
COLUMN_CUSTOM_TYPEStatic/DynamicStringTarget variable to store the Custom Type configured for each Custom column.

GetObjectsOfAttributes (v1)​

The GetObjectsOfAttributes block retrieves all objects from the specified OBJECT_GROUP_NAME that match either:

  • The provided ATTRIBUTES dictionary (key–value pairs), or
  • Specific parameter name/value pairs (PARAM_NAME1, PARAM_VALUE1, etc.).

If COLUMN_NAMES is provided, only those columns will be fetched; otherwise, the full object data is retrieved. Results are stored in RESULT_VAR as a DataContext.

Either ATTRIBUTES or at least one PARAM_NAME/PARAM_VALUE pair must be provided.

Functionality​

Input:

An Object Schema name and either an attribute dictionary or up to two explicit parameter/value pairs.

Process:

  1. Queries the Object Schema for matching entries.
  2. If COLUMN_NAMES is given, returns only those columns.
  3. If CHECK_EXISTENCE is enabled, writes a boolean flag to the workflow context indicating whether matches were found.

Output:

  • Matching objects as a DataContext stored in RESULT_VAR.

Return:

  • true → if query executed successfully.
  • false → if no results found and CHECK_EXISTENCE is disabled, or if execution fails.

⚙ Parameters​

NameModeTypeDescription
OBJECT_GROUP_NAMEStatic/DynamicStringName of the Object Schema to query.
ATTRIBUTESStatic/DynamicDictionary<string, object>(Optional) Dictionary of attributes to match.
PARAM_NAME1Static/DynamicString(Optional) Name of a parameter to match.
PARAM_VALUE1Static/DynamicObject(Optional) Value for PARAM_NAME1.
PARAM_NAME2Static/DynamicString(Optional) Name of a second parameter to match.
PARAM_VALUE2Static/DynamicObject(Optional) Value for PARAM_NAME2.
COLUMN_NAMESStatic/DynamicList<string>(Optional) List of column names to fetch.
RESULT_VARStaticStringVariable to store the result (as a DataContext).
info

Use ATTRIBUTES for bulk matching, or PARAM_NAME1/PARAM_NAME2 for explicit comparisons. Both can be combined if needed for stricter filtering.


GetObjectsOfAttributes (v2)​

The GetObjectsOfAttributes block retrieves all objects from the specified OBJECT_GROUP_NAME that match either:

  • The provided ATTRIBUTES dictionary (key–value pairs), or
  • Specific parameter name/value pairs (PARAM_NAME1, PARAM_VALUE1, etc.).
  • Version 2 adds a CHECK_EXISTENCE option, which makes the block return true if matching objects are found and false if no data is found.

If COLUMN_NAMES is provided, only those columns will be fetched; otherwise, the full object data is retrieved. Results are stored in RESULT_VAR as a DataContext.

Either ATTRIBUTES or at least one PARAM_NAME/PARAM_VALUE pair must be provided.

Functionality​

Input:

An Object Schema name and either an attribute dictionary or up to two explicit parameter/value pairs.

Process:

  1. Queries the Object Schema for matching entries.
  2. If COLUMN_NAMES is given, returns only those columns.
  3. If CHECK_EXISTENCE is enabled, writes a boolean flag to the workflow context indicating whether matches were found.

Output:

  • Matching objects as a DataContext stored in RESULT_VAR.

Return:

  • true → if matching objects exist.
  • false → if no data is found.

⚙ Parameters​

NameModeTypeDescription
OBJECT_GROUP_NAMEStatic/DynamicStringName of the Object Schema to query.
ATTRIBUTESStatic/DynamicDictionary<string, object>(Optional) Dictionary of attributes to match.
PARAM_NAME1Static/DynamicString(Optional) Name of a parameter to match.
PARAM_VALUE1Static/DynamicObject(Optional) Value for PARAM_NAME1.
PARAM_NAME2Static/DynamicString(Optional) Name of a second parameter to match.
PARAM_VALUE2Static/DynamicObject(Optional) Value for PARAM_NAME2.
COLUMN_NAMESStatic/DynamicList<string>(Optional) List of column names to fetch.
RESULT_VARStaticStringVariable to store the result (as a DataContext).
CHECK_EXISTENCEStatic/DynamicBoolIf true, the action returns true if results exist, false if no objects are found.
info

Use ATTRIBUTES for bulk matching, or PARAM_NAME1/PARAM_NAME2 for explicit comparisons. Both can be combined if needed for stricter filtering.


GetObjectsOfAttributes (V3)​

The GetObjectsOfAttributes (V3) block retrieves all objects from the specified OBJECT_GROUP_NAME that match either:

  • The provided ATTRIBUTES dictionary (key-value pairs), or
  • Specific parameter name/value pairs (PARAM_NAME1, PARAM_VALUE1, etc.).

Either ATTRIBUTES or at least one parameter name/value pair must be set.

If COLUMN_NAMES is provided, only those columns are returned; otherwise, full object data is fetched. Results are stored in RESULT_VAR as a DataContext.

When searching custom attributes:

  • Numeric strings are matched by value.
  • Numeric types are treated as index-based lookups.

What's Different from V2​

  • V3 explicitly defines custom-attribute numeric matching behavior.
  • In V3, numeric strings are interpreted as literal values.
  • In V3, numeric-typed inputs are interpreted as index-based lookups.

Functionality​

Input:

  • Object Schema name
  • Matching attributes or parameter pairs
  • Optional column selection

Process:

  1. Queries the Object Schema using either ATTRIBUTES or parameter name/value pairs.
  2. Applies optional column filtering when COLUMN_NAMES is provided.
  3. Evaluates existence status based on CHECK_EXISTENCE.

Output:

  • Matching objects as a DataContext in RESULT_VAR.

Return:

  • true when matches are found.
  • false when no matches are found (or no valid query condition is provided).

⚙ Parameters​

NameModeTypeDescription
OBJECT_GROUP_NAMEDynamicStringName of the Object Schema to query.
ATTRIBUTESDynamicDictionary<String,Object>Dictionary of attributes to match.
PARAM_NAME1StaticStringName of first parameter to match.
PARAM_VALUE1DynamicObjectValue for PARAM_NAME1.
PARAM_NAME2StaticStringName of second parameter to match.
PARAM_VALUE2DynamicObjectValue for PARAM_NAME2.
COLUMN_NAMESStaticList<String>Optional list of column names to fetch.
RESULT_VARStaticStringVariable to store the result as a DataContext.
CHECK_EXISTENCEStaticBoolIf enabled, returns existence status based on matching results.
info

Use ATTRIBUTES for bulk matching and parameter pairs for targeted lookups. Provide COLUMN_NAMES only when a reduced result set is needed.

warning

At least one matching condition is required. If both ATTRIBUTES and parameter pairs are empty, the action may return no data.


GetObjectsOfAttributes (V4)​

The GetObjectsOfAttributes (V4) action retrieves all objects from the specified OBJECT_GROUP_NAME that match the provided attributes or parameter name/value pairs, and stores the result as a DataContext.

info

Either ATTRIBUTES or at least one parameter name/value pair must be set.

Compared to V3, this version adds support for object reference columns. When object reference columns are selected in COLUMN_NAMES, the result includes the referenced object's unique group name.

Functionality​

Input:

  • Object Schema name to query
  • Matching attributes using either:
    • ATTRIBUTES dictionary, or
    • Parameter name/value pairs such as PARAM_NAME1 / PARAM_VALUE1
  • Optional column selection using COLUMN_NAMES
  • Optional existence check using CHECK_EXISTENCE

Process:

  • Queries the specified Object Schema using the provided matching criteria.
  • Uses either the ATTRIBUTES dictionary or parameter name/value pairs.
  • Applies column filtering when COLUMN_NAMES is provided.
  • If selected columns include object reference columns, the referenced object's unique group name is included in the result.
  • If CHECK_EXISTENCE is enabled, checks whether matching objects exist.

Output:

  • Stores matching objects as a DataContext in RESULT_VAR.

Return:

  • If CHECK_EXISTENCE is enabled:
    • Directs to the True branch when matching objects are found.
    • Directs to the False branch when no matching objects are found.
  • If no valid query condition is provided, no matching result is returned.

What's Different from V3​

  • V4 includes the referenced object's unique group name when object reference columns are selected.
  • V3 already introduced explicit custom-attribute numeric matching behavior:
    • Numeric strings are matched by value.
    • Numeric types are treated as index-based lookups.

Custom Attribute Matching​

When searching custom attributes:

  • Numeric strings are matched as actual values.
  • Numeric typed inputs are treated as index-based lookups.

⚙ Parameters​

NameModeTypeDescription
OBJECT_GROUP_NAMEDynamicStringName of the Object Schema to query.
ATTRIBUTESDynamicDictionary<String,Object>Dictionary of attribute key-value pairs to match.
PARAM_NAME1StaticStringName of the first parameter to match.
PARAM_VALUE1DynamicObjectValue for PARAM_NAME1.
PARAM_NAME2StaticStringName of the second parameter to match.
PARAM_VALUE2DynamicObjectValue for PARAM_NAME2.
COLUMN_NAMESStaticList<String>Optional list of column names to fetch. If object reference columns are selected, the referenced object's unique group name is included.
RESULT_VARStaticStringVariable name where the result will be stored as a DataContext.
CHECK_EXISTENCEStaticBoolIf enabled, checks whether matching objects exist and routes execution to the True or False branch.
warning

Either ATTRIBUTES or at least one parameter name/value pair must be configured. Without a valid query condition, the action cannot retrieve matching objects.

info

Use this action when you need to retrieve objects based on matching attributes and optionally include reference-related group information in the returned DataContext.


GetObjectsOfObjectGroup (V1)​

Retrieves all objects from the specified Object Schema (OBJECT_GROUP_NAME) and stores the result in a DataContext within RESULT_VAR. Optionally, use COLUMN_NAMES to limit the fetched data to specific columns if provided, only those fields are retrieved and detailed object metadata is excluded.

info

Attribute, group, and location metadata in this block are immutable and cannot be modified.

⚙️ Parameters​

ParameterModeTypeDescription
OBJECT_GROUP_NAMEStatic/DynamicStringThe unique name or ID of the Object Schema to fetch data from
COLUMN_NAMESStatic/DynamicList<string>Optional list of column names to fetch; retrieves all data if left empty
RESULT_VARStaticStringVariable to store the resulting data as a DataContext
info

Use this block when you need to retrieve full datasets tied to a specific group without filtering by attributes.


GetObjectsOfObjectGroup (V2)​

The GetObjectsOfObjectGroup (V2) action retrieves all objects from a specified Object Schema and stores the result as a DataContext in RESULT_VAR.

The Object Schema is identified using its unique name or ID. COLUMN_NAMES is optional and can be used to limit the returned data to specific columns.

Compared to V1, this version adds support for object reference columns. When object reference columns are selected in COLUMN_NAMES, the result includes the referenced object's unique group name.

Functionality​

Input:

  • Unique Object Schema name or ID
  • Optional list of column names to fetch

Process:

  • Retrieves all objects from the specified Object Schema.
  • If COLUMN_NAMES is provided, only the selected columns are fetched.
  • If COLUMN_NAMES is not provided, all available object data is retrieved.
  • If object reference columns are selected, the referenced object's unique group name is included in the result.

Output:

  • Stores the retrieved objects as a DataContext in RESULT_VAR.

⚙ Parameters​

NameModeTypeDescription
OBJECT_GROUP_NAMEStaticStringUnique name or ID of the Object Schema to fetch objects from.
COLUMN_NAMESStaticList<String>Optional list of column names to fetch. If object reference columns are selected, the referenced object's unique group name is included.
RESULT_VARStaticStringVariable name where the retrieved objects will be stored as a DataContext.
info

Attribute, group, and location metadata returned by this action are immutable and cannot be modified through this block.

tip

Use this action when you need to retrieve all objects from a specific Object Schema without filtering by attributes.


GetObjectsOfStorage (V1)​

Retrieves all objects located in a specified storage location and stores them in a DataContext within RESULT_VAR. Storage location is defined using a combination of STORAGE_NUMBER, STORAGE_LOCATION, STORAGE_AREA, and STORAGE_BIN. If COLUMN_NAMES is provided, only those columns will be fetched full object metadata will be skipped.

info

Attribute, group, and location metadata in this block are immutable and cannot be modified.

⚙️ Parameters​

ParameterModeTypeDescription
STORAGE_NUMBERStaticIntIdentifier for the storage number
STORAGE_LOCATIONStaticIntIdentifier for the specific location within the storage
STORAGE_AREAStaticIntIdentifier for the area inside the storage location
STORAGE_BINStaticIntIdentifier for the bin inside the storage area
OBJECT_GROUP_NAMEOBJECT_GROUP_NAMEStringThe unique name or ID of the Object Schema to fetch data from
COLUMN_NAMESStatic/DynamicList<string>Optional list of columns to retrieve; fetches all data if left unspecified
RESULT_VARStaticStringVariable to store the fetched objects as a DataContext
info

Use this block for warehouse-style data retrieval where object grouping is based on physical storage parameters.


GetObjectsOfStorage (V2)​

The GetObjectsOfStorage (V2) action retrieves all objects located within a specified storage location and stores the result as a DataContext in RESULT_VAR.

The storage location is defined using STORAGE_NUMBER, STORAGE_LOCATION, STORAGE_AREA, and STORAGE_BIN.

COLUMN_NAMES is optional and can be used to limit the returned data to specific columns.

Compared to V1, this version adds support for object reference columns. When object reference columns are selected in COLUMN_NAMES, the result includes the referenced object's unique group name.

Functionality​

Input:

  • Storage location identifiers:
    • STORAGE_NUMBER
    • STORAGE_LOCATION
    • STORAGE_AREA
    • STORAGE_BIN
  • Optional Object Schema filter using OBJECT_GROUP_NAME
  • Optional column selection using COLUMN_NAMES

Process:

  • Retrieves all objects located in the specified storage location.
  • Optionally filters results by OBJECT_GROUP_NAME.
  • If COLUMN_NAMES is provided, only the selected columns are fetched.
  • If COLUMN_NAMES is not provided, all available object data is retrieved.
  • If object reference columns are selected, the referenced object's unique group name is included in the result.

Output:

  • Stores the retrieved objects as a DataContext in RESULT_VAR.

⚙ Parameters​

NameModeTypeDescription
STORAGE_NUMBERStaticIntIdentifier for the storage number.
STORAGE_LOCATIONStaticIntIdentifier for the storage location.
STORAGE_AREAStaticIntIdentifier for the storage area.
STORAGE_BINStaticIntIdentifier for the storage bin.
OBJECT_GROUP_NAMEDynamicStringOptional unique name or ID of the Object Schema to filter retrieved objects.
COLUMN_NAMESStaticList<String>Optional list of column names to fetch. If object reference columns are selected, the referenced object's unique group name is included.
RESULT_VARStaticStringVariable name where the retrieved objects will be stored as a DataContext.
info

Attribute, group, and location metadata returned by this action are immutable and cannot be modified through this block.

tip

Use this action for warehouse-style object retrieval based on physical storage coordinates and optional Object Schema filtering.


GetReferencingObjects (V1)​

This action accepts an OBJECT_ID and returns a dictionary where each key represents an Object Schema name, and the corresponding value is a list of OBJECT_IDs of objects that reference the given object from that group.

This action is useful when you need to identify dependencies or relationships before updating, deleting, or processing an object.

Functionality​

Input:

  • Object ID of the object to check (OBJECT_ID)

Process:

  • Searches all object references related to the provided OBJECT_ID.
  • Groups the referencing objects by their Object Schema name.

Output:

  • Stores a dictionary in RESULT_VAR.
  • Each key represents an Object Schema name.
  • Each value contains a list of OBJECT_IDs from that group that reference the given object.

⚙ Parameters​

NameModeTypeDescription
OBJECT_IDStatic/DynamicGuidThe ID of the object for which referencing objects should be retrieved.
RESULT_VARStaticStringVariable name where the resulting dictionary will be stored.
info

Use this action when you need to check which objects depend on or reference a specific object across different Object Schemas.

Result Structure​

The result is returned as a dictionary in the following format:

{
"ObjectGroupNameA": [
"OBJECT_ID_1",
"OBJECT_ID_2"
],
"ObjectGroupNameB": [
"OBJECT_ID_3"
]
}

GetReferencingObjectsByGroup (V1)​

The GetReferencingObjectsByGroup action retrieves objects from a specific Object Schema that reference a given object.

Use this action when you need to check object dependencies within one selected Object Schema instead of retrieving references from all groups.

Functionality​

Input:

  • Object ID of the object to check (OBJECT_ID)
  • Name of the Object Schema to search in (OBJECT_GROUP_NAME)

Process:

  • Searches the specified Object Schema for objects that reference the provided OBJECT_ID.
  • Collects the OBJECT_IDs of all matching referencing objects.

Output:

  • Stores a list of referencing OBJECT_IDs in RESULT_VAR.

⚙ Parameters​

NameModeTypeDescription
OBJECT_IDStatic/DynamicGuidThe ID of the object for which referencing objects should be retrieved.
OBJECT_GROUP_NAMEStatic/DynamicStringName of the Object Schema to search for references in.
RESULT_VARStaticStringVariable name where the resulting list of object IDs will be stored.
info

Use this action when the workflow only needs references from one specific Object Schema.

Result Structure​

The result is returned as a list of object IDs:

[
"OBJECT_ID_1",
"OBJECT_ID_2",
"OBJECT_ID_3"
]

GetStorageAreas​

Returns all defined storage Areas, with their internal ID and parent Location ID.

⚙️ Parameters​

NameModeTypeDescription
outputVarStaticStringVariable to store the list of Areas (ID, name, parent Location ID).

GetStorageBins​

Returns all defined storage Bins, with their internal ID and parent Area ID.

⚙️ Parameters​

NameModeTypeDescription
outputVarStaticStringVariable to store the list of Bins (ID, name, parent Area ID).

GetStorageLocations​

Returns all defined storage Locations, each with its internal ID and parent Storage Number ID.

⚙️ Parameters​

NameModeTypeDescription
outputVarStaticStringVariable to store the list of Locations (ID, name, parent Number ID).

GetStorageNumbers​

Fetches all defined top-level Storage Numbers.

⚙️ Parameters​

NameModeTypeDescription
outputVarStaticStringVariable to store the list of Storage Numbers (ID + name).
info

❌ No hierarchical data is returned (i.e., no children like Locations or Areas).


HtmlEncode (V1)​

The HtmlEncode (V1) action transforms SOURCE_VAR into an HTML-encoded string and stores the result in RESULT_VAR.

It escapes special characters such as <, >, &, ", and ' to their safe HTML representations.

Functionality​

Input:

  • Source string (SOURCE_VAR)

Process:

  • Encodes HTML-sensitive characters in the input string.

Output:

  • Encoded string saved in RESULT_VAR.

⚙ Parameters​

NameModeTypeDescription
SOURCE_VARDynamicStringInput string to be HTML-encoded.
RESULT_VARStaticStringVariable name to store the resulting HTML-encoded value.

IsObjectLocked​

The IsObjectLocked action checks whether an object is currently locked by a workflow job. It does not create or release a lock.

The action returns true when the object is locked and false when it is available for processing.

⚙ Parameters​

NameModeTypeDescription
OBJECT_IDDynamicGuidIdentifier of the object to check.

Example: Use IsObjectLocked before an update. Route the false result to the update action when the object is available.


JsonPath​

Executes a JSONPath query on the JSON string stored in SOURCE_VAR and stores the result in RESULT_VAR as a String. JsonPath allows querying and extracting specific parts of a JSON structure using path-like syntax.

⚙️ Parameters​

ParameterModeTypeDescription
JSON_PATHStatic/DynamicStringThe JsonPath expression used to extract data
SOURCE_VARStatic/DynamicStringThe variable containing the JSON string to query
RESULT_VARStaticStringVariable to store the result of the JsonPath query
info

Use $ as the root element in your JSON_PATH. For example: $.name retrieves "name" fields in the JSON.


JsonPathValue (V1)​

  • Executes a JSONPath query on the JSON string in SOURCE_VAR and casts the result into the specified RESULT_TYPE, storing it in RESULT_VAR.
  • If the JsonPath expression yields no result, an empty string is returned by default.

Supported RESULT_TYPE values:

  • Primitive types: int, long, double, decimal, bool, guid, date, string
  • Complex types:
    • list: List<object>
    • object: Dictionary<string, object>
    • objectlist: List<Dictionary<string, object>>

⚙️ Parameters​

ParameterModeTypeDescription
JSON_PATHStatic/DynamicStringThe JsonPath query to extract data
SOURCE_VARStatic/DynamicStringVariable containing the JSON string
RESULT_TYPEStatic/DynamicStringThe desired output type
RESULT_VARStaticStringVariable to store the casted result
info

Use $ as the root element in your JSON_PATH. For example: $.name retrieves "name" fields in the JSON. This block is ideal when type safety or structured deserialization is needed for downstream processing.


JsonPathValue (V2)​

The JsonPathValue (V2) block extracts data from a JSON structure using a specified JsonPath expression and stores the result in a workflow variable with a defined type.

Compared to the earlier version, this block introduces improved type handling—automatically converting the extracted value into the specified result type. It also handles missing or unmatched paths gracefully by returning an empty string (""), instead of throwing errors.

Functionality​

  • Input: JsonPath expression and source variable containing a JSON structure.
  • Process:
    • Executes the JsonPath query on the JSON data in SOURCE_VAR.
    • Converts the result into the specified RESULT_TYPE.
  • Output: The converted value is stored in RESULT_VAR.

If the JsonPath expression doesn't match any value, the result is always an empty string, regardless of the expected type.

⚙ Parameters​

NameModeTypeDescription
JSON_PATHDynamicStringJsonPath expression to execute.
SOURCE_VARDynamicStringVariable containing the input JSON data.
RESULT_TYPEDynamicStringType to convert the result into. Allowed types: int, double, long, bool, decimal, guid, date, string, list, object, objectlist.
RESULT_VARStaticStringName of the variable where the result will be stored.
note

Result Type Notes​

  • list: List of objects (List<object>)
  • object: Dictionary (Dictionary<string, object>)
  • objectlist: List of dictionaries (List<Dictionary<string, object>>)
  • guid, date, bool, int, etc.: Converted into their respective primitive types

JsonSerializer (V1)​

  • Converts the object stored in SOURCE_VAR into a JSON string and saves it in RESULT_VAR.
  • If INTENDED is set to true, the serialization will respect any intended formatting or serialization rules configured in the system.

⚙️ Parameters​

ParameterModeTypeDescription
SOURCE_VARStatic/DynamicObjectThe source object to serialize
INTENDEDStatic/DynamicBoolIf true, applies intended/custom serialization behavior
RESULT_VARStaticStringVariable to store the resulting JSON string
info

Use this block when you need to convert complex data structures into JSON for storage, transmission, or logging.


JsonSerializer (V2)​

The JsonSerializer (V2) block converts a given object or data structure into a JSON string and stores it in a workflow variable. This version improves upon previous implementations by automatically converting all DateTime fields into UTC format, ensuring consistency across systems and time zones.

This block is especially useful when integrating with external APIs, storing structured logs, or preparing payloads for custom UI or outbound messages.

Functionality​

  • Input: Any object (e.g., dictionary, list, or data context) from a workflow variable.
  • Process: Serializes the object into a JSON string. If the object includes DateTime fields, they are auto-converted to UTC format.
  • Output: The resulting JSON string is saved to the target variable.

⚙ Parameters​

NameModeTypeDescription
SOURCE_VARStatic/DynamicObjectThe input object to serialize. This can be a dictionary, list, or any valid object stored in a variable.
INTENDEDStatic/DynamicBoolIf true, applies intended/custom serialization behavior
RESULT_VARStaticStringVariable name where the resulting JSON string will be stored.
tip

Ideal for converting structured data into JSON format before sending it to APIs or saving into logs, files, or databases.


ListToString (V1)​

The ListToString action joins all items in a list (SOURCE_VAR) into one text string (TARGET_VAR), with each item separated by the text you provide in SEPARATOR (e.g. ", " or " | ").

If the list is empty, the result is an empty string. If no separator is given, items are joined without any gap. Succeeds as long as SOURCE_VAR holds a valid list. Returns false silently if SOURCE_VAR is empty or not a list.

Functionality​

Input:

  • A source list (SOURCE_VAR).
  • A separator string (SEPARATOR).

Process:

  • Joins all items from the list into a single text string.
  • Uses the SEPARATOR between each item.
  • Fails silently (returns false) if the source is not a valid list or is empty.

Output:

  • The joined string is stored in TARGET_VAR.

⚙ Parameters​

NameModeTypeDescription
SOURCE_VARStatic/DynamicObjectThe input list to be converted to a string.
SEPARATORStatic/DynamicStringText used to separate each item in the resulting string (e.g. ", " or " | ").
TARGET_VARStaticStringVariable name where the joined string will be stored.

LinkAttachment (V1)​

The LinkAttachment (V1) action links an already-uploaded binary object (METADATA_ID) to the given OBJECT_ID. It validates that the object, group, metadata, and provider are consistent, then confirms the file.

Functionality​

Input:

  • An already-uploaded binary object ID (METADATA_ID)
  • A target object ID (OBJECT_ID)
  • An overwrite flag (OVERWRITE)

Process:

  • Validates the object, group, metadata, and provider for consistency.
  • Links the binary object to the given object.
  • Confirms the file.

Output:

  • Returns the attachment ID, stored in RESULT_VAR.

⚙ Parameters​

NameModeTypeDescription
METADATA_IDStatic/DynamicGuidID of the already-uploaded binary object.
OBJECT_IDStatic/DynamicGuidTarget object ID.
OVERWRITEStatic/DynamicBoolSetting to true allows overwriting existing files.
RESULT_VARStatic/DynamicStringVariable name to store the resulting attachment ID.
info

How to get the METADATA_ID​

The METADATA_ID is the file ID returned after uploading a file to a storage provider. Upload the file using the endpoint below, and use the returned attachment/file ID as the METADATA_ID.

Upload File​

Uploads a file to a selected storage provider.

POST https://example-gateway.com/RCOMAPI/api/binary-storage/upload

Content type:

multipart/form-data

Fields:

file=<selected file>
storageProviderId=<Storage Provider ID registered in gateway>

>>>Get Storage Provider ID

Optional header:

Authorization: Bearer <token>

Example:

curl -X POST "https://example-gateway.com/RCOMAPI/api/binary-storage/upload" \
-H "Authorization: Bearer <token>" \
-F "file=@example.pdf" \
-F "storageProviderId=<Storage Provider ID>"

The expected response includes an attachment/file ID, for example:

{
"attachmentId": "<Attachment ID>"
}

The storageProviderId is the storage provider ID. Get it from the Manage Storage Provider page — use the provider ID attached to the designated Object Schema.


LoadCsv (V1)​

The LoadCsv action parses CSV content (provided as bytes) into structured workflow data. It supports complex CSV formats by allowing fine-grained control over delimiter detection, encoding, header handling, quoting rules, row/column filtering, trimming, and optional type conversion.

Use this action when you receive a CSV as a file/byte array and need it as structured workflow data for filtering, mapping, inserts, exports, or dynamic table generation (for example, feeding List<Dictionary<string, object>> into Word table placeholders).

Functionality​

Input:

  • CSV file content as List<Byte> (DATA)
  • Parsing configuration (delimiter, encoding, quote behavior, header options, row/column selection)
  • Optional conversion configuration (locales, decimal/group separators, schema override, date formats, percent mode)

Process:

  • Decodes the CSV bytes using the selected ENCODING.
  • Determines the delimiter:
    • Uses DELIMITER if explicitly set, otherwise auto-detects (if supported by configuration).
  • Extracts rows according to:
    • HEADER_ROW, START_ROW, END_ROW
    • SKIP_ROWS
    • SKIP_EMPTY_ROWS
  • Determines column names:
    • Uses header row when HAS_HEADER = true
    • Otherwise uses COLUMN_HEADERS (if provided) or generated column names.
  • Applies column filters:
    • START_COLUMN, END_COLUMN
    • SKIP_COLUMNS
  • Parses quoted fields using:
    • QUOTE_CHARACTER, IGNORE_QUOTES, ESCAPE_MODE, ALLOW_MULTILINE_FIELDS
  • Normalizes cell values:
    • TRIM_VALUES
    • Empty cells return an empty string "".
  • Optional null handling rules (see notes)
  • Optionally converts types if CONVERT_TYPES = true using locale + schema rules.

Output:

  • Stores parsed rows as List<Dictionary<string, object>> in RESULT_VAR.
  • Each dictionary represents one row:
    • Keys = column headers
    • Values = object (never null; empty cells become "")

⚙ Parameters​

NameModeTypeDescription
DATAStatic/DynamicList<Byte>CSV file content as bytes.
DELIMITERStatic/DynamicStringField delimiter. Typical values: , ; \t |.
ENCODINGStatic/DynamicStringText encoding (e.g., UTF-8, ISO-8859-1, Windows-1252).
FILE_LOCALEStatic/DynamicStringFile locale for parsing decisions (often auto). e.g., en-US, fr-FR, de-DE.
NUMBER_LOCALEStatic/DynamicStringLocale used for numeric parsing/conversion.
HAS_HEADERStatic/DynamicBoolIf true, uses HEADER_ROW as column names.
HEADER_ROWStatic/DynamicInt1-based row index containing headers (used when HAS_HEADER = true).
START_ROWStatic/DynamicInt1-based row index to start reading data from (after decoding).
END_ROWStatic/DynamicInt1-based row index to stop reading at.
SKIP_ROWSStatic/DynamicList<Int>Specific row indices to skip.
COLUMN_HEADERSStatic/DynamicList<String>Manual headers to use when HAS_HEADER = false (or to override).
START_COLUMNStatic/DynamicInt1-based index of first column to include.
END_COLUMNStatic/DynamicInt1-based index of last column to include.
SKIP_COLUMNSStatic/DynamicList<Int>Column indices to exclude.
QUOTE_CHARACTERStatic/DynamicStringQuote character, typically ".
IGNORE_QUOTESStatic/DynamicBoolIf true, treats quote characters as normal text.
ESCAPE_MODEStatic/DynamicStringHow quotes are escaped. Typical: double_quote ("" inside a quoted value).
ALLOW_MULTILINE_FIELDSStatic/DynamicBoolIf true, allows line breaks inside quoted fields.
COMMENT_PREFIXStatic/DynamicStringLines starting with this prefix are treated as comments and skipped.
SKIP_EMPTY_ROWSStatic/DynamicBoolIf true, ignores rows where all cells are empty.
TRIM_VALUESStatic/DynamicBoolIf true, trims whitespace around values.
NULL_VALUESStatic/DynamicList<String>Tokens that should be interpreted as null.
EMPTY_STRING_AS_NULLStatic/DynamicBoolIf true, empty strings are treated as null during conversion.
DECIMAL_SEPARATORStatic/DynamicStringDecimal separator override (e.g., . or ,).
GROUP_SEPARATORStatic/DynamicStringThousands separator override (e.g., , or . or space).
PERCENT_MODEStatic/DynamicStringHow to treat percent values (e.g., as_number).
DATE_TIME_FORMATSStatic/DynamicList<String>Allowed date/time formats for conversion.
DAY_FIRSTStatic/DynamicBoolIf true, interprets ambiguous dates as day-first.
SCHEMA_OVERRIDEStatic/DynamicDictionary<String, String>Column type overrides (e.g., {"Amount":"decimal","CreatedAt":"datetime"}).
CONVERT_TYPESStatic/DynamicBoolIf true, attempts to convert strings to typed objects.
RESULT_VARStaticStringWorkflow variable name to store the parsed output.
warning

Important behavior and pitfalls

  • Header mismatch: If HAS_HEADER = false but COLUMN_HEADERS is missing or wrong length, your dictionaries may have generated or misaligned column keys.
  • Delimiter issues: A wrong delimiter will shift columns and silently corrupt parsing output. If you expect semicolon CSVs (common in EU exports), set DELIMITER = ;.
  • Encoding issues: If special characters (ä, ö, €) appear broken, switch encoding to Windows-1252 or ISO-8859-1.
  • Quoted multiline fields: If your CSV contains line breaks inside quotes, ALLOW_MULTILINE_FIELDS must be enabled.
  • Type conversion surprises: With CONVERT_TYPES = true, parsing depends heavily on locale, separators, and schema overrides; explicitly set SCHEMA_OVERRIDE for high-stakes columns (amounts, dates).

LoadExcelSheet (v1)​

The LoadExcelSheet block parses an Excel file (provided as a byte array) and converts it into a list of dictionaries for processing.

⚙️ Parameters​

NameModeTypeDescription
DATAStatic/DynamicByte[]The Excel file content (eg: retrieved via LoadTemporaryFile action).
RESULT_VARStaticStringVariable to store the parsed Excel data as a list of dictionaries.

LoadTemporaryFile​

The LoadTemporaryFile block retrieves a file from database storage using a given file ID.

⚙ Parameters

NameModeTypeDescription
FILE_IDStatic/DynamicIntThe numeric ID of the file to retrieve.
RESULT_VARStaticStringVariable to store the loaded file as a byte array.

LockObject​

The LockObject action locks one or more objects for the current workflow job. While the workflow is running, another workflow job cannot modify those objects.

Locks created by this action are released automatically when the workflow execution completes. The action returns true when every specified object is locked. It returns false when one or more objects cannot be locked.

⚙ Parameters​

NameModeTypeDescription
OBJECT_IDSDynamicList<Guid>Identifiers of the objects to lock.

Example: Use LockObject before a multi-step update to prevent another workflow job from changing the same objects during the operation.


Log (V1)​

The Log action writes a message into the system log using a specified log level. It is primarily used for debugging, monitoring workflow execution, and tracing runtime values.

The action always returns true.

info

Use this action to output variable values, execution checkpoints, or diagnostic information during workflow processing.

Functionality​

Input:

  • A log message expression (MESSAGE)
  • A log level (LEVEL, optional)

Process:

  • Evaluates the MESSAGE expression.
  • Attempts to resolve the specified LEVEL.
  • Writes the message to the system log using the resolved level.
  • If the level is missing or invalid, defaults to FINE.

Output:

  • The evaluated message is written to the system log.
  • Always returns true.

⚙ Parameters​

NameModeTypeDescription
MESSAGEDynamicStringThe message or expression to log. Supports dynamic workflow expressions.
LEVELStaticStringLog level. Supported values: SEVERE, ERROR, WARNING, INFO, CONFIG, FINE, FINER, FINEST. Defaults to FINE if invalid or not set.

Log Levels​

LevelPurpose
SEVERECritical system failures.
ERRORExecution errors affecting workflow behavior.
WARNINGNon-critical issues or unexpected conditions.
INFOGeneral operational information.
CONFIGConfiguration-related details.
FINEStandard debug-level logging (default).
FINERMore detailed debug information.
FINESTHighly detailed trace output.

Log (V2)​

The Log action writes a message into the system log using a specified log level. It is primarily used for debugging, monitoring workflow execution, and tracing runtime values.

The action always returns true.

info

Use this action to output variable values, execution checkpoints, or diagnostic information during workflow processing.

Functionality​

Input:

  • A log message expression (MESSAGE)
  • A log level (LEVEL, optional)

Process:

  • Evaluates the MESSAGE expression.
  • Attempts to resolve the specified LEVEL.
  • Writes the message to the system log using the resolved level.
  • If the level is missing or invalid, defaults to FINE.

Output:

  • The evaluated message is written to the system log.
  • Always returns true.

⚙ Parameters​

NameModeTypeDescription
MESSAGEDynamicStringThe message or expression to log. Supports dynamic workflow expressions.
LEVELStaticStringLog level. Supported values: SEVERE, ERROR, WARNING, INFO, CONFIG, FINE, FINER, FINEST. Defaults to FINE if invalid or not set.

Log Levels​

LevelPurpose
SEVERECritical system failures.
ERRORExecution errors affecting workflow behavior.
WARNINGNon-critical issues or unexpected conditions.
INFOGeneral operational information.
CONFIGConfiguration-related details.
FINEStandard debug-level logging (default).
FINERMore detailed debug information.
FINESTHighly detailed trace output.

Log (V3)​

The Log (V3) action writes a message into the system log with a configurable log level and optional structured metadata. It extends previous versions by allowing a process status and an error identifier to be attached to the log entry.

The action always returns true.

info

Use this version when logs must include structured status information (e.g., workflow state transitions) or standardized error identifiers for monitoring and reporting.

Functionality​

Input:

  • A log message expression (MESSAGE)
  • A log level (LEVEL, optional)
  • Optional process status (PROCESS_STATUS)
  • Optional error identifier (ERROR_IDENTIFIER)

Process:

  • Evaluates the MESSAGE expression at runtime.
  • Resolves the provided LEVEL.
  • Writes the log entry with the evaluated message.
  • If defined:
    • Adds PROCESS_STATUS to the log entry.
    • Adds ERROR_IDENTIFIER to the log entry.
  • If LEVEL is not set or not resolvable, defaults to FINE.

Output:

  • A structured log entry is written to the system log.
  • Always returns true.

⚙ Parameters​

NameModeTypeDescription
MESSAGEDynamicStringThe message or expression to log. Supports dynamic workflow expressions.
LEVELStaticStringLog level. Supported values: SEVERE, ERROR, WARNING, INFO, CONFIG, FINE, FINER, FINEST. Defaults to FINE if invalid or not provided.
PROCESS_STATUSStaticStringOptional workflow or process status (e.g., Started, Completed, Failed).
ERROR_IDENTIFIERStaticStringOptional identifier used to categorize or track specific error conditions.(Predefined error identifiers)

Log Levels​

LevelPurpose
SEVERECritical system-level failures.
ERRORExecution errors affecting workflow behavior.
WARNINGUnexpected conditions that do not stop execution.
INFOGeneral operational information.
CONFIGConfiguration-related details.
FINEDefault debug-level logging.
FINERDetailed debugging output.
FINESTHighly detailed trace-level logging.

Usage notes​

  • Use PROCESS_STATUS to reflect workflow lifecycle events.
  • Use ERROR_IDENTIFIER to standardize error tracking across workflows.
  • Structured logging is recommended for workflows that integrate with monitoring or alerting systems.
  • If structured metadata is not required, earlier Log versions may be sufficient.
warning

An invalid or missing log level does not fail the action - it falls back to FINE. Logging sensitive data (e.g., credentials, tokens, personal data) may create security risks.


LookUpAttribute​

Searches for an object within the specified OBJECT_GROUP_NAME by matching either the given ATTRIBUTES dictionary or one or two parameter name-value pairs. Upon finding a matching object, it retrieves the value of the specified COLUMN_NAME attribute and stores it in RESULT_VAR.

If no matching object is found:

  • Returns DEFAULT_VALUE in RESULT_VAR if RETURN_DEFAULT is true.
  • Otherwise, the action returns false.
warning

Either ATTRIBUTES or at least one parameter name-value pair must be provided for matching.

⚙️ Parameters​

ParameterModeTypeDescription
OBJECT_GROUP_NAMEStatic/DynamicStringName of the Object Schema to search in
ATTRIBUTESStatic/DynamicDictionary<String,Object>Attributes dictionary to match
PARAM_NAME1Static/DynamicStringName of first parameter to match
PARAM_VALUE1Static/DynamicObjectValue of first parameter
PARAM_NAME2Static/DynamicStringName of second parameter to match (optional)
PARAM_VALUE2Static/DynamicObjectValue of second parameter (optional)
COLUMN_NAMEStatic/DynamicStringName of the attribute/column whose value to retrieve
RETURN_DEFAULTStatic/DynamicBoolWhether to return DEFAULT_VALUE if no match found
DEFAULT_VALUEStatic/DynamicObjectValue to return if no match and fallback enabled
RESULT_VARStaticStringVariable to store the retrieved attribute value

LookUpAttributes (V1)​

Searches for an object in the specified OBJECT_GROUP_NAME by matching either an ATTRIBUTES dictionary or parameter pairs. If a matching object is found:

  • All attributes are returned by default.
  • If COLUMN_NAMES is specified, only the listed attributes are included.

If no match is found:

  • The action returns false, unless RETURN_DEFAULT is set to true, in which case DEFAULT_VALUE (a dictionary) is assigned to RESULT_VAR.

⚙️ Parameters​

ParameterModeTypeDescription
OBJECT_GROUP_NAMEStatic/DynamicStringName of the Object Schema to search within
ATTRIBUTESStatic/DynamicDictionary<String,Object>Attributes to match against
PARAM_NAME1Static/DynamicStringFirst parameter name for matching
PARAM_VALUE1Static/DynamicObjectValue of first parameter
PARAM_NAME2Static/DynamicStringSecond parameter name for matching (optional)
PARAM_VALUE2Static/DynamicObjectValue of second parameter (optional)
COLUMN_NAMESStatic/DynamicList<String>List of attribute names to return (optional)
RETURN_DEFAULTStatic/DynamicBoolWhether to return DEFAULT_VALUE if no match is found
DEFAULT_VALUEStatic/DynamicDictionary<String,Object>Default dictionary to return if no match and fallback enabled
RESULT_VARStaticStringVariable to store the resulting dictionary
info

Use this when you need a full set or a subset of an object’s attributes based on flexible matching logic.


LookupAttributes (V2)​

The LookupAttributes (V2) action searches for a matching object in the specified OBJECT_GROUP_NAME and stores the object's attributes in RESULT_VAR.

The lookup is done using either an ATTRIBUTES dictionary or parameter name/value pairs. Either ATTRIBUTES or at least one parameter pair must be configured.

Compared to V1, this version adds support for object reference columns. When object reference columns are selected in COLUMN_NAMES, the result includes the referenced object's unique group name.

Functionality​

Input:

  • Object Schema name to search in
  • Matching criteria using either:
    • ATTRIBUTES dictionary, or
    • Parameter name/value pairs such as PARAM_NAME1 / PARAM_VALUE1
  • Optional column selection using COLUMN_NAMES
  • Optional default fallback using RETURN_DEFAULT and DEFAULT_VALUE

Process:

  • Searches the specified Object Schema for an object matching the provided criteria.
  • If COLUMN_NAMES is provided, only the selected attributes are returned.
  • If COLUMN_NAMES is not provided, all attributes of the matching object are returned.
  • If selected columns include object reference columns, the referenced object's unique group name is included in the result.

Output:

  • Stores the matching object's attributes as a dictionary in RESULT_VAR.

Return:

  • Returns true when a matching object is found.
  • Returns false when no matching object is found and RETURN_DEFAULT is not enabled.
  • If no match is found and RETURN_DEFAULT is enabled, stores DEFAULT_VALUE in RESULT_VAR.

⚙ Parameters​

NameModeTypeDescription
OBJECT_GROUP_NAMEDynamicStringName of the Object Schema to search within.
ATTRIBUTESDynamicDictionary<String,Object>Dictionary of attribute key-value pairs to match.
PARAM_NAME1StaticStringName of the first parameter to match.
PARAM_VALUE1DynamicObjectValue for PARAM_NAME1.
PARAM_NAME2StaticStringName of the second parameter to match.
PARAM_VALUE2DynamicObjectValue for PARAM_NAME2.
COLUMN_NAMESStatic/DynamicList<String>Optional list of attribute names to return. If object reference columns are selected, the referenced object's unique group name is included.
RETURN_DEFAULTStatic/DynamicBoolIf enabled, returns DEFAULT_VALUE when no matching object is found.
DEFAULT_VALUEStatic/DynamicDictionary<String,Object>Default dictionary to store in RESULT_VAR when no match is found and fallback is enabled.
RESULT_VARStaticStringVariable name where the resulting dictionary will be stored.
warning

Either ATTRIBUTES or at least one parameter name/value pair must be configured. Without a valid lookup condition, the action cannot find a matching object.

info

Use this action when you need to retrieve all or selected attributes of a single matching object, with optional fallback behavior when no match is found.


MatchAndSortList (V1)​

The MatchAndSortList (V1) block filters and sorts a list of dictionaries by evaluating key-value matches and applying optional sorting rules.

Functionality​

  • Input: A list of dictionaries (INPUT_LIST) along with filter fields and optional sorting parameters.
  • Process:
    • Filters the list based on provided key-value pairs in FILTER_FIELDS.
    • Sorts the filtered results according to the field in SORT_BY, with optional descending order.
  • Output: Stores the filtered and sorted list in the specified RESULT_VAR.

Return:

  • true → if filtering and sorting were successful.
  • false → if the list could not be processed (e.g., invalid structure).

⚙ Parameters​

NameModeTypeDescription
INPUT_LISTStatic/DynamicList<Dictionary<string,object>>The input list of dictionaries to filter and sort.
FILTER_FIELDSStatic/DynamicDictionary<string,object>Key-value pairs used to filter the input list.
SORT_BYStaticStringField name to sort the results by.
SORT_DESCENDINGStaticBoolIf true, sorts the results in descending order; otherwise, ascending.
RESULT_VARStaticStringVariable name to store the resulting filtered and sorted list.
info
  • Optional Filtering: Leave FILTER_FIELDS empty if only sorting is required.
  • Sorting Direction: Use SORT_DESCENDING = true for descending order; default is ascending.
  • Multiple Filters: You can specify several key-value pairs in FILTER_FIELDS; only items matching all criteria will remain.
  • Graceful Fallback: If no entries match the filter, RESULT_VAR will contain an empty list.

MQTTChallengeResponse (V1)​

The MQTTChallengeResponse (V1) block publishes a request message to a specified MQTT topic and waits for a corresponding response on another topic.

Functionality​

  • Input: MQTT client configuration, request topic, response topic, and a message payload.
  • Process:
    • Publishes the request message on the defined REQUEST_TOPIC.
    • Subscribes to the RESPONSE_TOPIC and waits for a reply.
  • Output: Stores the response payload in the specified RESULT_VAR.

Return:

  • true → if a valid response was received within the timeout period.
  • false → if no response was received or an error occurred.

⚙ Parameters​

NameModeTypeDescription
MQTT_CLIENTStatic/DynamicStringIdentifier of the MQTT client configuration to use.
REQUEST_TOPICStatic/DynamicStringMQTT topic to which the request message will be published.
RESPONSE_TOPICStatic/DynamicStringMQTT topic on which to listen for the response.
QOS_LEVELStatic/DynamicIntQuality of Service level for publishing the message (0, 1, or 2).
REQUEST_PAYLOADStatic/DynamicStringThe payload of the request message (typically JSON or plain text).
TIMEOUT_MILLISStaStatic/DynamicticIntMaximum time (in milliseconds) to wait for a response.
RESULT_VARStatic/DynamicStringVariable name to store the received response payload.
info
  • Timeout Handling: Always set a reasonable TIMEOUT_MILLIS to avoid long workflow delays if no response is received.

  • QoS Selection:

    • 0 → At most once (no acknowledgment).
    • 1 → At least once (acknowledged).
    • 2 → Exactly once (highest reliability, more overhead).
  • Best Use Cases: Challenge–response authentication, IoT device handshakes, or workflows requiring synchronous confirmation.

  • Error Handling: If the timeout expires with no response, ensure your workflow accounts for the false return value.


MQTTPublisher​

Publishes a message to an MQTT broker using the specified client configuration. You can define the target topic, QoS level, and payload. If AWAIT_RESPONSE is enabled, the block will wait for a broker response up to the defined TIMEOUT_MILLIS.

Supports all MQTT QoS levels:

  • 0: At most once
  • 1: At least once
  • 2: Exactly once

⚙️ Parameters​

ParameterModeTypeDescription
MQTT_CLIENTStatic/DynamicStringThe identifier of the MQTT client configuration to use
TOPICStatic/DynamicStringThe MQTT topic to which the message should be published
QOS_LEVELStatic/DynamicIntQuality of Service level (0, 1, or 2)
PAYLOADStatic/DynamicStringThe message payload to publish (typically in JSON or plain text)
AWAIT_RESPONSEStatic/DynamicBoolWhether to wait for a response from the broker after publishing
TIMEOUT_MILLISStatic/DynamicIntTimeout (in milliseconds) to wait if AWAIT_RESPONSE is true
info

Use this block to send messages to IoT devices, event buses, or cloud services via MQTT.


PublishRabbitMQ (V1)​

The PublishRabbitMQ block sends a message to a specified RabbitMQ exchange using the provided host, credentials, exchange name, and routing key.

Functionality​

  • Input: RabbitMQ connection details, target exchange, routing key, and the message to send.
  • Process:
    • Connects to the RabbitMQ server using the host, port, username, and password.
    • Publishes the given message to the specified exchange and routing key.
  • Output: Sets a status flag (true or false) in the IS_SUCCESS variable indicating whether the operation succeeded.

⚙ Parameters​

NameModeTypeDescription
RABBITMQ_HOSTStatic/DynamicStringHostname or IP address of the RabbitMQ server.
RABBITMQ_PORTStatic/DynamicIntPort number for the RabbitMQ connection (typically 5672).
USERNAMEStatic/DynamicStringUsername for authenticating with RabbitMQ.
PASSWORDStatic/DynamicStringPassword for authenticating with RabbitMQ.
EXCHANGEStatic/DynamicStringName of the exchange where the message will be published.
ROUTING_KEYStatic/DynamicStringRouting key used to deliver the message to a specific queue.
MESSAGEStatic/DynamicStringThe message body to send (must be a JSON string or plain text).
IS_SUCCESSStaticStringWorkflow variable name where the success result (true/false) will be stored.
info

Ensure the exchange exists and is correctly configured on the RabbitMQ server. This block does not create exchanges or queues.

warning

Keep credentials secure and avoid logging them directly in workflows.

ReadObject (V1)​

Retrieves object details by OBJECT_ID and loads them into the current tag context. You can optionally specify:

  • OBJECT_GROUP_NAME to scope the lookup.
  • COLUMN_NAMES to limit the retrieved fields.

The retrieved data is stored in the specified RESULT_VAR.

⚙️ Parameters​

ParameterModeTypeDescription
OBJECT_IDStatic/DynamicGuidUnique identifier of the object to retrieve
OBJECT_GROUP_NAMEStatic/DynamicString(Optional) Object Schema to which the object belongs
COLUMN_NAMESStatic/DynamicList<String>(Optional) List of fields to retrieve. If not set, all fields are returned
RESULT_VARStaticStringName of the variable where the object data will be stored
info

Use this block when you need specific object attributes for decision-making or transformation later in the workflow.


ReadObject (V2)​

The ReadObject (V2) action retrieves object details by OBJECT_ID and loads the result into the current tag details context.

Compared to V1, this version adds support for object reference columns. When object reference columns are selected in COLUMN_NAMES, the result includes the referenced object's unique group name.

Functionality​

Input:

  • Object ID of the object to retrieve
  • Object Schema name to scope the lookup
  • Optional list of column names to fetch

Process:

  • Reads the object matching the provided OBJECT_ID.
  • The lookup is scoped to the specified Object Schema.
  • If COLUMN_NAMES is provided, only the selected fields are retrieved.
  • If COLUMN_NAMES is not provided, all available object details are retrieved.
  • If object reference columns are selected, the referenced object's unique group name is included in the result.
  • Loads the retrieved object data into the current tag details context.

Output:

  • Stores the retrieved object details in RESULT_VAR.

⚙ Parameters​

NameModeTypeDescription
OBJECT_IDStaticGuidUnique identifier of the object to retrieve.
OBJECT_GROUP_NAMEStaticStringOptional Object Schema name or ID used to scope the lookup.
COLUMN_NAMESStaticList<String>Optional list of fields to retrieve. If object reference columns are selected, the referenced object's unique group name is included.
RESULT_VARStaticStringVariable name where the retrieved object details will be stored.
info

Use this action when you need to load a specific object's details into the current tag details context for later workflow decisions or transformations.


ReadObjectGroup​

Retrieves metadata and configuration details of a specified Object Schema by its unique name or ID. The result is stored in a DataContext under the variable specified by RESULT_VAR.

info

This is useful for loading group-level configurations, attributes, or mappings that may guide further processing logic.

⚙️ Parameters​

ParameterModeTypeDescription
OBJECT_GROUP_NAMEStatic/DynamicStringUnique name or ID of the Object Schema to be fetched
RESULT_VARStaticStringName of the variable where the Object Schema details will be stored

RegexMatch (V1)​

The RegexMatch block checks whether a given input string matches a specified regular expression (RegEx) pattern. Optionally, it can also capture and return matching results, including full matches and individual capture groups.

This block is ideal for string validation, pattern extraction, and conditional logic based on formatted inputs (e.g., IDs, barcodes, user input, etc.).


Functionality​

Input: A target string and a RegEx pattern.

Process:

  • Applies the RegEx pattern to the input string.
  • Evaluates the True path if the pattern matches, or the False path otherwise.
  • If CATCH_RESULTS is enabled, returns:
    • RESULTS[0] → Full match
    • RESULTS[1]...RESULTS[n] → Each capture group from the pattern

Output: A list of matched strings, if capture is enabled.

⚙ Parameters​

NameModeTypeDescription
STRINGStatic/DynamicStringThe input text to be matched.
PATTERNStatic/DynamicStringThe regular expression pattern to test against the input string.
CATCH_RESULTSStatic/DynamicBoolIf true, matched results are stored in the RESULTS variable.
RESULTSStaticList<string>Variable where match results will be stored. Index 0 = full match, 1…n = capture groups.
tip

Use capture groups in your RegEx (e.g., (ID):(\d+)) to extract specific portions of the matched text.


RemoveJobTags (V1)​

The RemoveJobTags action removes one or more tags from the current workflow job. Tags are used for categorization, filtering, and monitoring, and this action updates that metadata accordingly.

This action does not affect workflow logic or execution flow.

Functionality​

Input:

  • A list of tags (TAGS)

Process:

  • Reads the provided list of tag strings.
  • Removes matching tags from the current workflow job.
  • Tags not present on the instance are ignored.

Output:

  • The workflow job is updated with the specified tags removed.
  • Execution continues normally.

⚙ Parameters​

NameModeTypeDescription
TAGSStaticList<String>One or more tags to remove from the current workflow job.
info
  • Use this action when:
    • A workflow changes state and certain classification tags are no longer valid.
    • Temporary or transitional tags need to be cleared.
  • Tag names must match exactly to be removed.
  • Removing tags helps maintain accurate filtering and reporting in monitoring views.
warning

Removing a tag that does not exist has no effect.

Tags are metadata only and do not influence workflow behavior unless referenced elsewhere.


ReplaceWordPlaceholders (V1)​

The ReplaceWordPlaceholders (V1) action processes a Word document(.docx) template by replacing text placeholders and optionally generating and inserting up to 5 dynamic tables from structured data. The processed document is stored as a byte list in a workflow variable for further use (for example, export or upload).

Functionality​

Input:

  • A Word template with placeholders as List<Byte> (WORD_FILE)
  • A dictionary of text replacements (Dictionary<String, String>)
  • Up to 5 table placeholders + table data pairs (List<Dictionary<String, Object>>)
  • A target workflow variable name to store the final document bytes (RESULT_VAR)

Process:

  • Loads the Word file from WORD_TEMPLATE.
  • Replaces all text placeholders in the form {{key}} or {{key2}} using entries from REPLACEMENTS {key: "value",key2:"value2"}.
  • For each table placeholder defined (TABLEn_PLACEHOLDER):
    • Finds {{TABLE:<placeholder>}} in the template.
    • Uses the corresponding TABLEn_DATA (List<Dictionary<string, object>>) to build a table:
      • Creates a header row from the first dictionary keys in the list.
      • Creates rows from each dictionary entry.
      • Applies borders to all cells.
  • Serializes the processed Word document back into List<Byte>.

Output:

  • Stores the processed Word document bytes in RESULT_VAR.

⚙ Parameters​

NameModeTypeDescription
WORD_TEMPLATEStatic/DynamicList<Byte> (File)Word document template content as bytes (.docx).
REPLACEMENTSStatic/DynamicDictionary<String, String>Key/value pairs used for text replacement. Keys map to placeholders using {{key}}.
TABLE1_PLACEHOLDERStatic/DynamicStringPlaceholder name for table 1 (used in {{TABLE:<name>}}). Example: invoice.
TABLE1_DATAStatic/DynamicList<Dictionary<String, Object>>Data used to generate Table 1 (headers from keys, rows from values).
TABLE2_PLACEHOLDERStatic/DynamicStringPlaceholder name for table 2. Leave empty if unused.
TABLE2_DATAStatic/DynamicList<Dictionary<String, Object>>Data used to generate Table 2.
TABLE3_PLACEHOLDERStatic/DynamicStringPlaceholder name for table 3. Leave empty if unused.
TABLE3_DATAStatic/DynamicList<Dictionary<String, Object>>Data used to generate table 3.
TABLE4_PLACEHOLDERStatic/DynamicStringPlaceholder name for table 4. Leave empty if unused.
TABLE4_DATAStatic/DynamicList<Dictionary<String, Object>>Data used to generate table 4.
TABLE5_PLACEHOLDERStatic/DynamicStringPlaceholder name for table 5. Leave empty if unused.
TABLE5_DATAStatic/DynamicList<Dictionary<String, Object>>Data used to generate table 5.
RESULT_VARStaticStringWorkflow variable name that will store the finalized Word document as List<Byte>.

Placeholder formats​

  • Text placeholders: {{key}} Example: {{CustomerName}} gets replaced by REPLACEMENTS["CustomerName"].

  • Table placeholders: {{TABLE:placeholder}} Example: {{TABLE:invoice}} is replaced by a generated table using TABLE1_DATA when TABLE1_PLACEHOLDER = "invoice".

info
  • Text replacement source: Only keys in REPLACEMENTS are used. Entries absent from the dictionary remain unchanged.

  • Dynamic table creation:

    • Table headers are created from the first dictionary keys in the list.
    • Each dictionary == one row
    • Values are written into rows in the same column order as the header keys.
    • All cells are bordered automatically.
    • If the second or subsequent dictionary has a different column name than the first, that row entry will not be added to the table.

SaveAttachment (V1)​

The SaveAttachment action creates or updates an attachment for a specific object. The file is stored immediately and becomes available in the object’s attachment list. Use this action when a workflow generates or modifies a file (for example, a processed Word document) and needs to store it as an attachment on an object.

Functionality​

Input:

  • An object identifier (OBJECT_ID)
  • File name and extension
  • Binary file content (BYTE_DATA)
  • Optional overwrite behavior
  • A result variable name

Process:

  • Locates the object using OBJECT_ID.
  • Creates a new attachment with the specified FILE_NAME and FILE_EXTENSION.
  • If an attachment with the same name already exists:
    • Replaces it if OVERWRITE = true
    • Fails if OVERWRITE = false
  • Stores the provided BYTE_DATA as the attachment content.

⚙ Parameters​

NameModeTypeDescription
OBJECT_IDStatic/DynamicGuidUnique identifier of the object to which the attachment will be saved.
FILE_EXTENTSIONStatic/DynamicStringFile extension of the attachment (e.g., docx, pdf, png).
FILE_NAMEStatic/DynamicStringName of the attachment file to create or update.
BYTE_DATAStatic/DynamicList<Byte>Binary content of the file to be stored.
OVERWRITEStatic/DynamicBoolIf true, replaces an existing attachment with the same name. If false, saving fails when the file already exists.
RESULT_VARStaticStringWorkflow variable name used to store the result of the operation.
info
  • BYTE_DATA must contain valid file content matching the specified file extension.
  • The file name should include the extension.
  • When generating files dynamically (e.g., via ReplaceWordPlaceholders), use the resulting byte list directly as BYTE_DATA.
  • Overwrite behavior should be explicitly controlled to prevent unintended file replacement.
warning

Common failure causes

  • OBJECT_ID does not exist.
  • BYTE_DATA is null or empty.
  • An attachment with the same name already exists and OVERWRITE is set to false.
  • Invalid or unsupported file extension.
  • Insufficient permissions to modify object attachments.

SendEmail (V1)​

Sends an email to one or more recipients. By default, the email uses the credentials configured in the client profile. To override them, disable the USE_CLIENT_CREDENTIALS flag and provide custom server settings.

  • Multiple recipients can be separated using semicolons (;).
  • SSL encryption is optional and can be enabled via the ENABLE_SSL flag.

⚙️ Parameters​

ParameterModeTypeDescription
USE_CLIENT_CREDENTIALSStatic/DynamicBoolIf true, uses credentials from the client configuration
EMAIL_SERVERStatic/DynamicStringSMTP server address (required if not using client credentials)
EMAIL_SERVER_PORTStatic/DynamicIntSMTP port number
ENABLE_SSLStatic/DynamicBoolWhether to use SSL encryption for the connection
EMAIL_SERVER_USERStatic/DynamicStringSMTP username (used if USE_CLIENT_CREDENTIALS is false)
EMAIL_SERVER_PASSWORDStatic/DynamicStringSMTP password (used if USE_CLIENT_CREDENTIALS is false)
FROM_ADDRESSStatic/DynamicStringSender's email address
RECIPIENTSStatic/DynamicStringSemicolon-separated list of recipient email addresses
SUBJECTStatic/DynamicStringSubject line of the email
BODYStatic/DynamicStringContent of the email (supports plain text or HTML)
warning

For secure email delivery, always use SSL with authenticated credentials unless you're in a trusted network environment.


SendEmail (V2)​

The SendEmail (V2) action sends an email using a configurable SMTP server. It supports multiple recipients and up to 5 attachments, each defined by name, MIME type, and binary content.

If an attachment name is provided, both MIME type and file content are required.

Functionality​

Input:

  • SMTP configuration (server, port, SSL, authentication)
  • Sender address
  • One or more recipients (separated by ;)
  • Subject and body
  • Optional attachments (up to 5)

Process:

  • Connects to the specified SMTP server using:
    • Either client credentials (if enabled), or
    • Explicit username/password authentication.
  • Builds the email message:
    • Sets sender (FROM_ADDRESS)
    • Splits recipients by ;
    • Applies subject and body
  • For each attachment slot (1–5):
    • If ATTACHMENT_NAME_X is provided:
      • Validates that ATTACHMENT_TYPE_X and ATTACHMENT_CONTENT_X are also provided.
      • Attaches the file using the given MIME type and binary content.
  • Sends the email.

Output:

  • Returns:
    • true if the email is successfully sent.
    • false if sending fails (e.g., connection or validation error).

⚙ Parameters​

SMTP Configuration​

NameModeTypeDescription
USE_CLIENT_CREDENTIALSStatic/DynamicBoolIf true, uses system/client credentials instead of explicit username/password.
EMAIL_SERVERStatic/DynamicStringSMTP server hostname or IP address.
EMAIL_SERVER_PORTStatic/DynamicIntSMTP server port (e.g., 25, 465, 587).
ENABLE_SSLStatic/DynamicBoolEnables SSL/TLS for secure SMTP connection.
EMAIL_SERVER_USERStatic/DynamicStringSMTP username (required if not using client credentials).
EMAIL_SERVER_PASSWORDStatic/DynamicStringSMTP password (required if not using client credentials).

Email Content​

NameModeTypeDescription
FROM_ADDRESSStatic/DynamicStringSender email address.
RECIPIENTSStatic/DynamicStringRecipient email addresses separated by ;.
SUBJECTStatic/DynamicStringEmail subject line.
BODYStatic/DynamicStringEmail body content (plain text or HTML depending on implementation).

Attachments (1–5)​

Each attachment slot follows the same structure:

NameModeTypeDescription
ATTACHMENT_NAME_XStatic/DynamicStringFile name (e.g., invoice.pdf).
ATTACHMENT_TYPE_XStatic/DynamicStringMIME type (e.g., application/pdf, application/vnd.openxmlformats-officedocument.wordprocessingml.document).
ATTACHMENT_CONTENT_XStatic/DynamicList<Byte>Binary file content.
info
  • Multiple recipients must be separated using ;.
  • If ATTACHMENT_NAME_X is set:
    • ATTACHMENT_TYPE_X and ATTACHMENT_CONTENT_X must also be provided.
  • If an attachment slot is unused, leave all three related fields empty.
  • The attachment content must be valid binary data matching the specified MIME type.
warning

Common failure causes

  • SMTP server unreachable or incorrect port.
  • SSL configuration mismatch.
  • Invalid authentication credentials.
  • Attachment name provided without MIME type or content.
  • Invalid recipient format.
  • Firewall restrictions blocking outbound SMTP traffic.

SetDictionary (V1)​

The SetDictionary action defines up to five key-value entries on a target dictionary object.

Each KEYx maps to VALUEx. If KEYx is empty, no assignment is performed for that pair.

Functionality​

Input:

  • Target dictionary (OBJECT)
  • Up to five key-value pairs (KEY1/VALUE1 ... KEY5/VALUE5)

Process:

  • Evaluates each key-value pair.
  • Writes only pairs where KEYx is not empty.

Output:

  • Updates the provided dictionary object with the specified entries.

⚙ Parameters​

NameModeTypeDescription
OBJECTStatic/DynamicDictionary<string, object>Dictionary variable to update.
KEY1StaticStringKey name for first assignment.
VALUE1StaticStringValue assigned to KEY1.
KEY2StaticStringKey name for second assignment.
VALUE2StaticStringValue assigned to KEY2.
KEY3StaticStringKey name for third assignment.
VALUE3StaticStringValue assigned to KEY3.
KEY4StaticStringKey name for fourth assignment.
VALUE4StaticStringValue assigned to KEY4.
KEY5StaticStringKey name for fifth assignment.
VALUE5StaticStringValue assigned to KEY5.
info

This action behaves similarly to SetVar, but writes into a dictionary as key-value entries.


SetDictionary (V2)​

The SetDictionary (V2) action writes up to 5 key-value pairs (KEY1–KEY5 / VALUE1–VALUE5) into a dictionary (OBJECT). Works with both Dictionary<string, object> and Dictionary<string, string>.

What's Different from V1​

  • Advanced Control Flags: V2 adds optional switches (ALLOW_OVERWRITE, CLEAR_BEFORE_SET, CHECK_KEY_EXISTS and CHECK_KEY) granting granular control over pre-write dictionary validation, state-clearing, and conditional execution paths.

KEY1 and VALUE1 are required; the rest are optional — leave a KEY blank to skip that slot. Three optional switches give you fine-grained control:

  • ALLOW_OVERWRITE: when on, existing keys are updated; when off, existing keys are left untouched (safe mode).
  • CLEAR_BEFORE_SET: when on, the dictionary is emptied before the new entries are written.
  • CHECK_KEY_EXISTS: when on, the action checks whether the key you enter in CHECK_KEY already exists in the dictionary before writing; takes the true (green) path if it does, false (red) path if it does not. CHECK_KEY is only used when CHECK_KEY_EXISTS is enabled; leave it blank otherwise.

Functionality​

Input:

  • A target dictionary (OBJECT).
  • Up to 5 key-value pairs.
  • Configuration flags (ALLOW_OVERWRITE, CLEAR_BEFORE_SET, CHECK_KEY_EXISTS, CHECK_KEY).

Process:

  • Clears the dictionary first if CLEAR_BEFORE_SET is enabled.
  • Checks if CHECK_KEY exists if CHECK_KEY_EXISTS is enabled.
  • Adds or updates the key-value pairs depending on ALLOW_OVERWRITE.
  • Fails with an error if OBJECT is not set or is not a supported dictionary type.

Output:

  • The updated dictionary.
  • Returns true or false for branching based on CHECK_KEY_EXISTS mode.

⚙ Parameters​

NameModeTypeDescription
OBJECTStatic/DynamicDictionary<string, object>The dictionary variable to update.
KEY1Static/DynamicStringRequired. The first key to set.
VALUE1Static/DynamicObjectRequired. The value for the first key.
KEY2Static/DynamicStringOptional. The second key to set.
VALUE2Static/DynamicObjectOptional. The value for the second key.
KEY3Static/DynamicStringOptional. The third key to set.
VALUE3Static/DynamicObjectOptional. The value for the third key.
KEY4Static/DynamicStringOptional. The fourth key to set.
VALUE4Static/DynamicObjectOptional. The value for the fourth key.
KEY5Static/DynamicStringOptional. The fifth key to set.
VALUE5Static/DynamicObjectOptional. The value for the fifth key.
ALLOW_OVERWRITEStatic/DynamicBoolIf true, allows updating existing keys.
CLEAR_BEFORE_SETStatic/DynamicBoolIf true, clears the dictionary before setting keys.
CHECK_KEY_EXISTSStatic/DynamicBoolIf true, checks the existence of CHECK_KEY.
CHECK_KEYStatic/DynamicStringThe key to look up if CHECK_KEY_EXISTS is true.

SetGeoLocation​

Updates the geographic location (latitude and longitude) of a specific object identified by OBJECT_ID. This is typically used to map physical entities (e.g., assets, devices, or locations) to real-world coordinates for tracking or visualization.

⚙️ Parameters​

ParameterModeTypeDescription
OBJECT_IDStatic/DynamicGuidUnique identifier of the object
LATITUDEStatic/DynamicDecimalLatitude coordinate of the object's location
LONGITUDEStatic/DynamicDecimalLongitude coordinate of the object's location
info

Ensure the coordinates are valid decimal values within their respective geographic bounds (±90 for latitude, ±180 for longitude).


SetHttpResponse​

Configures the HTTP response to be returned from an API or web-triggered workflow. This includes setting the status code, response headers, content type, and response body. Use this to send structured responses back to HTTP clients.

⚙️ Parameters​

ParameterModeTypeDescription
RESULT_CODEStatic/DynamicIntHTTP status code (e.g., 200, 404, 500)
RESPONSE_HEADERStatic/DynamicDictionary<String, String>Optional custom headers to include in the response
CONTENT_TYPEStatic/DynamicStringType of the response (text/json)
RESPONSE_BODYStatic/DynamicStringBody of the HTTP response (can be plain text or JSON)
info

Set CONTENT_TYPE to text/json to return structured data.

SetObjectAttributes (V1)​

The SetObjectAttributes (V1) block is used to set or update the attributes of an object within a specified Object Schema during workflow execution. Unlike V2, this version requires the group to be specified using its name (as a string).

This action is commonly used after object creation or update events, enabling workflows to dynamically assign or modify attribute values such as status, type, or location.

Functionality​

Input: The object’s unique identifier (OBJECT_ID), the name of the group (GROUP), and a dictionary of attribute name-value pairs.

Process:

  • Locates the object in the given Object Schema.
  • Updates the object using attributes provided in ATTRIBUTE_DATACONTEXT.
  • Assigns the object to the specified group (by name).

Output: Returns a boolean result indicating success or failure.

⚙ Parameters​

NameModeTypeDescription
OBJECT_IDStatic/DynamicGUIDUnique identifier of the object whose attributes are being set.
GROUPStatic/DynamicStringName of the group to which the object is assigned.
OBJECT_GROUP_NAMEStatic/DynamicStringInternal name of the Object Schema where the object belongs.
ATTRIBUTE_DATACONTEXTStatic/DynamicDictionary<string, object>Dictionary containing the attribute names and their values.
warning

This version uses GROUP (name string). Use SetObjectAttributes (V2) if you need to pass group identifiers programmatically using GUIDs.


SetObjectAttributes (V2)​

The SetObjectAttributes (V2) block sets or updates the attribute values of an object within a specified Object Schema. Compared to the original version, V2 introduces support for passing the Group as a GUID (GROUP_ID) instead of a name, making it more reliable and suitable for programmatic usage where names might vary or change.

This block is typically used to update fields such as status, metadata, or classification of an object after it has been created or processed.

Functionality​

Input: The object's unique ID (OBJECT_ID), the Object Schema ID (GROUP_ID), Object Schema name, and a dictionary of attributes to update.

Process:

  • Locates the object based on OBJECT_ID and OBJECT_GROUP_NAME.
  • Updates the object using the provided ATTRIBUTE_DATACONTEXT.
  • Group assignment is performed using the GUID provided in GROUP_ID.

⚙ Parameters​

NameModeTypeDescription
OBJECT_IDStatic/DynamicGUIDUnique identifier of the object to be updated.
GROUP_IDStatic/DynamicGUIDGUID of the group to assign to the object.
OBJECT_GROUP_NAMEStatic/DynamicStringInternal name of the Object Schema the object belongs to.
ATTRIBUTE_DATACONTEXTStatic/DynamicDictionary<string, object>Dictionary containing the attribute names and their new values.
info

🆕 New in V2: Use GROUP_ID (GUID) instead of GROUP (name string) for more precise and reliable group assignments - especially useful when you dont have the group name in the context or want to reduce the number of actions used.


SetObjectAttributes (V3)​

The SetObjectAttributes (V3) block sets Object Schema attributes of an object using ATTRIBUTE_DATACONTEXT, which should include all required attributes.

This version accepts a GUID value in GROUP and includes USER_ID for user-context-aware updates.

Unlike previous versions, this action does not perform implicit type conversion. Provided attribute values must match expected data types exactly.

Functionality​

Input: The object's unique ID (OBJECT_ID), group reference (GROUP), Object Schema name (OBJECT_GROUP_NAME), attribute dictionary (ATTRIBUTE_DATACONTEXT), and user ID (USER_ID).

Process:

  • Locates the target object in the specified Object Schema.
  • Applies attribute updates from ATTRIBUTE_DATACONTEXT.
  • Uses GROUP as GUID-compatible group reference.
  • Executes the update under the provided USER_ID context.
  • Validates attribute values strictly against expected types (no implicit conversion).

Output:

  • Updates object attributes when validation and assignment succeed.
  • Returns false when required attributes are missing, IDs are invalid, or data types do not match schema expectations.

⚙ Parameters​

NameModeTypeDescription
OBJECT_IDDynamicGuidUnique identifier of the object to update.
GROUPStaticObjectGroup reference that accepts a GUID value.
OBJECT_GROUP_NAMEDynamicStringInternal name of the Object Schema containing the object.
ATTRIBUTE_DATACONTEXTDynamicDictionary<String,Object>Dictionary of object attributes to set. Must include required attributes.
USER_IDDynamicGuidUser context identifier used for the update operation.
warning

No implicit type conversion is applied in V3. Ensure each value in ATTRIBUTE_DATACONTEXT matches the target attribute type exactly.


SetObjectInstant (V1)​

The SetObjectInstant block creates or updates an object in the specified Object Schema immediately during workflow execution, without waiting for the workflow to complete. This is useful for real-time operations where immediate data persistence is required, such as in alert handling, transactional logging, or when the saved object is required in consecutive steps of the workflow.

Functionality​

Input: A new or existing Unique Object ID (GUID), Object Schema name, and a dictionary of attributes (including primary key).

Process:

  • If the specified OBJECT_ID already exists in the group, the object is updated.
  • If the ID is new, a new object is created using the given attributes.

Output: No result is returned, but the object is committed instantly to the Object Schema.

Return:

  • true → if the object is successfully created or updated.
  • false → if the operation fails due to schema mismatch or missing keys.

⚙ Parameters​

NameModeTypeDescription
OBJECT_IDStatic/DynamicGuidThe unique identifier for the object. Required for both creation and update operations.
GROUPStatic/DynamicStringOptional group name or label to categorize the object.
OBJECT_GROUP_NAMEDynamic/StaticStringThe internal name of the Object Schema where the object belongs.
ATTRIBUTE_DATACONTEXTStatic/DynamicDictionary<String, Object>Key-value dictionary of attributes and their values. Must include values for all mandatory fields, including the primary key(s).
tip

This block is ideal for pushing live updates into a database-like structure. Be sure to match attribute names exactly as defined in the Object Schema schema.


SetObjectInstant (V2)​

The SetObjectInstant (V2) action creates or updates an object immediately during workflow execution, instead of queuing the operation until the workflow finishes.

This action is useful when the created or updated object must be available for later actions in the same workflow.

Compared to V1, this version does not perform implicit type conversion. Attribute values provided in ATTRIBUTE_DATACONTEXT must already match the expected data types defined in the Object Schema schema.

Functionality​

Input:

  • Object ID of the object to create or update
  • Optional group name or label
  • Object Schema name where the object belongs
  • Attribute dictionary containing object values
  • User ID used for the operation

Process:

  • Checks whether an object with the provided OBJECT_ID already exists.
  • If the object exists, it is updated immediately.
  • If the object does not exist, a new object is created immediately.
  • Writes the object directly during workflow execution.
  • Validates the provided attribute values against the expected schema types.
  • Does not automatically convert mismatched attribute types.

Output:

  • No result object is returned.
  • The object is committed immediately to the specified Object Schema.

Return:

  • Returns true when the object is successfully created or updated.
  • Returns false when the operation fails, for example because of missing required fields, schema mismatch, or invalid attribute types.

⚙ Parameters​

NameModeTypeDescription
OBJECT_IDStaticGuidUnique identifier of the object to create or update.
GROUPStaticStringOptional group name or label used to categorize the object.
OBJECT_GROUP_NAMEDynamicStringName of the Object Schema where the object should be created or updated.
ATTRIBUTE_DATACONTEXTDynamicDictionary<String,Object>Dictionary of attribute names and values to write. Values must match the expected schema types exactly.
USER_IDDynamicGuidID of the user performing or associated with the create/update operation.
warning

SetObjectInstant (V2) does not convert attribute values automatically. Make sure every value in ATTRIBUTE_DATACONTEXT matches the expected data type in the Object Schema schema.

tip

Use this action when later workflow steps depend on the object being created or updated immediately.


SetJobStatus (V1)​

The SetJobStatus action sets the logical job status of the current workflow job. It can optionally assign an error identifier for structured error tracking.

This action is typically used to explicitly mark workflow state transitions such as success, failure, or intermediate states.

Functionality​

Input:

  • A status value (STATUS)
  • Optional error identifier (ERROR_IDENTIFIER)

Process:

  • Assigns the provided STATUS to the current workflow job.
  • If defined, associates the ERROR_IDENTIFIER with the workflow job.

Output:

  • Updates the workflow’s logical process status.
  • The workflow continues execution unless controlled by additional logic.

⚙ Parameters​

NameModeTypeDescription
STATUSStaticStringLogical status to assign to the workflow job (e.g., Started, Processing, Completed, Failed).
ERROR_IDENTIFIERStaticStringOptional identifier used to categorize or track specific error conditions.
info
  • Use this action to reflect meaningful lifecycle transitions in long-running or business-critical workflows.
  • ERROR_IDENTIFIER should be standardized across workflows to support monitoring and reporting.
  • This action sets metadata only, it does not stop or alter workflow execution by itself.
  • Process Status and Error Codes will be listed in workflow job listing page.
warning

Setting a failure-related status does not automatically terminate the workflow.

Ensure status values follow a consistent naming convention across projects to avoid ambiguity in monitoring systems.


SetStorageLocation(V1)​

  • Assigns or updates the storage location details for a specified object.
  • All storage parameters (Number, Location, Area, or Bin) must be provided and selected from a preconfigured list.

⚙️ Parameters​

ParameterModeTypeDescription
OBJECT_IDStatic/DynamicGuidUnique identifier of the object to update
STORAGE_NUMBERStaticStringHigh-level storage identifier (e.g., warehouse or zone)
STORAGE_LOCATIONStaticStringSpecific location within the storage number
STORAGE_AREAStaticStringDefined area within the location (e.g., aisle, section)
STORAGE_BINStaticStringThe actual bin or compartment where the object is stored

SetStorageLocation(V2)​

  • Assigns or updates the storage location details for a specified object.
  • At least one of the storage parameters (Number, Location, Area, or Bin) must be provided.
  • Unlike version 1, this version allows you to set custom values for parameters.
  • If any parent hierarchy value is omitted, it will be automatically resolved from available context.

⚙️ Parameters​

ParameterModeTypeDescription
OBJECT_IDStatic/DynamicGuidUnique identifier of the object to update
STORAGE_NUMBERStaticString(Optional) High-level storage identifier
STORAGE_LOCATIONStaticString(Optional) Specific location within the storage number
STORAGE_AREAStaticString(Optional) Defined area within the location
STORAGE_BINStaticString(Optional) The actual bin or compartment
info

When fewer parameters are provided, the system auto-detects missing parent levels based on existing mappings or default rules.


SetStorageLocationByID​

The SetStorageLocationByID block is designed to configure storage details for an object by directly specifying its ID and associated storage hierarchy parameters.

Functionality​

  • Input: An object identifier (OBJECT_ID) and at least one storage parameter (NumberID, LocationID, AreaID, or BinID).
  • Process: Updates the object’s storage details. If parent values are not provided, they are automatically detected from the context.
  • Output: The object’s storage location is updated accordingly.

Return:

  • true → if the update was successful.
  • false → if the update failed (e.g., invalid IDs or context mismatch).

Parameters​

NameModeTypeDescription
OBJECT_IDStatic/DynamicGuidUnique identifier of the object whose storage location will be updated.
STORAGE_NUMBER_IDStatic/DynamicStringHigh-level storage number ID (e.g., warehouse ID).
STORAGE_LOCATION_IDStatic/DynamicStringLocation ID within the storage number.
STORAGE_AREA_IDStatic/DynamicStringArea ID inside the location (e.g., aisle, section).
STORAGE_BIN_IDStatic/DynamicStringBin ID or compartment where the object is stored.
note
  • Mandatory Input: At least one of STORAGE_NUMBER_ID, STORAGE_LOCATION_ID, STORAGE_AREA_ID, or STORAGE_BIN_ID must be provided.
  • Auto-Detection: If certain parent IDs are not provided, they will be resolved automatically from available context or configuration.
  • Error Handling: Always confirm that the OBJECT_ID exists before attempting to set the storage location.

SetVar​

  • Assigns values to one or more variables.
  • You can specify up to five variable-value pairs at once.
  • Use commas (,) to separate multiple variable names in the input fields.

⚙️ Parameters​

ParameterModeTypeDescription
RESULT_VAR1StaticStringName of the first variable to assign
VALUE1Static/DynamicStringValue to assign to the first variable
RESULT_VAR2StaticStringName of the second variable
VALUE2Static/DynamicStringValue for the second variable
RESULT_VAR3StaticStringName of the third variable
VALUE3Static/DynamicStringValue for the third variable
RESULT_VAR4StaticStringName of the fourth variable
VALUE4Static/DynamicStringValue for the fourth variable
RESULT_VAR5StaticStringName of the fifth variable
VALUE5Static/DynamicStringValue for the fifth variable
info

Use this block to set multiple workflow variables quickly and efficiently in a single step.


Sleep (V1)​

The Sleep block pauses workflow execution for a defined amount of time (in milliseconds). This is useful in workflows where you need to introduce delays—for example, to wait before retrying an action, throttle execution, or align with external timing requirements.

Functionality​

Input: Duration to sleep, in milliseconds.

Process: Suspends the workflow for the specified time.

Output: None. Execution resumes automatically after the delay.

⚙ Parameters​

NameModeTypeDescription
SLEEP_TIMEStatic/DynamicIntTime to pause workflow execution (in milliseconds).
info

⏱️ Example: A value of 5000 will pause the workflow for 5 seconds before continuing.


SOAPRequest (V1)​

The SOAPRequest (V1) action sends a SOAP request to a specified endpoint and exposes the results to the workflow. It sends the configured XML to the endpoint, validates the HTTP response, and parses the returned XML to extract the SOAP Body or Fault.

It stores the raw response, the parsed result, and diagnostic fault information for downstream steps. SOAP faults are treated as errors. Timeout, retry behavior, and HTTP success-range validation are applied during execution.

Functionality​

Input:

  • A valid SOAP endpoint URL and XML payload.
  • Configuration for SOAP action, authentication, and connection policies.

Process:

  • Constructs the SOAP payload and headers.
  • Sends the request to the endpoint.
  • Applies standard timeout and retry policies.
  • Validates the response against HTTP success codes and parses the payload.

Output:

  • The raw response XML is saved to RESPONSE_XML_VAR.
  • The extracted results are stored in PARSED_RESULT_VAR.
  • Fault statuses are written to STATUS_FAULT_VAR.

⚙ Parameters​

NameModeTypeDescription
ENDPOINT_URLStatic/DynamicStringTarget SOAP endpoint URL.
SOAP_VERSIONStatic/DynamicStringTarget SOAP version.
SOAP_ACTIONStatic/DynamicStringDesired SOAP action inside the request.
REQUEST_XMLStatic/DynamicStringRaw XML payload for the request.
REQUEST_HEADERStatic/DynamicDictionary<string,string>Request headers applied to the outgoing connection.
AUTH_TYPEStatic/DynamicStringAuthorization type format (e.g. None).
USERNAMEStatic/DynamicStringAuthentication username (if required).
PASSWORDStatic/DynamicStringAuthentication password (if required).
TOKENStatic/DynamicStringBearer or API token.
TIMEOUT_MILLISStatic/DynamicIntConnection timeout in milliseconds.
RANGE_OK_RESPONSESStatic/DynamicStringRange string to classify success codes.
COUNT_RETRIESStatic/DynamicIntNumber of maximum retry attempts.
RETRY_WAIT_MILLISStatic/DynamicIntDelay between retry attempts.
RESPONSE_XML_VARStaticStringTarget variable for the raw response XML.
PARSED_RESULT_VARStaticStringTarget variable for parsed SOAP extraction.
STATUS_FAULT_VARStaticStringTarget variable for fault diagnostic outputs.

SplitString​

Splits the input string (SOURCE_VAR) into a list of strings (TARGET_VAR) using the specified separator (SEPARATOR). Options allow removing empty entries and trimming whitespace from each split element. Returns false if the source string or separator is null or empty.

⚙️ Parameters​

ParameterModeTypeDescription
SOURCE_VARStatic/DynamicStringThe input string to be split
SEPARATORStatic/DynamicStringThe delimiter string used to split the input
REMOVE_EMPTY_ENTRIESStatic/DynamicBoolIf true, empty entries after splitting are removed
TRIM_ENTRIESStatic/DynamicBoolIf true, trims whitespace from each split string
TARGET_VARStaticStringThe variable name to store the resulting list of strings
info

Use this block to convert delimited strings into lists for iteration or further processing.

StartTimer​

Initiates a timer with a specified duration. Once the timer completes, the OnTimer event is triggered. Use this to delay execution or schedule logic to run after a set period.

⚙️ Parameters​

NameModeTypeDescription
TIMER_NAMEStatic/DynamicStringA unique name to identify the timer
DURATIONStatic/DynamicIntTime duration in milliseconds for the timer
GLOBAL_TIMERStatic/DynamicBoolIf true, the timer is global and not scoped to a specific workflow job

UnlockObject​

The UnlockObject action releases a lock held by the current workflow job before the workflow completes. Use it when another workflow job should be able to process the object before the current workflow ends.

The action returns true when the requested locks are released. It returns false when a lock cannot be released, for example because it is held by another active workflow job.

⚙ Parameters​

NameModeTypeDescription
OBJECT_IDSDynamicList<Guid>Identifiers of the objects to unlock.

Example: Use UnlockObject after the protected update is complete when later workflow steps do not need the lock.


UpdateGlobalVar​

Updates the value of a global variable. If a group is specified, the variable will be updated within that group; otherwise, it is updated at the client (global) level.

  • Returns false if VAR_NAME is missing or invalid.

⚙️ Parameters​

NameModeTypeDescription
VAR_NAMEStatic/DynamicStringThe name of the variable to update
GROUPStatic/DynamicString(Optional) Group name to update the variable within
VALUEStatic/DynamicAnyThe new value to assign to the global variable

ValidateDecimalLimits (V1)​

The ValidateDecimalLimits action validates whether a decimal VALUE fits within the configured precision and scale for a target attribute.

It checks metadata from OBJECT_GROUP_NAME and COLUMN_NAME, and returns false if the value would be rounded or truncated during database storage.

Functionality​

Input:

  • Object Schema name (OBJECT_GROUP_NAME)
  • Column name (COLUMN_NAME)
  • Decimal value (VALUE)

Process:

  • Reads the target column's decimal precision and scale metadata.
  • Verifies whether VALUE can be stored without loss.

Output:

  • Returns true if value is valid for the configured limits.
  • Returns false if value exceeds allowed precision/scale.

⚙ Parameters​

NameModeTypeDescription
OBJECT_GROUP_NAMEStatic/DynamicStringName of the Object Schema containing the target column.
COLUMN_NAMEStaticStringName of the decimal column to validate against.
VALUEStatic/DynamicDecimalDecimal value to validate.
warning

Use this action before persistence to prevent silent rounding or truncation.


ValidateJsonSchema (V1)​

The ValidateJsonSchema (V1) action validates a JSON input against a JSON schema.

It returns true if the input is valid against the schema, and false otherwise.

Functionality​

Input:

  • A JSON input text (INPUT).
  • A JSON schema definition (SCHEMA).

Process:

  • Evaluates the inputs and checks if the INPUT properly conforms to the SCHEMA.

Return:

  • true → if the input is valid.
  • false → if the input is invalid.

⚙ Parameters​

NameModeTypeDescription
INPUTStatic/DynamicStringThe JSON input string to be validated.
SCHEMAStatic/DynamicStringThe JSON schema string to validate the input against.

WaitLock​

The WaitLock action waits for one or more objects to become available, then locks them for the current workflow job. It checks again at the configured interval until it acquires every requested lock or reaches the timeout.

The action returns true when every requested object is locked. It returns false when the timeout expires before the locks can be acquired.

⚙ Parameters​

NameModeTypeDescription
OBJECT_IDSDynamicList<Guid>Identifiers of the objects to lock.
POLL_INTERVAL_MSDynamicIntTime, in milliseconds, between lock attempts.
WAIT_TIMEOUT_MSDynamicIntMaximum time, in milliseconds, to wait for the locks.

Example: Use WaitLock before a critical update when another workflow job might be processing the same object.


WebRequest​

  • Sends an HTTP/HTTPS request to the specified REQUEST_URL using the defined method and headers.
  • You can include optional content, manage cookies, handle SSL bypass, and capture the response.
  • Execution pauses until the response is received if AWAIT_RESPONSE is enabled.

⚙️ Parameters​

NameModeTypeDescription
REQUEST_URLStatic/DynamicStringThe full URL to send the request to
BYPASS_SSLStatic/DynamicBoolSkip SSL certificate verification
REQUEST_METHODStatic/DynamicStringHTTP method (GET, POST, PUT, DELETE, etc.)
REQUEST_HEADERStatic/DynamicDictionary<String, String>Custom headers to include in the request
COOKIE_STOREStatic/DynamicDictionary<String, String>Optional cookie values to send
REQUEST_CONTENT_TYPEStatic/DynamicStringContent-Type of the request payload (e.g., application/json)
DATA_TO_SENDStatic/DynamicStringPayload data to send (used for POST, PUT, etc.)
AWAIT_RESPONSEStatic/DynamicBoolWait for a response before proceeding
READ_RESPONSE_MESSAGEStatic/DynamicBoolRead the response body into a variable
TIMEOUT_MILLISStatic/DynamicIntTimeout in milliseconds for the request
RANGE_OK_RESPONSESStatic/DynamicStringComma-separated range of HTTP codes considered successful
COUNT_RETRIESStatic/DynamicIntNumber of retry attempts on failure
RETRY_WAIT_MILLISStatic/DynamicIntDelay between retries in milliseconds
RESULT_VARStaticStringVariable name to store the response body
RESPONSE_HEADERStaticStringVariable name to store the response headers
info

Automatic User-Agent Header:

All outgoing HTTP requests from the WebRequest action automatically include a User-Agent header. By default, this value is set by the system, but you can override it by setting the environment variable WORKFLOWPROCESSOR__WEBREQUESTUSERAGENT.


WebRequest3​

warning

Deprecated: The WebRequest3 action is deprecated and may be removed in a future release. Use the standard WebRequest action for all new workflows and migrate existing usage where possible.

  • Sends a synchronous HTTP request to the specified REQUEST_URL using a defined method.
  • Supports custom headers, optional cookies, and payload data.
  • Lightweight version of the standard HTTP request, ideal for simpler integrations.

⚙️ Parameters​

NameModeTypeDescription
REQUEST_URLStatic/DynamicStringFull endpoint to send the request to
REQUEST_METHODStatic/DynamicStringHTTP method (GET, POST, PUT, DELETE, etc.)
COOKIEStatic/DynamicStringOptional cookie string
HEADER_ITEMSStatic/DynamicDictionary<String, String>Dictionary of headers to add dynamically
HEADER_NAME1Static/DynamicStringStatic header key #1
HEADER_VALUE1Static/DynamicStringStatic header value #1
HEADER_NAME2Static/DynamicStringStatic header key #2
HEADER_VALUE2Static/DynamicStringStatic header value #2
HEADER_NAME3Static/DynamicStringStatic header key #3
HEADER_VALUE3Static/DynamicStringStatic header value #3
REQUEST_CONTENT_TYPEStatic/DynamicStringContent-Type of the request (e.g., application/json)
DATA_TO_SENDStatic/DynamicStringPayload body to send in the request
AWAIT_RESPONSEStatic/DynamicBoolWait for the response before continuing
READ_RESPONSE_MESSAGEStatic/DynamicBoolStore the response body in a variable
TIMEOUT_MILLISStatic/DynamicIntTimeout in milliseconds
RANGE_OK_RESPONSESStatic/DynamicStringComma-separated HTTP status code ranges to treat as successful
RESULT_VARStaticStringVariable to store the response message
RESPONSE_HEADERStaticStringVariable to store the response headers

While​

Continuously executes its child steps as long as the provided boolean expression evaluates to true. The condition is checked before each iteration.

⚙️ Parameters​

NameModeTypeDescription
EXPRESSIONDynamicBoolA boolean expression to evaluate before each loop

XPath​

Executes an XPath query on an XML string stored in a variable and stores the result in the specified output variable.

⚙️ Parameters​

NameModeTypeDescription
XPATHDynamicStringThe XPath expression to apply on the XML data
SOURCE_VARDynamicStringVariable containing the XML string to query
RESULT_VARStaticStringVariable where the query result will be stored
info
  • Supports standard XPath syntax for navigating and extracting XML content.
  • If the XPath expression matches multiple nodes, the result will contain them all as a single string (concatenated or list-like depending on implementation).
  • If no match is found, the result may be an empty string or null depending on the environment.