n8n-nodes-ploomes
v0.1.17
Published
n8n community node for Ploomes CRM API
Maintainers
Readme
About
This node lets you automate and integrate Ploomes CRM with hundreds of other apps in n8n. It provides full REST API coverage with native OData v4 support and visual builders for complex filters and expansions.
Features
| Feature | Description |
|---|---|
| 126 actions | Full coverage of 50 API resources |
| Secure credentials | Authentication via User-Key header with connection test |
| Optimized OData | Smart defaults: $top=1, $select=Id, $orderby=Id |
| Visual Filter Builder | Build $filter queries through the UI without writing OData |
| Visual Expand Builder | Build $expand with nested $select, $filter, and $expand |
| Custom property filters | Support for OtherProperties/any(...) via the UI |
| Raw mode | Switch to free-text mode for advanced OData queries |
| Special actions | Deal Win/Lose/Reopen, Task Finish, Quote Review |
| Custom API Call | Generic resource for unmapped endpoints |
Installation
Via n8n (recommended)
- Go to Settings > Community Nodes in your n8n instance
- Click Install a community node
- Enter
n8n-nodes-ploomesand install
Via npm
cd ~/.n8n/nodes
npm install n8n-nodes-ploomesLocal development
git clone https://github.com/Ploomes/n8n-nodes-ploomes.git
cd n8n-nodes-ploomes
npm install
npm run build
npm link
# In another terminal
cd ~/.n8n/nodes
npm link n8n-nodes-ploomesCredentials Setup
- In n8n, add the Ploomes CRM node to your workflow
- Click Select Credential > Create new credential
- Enter your Ploomes API User-Key
- Click Save — the connection will be tested automatically
To obtain your User-Key, go to your Ploomes account under Settings > Integration > API. Documentation: developers.ploomes.com
Available Resources
Core Entities
| Resource | Operations | |---|---| | Contact | Get Many, Create, Update, Delete | | Deal | Get Many, Create, Update, Delete, Win, Lose, Reopen | | Quote | Get Many, Create, Update, Delete, Review | | Task | Get Many, Create, Update, Delete, Finish | | Order | Get Many, Create, Update, Delete | | Product | Get Many, Create, Update, Delete | | Document | Get Many, Create, Update, Delete | | Interaction Record | Get Many, Create, Update, Delete |
Settings and Administration
| Resource | Operations | |---|---| | Account | Get Many, Update | | User | Get Many, Create, Update | | Role | Get Many, Create | | Team | Get Many, Create, Update, Delete | | Department | Get Many, Create, Update, Delete | | Field | Get Many, Create, Update, Delete | | Webhook | Get Many, Create, Update, Delete |
Contact Sub-resources
| Resource | Operations | |---|---| | Contact Line of Business | CRUD | | Contact Number of Employees | CRUD | | Contact Origin | CRUD | | Contact Product | CRUD | | Contact Relationship | Get Many | | Contact Status | Get Many | | Contact Type | Get Many |
Deal Sub-resources
| Resource | Operations | |---|---| | Deal Pipeline | CRUD | | Deal Stage | Get Many | | Deal Status | Get Many | | Deal Loss Reason | Get Many |
Product Sub-resources
| Resource | Operations | |---|---| | Product Family | CRUD | | Product Group | CRUD | | Product Part | CRUD |
Other Resources
| Resource | Operations | |---|---| | City, Country, State | Get Many | | Currency | Get Many | | Document Template | Get Many | | Field Entity, Field Type | Get Many | | Field Options Table | Get Many, Create | | Order Stage | CRUD | | Phone Type | Get Many | | Quote Approval Status | Get Many | | Relative Date | Get Many | | Tag | CRUD | | Task Type, Task Email Reminder | Get Many | | User Profile | Get Many | | Webhook Action | Get Many |
OData Filter Builder
The node includes a visual builder that lets you create complex $filter queries without writing OData manually.
Simple filters
Add conditions with field, operator, and value:
Field: Name Operator: contains Value: Ploomes Type: String
Field: Id Operator: eq Value: 12345 Type: NumberGenerated result:
$filter=contains(Name,'Ploomes') and Id eq 12345Available operators
| Operator | Description | Example |
|---|---|---|
| eq | Equal | Id eq 123 |
| ne | Not equal | Status ne 'Closed' |
| gt / ge | Greater than / Greater than or equal | Amount gt 1000 |
| lt / le | Less than / Less than or equal | Amount le 5000 |
| contains | Contains text | contains(Name,'test') |
| startswith | Starts with | startswith(Name,'A') |
| endswith | Ends with | endswith(Email,'.com') |
Custom property filters
To filter by custom fields (OtherProperties), use the dedicated builder:
FieldKey: contact_cf_123 Operator: eq Value: test Type: StringGenerated result:
$filter=OtherProperties/any(p: p/FieldKey eq 'contact_cf_123' and p/StringValue eq 'test')OData Expand Builder
Build complex $expand queries visually, with nesting support:
Complex example via the UI
The following expand can be built entirely through the visual builder:
$expand=Stage($select=Id,Ordination,PipelineId,LastPipelineStage),
Status,
Owner($select=Id,Name),
Creator($select=Id,Name),
Pipeline($select=Id,ForbiddenStageReturn,MustPassAllStages,Stages;$expand=Stages),
OtherProperties($expand=CurrencyValue;$filter=FieldId eq 40006914 or FieldId eq 40006915)How to configure
- Expand Relations: Add each relation with its optional
$select - Expand Nested Filters: Add filters inside expansions (e.g., filter
OtherPropertiesbyFieldId)
OData Optimization Defaults
All GET requests are automatically optimized:
| Parameter | Default | Description |
|---|---|---|
| $top | 1 | Limit of returned records |
| $skip | 0 | Offset for pagination |
| $select | Id | Returned fields (reduces payload) |
| $orderby | Id | Sort order of results |
All parameters are editable — adjust as needed for your automation.
Usage Examples
Fetch contacts with a filter
Resource: Contact
Operation: Get Many
$top: 10
$select: Id,Name,Email
$filter: contains(Name,'Silva')Create a deal
Resource: Deal
Operation: Create
Body: { "ContactId": 123, "Title": "New deal", "Amount": 5000 }Win a deal
Resource: Deal
Operation: Win
ID: 456
Body: { "WonAmount": 5000, "WonProductsAmount": 5000 }Fetch deals with a complex expand
Resource: Deal
Operation: Get Many
$top: 50
$select: Id,Title,Amount
$expand: Stage($select=Id,Ordination),Owner($select=Id,Name),Pipeline($select=Id;$expand=Stages)API Limits
| Limit | Value | |---|---| | Requests per minute | 120 per account | | Maximum payload size | 10 MB | | Records per page | 300 (Contacts, Deals, Cities, Tasks, Orders, Quotes) |
Development
# Install dependencies
npm install
# Build
npm run build
# Lint
npm run lint
# Format code
npm run format
# Watch mode
npm run dev