Skip to main content

Uniqs Actions

Uniqs actions prevent duplicate processing by recording the values a workflow has already handled. This is essential for implementing the Do-once Pattern in your workflows.

The node splits this across two resources: Uniq works with the values inside a collection, Uniq Collection works with the collections themselves.

Available Operations​

Uniq​

  • Add - Add a value to a Uniq collection, with a separate output for duplicates
  • Check Exists - Check whether a value is already in the collection
  • Get - Retrieve the values stored in a collection
  • Remove - Remove a value from a collection

Uniq Collection​

  • Create - Create a new empty Uniq collection
  • List - Retrieve all Uniq collections available to your app
  • Get Info - Get details about a specific collection

Add​

Add a value to a Uniq collection.

Add Configuration​

ParameterTypeRequiredDescription
Collection NameStringYesName of the Uniq collection holding the values. Letters, numbers, hyphens and underscores only, maximum 100 characters.
Uniq ValueStringYesThe value to check, add, or remove from the Uniq collection. Can be any string up to 255 characters (e.g., email, user ID, domain name).

Under Advanced Settings:

ParameterTypeRequiredDescription
MetadataJSONNoOptional JSON metadata to associate with this Uniq value. Useful for tracking additional information about the value.

The collection must already exist. Create it with Uniq Collection → Create, or from the dashboard.

Add Outputs​

Add has two outputs. Added receives values stored for the first time; Duplicate receives values that were already in the collection, together with the existing record. Wire the Duplicate output when you want to skip or log repeats; leave it unwired when repeats can simply stop.

With Continue on fail enabled, items that fail (an empty value, invalid metadata, or a server error) go to the second output with an error field. They never appear on Added.

Values are trimmed and compared case-sensitively: "Abc" and "abc" are two different entries.

Add Response​

On the Added output:

{
"id": "value123",
"uniqId": "uniq123",
"value": "ORDER_12345",
"createdAt": "2024-01-01T10:00:00.000Z",
"updatedAt": "2024-01-01T10:00:00.000Z"
}

On the Duplicate output, the record already stored for that value, or { "value": "ORDER_12345" } when the server did not return it.

Use Cases​

  • Order Processing: Mark orders as processed
  • Email Deduplication: Track sent emails
  • File Processing: Mark files as processed
  • Data Import: Track imported records

Check Exists​

Check whether a value is already in the collection.

Check Exists Configuration​

ParameterTypeRequiredDescription
Collection NameStringYesName of the Uniq collection holding the values. Letters, numbers, hyphens and underscores only, maximum 100 characters.
Uniq ValueStringYesThe value to check, add, or remove from the Uniq collection. Can be any string up to 255 characters (e.g., email, user ID, domain name).

Under Additional Fields:

ParameterTypeRequiredDescription
Include Uniq DataBooleanNoWhether to include additional metadata about the Uniq value in the output. Defaults to false.
Uniq Data Field NameStringNoThe field name where Uniq metadata will be stored in the output JSON. Defaults to 8kit.

Check Exists Outputs​

Check Exists has two outputs. Yes receives items whose value is already in the collection; No receives items whose value is not. There is no exists flag to test: the branch is the answer.

Check Exists Response​

The incoming item passes through unchanged. With Include Uniq Data on, the stored record is added under the field named by Uniq Data Field Name:

{
"orderId": "ORDER_12345",
"8kit": {
"id": "value123",
"uniqId": "uniq123",
"value": "ORDER_12345",
"createdAt": "2024-01-01T10:00:00.000Z",
"updatedAt": "2024-01-01T10:00:00.000Z"
}
}

Use Cases​

  • Duplicate Prevention: Check before processing
  • Status Verification: Verify if item was processed
  • Conditional Logic: Branch on the Yes and No outputs
  • Audit Trails: Track processing history

Remove​

Remove a value from a collection.

Remove Configuration​

ParameterTypeRequiredDescription
Collection NameStringYesName of the Uniq collection holding the values. Letters, numbers, hyphens and underscores only, maximum 100 characters.
Uniq ValueStringYesThe value to check, add, or remove from the Uniq collection. Can be any string up to 255 characters (e.g., email, user ID, domain name).

Remove Response​

The incoming item passes through, with the outcome added:

{
"orderId": "ORDER_12345",
"removed": true,
"value": "ORDER_12345",
"result": {}
}

Use Cases​

  • Data Cleanup: Remove old entries
  • Status Updates: Mark items as unprocessed
  • Error Recovery: Remove failed items
  • Manual Overrides: Allow reprocessing

Get​

Retrieve the values stored in a collection.

Get Configuration​

ParameterTypeRequiredDescription
Collection NameStringYesName of the Uniq collection holding the values. Letters, numbers, hyphens and underscores only, maximum 100 characters.

Under Advanced Settings → Pagination:

