Skip to content

Node Reference

Custom nodes are available for working with the Lime CRM:

Node Type Purpose Credential
Lime CRM Action Read and write CRM data Lime CRM API
Lime CRM Trigger Trigger Start a workflow on a CRM record event Lime CRM API
Lime CRM Forms Trigger Trigger Start a workflow when a Lime Forms form is submitted Lime CRM Forms API
Lime CRM Marketing Action Send transactional email and SMS via Lime Marketing Lime CRM Marketing API

For credential configuration of all three, see Credential Setup.

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:

{
  "name": "Acme Corp",
  "orgnumber": "556000-0000",
  "phone": "+46701234567"
}

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:

{
  "key": "dealstatus",
  "op": "=",
  "exp": "won"
}

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 publish the workflow and deleted when you unpublish it.
  • The trigger requires a publicly accessible URL — it does not work in local development without a tunnel.

Lime CRM Forms Trigger

Starts a workflow when a form is submitted in Lime Forms. Uses the Lime CRM Forms API credential.

Parameters:

Parameter Description
Credential Lime CRM Forms API credential
Trigger Name A name for this webhook subscription (for example my-lime-webhook)
Form to monitor The Lime Form whose submissions should start the workflow. Choose from the list, or supply a form ID with an expression.

How it works:

  • When you activate the workflow, the node registers an observable webhook in Lime Forms for the selected form (action FORM_SUBMITTED), pointing at the workflow's webhook URL. A unique signing secret is generated per subscription.
  • On each submission, Lime Forms POSTs to the webhook. The node verifies the x-signature header (HMAC-SHA256) against the stored secret and rejects the event if the signature does not match.
  • The subscription is created when the workflow is activated and removed when it is deactivated. If a duplicate subscription already exists, it is recreated with a fresh secret.

Output:

The node emits the submission's data object — the fields captured by the form. The exact shape depends on how the form is configured, so inspect the node's output panel to see the available fields for your form.

Notes:

  • Only form submissions are supported today (FORM_SUBMITTED).
  • Like the Lime CRM Trigger, it requires a publicly accessible URL and does not work in local development without a tunnel.

Lime CRM Marketing

Sends transactional email and SMS through the Lime Marketing API. Uses the Lime CRM Marketing API credential. This node can also be used as an AI agent tool.

It exposes two resources, each with a single Send operation:

Resource Operation Sends to
Email Send transactionmail/sendtemplate (template) or transactionmail/send (custom HTML / plain text)
SMS Send transactionsms/send

Tip

Set On ErrorContinue (using error output) in the node's Settings tab to route failed sends down a separate branch. The error output exposes the API message as {{ $json.error }}.

Email → Send

Core parameters:

Parameter Description
Content Type Lime Marketing Template, Custom HTML, or Plain Text
Template (Template content type) The Lime Marketing template to send — chosen from a dropdown of available templates
HTML Content (Custom HTML content type) Raw HTML body
Text Content (Plain Text content type) Plain text body
From Name Sender display name
From Email Required. Sender address — the domain must be verified in Lime Marketing
Recipient Name Recipient display name
Recipient Email Required. Recipient address
Subject Email subject line
Track Openings Track when the recipient opens the email
Track Link Clicks Track when the recipient clicks links

Merge codes:

Merge codes substitute values into the template or content. Choose the input method:

  • Fields — for templates, each merge code in the selected template is listed for you to fill in; for custom HTML/plain text, add merge code/value pairs manually.
  • JSON — provide an object mapping each merge code (with braces) to its value, for example { "{{firstname}}": "John" }.

Attachments:

Add one or more attachments by referencing the binary property name on the incoming item (for example data, set by an upstream HTTP Request or Read Binary File node). Optionally provide a File Name Override (including extension) when the upstream binary has no filename.

Additional Options:

Option Description
Sender Name / Sender Email Display name and address shown as the sender (email must be on a verified domain)
Reply-To Address recipients reply to
Scheduled Send Date When to send; leave empty to send immediately
External ID Your own identifier for tracking this email
Exclude Publication Opt-Outs Skip recipients who opted out of this publication
Exclude Total Opt-Outs Skip recipients who opted out of all email
Exclude Previously Bounced Skip recipients whose previous emails bounced
Link Base URL Base URL for click-tracked links
Include Email Data In Webhook Payload Include the full email body in delivery webhooks
Headers Custom email headers (name/value pairs)

SMS → Send

Parameter Description
From Number Required. Alphanumeric sender ID shown to the recipient (2–11 characters)
Destination Number Required. Recipient phone number in international format, starting with +
Text Required. The SMS body. Use merge codes like {{firstname}} and provide values below.
Merge Code Mapping Merge code values, supplied via Fields (name/value pairs) or JSON

Additional Options:

Option Description
Delivery Timeout Hours How long (0–168) the provider keeps retrying delivery before giving up
Max Parts Maximum number of SMS segments the message may split into
Scheduled Send Date When to send; leave empty to send immediately

For credential configuration, see Credential Setup.