Skip to main content

Lookups Actions

Lookups actions store ID mappings between two systems and read them back in either direction. This is essential for implementing the Data Mapping Pattern in your workflows.

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

Every mapping has a left side and a right side. Which system is which is your choice, but keep it consistent: the left of orders should always be the same system.

Available Operations​

Lookup​

  • Add - Create a mapping between a left value and a right value
  • Search - Find mappings by left value, right value, or partial text
  • Get All - Retrieve the mappings stored in a lookup
  • Remove - Delete a mapping

Lookup Collection​

  • Create - Create a new lookup collection
  • List - Retrieve all lookup collections available to your app

Add​

Create a mapping between a left value and a right value.

Add Configuration​

ParameterTypeRequiredDescription
Collection NameStringYesName of the lookup collection holding the mappings. Letters, numbers, hyphens and underscores only, maximum 100 characters.
Left ValueStringYesThe left-side value in the lookup mapping. Typically an ID from one system.
Right ValueStringYesThe right-side value in the lookup mapping. Typically the corresponding ID from another system.

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

Add Response​

{
"success": true,
"data": {
"id": "lookup_value123",
"lookupId": "lookup123",
"left": "ERP_CUST_123",
"right": "SHOPIFY_CUST_456",
"createdAt": "2024-01-01T10:00:00.000Z",
"updatedAt": "2024-01-01T10:00:00.000Z"
}
}

Find mappings by left value, right value, or partial text.

Search Configuration​

ParameterTypeRequiredDescription
Collection NameStringYesName of the lookup collection holding the mappings. Letters, numbers, hyphens and underscores only, maximum 100 characters.
Search TypeOptionsYesType of search to perform. "General Search" uses partial matching, while "Left/Right Value" require exact matches.
Search ValueStringYesThe value to search for. For "General Search" this will match partial text in both left and right values. For "Left/Right Value" this must match exactly.

Search Type offers:

OptionBehaviour
General SearchSearch both left and right values using partial matching (contains)
Left Value (Exact)Search by exact left value match
Right Value (Exact)Search by exact right value match

Search Response​

{
"success": true,
"searchType": "left",
"searchValue": "ERP_CUST_123",
"lookupName": "customer-mapping",
"results": [
{
"id": "lookup_value123",
"lookupId": "lookup123",
"left": "ERP_CUST_123",
"right": "SHOPIFY_CUST_456",
"createdAt": "2024-01-01T10:00:00.000Z",
"updatedAt": "2024-01-01T10:00:00.000Z"
}
],
"count": 1
}

A search that matches nothing is not an error: results is empty and count is 0. Branch on count to tell "mapping exists" from "needs creating".

Get All​

Retrieve the mappings stored in a lookup.

Get All Configuration​

ParameterTypeRequiredDescription
Collection NameStringYesName of the lookup collection holding the mappings. 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 lookup 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 lookup. Set any of them and it returns exactly that page.

Get All Response​

{
"items": [
{
"id": "lookup_value123",
"lookupId": "lookup123",
"left": "ERP_CUST_123",
"right": "SHOPIFY_CUST_456",
"createdAt": "2024-01-01T10:00:00.000Z",
"updatedAt": "2024-01-01T10:00:00.000Z"
}
],
"pagination": {
"page": 1,
"limit": 1,
"totalCount": 1,
"totalPages": 1
}
}

Remove​

Delete a mapping.

Remove Configuration​

ParameterTypeRequiredDescription
Collection NameStringYesName of the lookup collection holding the mappings. Letters, numbers, hyphens and underscores only, maximum 100 characters.
Value to RemoveStringYesThe lookup value ID, or a left or right value, depending on what the Remove By field is set to. Removing by a left or right value removes every matching row.
Remove ByOptionsNoWhat the Value to Remove field contains: a lookup value ID, a left value, or a right value. Defaults to Lookup Value ID.

Remove By offers Lookup Value ID, Left Value (all matching rows) and Right Value (all matching rows).

Remove Response​

The incoming item passes through, with the outcome added. Removing by ID:

{
"orderId": "12345",
"removed": true,
"removedCount": 1,
"value": "lookup_value123",
"result": {}
}

Removing by left or right value, where several rows can match:

{
"orderId": "12345",
"removed": true,
"removedCount": 3,
"left": "ERP_CUST_123"
}

removed is false and removedCount is 0 when nothing matched.

Create​

Create a new lookup collection. Found under the Lookup Collection resource.

Create Configuration​

ParameterTypeRequiredDescription
Collection NameStringYesName of the lookup 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 lookup collection.
Left SystemStringNoOptional identifier for the left-side system in the mapping (e.g., "Salesforce", "internal-db").
Right SystemStringNoOptional identifier for the right-side system in the mapping (e.g., "HubSpot", "external-api").
Allow Left DuplicatesBooleanNoWhether to allow duplicate values on the left side. Defaults to true.
Allow Right DuplicatesBooleanNoWhether to allow duplicate values on the right side. Defaults to true.
Allow Left-Right DuplicatesBooleanNoWhether to allow the same left-right pair to exist multiple times. Defaults to true.
Strict CheckingBooleanNoWhether to enforce strict validation rules when adding mappings. Defaults to false.

The three duplicate settings decide the shape of the relation. Turn Allow Left Duplicates off for a one-to-many mapping keyed on the left; turn both off for a strict one-to-one. They are enforced on Add, which fails with a 409 when a rule is broken.

Create Response​

{
"id": "lookup123",
"name": "customer-mapping",
"description": "Map customer IDs between ERP and Shopify",
"leftSystem": "erp",
"rightSystem": "shopify",
"appId": "app123",
"createdAt": "2024-01-01T10:00:00.000Z",
"updatedAt": "2024-01-01T10:00:00.000Z"
}

List​

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

List Configuration​

No required parameters.

Under Advanced Settings → Pagination:

ParameterTypeRequiredDescription
PageNumberNoPage number to retrieve (starts from 1).
Items Per PageNumberNoMaximum number of lookup 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": "lookup123",
"name": "customer-mapping",
"description": "Map customer IDs between ERP and Shopify",
"leftSystem": "erp",
"rightSystem": "shopify",
"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
}
}

Common Patterns​

Data Mapping Pattern​

Implement the data mapping pattern for system integration:

  1. Search for an existing mapping
  2. If count is 0, create the record in the target system
  3. Add the mapping so the next run finds it
Step 1: Search
Collection Name: customer-mapping
Search Type: Left Value (Exact)
Search Value: {{ $json.shopifyCustomerId }}

Step 2: (IF node on {{ $json.count }} equals 0) create the customer in the CRM

Step 3: Add
Collection Name: customer-mapping
Left Value: {{ $json.shopifyCustomerId }}
Right Value: {{ $json.crmCustomerId }}

When you also need to mark the source record as handled, do both writes in one call with Complete Lookup-Uniq.

Bidirectional Lookups​

The same collection reads in both directions. Only Search Type changes:

Forward, Shopify ID → CRM ID
Search Type: Left Value (Exact)
Search Value: shopify_12345

Reverse, CRM ID → Shopify ID
Search Type: Right Value (Exact)
Search Value: crm_67890

Errors​

Failures raise an error carrying the HTTP status from the server, for example 409 when a mapping breaks one of the collection's duplicate rules. With Continue on Fail enabled the item carries an error object with status, message, code and details instead of stopping the workflow.

Next Steps​

Ready to explore more actions? Check out:

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