n8n-nodes-clientify 0.2.15 → 0.2.16

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.
@@ -2,6 +2,7 @@ import { IAuthenticateGeneric, ICredentialTestRequest, ICredentialType, INodePro
2
2
  export declare class ClientifyApi implements ICredentialType {
3
3
  name: string;
4
4
  displayName: string;
5
+ icon: "file:clientify.svg";
5
6
  documentationUrl: string;
6
7
  authenticate: IAuthenticateGeneric;
7
8
  test: ICredentialTestRequest;
@@ -5,6 +5,7 @@ class ClientifyApi {
5
5
  constructor() {
6
6
  this.name = "clientifyApi";
7
7
  this.displayName = "Clientify API";
8
+ this.icon = "file:clientify.svg";
8
9
  this.documentationUrl = "https://newapi.clientify.com/";
9
10
  this.authenticate = {
10
11
  type: "generic",
@@ -0,0 +1,3 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 60 60" width="60" height="60" fill="none">
2
+ <image width="60" height="60" href="data:image/png;base64,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" />
3
+ </svg>
@@ -8,6 +8,7 @@ class ClientifyApi {
8
8
  this.description = {
9
9
  displayName: "Clientify",
10
10
  name: "clientifyApi",
11
+ usableAsTool: true,
11
12
  icon: "file:clientify.svg",
12
13
  group: ["transform"],
13
14
  version: 1,
@@ -80,7 +80,8 @@ exports.operationFields = (() => {
80
80
  for (const [fieldName, inputDef] of sortedFieldEntries) {
81
81
  const isRequired = def.requiredFieldNames.includes(fieldName);
82
82
  const n8nType = mapInspectorTypeToN8nType(inputDef === null || inputDef === void 0 ? void 0 : inputDef.type);
83
- const defaultValue = (_a = def.fieldDefaults[fieldName]) !== null && _a !== void 0 ? _a : (n8nType === "number" ? 0 : n8nType === "boolean" ? false : "");
83
+ const fallbackDefault = n8nType === "number" ? 0 : n8nType === "boolean" ? false : "";
84
+ const defaultValue = (_a = def.fieldDefaults[fieldName]) !== null && _a !== void 0 ? _a : fallbackDefault;
84
85
  fields.push({
85
86
  displayName: (inputDef === null || inputDef === void 0 ? void 0 : inputDef.label) || fieldName,
86
87
  name: fieldName,
@@ -0,0 +1,3 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 60 60" width="60" height="60" fill="none">
2
+ <image width="60" height="60" href="data:image/png;base64,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" />
3
+ </svg>
@@ -6,6 +6,7 @@ class ClientifyTrigger {
6
6
  this.description = {
7
7
  displayName: 'Clientify Trigger',
8
8
  name: 'clientifyTrigger',
9
+ usableAsTool: true,
9
10
  icon: 'file:clientify.svg',
10
11
  group: ['trigger'],
11
12
  version: 1,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "n8n-nodes-clientify",
3
- "version": "0.2.15",
3
+ "version": "0.2.16",
4
4
  "description": "N8N node for Clientify CRM integration",
5
5
  "keywords": [
6
6
  "n8n-node",
@@ -23,12 +23,14 @@
23
23
  },
24
24
  "main": "index.js",
25
25
  "scripts": {
26
- "build": "node scripts/generateOperationCatalog.cjs && rm -rf dist && tsc && cp package.json dist/ && cp README.md dist/ && cp TRIGGERS_REFERENCE.md dist/ && mkdir -p dist/nodes/ClientifyApi dist/nodes/ClientifyTrigger && cp nodes/ClientifyMcp/*.png dist/nodes/ClientifyApi/ 2>/dev/null || true && cp nodes/ClientifyMcp/*.svg dist/nodes/ClientifyApi/ 2>/dev/null || true && cp nodes/ClientifyMcp/*.png dist/nodes/ClientifyTrigger/ 2>/dev/null || true && cp nodes/ClientifyMcp/*.svg dist/nodes/ClientifyTrigger/ 2>/dev/null || true",
27
- "dev": "tsc --watch",
26
+ "build": "node scripts/generateOperationCatalog.cjs && n8n-node build && cp TRIGGERS_REFERENCE.md dist/ && mkdir -p dist/nodes/ClientifyApi dist/nodes/ClientifyTrigger && cp nodes/ClientifyMcp/*.png dist/nodes/ClientifyApi/ 2>/dev/null || true && cp nodes/ClientifyMcp/*.svg dist/nodes/ClientifyApi/ 2>/dev/null || true && cp nodes/ClientifyMcp/*.png dist/nodes/ClientifyTrigger/ 2>/dev/null || true && cp nodes/ClientifyMcp/*.svg dist/nodes/ClientifyTrigger/ 2>/dev/null || true",
27
+ "build:watch": "tsc --watch",
28
+ "dev": "n8n-node dev",
28
29
  "format": "prettier \"nodes/**/*.ts\" \"credentials/**/*.ts\" \"scripts/**/*.cjs\" package.json --write",
29
- "lint": "eslint nodes credentials package.json --ext .ts",
30
- "lintfix": "eslint nodes credentials package.json --ext .ts --fix",
31
- "prepublishOnly": "npm run build && npm run lint"
30
+ "lint": "n8n-node lint",
31
+ "lint:fix": "n8n-node lint --fix",
32
+ "prepublishOnly": "npm run build && npm run lint",
33
+ "release": "n8n-node release"
32
34
  },
33
35
  "files": [
34
36
  "dist"
@@ -44,12 +46,10 @@
44
46
  ]
45
47
  },
46
48
  "devDependencies": {
49
+ "@n8n/node-cli": "0.23.0",
50
+ "@eslint/js": "9.39.1",
47
51
  "@types/node": "^20.0.0",
48
- "@typescript-eslint/eslint-plugin": "^5.45.0",
49
- "@typescript-eslint/parser": "^5.45.0",
50
- "eslint": "^8.28.0",
51
- "eslint-config-prettier": "^8.5.0",
52
- "eslint-plugin-n8n-nodes-base": "^1.11.0",
52
+ "eslint": "9.39.1",
53
53
  "n8n-workflow": "^2.2.1",
54
54
  "prettier": "^2.8.0",
55
55
  "typescript": "^5.6.3"
package/dist/README.md DELETED
@@ -1,103 +0,0 @@
1
- # n8n-nodes-clientify
2
-
3
- [![npm version](https://badge.fury.io/js/n8n-nodes-clientify.svg)](https://www.npmjs.com/package/n8n-nodes-clientify)
4
- [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
5
-
6
- Connect n8n to Clientify CRM via the Clientify REST API using API keys (`Authorization: Token <apiKey>`).
7
-
8
- This package stays aligned with the action catalog by generating actions/fields from a single shared connector spec at build time.
9
- Under the hood, requests are executed directly via n8n’s HTTP request helper with `Authorization: Token <apiKey>`.
10
-
11
- ## Installation
12
-
13
- ### In n8n (GUI)
14
-
15
- 1. Go to **Settings** → **Community Nodes**
16
- 2. Click **Install**
17
- 3. Enter: `n8n-nodes-clientify`
18
- 4. Click **I understand the risks** and then **Install**
19
- 5. **Restart n8n** (important - it won't show up until you do)
20
-
21
- ### Via npm (Command Line)
22
-
23
- ```bash
24
- cd ~/.n8n/nodes
25
- npm install n8n-nodes-clientify
26
- # Restart n8n
27
- ```
28
-
29
- ### Docker
30
-
31
- Persist the nodes directory, or you’ll lose the node on restart:
32
-
33
- ```yaml
34
- volumes:
35
- - n8n_data:/home/node/.n8n
36
- ```
37
-
38
- Or enable auto-reinstall:
39
-
40
- ```yaml
41
- environment:
42
- - N8N_REINSTALL_MISSING_PACKAGES=true
43
- ```
44
-
45
- ## Prerequisites
46
-
47
- You'll need:
48
- - n8n 2.x
49
- - Node.js 20+
50
- - A Clientify API key
51
-
52
- ## Configuration
53
-
54
- 1. In n8n, go to **Credentials** → **New**
55
- 2. Search for **"Clientify API"**
56
- 3. Enter your **API Key**
57
- 4. Click **Save**
58
-
59
- ## Nodes
60
-
61
- ### Clientify (action node)
62
-
63
- 1. Add a node and search for **Clientify**.
64
- 2. Pick an **Action**.
65
- 3. Fill fields directly or map them from previous nodes using expressions.
66
-
67
- ### Clientify Trigger (webhook helper)
68
-
69
- Use this when you want a Clientify-branded trigger in the workflow. Under the hood it behaves like an n8n webhook:
70
-
71
- - Use **Test URL** when executing on the canvas.
72
- - Use **Production URL** for always-on external calls (runs show up in **Executions**).
73
- - The trigger verifies the incoming payload `event` matches the selected event type.
74
-
75
- For payload formats and examples, see `TRIGGERS_REFERENCE.md`.
76
-
77
- ## Available Operations
78
-
79
- Operations are generated from the bundled catalog (currently 81 actions).
80
-
81
- ## Mapping (inputs from earlier steps)
82
-
83
- Mapping is field-based:
84
-
85
- - Use the field’s **+** button (variable picker), or
86
- - Toggle **=** and use expressions like `{{$node["Create Contact"].json.id}}`.
87
-
88
- ## Troubleshooting
89
-
90
- - If the node does not appear after install, restart n8n.
91
- - If the API returns `401`, verify your API key.
92
- - If an operation requires an ID, ensure you mapped the correct numeric ID from a previous node.
93
-
94
- ## Support
95
-
96
- - **Clientify API docs:** https://newapi.clientify.com/
97
- - **Triggers reference:** [`TRIGGERS_REFERENCE.md`](TRIGGERS_REFERENCE.md)
98
-
99
- ## License
100
-
101
- MIT License - see [LICENSE](LICENSE) file for details.
102
-
103
- Copyright (c) 2025 Clientify
package/dist/package.json DELETED
@@ -1,60 +0,0 @@
1
- {
2
- "name": "n8n-nodes-clientify",
3
- "version": "0.2.15",
4
- "description": "N8N node for Clientify CRM integration",
5
- "keywords": [
6
- "n8n-node",
7
- "n8n-community-node-package",
8
- "clientify",
9
- "crm"
10
- ],
11
- "license": "MIT",
12
- "homepage": "https://github.com/contacteitor/clientify_n8n#readme",
13
- "author": {
14
- "name": "Clientify",
15
- "email": "develop@clientify.com"
16
- },
17
- "repository": {
18
- "type": "git",
19
- "url": "https://github.com/contacteitor/clientify_n8n.git"
20
- },
21
- "engines": {
22
- "node": ">=20.15"
23
- },
24
- "main": "index.js",
25
- "scripts": {
26
- "build": "node scripts/generateOperationCatalog.cjs && rm -rf dist && tsc && cp package.json dist/ && cp README.md dist/ && cp TRIGGERS_REFERENCE.md dist/ && mkdir -p dist/nodes/ClientifyApi dist/nodes/ClientifyTrigger && cp nodes/ClientifyMcp/*.png dist/nodes/ClientifyApi/ 2>/dev/null || true && cp nodes/ClientifyMcp/*.svg dist/nodes/ClientifyApi/ 2>/dev/null || true && cp nodes/ClientifyMcp/*.png dist/nodes/ClientifyTrigger/ 2>/dev/null || true && cp nodes/ClientifyMcp/*.svg dist/nodes/ClientifyTrigger/ 2>/dev/null || true",
27
- "dev": "tsc --watch",
28
- "format": "prettier \"nodes/**/*.ts\" \"credentials/**/*.ts\" \"scripts/**/*.cjs\" package.json --write",
29
- "lint": "eslint nodes credentials package.json --ext .ts",
30
- "lintfix": "eslint nodes credentials package.json --ext .ts --fix",
31
- "prepublishOnly": "npm run build && npm run lint"
32
- },
33
- "files": [
34
- "dist"
35
- ],
36
- "n8n": {
37
- "n8nNodesApiVersion": 1,
38
- "credentials": [
39
- "dist/credentials/ClientifyApi.credentials.js"
40
- ],
41
- "nodes": [
42
- "dist/nodes/ClientifyApi/ClientifyApi.node.js",
43
- "dist/nodes/ClientifyTrigger/ClientifyTrigger.node.js"
44
- ]
45
- },
46
- "devDependencies": {
47
- "@types/node": "^20.0.0",
48
- "@typescript-eslint/eslint-plugin": "^5.45.0",
49
- "@typescript-eslint/parser": "^5.45.0",
50
- "eslint": "^8.28.0",
51
- "eslint-config-prettier": "^8.5.0",
52
- "eslint-plugin-n8n-nodes-base": "^1.11.0",
53
- "n8n-workflow": "^2.2.1",
54
- "prettier": "^2.8.0",
55
- "typescript": "^5.6.3"
56
- },
57
- "peerDependencies": {
58
- "n8n-workflow": "*"
59
- }
60
- }