Upsert Row(s)
Estimated reading: 3 minutes
The Upsert Row(s) component updates existing records or inserts new rows into a DataTable depending on matching criteria. It checks the target table against defined conditions: if a match exists, it updates specified columns; if no match is found, it automatically appends a new row with the provided values.
a. Conditional Insertion/Update: Prevents duplicate records by combining lookup and write operations into a single execution step.
b. Dynamic Mapping: Accepts static strings or global variables for every column parameter.
c. Flexible Matching: Supports up to 50 combined logical condition sets to accurately identify existing records.
Parameters
| Parameter | Description | Behavior |
|---|---|---|
| DataTable* | Specifies the target DataTable where rows will be updated or inserted. | Evaluates this DataTable against the defined conditions to decide whether to update an existing row or insert a new one. |
| Columns to Upsert* | Defines the column names and values used to update existing rows or populate new rows when no match is found. | Generates individual input fields for each column in the DataTable (e.g., Name, Date). Accepts manual string inputs or dynamic global variables. |
| Must Match* | Determines how the defined conditions are evaluated when identifying existing rows. |
All Conditions (AND) – Considers a row a match only if all specified conditions are satisfied.
Any Condition (OR) – Considers a row a match if at least one condition is satisfied. |
| Number of Conditions | Specifies the total count of comparison rules (0–50) used to check for matching rows. | Dynamically displays that many condition row sets (Column Name, Condition, and Value Text). |
| Column Name (per condition) | Specifies the column in the DataTable to evaluate for that condition. | Identifies the row as a match based on the value found in this specific column. |
| Condition (per condition) | Defines the logical criterion to apply against the specified column value. | Evaluates match conditions (e.g., Equals, Contains, Greater Than). |
| Value Text (per condition) | Specifies the baseline value to compare against the column. | Evaluates cell content against this input using the selected condition operator. (Note: Text comparisons are case-sensitive.) |
| Parameter | Description |
|---|---|
| Timeout (seconds) | Maximum wait time for the download request to complete before the operation times out. Default: 30 seconds. |
| Retry count | The number of automated download attempts if the initial request fails. |
| Delay between retries (s) | Wait time between consecutive retry attempts. Default: 1 second. |
| Delay before execution (s) | Time to wait before the component starts processing. Default: 0 seconds. |
| Delay after execution (s) | Time to wait after the component finishes processing. Default: 0 seconds. |
| Continue on Error |
Determines the behavior when an unrecoverable error occurs:
Stop Workflow – Halts workflow execution. Continue – Skips this step and continues without passing the error downstream. Continue Using Error Output – Continues execution and routes error details through the error output handle. |
Output
| Output | Description |
|---|---|
| Output | Returns the overall operation result in JSON format, indicating whether rows were updated or inserted for downstream workflow steps. |
| DataFrame | Returns the updated DataTable in a structured tabular format for further processing within the workflow. |