Actions25
Overview
This node integrates with the EspoCRM API to perform various operations on dynamic entity types defined within EspoCRM. Specifically, for the "Dynamic" resource and the "Get Many" operation, it retrieves multiple records of a specified entity type from EspoCRM.
Common scenarios where this node is beneficial include:
- Fetching lists of custom or standard entities (e.g., Opportunities, Cases, Products) dynamically without hardcoding entity types.
- Retrieving filtered, sorted, and paginated data sets from EspoCRM for reporting, synchronization, or automation workflows.
- Extracting specific fields from large datasets by applying filters and selecting only necessary fields to optimize performance.
Practical example:
- A user wants to get all "Lead" entities created in the last month, sorted by creation date descending, and only retrieve their
id,name, andemailAddressfields. This node can be configured to specify the entity type as "Lead", apply a filter condition on creation date, set order direction to descending, and select the desired fields.
Properties
| Name | Meaning |
|---|---|
| Entity Type Name or ID | The type of entity to interact with in EspoCRM. Choose from a dynamically loaded list of entity types or specify an ID using an expression. Examples include standard or custom entities like Account, Contact, Lead, etc. |
| Return All | Boolean flag indicating whether to return all matching results (true) or limit the number of results returned (false). |
| Limit | When "Return All" is false, this specifies the maximum number of results to return. Minimum value is 1. |
| Filters | Collection of filtering options to refine the query: |
| - Where (Filter Conditions) | JSON array defining filter conditions according to EspoCRM API syntax. Used to specify criteria such as field values, ranges, or logical conditions. |
| - Order By | Field name to sort the results by (e.g., createdAt). |
| - Order Direction | Sort direction: either Ascending (asc) or Descending (desc). |
| - Select Fields | Comma-separated list of fields to return for each record (e.g., id,name,emailAddress). Limits the data retrieved to only these fields. |
Output
The node outputs an array of JSON objects representing the retrieved records from EspoCRM. Each object corresponds to one entity record and contains the fields requested via the "Select Fields" property or all fields if none are specified.
If "Return All" is true, the output includes all matching records; otherwise, it includes up to the specified limit.
No binary data output is produced by this node.
Example output snippet:
[
{
"id": "123",
"name": "John Doe",
"emailAddress": "john.doe@example.com"
},
{
"id": "124",
"name": "Jane Smith",
"emailAddress": "jane.smith@example.com"
}
]
Dependencies
- Requires an active connection to an EspoCRM instance via an API key or authentication token configured in n8n credentials.
- The node uses EspoCRM's REST API endpoints to fetch data.
- No additional external services are required beyond EspoCRM itself.
- Proper permissions in EspoCRM are needed to read the specified entity types and fields.
Troubleshooting
Error loading entity types or fields:
If the node fails to load entity types or fields dynamically, ensure that the API credentials are correct and have sufficient permissions. Network connectivity to the EspoCRM server must be stable.Invalid filter conditions:
The "Where" filter expects valid JSON formatted according to EspoCRM API specifications. Malformed JSON or unsupported filter syntax will cause errors. Validate JSON syntax and refer to EspoCRM API docs for correct filter structure.Empty results:
If no records are returned, verify that the entity type exists and that the filter conditions are not too restrictive. Also check that the user has access rights to view those records.Limit vs Return All confusion:
Setting "Return All" to false but specifying a very high limit may still result in partial data due to API or server limits. Use "Return All" when you need complete datasets.API rate limits or timeouts:
Large queries or returning all records might hit API rate limits or cause timeouts. Consider using filters to reduce dataset size or paginate requests.