n8n-nodes-ninjapipe 0.1.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/INSTALL.md ADDED
@@ -0,0 +1,20 @@
1
+ # Install
2
+
3
+ ## Update and publish
4
+
5
+ ```bash
6
+ cd ~/Desktop/n8n-nodes-ninjapipe
7
+ npm install
8
+ npm version patch
9
+ npm publish
10
+ ```
11
+
12
+ This package is plain JavaScript and does not need a TypeScript build step anymore.
13
+
14
+ ## In n8n
15
+
16
+ Install or update the community node package:
17
+
18
+ ```
19
+ n8n-nodes-ninjapipe
20
+ ```
package/README.md CHANGED
@@ -1,48 +1,52 @@
1
1
  # n8n-nodes-ninjapipe
2
2
 
3
- Community node for NinjaPipe.
4
-
5
- ## Included
6
-
7
- - NinjaPipe API credentials
8
- - Resources:
9
- - Contacts
10
- - Deals
11
- - Products
12
- - Budgets
13
- - Custom API Request
14
-
15
- ## Current scope
16
-
17
- This package is built from the public NinjaPipe API documentation that clearly exposes authentication with Bearer API keys, a `/api/...` base path, contacts, deals, products, budgets, pagination, and client-portal actions. Anything beyond that should be added once the endpoint contract is verified in the docs.
18
-
19
- ## Install locally
20
-
21
- ```bash
22
- npm install
23
- npm run build
24
- npm link
25
- ```
26
-
27
- In your n8n custom extensions folder, link or install the package and restart n8n.
28
-
29
- ## Credentials
30
-
31
- - API Key
32
- - Base URL, default: `https://www.ninjapipe.app/api`
3
+ Usability-first NinjaPipe package for n8n.
4
+
5
+ ## What is inside
6
+
7
+ - `NinjaPipe` action node
8
+ - guided fields for Contacts, Companies, Deals, Tasks, Projects, Products, Budgets
9
+ - custom fields as repeatable key/value fields
10
+ - additional standard fields for fields not yet exposed in the UI
11
+ - field discovery via **Get Field List**
12
+ - flatten custom fields into normal output fields
13
+ - custom API request fallback
14
+ - `NinjaPipe Trigger`
15
+ - generic polling trigger for Contacts, Companies, Deals, Tasks, Databins, or any custom path
16
+ - practical for lead capture and Databin-style submissions
17
+
18
+ ## Recommended usage
19
+
20
+ ### Create a contact without raw JSON
21
+ Use `Resource = Contact` and `Operation = Create`.
22
+ Fill the guided fields.
23
+ Add any workspace-specific fields under **Additional Fields**.
24
+ Add business-specific fields under **Custom Fields**.
25
+
26
+ ### Discover which fields exist
27
+ Use `Operation = Get Field List`.
28
+ This samples one or more records and returns
29
+ - top-level field names
30
+ - custom field keys
31
+ - a sample record
32
+
33
+ ### Simple filters without JSON
34
+ For `Get Many`, use
35
+ - Search
36
+ - Status Filter
37
+ - Owner Filter
38
+ - Query Parameters
39
+
40
+ Only use `Advanced Query JSON` when the API needs something special.
41
+
42
+ ### Trigger on form-like submissions
43
+ If your NinjaPipe setup stores incoming web submissions in a Databin-style endpoint, use `NinjaPipe Trigger` with
44
+ - `Resource = Databins`, or
45
+ - `Path Override = /your/custom/path`
46
+
47
+ Then connect the trigger to an email node or to a second NinjaPipe node for contact creation, deal creation, list assignment, or task creation.
33
48
 
34
49
  ## Notes
35
50
 
36
- - Pagination defaults to page 1 and limit 20.
37
- - NinjaPipe documentation mentions a maximum limit of 100 for paginated list endpoints.
38
- - Contacts support client portal enable and disable as documented.
39
-
40
- ## Next expansion ideas
41
-
42
- - Companies
43
- - Tasks
44
- - Projects
45
- - Forms
46
- - Files
47
- - Webhook trigger node
48
- - Load options from live endpoints
51
+ - This package intentionally keeps a **Custom API Request** option because NinjaPipe's product surface is broader than the publicly obvious API snippets.
52
+ - Custom field values are supported directly. Custom field **schema creation** is not hard-coded because a public endpoint for custom field definitions was not clearly exposed in the verified API docs. Use `Additional Fields`, `Custom Fields`, and `Custom API Request` as the safe fallback.
@@ -0,0 +1,32 @@
1
+
2
+ class NinjaPipeApi {
3
+ constructor() {
4
+ this.name = 'ninjaPipeApi';
5
+ this.displayName = 'NinjaPipe API';
6
+ this.documentationUrl = 'https://docs.ninjapipe.app/api-docs';
7
+ this.properties = [
8
+ {
9
+ displayName: 'Base URL',
10
+ name: 'baseUrl',
11
+ type: 'string',
12
+ default: 'https://www.ninjapipe.app/api',
13
+ placeholder: 'https://www.ninjapipe.app/api',
14
+ required: true,
15
+ description: 'Base URL of the NinjaPipe API',
16
+ },
17
+ {
18
+ displayName: 'API Key',
19
+ name: 'apiKey',
20
+ type: 'string',
21
+ typeOptions: {
22
+ password: true,
23
+ },
24
+ default: '',
25
+ required: true,
26
+ description: 'Workspace API key',
27
+ },
28
+ ];
29
+ }
30
+ }
31
+
32
+ module.exports = { NinjaPipeApi };
@@ -0,0 +1,54 @@
1
+ {
2
+ "name": "NinjaPipe Databin Lead to Email Example",
3
+ "nodes": [
4
+ {
5
+ "parameters": {
6
+ "resource": "databin",
7
+ "eventMode": "new",
8
+ "timestampField": "created_at",
9
+ "emitOnlyAfterStart": true
10
+ },
11
+ "id": "1",
12
+ "name": "NinjaPipe Trigger",
13
+ "type": "n8n-nodes-ninjapipe.ninjaPipeTrigger",
14
+ "typeVersion": 1,
15
+ "position": [
16
+ 360,
17
+ 300
18
+ ]
19
+ },
20
+ {
21
+ "parameters": {
22
+ "resource": "contact",
23
+ "operation": "create",
24
+ "useGuidedFields": true,
25
+ "contactFirstName": "={{$json.first_name || $json.name || ''}}",
26
+ "contactLastName": "={{$json.last_name || ''}}",
27
+ "contactEmail": "={{$json.email || ''}}",
28
+ "contactPhone": "={{$json.phone || ''}}",
29
+ "contactNotes": "={{$json.message || ''}}"
30
+ },
31
+ "id": "2",
32
+ "name": "Create Contact",
33
+ "type": "n8n-nodes-ninjapipe.ninjaPipe",
34
+ "typeVersion": 3,
35
+ "position": [
36
+ 660,
37
+ 300
38
+ ]
39
+ }
40
+ ],
41
+ "connections": {
42
+ "NinjaPipe Trigger": {
43
+ "main": [
44
+ [
45
+ {
46
+ "node": "Create Contact",
47
+ "type": "main",
48
+ "index": 0
49
+ }
50
+ ]
51
+ ]
52
+ }
53
+ }
54
+ }
package/index.js ADDED
@@ -0,0 +1 @@
1
+ module.exports = {};