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 +20 -0
- package/README.md +47 -43
- package/credentials/NinjaPipeApi.credentials.js +32 -0
- package/examples/databin-lead-to-contact.json +54 -0
- package/index.js +1 -0
- package/nodes/NinjaPipe/NinjaPipe.node.js +673 -0
- package/nodes/NinjaPipeTrigger/NinjaPipeTrigger.node.js +235 -0
- package/package.json +18 -22
- package/credentials/NinjaPipeApi.credentials.ts +0 -32
- package/dist/credentials/NinjaPipeApi.credentials.js +0 -34
- package/dist/credentials/NinjaPipeApi.credentials.js.map +0 -1
- package/dist/nodes/NinjaPipe/NinjaPipe.node.js +0 -451
- package/dist/nodes/NinjaPipe/NinjaPipe.node.js.map +0 -1
- package/nodes/NinjaPipe/NinjaPipe.node.ts +0 -466
- /package/{dist/nodes/NinjaPipe → nodes/NinjaPipeTrigger}/ninjapipe.svg +0 -0
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
|
-
|
|
4
|
-
|
|
5
|
-
##
|
|
6
|
-
|
|
7
|
-
- NinjaPipe
|
|
8
|
-
-
|
|
9
|
-
-
|
|
10
|
-
-
|
|
11
|
-
-
|
|
12
|
-
-
|
|
13
|
-
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
-
|
|
32
|
-
|
|
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
|
-
-
|
|
37
|
-
-
|
|
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 = {};
|