ParameterTypeRequiredDescription
PageNumberNoPage number to retrieve (starts from 1).
Items Per PageNumberNoMaximum number of Uniq values to return per page (1-100).
Offset (Advanced)NumberNoNumber of items to skip from the beginning.

Set none of the three and the node reads every page and returns the whole collection. Set any of them and it returns exactly that page.

Get Response​

{
"items": [
{
"id": "value123",
"uniqId": "uniq123",
"value": "ORDER_12345",
"createdAt": "2024-01-01T10:00:00.000Z",
"updatedAt": "2024-01-01T10:00:00.000Z"
}
],
"pagination": {
"page": 1,
"limit": 1,
"totalCount": 1,
"totalPages": 1
}
}

Use Cases​

  • Audit Reports: List all processed items
  • Data Analysis: Analyze processing patterns
  • Cleanup Operations: Identify old entries
  • Monitoring: Track collection growth

Create​

Create a new empty Uniq collection. Found under the Uniq Collection resource.

Create Configuration​

ParameterTypeRequiredDescription
Collection NameStringYesName of the Uniq collection to create or read. Letters, numbers, hyphens and underscores only, maximum 100 characters.

Under Additional Fields:

ParameterTypeRequiredDescription
DescriptionStringNoOptional human-readable description explaining the purpose of this Uniq collection.

Create Response​

{
"id": "uniq123",
"name": "processed-orders",
"description": "Track processed order IDs to prevent duplicates",
"appId": "app123",
"createdAt": "2024-01-01T10:00:00.000Z",
"updatedAt": "2024-01-01T10:00:00.000Z"
}

List​

Retrieve all Uniq collections available to your app. Found under the Uniq Collection resource.

List Configuration​

No required parameters.

Under Advanced Settings → Pagination:

ParameterTypeRequiredDescription
PageNumberNoPage number to retrieve (starts from 1).
Items Per PageNumberNoMaximum number of Uniq collections to return per page (1-100).
Offset (Advanced)NumberNoNumber of items to skip from the beginning.

Set none of the three and the node reads every page.

List Response​

{
"items": [
{
"id": "uniq123",
"name": "processed-orders",
"description": "Track processed order IDs to prevent duplicates",
"appId": "app123",
"createdAt": "2024-01-01T10:00:00.000Z",
"updatedAt": "2024-01-01T10:00:00.000Z"
}
],
"pagination": {
"page": 1,
"limit": 1,
"totalCount": 1,
"totalPages": 1
}
}

Get Info​

Get details about a specific collection. Found under the Uniq Collection resource.

Get Info Configuration​

ParameterTypeRequiredDescription
Collection NameStringYesName of the Uniq collection to create or read. Letters, numbers, hyphens and underscores only, maximum 100 characters.

Get Info Response​

{
"id": "uniq123",
"name": "processed-orders",
"description": "Track processed order IDs to prevent duplicates",
"appId": "app123",
"createdAt": "2024-01-01T10:00:00.000Z",
"updatedAt": "2024-01-01T10:00:00.000Z"
}

Common Patterns​

Do-once Pattern​

Implement the do-once pattern to prevent duplicate processing. There are two ways to write it.

The short version uses Add alone, because it already tells duplicates apart:

Add
Collection Name: processed-orders
Uniq Value: {{ $json.orderId }}

Added output → process the order
Duplicate output → nothing, or log

The longer version checks first, which is what you want when the processing step must happen before the value is recorded:

Step 1: Check Exists
Collection Name: processed-orders
Uniq Value: {{ $json.orderId }}

Step 2: (No output) process the order

Step 3: Add
Collection Name: processed-orders
Uniq Value: {{ $json.orderId }}
Advanced Settings → Metadata: {"processedAt": "{{ $now }}"}

Batch Processing​

Process multiple items efficiently:

  1. Get the collection to see what has already been processed
  2. Filter out those values from your batch
  3. Process only the rest
  4. Add each one after processing

Examples​

Email Deduplication​

Prevent sending duplicate emails. Key the value on both the user and the email type:

Add
Collection Name: sent-emails
Uniq Value: {{ $json.userId }}-{{ $json.emailType }}
Advanced Settings → Metadata: {"sentAt": "{{ $now }}", "emailType": "{{ $json.emailType }}"}

Added output → send the email

File Processing​

Ensure files are processed only once, and reprocess a file whose contents changed:

Add
Collection Name: processed-files
Uniq Value: {{ $json.filename }}-{{ $json.fileHash }}

Order Processing​

Process orders exactly once:

Add
Collection Name: processed-orders
Uniq Value: {{ $json.orderId }}
Advanced Settings → Metadata: {"processedAt": "{{ $now }}", "status": "completed"}

Next Steps​

Ready to explore more actions? Check out:

  1. Lookups Actions - Map data between systems
  2. Locks Actions - Coordinate resource access
  3. Last Updated Actions - Enable incremental polling
  4. Complete Lookup-Uniq - Map and mark in one call
  5. App Info Actions - Read the app and check server health