Back to Nodes

Ploomes CRM

v0.1.17
Last updated May 27, 2026

n8n community node for Ploomes CRM API

470 Weekly Downloads
1,065 Monthly Downloads

Included Nodes

Ploomes CRM

Description

Ploomes CRM

n8n-nodes-ploomes

Community node for n8n that integrates with the Ploomes CRM API

npm version
license
API docs
n8n community node

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)

1. Go to Settings > Community Nodes in your n8n instance
2. Click Install a community node
3. Enter n8n-nodes-ploomes and install

Via npm

cd ~/.n8n/nodes
npm install n8n-nodes-ploomes

Local 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-ploomes

Credentials Setup

1. In n8n, add the Ploomes CRM node to your workflow
2. Click Select Credential > Create new credential
3. Enter your Ploomes API User-Key
4. 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: Number

Generated result:

$filter=contains(Name,'Ploomes') and Id eq 12345

Available 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: contactcf123    Operator: eq    Value: test    Type: String

Generated result:

$filter=OtherProperties/any(p: p/FieldKey eq 'contactcf123' 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

1. Expand Relations: Add each relation with its optional $select
2. Expand Nested Filters: Add filters inside expansions (e.g., filter OtherProperties by FieldId)

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

License

MIT

Made with ❤️ by Ploomes