Data Sets
Learn how to create and manage Data Sets in Harmony, structured tables used to store and reuse data across workflows, service catalog forms, and Slack integrations.
Path: Settings → Data Sets
What are Data Sets?
Data Sets are structured tables that let you store and manage rows of data directly in Harmony. Think of them as spreadsheets built into the platform. Each Data Set has typed columns you define and rows you populate, either manually or through workflows.
Once created, a Data Set can be used across Harmony:
Workflows can query, insert, update, delete, and bulk upsert rows as part of automation steps.
Service catalog forms can pull a dataset's rows to populate dropdown options dynamically.
Slack modals can surface dataset rows as searchable select options for employees.
Custom fields on assets, employees, and applications can reference dataset values through data set selector fields.
Custom Agents can reference datasets to bring structured business data into agent workflows.
Managing Data Sets
Data Sets are managed from Settings → Data Sets. From this page you can create new datasets, view existing ones, and open any dataset to manage its columns and rows.
Creating a Data Set
Go to Settings → Data Sets and click New Data Set.
Enter a name (must be unique) and an optional description.
Add columns to define the structure (see Managing Columns below).
Click Save to create the dataset.
Managing Columns
Each column has a name, a type, and optional settings for whether it is required and whether it has a default value.
Text
Any string value
Number
Numeric values
Boolean
True / False
Date
Date values
Email addresses
URL
Web links
Employee
A reference to a Harmony employee
You can add, rename, and reorder columns at any time. Deleting a column hides it from view but does not erase the data already stored in existing rows. This keeps historical records intact.
Managing Rows
Open a Data Set to view and edit its rows in a table view. You can:
Add rows manually by clicking Add Row and filling in the fields.
Edit rows inline by clicking a cell.
Delete rows individually using the row menu.
Import rows in bulk by uploading a CSV file (up to 1,000 rows at a time).
Display Column
Each Data Set has a display column: the column whose value is shown as the human-readable label when the dataset is used in a dropdown (e.g. in a Slack modal, service catalog form, or data set selector custom field). You can set this in the dataset settings. If no display column is set, Harmony defaults to the first column in the table.
When a data set selector custom field is configured, you can also override the display column at the field level, so different uses of the same dataset can surface the most meaningful label for their context.
Using Data Sets in Workflows
The workflow block library includes blocks for interacting with Data Sets. Find them under the Data Sets category when adding a step to your workflow.
Query Data Set
Looks up rows from a dataset based on filters you define. Use this to retrieve data during a workflow, for example, finding the approver for a given department.
Configure filters using any column (e.g. "department equals Engineering")
Combine multiple filters with All (AND) or Any (OR) logic
Set a limit on how many rows to return (up to 100; defaults to 1)
The block outputs the matching rows and a
first_rowshortcut for single-lookup cases
Insert Data Set
Adds a new row to a dataset. Use this to write data from a workflow, for example, logging a completed action or recording a form submission.
Map workflow values to dataset columns
The block outputs the newly created row
Update Data Set
Updates all rows that match a set of filters. Use this to keep dataset records in sync, for example, marking an employee's status as inactive after offboarding.
Define filters to target the right rows
Provide the new values to write
The block reports how many rows were updated and surfaces any errors
Delete Data Set
Deletes all rows that match a set of filters.
Define filters to target the rows to remove
Optionally cap the number of rows deleted
The block reports how many rows were deleted
Bulk Upsert Data Set
Inserts or updates multiple dataset records in a single workflow step. Use this when you need to keep a dataset in sync as part of an automated workflow that processes batches of records - for example, syncing a list of tickets, contacts, or any other structured data your agents rely on.
Define the column to match on when deciding whether to insert or update each record
Map workflow values to dataset columns for each record in the batch
Removes the need to chain individual insert or update steps together, making bulk operations significantly faster to build and maintain
Using Data Sets in Service Catalog Forms
When building a service catalog form, you can configure a dropdown field to pull its options directly from a Data Set. The form will always show the current rows in the dataset, so you can update the available choices at any time without editing the form itself.
The value shown in each dropdown option comes from the dataset's display column.
Cascading Filters on Data Set Selector Fields
You can configure cascading filters on data set selector fields in the Service Catalog form builder. This means the options shown in a data set dropdown can be automatically narrowed down based on the value a user selects in another field on the same form - keeping choices relevant and reducing noise.
You can add multiple cascading filter rules to a single field. All active filters are applied simultaneously using AND logic, so only options that satisfy every rule are shown. Each filter rule includes the following settings:
Filter column: choose which column in the dataset to filter on
Source field: select another form field whose runtime value drives the filter
Match operator: choose between equals or contains to control how the comparison is made
You can add and remove filter rules freely. Filtering is applied automatically when the form is rendered, with no additional configuration needed beyond defining the rules.
Using Data Sets in Slack
When a workflow presents a select menu in a Slack modal, you can point it at a Data Set to populate the options. Employees can type to search through the options live. Up to 100 options are shown at a time.
The label for each option in the list comes from the dataset's display column.
You can also use a data set selector field in Service Catalog form modals presented directly in Slack. When filling out a catalog form in Slack, users can search and select from dataset rows using a typeahead-backed dropdown without leaving the conversation. This gives catalog form builders a consistent, searchable experience for both data set selector and asset selector fields in Slack.
Using Data Sets as Custom Fields
You can add data set selector custom fields to assets, employees, and applications from Field Management settings. This gives you a consistent, dynamic field type across all your entity management workflows - not just service catalog forms.
Configuring a Data Set Selector Custom Field
When setting up a data set selector custom field, you can define the following options:
Dataset: choose which dataset the field draws its values from
Allow multiple: permit users to select more than one value
Cascading filters: filter available options based on other field values on the same record
Display column: specify which column from the dataset is shown to users
Values entered into these fields are validated against the referenced dataset, ensuring data integrity across entities.
Editing Data Set Selector Values on Entity Pages
Once a data set selector custom field is added to an entity type, users can select and update values directly on asset, employee, and application detail pages using the full dropdown UI. Inline editing is supported on all entity detail pages.
Using Data Sets in Custom Agents
You can reference Data Sets inside your Custom Agents to bring structured business data - such as product catalogs, account lists, or any custom records - into your agent workflows without relying on external systems.
Custom Agents support full CRUD operations on datasets, columns, and rows, including bulk updates. The Employee column type lets you link dataset records directly to members of your team, making it easy to build agent workflows that incorporate people data alongside other structured records.
Common Use Cases
Approver routing table
Create a dataset with columns for Department and Approver Email. In your approval workflow, add a Query Data Set step that filters by the ticket's department and returns the matching approver. Use that email to route the approval request without hardcoding any values.
Audit log
Add an Insert Data Set step at the end of a workflow to record what happened, including who triggered it, what action was taken, and when. The dataset builds up a running log you can review in the Data Sets UI or export.
Dynamic Slack dropdowns
Create a dataset of office locations with columns for City and Country. Point a Slack select field at it. When a new office opens, just add a row to the dataset and the Slack dropdown updates automatically without any workflow changes.
Cascading location selector
Create a dataset with columns for Country and City. Add two fields to a service catalog form - one for Country and one for City. Configure a cascading filter on the City field so it only shows cities that match the selected Country. This keeps the options focused and reduces the chance of mismatched selections.
Bulk syncing records via workflow
Use the Bulk Upsert Data Set block to keep a dataset in sync as part of a scheduled or triggered workflow. For example, when a batch of onboarding tickets is processed, upsert all the relevant employee records into a tracking dataset in a single step rather than looping through individual inserts.
Things to Know
Deleting a column does not delete existing data. The column is hidden from the table view and no longer appears in workflows or forms, but the values already stored in rows are preserved behind the scenes.
Dataset names must be unique. You cannot have two datasets with the same name. If you need to organize datasets, consider including a prefix in the name (e.g. "HR - Approvers", "IT - Office Locations").
Bulk imports are capped at 1,000 rows. If you need to import more, split the data into multiple CSV files.
Workflow operations on large datasets are capped at 10,000 rows. Update and Delete workflow blocks process up to 10,000 matching rows per run. If your dataset is larger than this, use the limit setting on the block to control scope.
The display column affects all dropdowns. Whichever column is set as the display column will be used as the label in every Slack modal, service catalog form, and data set selector custom field that references this dataset - unless overridden at the field level. Make sure it contains a value that is meaningful to end users.
Cascading filters use AND logic. When multiple cascading filter rules are configured on a single field, all rules must be satisfied for an option to appear. There is no OR logic between rules.
Data set selector custom fields are validated against the dataset. Values stored in data set selector custom fields on assets, employees, and applications must exist in the referenced dataset, keeping your entity data consistent.
Last updated
Was this helpful?
