Reference · Tools
Agile CRM
Manage contacts, companies, and deals in Agile CRM with full CRUD operations, dynamic filtering, and deal pipeline management.
The Agile CRM node lets you create, retrieve, update, and delete contacts, companies, and deals directly from a BusyBot workflow. You can, for example, automatically create a deal and set its milestone whenever a form submission arrives, or pull a filtered list of contacts and route them through an email sequence. Deals carry full pipeline fields — name, milestone, expected value, probability, and close date.
- Node type
- Action
- Parameters
- 55
- Outputs
- Output, Error
- Credentials
- Agile CRM API
Agile CRM
Manage contacts, companies, and deals in Agile CRM.
Overview
Agile CRM is a customer relationship management platform. This node works with three resources — contacts, companies and deals — and covers the full create, get, get many, update and delete cycle on each. Contact and company lists can be filtered dynamically, either by building conditions in the editor or by supplying raw JSON filter rules, and the results can be sorted, simplified and paginated. Deals carry their own pipeline fields: name, milestone, expected value, probability and close date.
Category: Marketing
Tool Name: agile_crm
Version: 1
Appearance: Icon: lucide-CircleDollarSign | Color: #64b9c4
Node Type
Action — processes input items and produces output
Input / Output
| Direction | Port(s) |
|---|---|
| Input | Input |
| Output | Output, Error |
Credentials
This tool requires Agile CRM API credentials. See the Credentials Guide for setup instructions.
Resources
| Resource | Value |
|---|---|
| Company | company |
| Contact | contact |
| Deal | deal |
Operations
The operation list depends on the resource you select.
Contact
| Operation | Value | Description |
|---|---|---|
| Create | create | Create a new contact |
| Delete | delete | Delete a contact |
| Get | get | Get a contact |
| Get Many | getAll | Get many contacts |
| Update | update | Update contact properties |
Company
| Operation | Value | Description |
|---|---|---|
| Create | create | Create a new company |
| Delete | delete | Delete a company |
| Get | get | Get a company |
| Get Many | getAll | Get many companies |
| Update | update | Update company properties |
Deal
| Operation | Value | Description |
|---|---|---|
| Create | create | Create a new deal |
| Delete | delete | Delete a deal |
| Get | get | Get a deal |
| Get Many | getAll | Get many deals |
| Update | update | Update deal properties |
Parameters
Contact: Create
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| JSON Parameters | boolean | No | false | Whether to pass all fields as raw JSON. |
Additional Fields (additionalFieldsJson) | json | No | — | Object of values to set as described in the Agile CRM contacts API. Supply it as a JSON string. (shown when JSON Parameters is true) |
Additional Fields (additionalFields) | collection | No | {} | Field values to set on the new contact. (shown when JSON Parameters is false) |
— Address (addressOptions) | fixedCollection | No | {} | Contact address. |
| — — Type | options | Yes | — | The kind of address. |
Options: home, postal, office | ||||
— — Address (address) | string | Yes | — | Full address. |
| — Company | string | No | — | Company name. |
— Email (emailOptions) | fixedCollection | No | {} | Contact email. |
| — — Type | options | Yes | — | The kind of email address. |
Options: work, personal | ||||
— — Email (email) | string | Yes | — | Email address. |
| — First Name | string | No | — | Contact first name. |
| — Last Name | string | No | — | Contact last name. |
| — Lead Score | number | No | — | Lead score of contact. |
| — Star Value | options | No | — | Rating of contact (Max value 5). |
Options: 0, 1, 2, 3, 4, 5 | ||||
— Phone (phoneOptions) | fixedCollection | No | {} | Contact phone numbers. |
| — — Type | options | Yes | — | The kind of phone number. |
Options: home, homeFax, main, mobile, other, work, workFax | ||||
| — — Number | string | Yes | — | Phone number. |
| — Tags | string | No | [] | Unique identifiers added to contact for easy management. Accepts several values. |
| — Title | string | No | — | Professional title. |
| — Website | fixedCollection | No | {} | Contact websites. |
| — — Type | options | Yes | — | The kind of website or profile link. |
Options: facebook, feed, flickr, github, googlePlus, linkedin, skype, twitter, url, xing, youtube | ||||
| — — URL | string | Yes | — | Website URL. |
| — Custom Properties | fixedCollection | No | {} | Custom properties to set on the contact. |
| — — Name | string | Yes | — | Property name. |
| — — Sub Type | string | No | — | Property sub type. |
| — — Value | string | No | — | Property value. |
Contact: Delete
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Contact ID | string | Yes | — | ID of contact to delete. Supports expressions. |
Contact: Get
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Contact ID | string | Yes | — | Unique identifier for a particular contact. Supports expressions. |
Contact: Get Many
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Return All | boolean | No | false | Whether to return all results or only up to a given limit. |
| Limit | number | No | 20 | Max number of results to return. (shown when Return All is false) |
| Filter | options | No | none | How to filter contacts. |
Options: none, manual (Build Manually), json | ||||
| Must Match | options | No | anyFilter | Whether any or all filter conditions must match. (shown when Filter is manual) |
Options: anyFilter (Any Filter), allFilters (All Filters) | ||||
| Simplify | boolean | No | false | Whether to return a simplified version of the response instead of the raw data. |
| Filters | fixedCollection | No | {} | Filter conditions to match contacts against. Add one row per condition. (shown when Filter is manual) |
| — Field | string | No | — | Any searchable field. |
| — Condition Type | options | No | EQUALS | How the field is compared to the value. |
Options: AFTER, BEFORE, BETWEEN, EQUALS, LAST, NOTEQUALS, ON | ||||
| — Value | string | No | — | The value to compare the field against. |
| — Value 2 | string | No | — | The second value, closing a range. (shown when Condition Type is BETWEEN) |
| Filters (JSON) | string | No | — | Raw JSON filter rules. See Agile CRM REST API docs for format. (shown when Filter is json) |
| Options | collection | No | {} | Extra options applied to the query. |
| — Sort | fixedCollection | No | [] | Sort the returned records. |
| — — Direction | options | No | ASC | The sorting direction. |
Options: ASC (Ascending), DESC (Descending) | ||||
| — — Field | string | No | — | The sorting field. |
Contact: Update
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Contact ID | string | Yes | — | Unique identifier for a particular contact. Supports expressions. |
| JSON Parameters | boolean | No | false | Whether to pass all fields as raw JSON. |
Additional Fields (additionalFieldsJson) | json | No | — | Object of values to set as described in the Agile CRM contacts API. Supply it as a JSON string. (shown when JSON Parameters is true) |
Additional Fields (additionalFields) | collection | No | {} | Field values to change on the contact. (shown when JSON Parameters is false) |
— Address (addressOptions) | fixedCollection | No | {} | Contact address. |
| — — Type | options | Yes | — | The kind of address. |
Options: home, office, postal | ||||
— — Address (address) | string | Yes | — | Full address. |
| — Company | string | No | — | Company name. |
— Email (emailOptions) | fixedCollection | No | {} | Contact email. |
| — — Type | options | Yes | — | The kind of email address. |
Options: work, personal | ||||
— — Email (email) | string | Yes | — | Email address. |
| — First Name | string | No | — | Contact first name. |
| — Last Name | string | No | — | Contact last name. |
| — Lead Score | number | No | — | Lead score of contact. |
| — Star Value | options | No | — | Rating of contact (Max value 5). |
Options: 0, 1, 2, 3, 4, 5 | ||||
— Phone (phoneOptions) | fixedCollection | No | {} | Contact phone numbers. |
| — — Type | options | Yes | — | The kind of phone number. |
Options: home, homeFax, main, mobile, other, work, workFax | ||||
| — — Number | string | Yes | — | Phone number. |
| — Tags | string | No | [] | Unique identifiers added to contact for easy management. Accepts several values. |
| — Title | string | No | — | Professional title. |
| — Website | fixedCollection | No | {} | Contact websites. |
| — — Type | options | Yes | — | The kind of website or profile link. |
Options: facebook, feed, flickr, github, googlePlus, linkedin, skype, twitter, url, xing, youtube | ||||
| — — URL | string | Yes | — | Website URL. |
| — Custom Properties | fixedCollection | No | {} | Custom properties to set on the contact. |
| — — Name | string | Yes | — | Property name. |
| — — Sub Type | string | No | — | Property sub type. |
| — — Value | string | No | — | Property value. |
Company: Create
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| JSON Parameters | boolean | No | false | Whether to pass all fields as raw JSON. |
Additional Fields (additionalFieldsJson) | json | No | — | Object of values to set as described in the Agile CRM companies API. Supply it as a JSON string. (shown when JSON Parameters is true) |
Additional Fields (additionalFields) | collection | No | {} | Field values to set on the new company. (shown when JSON Parameters is false) |
— Address (addressOptions) | fixedCollection | No | {} | Company address. |
| — — Type | options | Yes | — | The kind of address. |
Options: postal, office | ||||
— — Address (address) | string | Yes | — | Full address. |
— Email (email) | string | No | — | Company email. |
| — Name | string | No | — | Company name. |
— Phone (phone) | string | No | — | Company phone. |
| — Star Value | options | No | — | Rating of company (Max value 5). |
Options: 0, 1, 2, 3, 4, 5 | ||||
| — Tags | string | No | [] | Unique identifiers added to company for easy management. Accepts several values. |
| — Website | fixedCollection | No | {} | Company websites. |
| — — Type | options | Yes | — | The kind of website or profile link. |
Options: facebook, feed, flickr, github, googlePlus, linkedin, skype, twitter, url, xing, youtube | ||||
| — — URL | string | Yes | — | Website URL. |
| — Custom Properties | fixedCollection | No | {} | Custom properties to set on the company. |
| — — Name | string | Yes | — | Property name. |
| — — Sub Type | string | No | — | Property sub type. |
| — — Value | string | No | — | Property value. |
Company: Delete
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Company ID | string | Yes | — | ID of company to delete. Supports expressions. |
Company: Get
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Company ID | string | Yes | — | Unique identifier for a particular company. Supports expressions. |
Company: Get Many
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Return All | boolean | No | false | Whether to return all results or only up to a given limit. |
| Limit | number | No | 20 | Max number of results to return. (shown when Return All is false) |
| Filter | options | No | none | How to filter companies. |
Options: none, manual (Build Manually), json | ||||
| Must Match | options | No | anyFilter | Whether any or all filter conditions must match. (shown when Filter is manual) |
Options: anyFilter (Any Filter), allFilters (All Filters) | ||||
| Simplify | boolean | No | false | Whether to return a simplified version of the response instead of the raw data. |
| Filters | fixedCollection | No | {} | Filter conditions to match companies against. Add one row per condition. (shown when Filter is manual) |
| — Field | string | No | — | Any searchable field. |
| — Condition Type | options | No | EQUALS | How the field is compared to the value. |
Options: AFTER, BEFORE, BETWEEN, EQUALS, LAST, NOTEQUALS, ON | ||||
| — Value | string | No | — | The value to compare the field against. |
| — Value 2 | string | No | — | The second value, closing a range. (shown when Condition Type is BETWEEN) |
| Filters (JSON) | string | No | — | Raw JSON filter rules for company search. (shown when Filter is json) |
| Options | collection | No | {} | Extra options applied to the query. |
| — Sort | fixedCollection | No | [] | Sort the returned records. |
| — — Direction | options | No | ASC | The sorting direction. |
Options: ASC (Ascending), DESC (Descending) | ||||
| — — Field | string | No | — | The sorting field. |
Company: Update
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Company ID | string | Yes | — | Unique identifier for a particular company. Supports expressions. |
| JSON Parameters | boolean | No | false | Whether to pass all fields as raw JSON. |
Additional Fields (additionalFieldsJson) | json | No | — | Object of values to set as described in the Agile CRM companies API. Supply it as a JSON string. (shown when JSON Parameters is true) |
Additional Fields (additionalFields) | collection | No | {} | Field values to change on the company. (shown when JSON Parameters is false) |
— Address (addressOptions) | fixedCollection | No | {} | Company address. |
| — — Type | options | Yes | — | The kind of address. |
Options: postal, office | ||||
— — Address (address) | string | Yes | — | Full address. |
— Email (email) | string | No | — | Company email. |
| — Star Value | options | No | — | Rating of company (Max value 5). |
Options: 0, 1, 2, 3, 4, 5 | ||||
| — Tags | string | No | [] | Unique identifiers added to company for easy management. Accepts several values. |
| — Name | string | No | — | Company name. |
— Phone (phone) | string | No | — | Company phone. |
| — Website | fixedCollection | No | {} | Company websites. |
| — — Type | options | Yes | — | The kind of website or profile link. |
Options: facebook, feed, flickr, github, googlePlus, linkedin, skype, twitter, url, xing, youtube | ||||
| — — URL | string | Yes | — | Website URL. |
| — Custom Properties | fixedCollection | No | {} | Custom properties to set on the company. |
| — — Name | string | Yes | — | Property name. |
| — — Sub Type | string | No | — | Property sub type. |
| — — Value | string | No | — | Property value. |
Deal: Create
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| JSON Parameters | boolean | No | false | Whether to pass all fields as raw JSON. |
| Close Date | dateTime | Yes | — | Closing date of deal. (shown when JSON Parameters is false) |
| Expected Value | number | Yes | 1 | Expected monetary value of deal. (shown when JSON Parameters is false) |
| Milestone | string | Yes | — | Milestone/stage of deal (e.g. “Negotiation”, “Won”, “Lost”). (shown when JSON Parameters is false) |
| Name | string | Yes | — | Name of deal. (shown when JSON Parameters is false) |
| Probability | number | Yes | 50 | Expected probability of closing (0-100). (shown when JSON Parameters is false) |
Additional Fields (additionalFieldsJson) | json | No | — | Object of values to set as described in the Agile CRM deals API. Supply it as a JSON string. (shown when JSON Parameters is true) |
Additional Fields (additionalFields) | collection | No | {} | Optional extras to attach to the new deal. (shown when JSON Parameters is false) |
| — Contact IDs | string | No | [] | Unique contact identifiers to associate with the deal. Accepts several values. |
| — Custom Data | fixedCollection | No | {} | Custom properties to set on the deal. |
| — — Name | string | Yes | — | Property name. |
| — — Value | string | No | — | Property value. |
Deal: Delete
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Deal ID | string | Yes | — | ID of deal to delete. Supports expressions. |
Deal: Get
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Deal ID | string | Yes | — | Unique identifier for a particular deal. Supports expressions. |
Deal: Get Many
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Return All | boolean | No | false | Whether to return all results or only up to a given limit. |
| Limit | number | No | 20 | Max number of results to return. (shown when Return All is false) |
Deal: Update
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Deal ID | string | Yes | — | ID of deal to update. Supports expressions. |
| JSON Parameters | boolean | No | false | Whether to pass all fields as raw JSON. |
Additional Fields (additionalFieldsJson) | json | No | — | Object of values to set as described in the Agile CRM deals API. Supply it as a JSON string. (shown when JSON Parameters is true) |
Additional Fields (additionalFields) | collection | No | {} | Field values to change on the deal. (shown when JSON Parameters is false) |
| — Expected Value | number | No | — | Expected monetary value of deal. |
| — Name | string | No | — | Name of deal. |
| — Probability | number | No | 50 | Expected probability of closing (0-100). |
| — Contact IDs | string | No | [] | Unique contact identifiers. Accepts several values. |
| — Custom Data | fixedCollection | No | {} | Custom properties to set on the deal. |
| — — Name | string | Yes | — | Property name. |
| — — Value | string | No | — | Property value. |
All Operations
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Max Concurrency | number | No | 10 | Maximum number of items to process concurrently. |
Output Data
The Agile CRM response is merged onto the input item JSON — the fields you sent in survive unless the record uses the same key — and binary data is forwarded unchanged.
Get, Create, Update and Delete produce exactly one output item per input item. Get Many fans out for all three resources: one output item per record returned, so a single input item that matches 40 contacts leaves 40 items. A Get Many that matches nothing produces no output items for that input item.
A contact or company record arrives with an id and a properties array; every other field is whatever Agile CRM returns for that record:
{
"orderId": "A-1042",
"id": 5723456789012345,
"properties": [
{ "type": "SYSTEM", "name": "first_name", "value": "John" },
{ "type": "SYSTEM", "name": "last_name", "value": "Doe" },
{ "type": "SYSTEM", "subtype": "work", "name": "email", "value": "john.doe@acme.com" }
]
}
With Simplify on, that properties array is flattened into top-level keys alongside id, which is far easier to address downstream:
{
"orderId": "A-1042",
"id": 5723456789012345,
"first_name": "John",
"last_name": "Doe",
"email": "john.doe@acme.com"
}
What lands per operation:
| Resource / Operation | Output item |
|---|---|
Contact, Company — get, create | The record, merged onto the input item. |
Contact, Company — getAll | One item per matching record. Simplify flattens each record’s properties; leave it off for the raw record. |
Contact, Company — update | The response of the last update stage that ran, or nothing at all when no updatable field was supplied — in which case the item passes through unchanged. |
Deal — get, create, update | The deal record, merged onto the input item. |
Deal — getAll | One item per deal returned. |
Any resource — delete | Agile CRM returns an empty body, so the item passes through unchanged. Use it to confirm the delete ran rather than to read the deleted record. |
Records returned by a paginated Get Many (Return All on) may also carry a cursor field on the last record of each page. Ignore it downstream — it is Agile CRM’s paging marker, not part of the record.
Reference the result downstream by expression, for example {{ $json.id }} or, with Simplify on, {{ $json.email }}.
Usage Examples
- Create a new contact in Agile CRM
- Get all companies from Agile CRM
- Update a deal milestone in Agile CRM
- Delete a contact by ID
- Filter contacts by email in Agile CRM
Example Configuration
Create a contact from an upstream item, with a work email, a phone number and tags:
{
"type": "agile_crm",
"parameters": {
"resource": "contact",
"operation": "create",
"jsonParameters": false,
"additionalFields": {
"firstName": "{{ $json.firstName }}",
"lastName": "{{ $json.lastName }}",
"company": "{{ $json.company }}",
"title": "Operations Manager",
"starValue": 4,
"tags": ["prospect", "qualified"],
"emailOptions": {
"emailProperties": [
{ "subtype": "work", "email": "{{ $json.email }}" }
]
},
"phoneOptions": {
"phoneProperties": [
{ "subtype": "mobile", "number": "{{ $json.phone }}" }
]
}
}
}
}
Find contacts whose email matches the current item and that are tagged as qualified, newest first, returning simplified records:
{
"type": "agile_crm",
"parameters": {
"resource": "contact",
"operation": "getAll",
"returnAll": false,
"limit": 50,
"filterType": "manual",
"matchType": "allFilters",
"simple": true,
"filters": {
"conditions": [
{ "field": "email", "condition_type": "EQUALS", "value": "{{ $json.email }}" },
{ "field": "tags", "condition_type": "EQUALS", "value": "qualified" }
]
},
"options": {
"sort": {
"sort": { "direction": "DESC", "field": "created_time" }
}
}
}
}
Update a contact’s name and lead score by passing the raw contact payload as a JSON string:
{
"type": "agile_crm",
"parameters": {
"resource": "contact",
"operation": "update",
"contactId": "{{ $json.contactId }}",
"jsonParameters": true,
"additionalFieldsJson": "{\"properties\":[{\"type\":\"SYSTEM\",\"name\":\"last_name\",\"value\":\"Smith\"}],\"lead_score\":85}"
}
}
Create a company with a postal address and a custom property:
{
"type": "agile_crm",
"parameters": {
"resource": "company",
"operation": "create",
"jsonParameters": false,
"additionalFields": {
"name": "{{ $json.accountName }}",
"email": "{{ $json.accountEmail }}",
"phone": "{{ $json.accountPhone }}",
"starValue": 5,
"tags": ["enterprise"],
"addressOptions": {
"addressProperties": [
{ "subtype": "postal", "address": "{{ $json.address }}" }
]
},
"customProperties": {
"customProperty": [
{ "name": "Industry", "subtype": "TEXT", "value": "Software" }
]
}
}
}
}
Page through every company matching a raw JSON filter:
{
"type": "agile_crm",
"parameters": {
"resource": "company",
"operation": "getAll",
"returnAll": true,
"simple": true,
"filterType": "json",
"filterJson": "{\"rules\":[{\"LHS\":\"name\",\"CONDITION\":\"EQUALS\",\"RHS\":\"Tech Solutions Inc\"}]}"
}
}
Open a deal for the account on the current item and link it to a contact:
{
"type": "agile_crm",
"parameters": {
"resource": "deal",
"operation": "create",
"jsonParameters": false,
"name": "{{ $json.accountName }} annual license",
"expectedValue": 50000,
"probability": 75,
"milestone": "Negotiation",
"closeDate": "2026-03-15T00:00:00.000Z",
"additionalFields": {
"contactIds": ["{{ $json.contactId }}"],
"customData": {
"customProperty": [
{ "name": "Deal Source", "value": "Referral" }
]
}
}
}
}
Error Handling
| Mode | Behavior |
|---|---|
| stop | Halts workflow on first error |
| continue | Skips failed items, passes successful ones through |
| errorPort | Routes failed items to Error output port |
Tips
Manage contacts, companies, and deals in Agile CRM — create, read, update, delete records and filter contacts with dynamic conditions.
Parameter Dependencies Summary
- Resource selection: the
operationlist changes with theresourcevalue — each resource offers Create, Delete, Get, Get Many and Update. - ID parameters:
contactId,companyIdanddealIdare required forget,deleteandupdate. When the parameter is left empty, the node falls back to a field of the same name on the incoming item, so{{ $json.contactId }}and a barecontactIdfield both work. - Pagination:
limitonly appears whenreturnAllisfalse. WithreturnAllon, the node pages through the whole result set for you. - Filtering:
matchTypeandfiltersonly appear whenfilterTypeismanual;filterJsononly when it isjson. Filtering is available on contact and company Get Many only — deal Get Many takesreturnAllandlimitand nothing else. - Field input:
additionalFields(structured) versusadditionalFieldsJson(raw) is chosen byjsonParameters. The raw variant is parsed as JSON text, so pass it as a JSON string, not as an object. - Deal fields:
closeDate,expectedValue,milestone,nameandprobabilityare set directly on deal Create and only whenjsonParametersisfalse. Deal Update carries the equivalents insideadditionalFieldsinstead.
Behavior notes
- Manual filters need at least one condition. Selecting Build Manually and leaving Filters empty fails the item rather than returning everything.
- Contact and company updates are applied in stages — properties, lead score, tags, then star value. If a later stage fails, the earlier changes stay applied and the error names the stage that failed, so re-running an update is the safe recovery.
- Lead Score is applied on update only. Setting it in the structured Additional Fields of a contact Create has no effect; set the contact’s score with a follow-up Update, or pass the raw payload with JSON Parameters on.
- Get Many fans out. Downstream nodes see one item per record, not one item holding an array — no Split Out node is needed.
Frequently asked questions
What credentials do I need to connect this node to Agile CRM?
You need an Agile CRM API credential, configured in BusyBot as the 'agileCrmApi' credential type. Set this up once in your BusyBot credentials store and then select it in the node's credential field. Without it, all operations will fail at the authentication stage.
Can I filter contacts or companies when fetching a list, and does filtering work the same way for deals?
Filtering is available on Contact Get Many and Company Get Many only — Deal Get Many does not support it. For contacts and companies, you can either build filter conditions manually in the editor (using the 'manual' filter type) or supply a raw JSON string (using the 'json' filter type). If you choose the manual mode, you must add at least one condition; leaving Filters empty will fail the item rather than return everything.
If I set Lead Score in the Additional Fields when creating a contact, will it be saved?
No. Lead Score has no effect when set through the structured Additional Fields on a contact Create operation. To set a contact's score, either run a follow-up Update operation after creation, or pass the full payload as raw JSON by enabling the JSON Parameters toggle on the Create.
What happens if a contact or company update partially fails partway through?
Updates are applied in stages — properties first, then lead score, tags, and finally star value. If a later stage fails, the changes from earlier stages are already written and will not be rolled back. The error message will name the stage that failed, so you can identify what did not apply and re-run the update safely from that point.
Do I need to pass a contact, company, or deal ID explicitly, or can the node pick it up from the incoming data?
For Get, Delete, and Update operations, the relevant ID field (contactId, companyId, or dealId) is required but does not have to be typed in manually. If you leave the field empty, the node will automatically read a matching field of the same name from the incoming item — so an upstream item that already carries a 'contactId' property will wire through without any extra expression.
Build with the Agile CRM node
Drop it into a workflow, wire it to an agent, or call it on a schedule. You'll need Agile CRM API credentials first.
Open BusyBotLast updated . Spotted something wrong? Tell us.