# ploomes/n8n-nodes-ploomes architecture

> Architecture diagram of the GitHub repository ploomes/n8n-nodes-ploomes, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/ploomes/n8n-nodes-ploomes
- Repository: https://github.com/ploomes/n8n-nodes-ploomes

## Overview

This is an n8n community node for automating Ploomes CRM through authenticated REST/OData requests. The main workflow is an n8n execution selecting a resource and operation, building request parameters, then sending the request to Ploomes and routing success, error, or timeout results. The README documents broad CRM, administration, and lookup resources plus special actions and custom API calls. The sampled executor and OData code support the request and query-builder links; other capability details are based on the README and resource definitions.

Main entry points: [`nodes/Ploomes/Ploomes.node.ts`](https://github.com/ploomes/n8n-nodes-ploomes/blob/main/nodes/Ploomes/Ploomes.node.ts) (Ploomes node), [`nodes/Ploomes/PloomesResources.ts`](https://github.com/ploomes/n8n-nodes-ploomes/blob/main/nodes/Ploomes/PloomesResources.ts) (Resource operations), [`nodes/Ploomes/ODataOptions.ts`](https://github.com/ploomes/n8n-nodes-ploomes/blob/main/nodes/Ploomes/ODataOptions.ts) (OData UI options), [`credentials/PloomesApi.credentials.ts`](https://github.com/ploomes/n8n-nodes-ploomes/blob/main/credentials/PloomesApi.credentials.ts) (API credentials)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_execution["Workflow execution"]
  node_node["Ploomes node<br/>[Ploomes.node.ts]"]
  node_result["Workflow outputs<br/>[Ploomes.node.ts]"]
  node_cache[("Response cache<br/>[Ploomes.node.ts]")]
end

subgraph group_resources["CRM capabilities"]
  node_resource_defs["Resource operations"]
  node_core["Core CRM entities"]
  node_admin["Administration"]
  node_lookups["Lookup resources"]
  node_special["Special actions"]
  node_custom["Custom API calls"]
end

subgraph group_odata["OData query building"]
  node_odata_options["OData UI options<br/>[ODataOptions.ts]"]
  node_filter["Filter builder<br/>[ODataOptions.ts]"]
  node_expand["Expand builder<br/>[ODataOptions.ts]"]
end

subgraph group_auth["Authentication"]
  node_credential["API credentials"]
end

node_workflow(("n8n workflow"))
node_n8n_auth["n8n authentication"]
node_ploomes[("Ploomes CRM API")]

node_workflow -->|"executes"| node_node
node_node -->|"resolves operation"| node_resource_defs
node_resource_defs -->|"defines"| node_core
node_resource_defs -->|"defines"| node_admin
node_resource_defs -->|"defines"| node_lookups
node_resource_defs -->|"maps actions"| node_special
node_node -->|"builds filters"| node_filter
node_node -->|"builds expansions"| node_expand
node_odata_options -->|"configures"| node_filter
node_odata_options -->|"configures"| node_expand
node_node -->|"reads and writes"| node_cache
node_node -->|"requests authenticated call"| node_n8n_auth
node_credential -->|"provides credentials"| node_n8n_auth
node_n8n_auth -->|"sends API request"| node_ploomes
node_ploomes -->|"returns response"| node_node
node_node -->|"routes outcomes"| node_result
node_node -.->|"supports generic calls"| node_custom

click node_node "https://github.com/ploomes/n8n-nodes-ploomes/blob/main/nodes/Ploomes/Ploomes.node.ts"
click node_result "https://github.com/ploomes/n8n-nodes-ploomes/blob/main/nodes/Ploomes/Ploomes.node.ts"
click node_cache "https://github.com/ploomes/n8n-nodes-ploomes/blob/main/nodes/Ploomes/Ploomes.node.ts"
click node_resource_defs "https://github.com/ploomes/n8n-nodes-ploomes/blob/main/nodes/Ploomes/PloomesResources.ts"
click node_core "https://github.com/ploomes/n8n-nodes-ploomes/blob/main/nodes/Ploomes/PloomesResources.ts"
click node_admin "https://github.com/ploomes/n8n-nodes-ploomes/blob/main/nodes/Ploomes/PloomesResources.ts"
click node_lookups "https://github.com/ploomes/n8n-nodes-ploomes/blob/main/nodes/Ploomes/PloomesResources.ts"
click node_special "https://github.com/ploomes/n8n-nodes-ploomes/blob/main/nodes/Ploomes/PloomesResources.ts"
click node_custom "https://github.com/ploomes/n8n-nodes-ploomes/tree/main/nodes/Ploomes"
click node_odata_options "https://github.com/ploomes/n8n-nodes-ploomes/blob/main/nodes/Ploomes/ODataOptions.ts"
click node_filter "https://github.com/ploomes/n8n-nodes-ploomes/blob/main/nodes/Ploomes/ODataOptions.ts"
click node_expand "https://github.com/ploomes/n8n-nodes-ploomes/blob/main/nodes/Ploomes/ODataOptions.ts"
click node_credential "https://github.com/ploomes/n8n-nodes-ploomes/blob/main/credentials/PloomesApi.credentials.ts"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_node,node_result,node_cache toneBlue
class node_resource_defs,node_core,node_admin,node_lookups,node_special,node_custom,node_ploomes toneAmber
class node_odata_options,node_filter,node_expand toneMint
class node_credential toneRose
class node_workflow,node_n8n_auth toneIndigo
```

## Components

### Workflow execution

- [Ploomes node](https://github.com/ploomes/n8n-nodes-ploomes/blob/main/nodes/Ploomes/Ploomes.node.ts): `nodes/Ploomes/Ploomes.node.ts`
- [Workflow outputs](https://github.com/ploomes/n8n-nodes-ploomes/blob/main/nodes/Ploomes/Ploomes.node.ts): `nodes/Ploomes/Ploomes.node.ts`
- [Response cache](https://github.com/ploomes/n8n-nodes-ploomes/blob/main/nodes/Ploomes/Ploomes.node.ts): `nodes/Ploomes/Ploomes.node.ts`

### CRM capabilities

- [Resource operations](https://github.com/ploomes/n8n-nodes-ploomes/blob/main/nodes/Ploomes/PloomesResources.ts): `nodes/Ploomes/PloomesResources.ts`
- [Core CRM entities](https://github.com/ploomes/n8n-nodes-ploomes/blob/main/nodes/Ploomes/PloomesResources.ts): `nodes/Ploomes/PloomesResources.ts`
- [Administration](https://github.com/ploomes/n8n-nodes-ploomes/blob/main/nodes/Ploomes/PloomesResources.ts): `nodes/Ploomes/PloomesResources.ts`
- [Lookup resources](https://github.com/ploomes/n8n-nodes-ploomes/blob/main/nodes/Ploomes/PloomesResources.ts): `nodes/Ploomes/PloomesResources.ts`
- [Special actions](https://github.com/ploomes/n8n-nodes-ploomes/blob/main/nodes/Ploomes/PloomesResources.ts): `nodes/Ploomes/PloomesResources.ts`
- [Custom API calls](https://github.com/ploomes/n8n-nodes-ploomes/tree/main/nodes/Ploomes): `nodes/Ploomes`

### OData query building

- [OData UI options](https://github.com/ploomes/n8n-nodes-ploomes/blob/main/nodes/Ploomes/ODataOptions.ts): `nodes/Ploomes/ODataOptions.ts`
- [Filter builder](https://github.com/ploomes/n8n-nodes-ploomes/blob/main/nodes/Ploomes/ODataOptions.ts): `nodes/Ploomes/ODataOptions.ts`
- [Expand builder](https://github.com/ploomes/n8n-nodes-ploomes/blob/main/nodes/Ploomes/ODataOptions.ts): `nodes/Ploomes/ODataOptions.ts`

### Authentication

- [API credentials](https://github.com/ploomes/n8n-nodes-ploomes/blob/main/credentials/PloomesApi.credentials.ts): `credentials/PloomesApi.credentials.ts`

### Other components

- **n8n workflow**
- **n8n authentication**
- **Ploomes CRM API**

## Connections

- n8n workflow → Ploomes node: executes
- Ploomes node → Resource operations: resolves operation
- Resource operations → Core CRM entities: defines
- Resource operations → Administration: defines
- Resource operations → Lookup resources: defines
- Resource operations → Special actions: maps actions
- Ploomes node → Filter builder: builds filters
- Ploomes node → Expand builder: builds expansions
- OData UI options → Filter builder: configures
- OData UI options → Expand builder: configures
- Ploomes node → Response cache: reads and writes
- Ploomes node → n8n authentication: requests authenticated call
- API credentials → n8n authentication: provides credentials
- n8n authentication → Ploomes CRM API: sends API request
- Ploomes CRM API → Ploomes node: returns response
- Ploomes node → Workflow outputs: routes outcomes
- Ploomes node → Custom API calls: supports generic calls
