Node Reference¶
Two custom nodes are available for working with Lime CRM.
Lime CRM Node¶
The main action node for reading and writing data in Lime CRM. It exposes three resource groups:
Data Resource¶
| Operation | Description |
|---|---|
createSingleObject |
Create one CRM record |
getSingleObject |
Fetch one record by ID |
updateSingleObject |
Update one record by ID |
deleteSingleObject |
Delete one record by ID |
getManyObjects |
Query records with filtering, sorting, and pagination |
getSingleFile |
Download a file attachment |
bulkCreateManyObjects |
Bulk-create many records (alpha) |
bulkUpdateManyObjects |
Bulk-update many records (alpha) |
bulkCreateOrUpdateManyObjects |
Bulk upsert (alpha) |
Metadata Resource¶
| Operation | Description |
|---|---|
getAllLimetypes |
List all entity types available in this CRM instance |
getSingleLimetype |
Inspect the schema for one entity type (properties, options, relations) |
getSingleFileMetadata |
Get file metadata without downloading the binary |
Admin Resource¶
| Operation | Description |
|---|---|
getManyUsers |
List CRM users (coworkers) |
getSingleUser |
Get one user by ID |
Data Operations in Detail¶
createSingleObject¶
Creates one record in the specified Limetype.
Parameters:
| Parameter | Description |
|---|---|
| Limetype | The entity type to create (for example company, deal) |
| Input method | fields (use the UI form) or json (provide a JSON object) |
| Properties | The field values to set |
Example — JSON input mode:
getSingleObject¶
Fetches one record by its _id.
Parameters:
| Parameter | Description |
|---|---|
| Limetype | The entity type |
| Object ID | The record _id (integer) |
Output: The full record object including all properties and relation IDs.
updateSingleObject¶
Updates one record by its _id. Note that the parameter names differ from createSingleObject.
Parameters:
| Parameter | Description |
|---|---|
| Limetype | The entity type |
| ID | The record _id to update |
| Input type | fields or json |
| JSON data | The fields to update (only changed fields are needed) |
getManyObjects¶
Queries records with optional filtering, sorting, and pagination.
Parameters:
| Parameter | Description |
|---|---|
| Limetype | The entity type |
| Query filter | Lime Query DSL filter object |
| Order by | Property name(s) to sort by |
| Limit | Maximum records to return. Set 0 for unlimited (auto-batches in chunks of 200). Default: 50 |
| Properties | Automatically includes _id |
Filter format:
Filters use the Lime Query DSL. A simple filter has three fields:
Compound filters use AND or OR with an array of expressions:
{
"op": "AND",
"exp": [
{ "key": "inactive", "op": "=", "exp": false },
{ "key": "city", "op": "=", "exp": "Stockholm" }
]
}
Filter operators:
| Operator | Meaning |
|---|---|
= |
Equals |
!= |
Not equals |
>, >= |
Greater than / greater than or equal |
<, <= |
Less than / less than or equal |
=? |
Begins with |
IN |
Value is in a list |
AND, OR |
Combine multiple expressions |
! |
Negate an expression |
System fields available on all Limetypes:
| Field | Type | Description |
|---|---|---|
_id |
integer | Unique record identifier |
_timestamp |
ISO 8601 datetime | Last modified time — use this to filter records changed since a given point in time |
_created |
ISO 8601 datetime | Record creation time |
Use _timestamp in scheduled sync workflows to fetch only records changed since the last run.
Bulk Operations (alpha)¶
Warning
All bulk operations are in alpha status and require an additional package to be activated on the Lime CRM instance. Contact Lime support or your instance administrator to enable bulk operations.
Warning
Bulk operations bypass the entire application layer — Python business logic, Lime Automations, webhooks, and sql-on-update hooks do not fire. Only use bulk operations when this is intentional (for example, large data migrations).
bulkCreateOrUpdateManyObjects — upsert example:
{
"limetype": "company",
"matchingProperty": "orgnumber",
"properties": [
{ "orgnumber": "556000-0000", "name": "Acme Corp", "city": "Stockholm" },
{ "orgnumber": "556000-0001", "name": "Beta AB", "city": "Gothenburg" }
]
}
The matchingProperty is the unique field used to decide whether to create or update. It must be unique across records.
Return value:
{
"jobId": "abc123",
"status": "succeeded",
"summary": {
"total": 2,
"created": 1,
"updated": 1,
"skipped": 0,
"failed": 0
}
}
Decision guide — bulk vs individual operations:
| Volume | Business logic must fire? | Use |
|---|---|---|
| < 10 records | Any | Individual CRUD |
| 10–10 000+ records | No | Bulk operations |
| Any volume | Yes | Individual CRUD with upsert pattern |
Lime CRM Trigger¶
Starts a workflow when a CRM record is created, updated, or deleted.
Parameters:
| Parameter | Description |
|---|---|
| Credential | LimeCrmApi credential |
| Limetype | The entity type to watch |
| Events | One or more of: Object created, Object updated, Object deleted |
Webhook payload structure:
For a new event, values contains all field values of the created record:
{
"body": {
"event": "deal.new",
"body": {
"id": 42,
"limetype": "deal",
"values": {
"name": "Acme renewal",
"probability": 80,
"status": "pipeline"
}
}
}
}
For an update event, values still contains all current field values. original_values contains only the previous values of fields that changed:
{
"body": {
"event": "deal.update",
"body": {
"id": 42,
"limetype": "deal",
"values": {
"name": "Acme renewal",
"probability": 80,
"status": "pipeline"
},
"original_values": {
"probability": 60
}
}
}
}
Key access expressions:
| Data | Expression |
|---|---|
| Event type | {{ $json.body.event }} |
| Record ID | {{ $json.body.body.id }} |
| Limetype | {{ $json.body.body.limetype }} |
| Field value (current) | {{ $json.body.body.values.fieldName }} |
| Field value (before update) | {{ $json.body.body.original_values.fieldName }} |
Notes:
- The trigger payload includes all field values — you do not need to follow every trigger with
getSingleObject. Fetch the full object only when you need data from a related record (for example, the company linked to a deal). - The webhook subscription is created automatically when you activate the workflow and deleted when you deactivate it.
- The trigger requires a publicly accessible URL — it does not work in local development without a tunnel.
For credential configuration, see Credential Setup.