n8n-nodes-clientify 0.2.4 → 0.2.6
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/README.md +31 -338
- package/dist/README.md +31 -338
- package/dist/TRIGGERS_REFERENCE.md +1 -1
- package/dist/appmixer/clientify/crm/AddCompanyAddress/AddCompanyAddress.js +33 -0
- package/dist/appmixer/clientify/crm/AddCompanyAddress/component.json +115 -0
- package/dist/appmixer/clientify/crm/AddCompanyCall/AddCompanyCall.js +32 -0
- package/dist/appmixer/clientify/crm/AddCompanyCall/component.json +109 -0
- package/dist/appmixer/clientify/crm/AddCompanyCheckin/AddCompanyCheckin.js +31 -0
- package/dist/appmixer/clientify/crm/AddCompanyCheckin/component.json +98 -0
- package/dist/appmixer/clientify/crm/AddCompanyEmail/AddCompanyEmail.js +25 -0
- package/dist/appmixer/clientify/crm/AddCompanyEmail/component.json +84 -0
- package/dist/appmixer/clientify/crm/AddCompanyEmployee/AddCompanyEmployee.js +22 -0
- package/dist/appmixer/clientify/crm/AddCompanyEmployee/component.json +65 -0
- package/dist/appmixer/clientify/crm/AddCompanyNote/AddCompanyNote.js +25 -0
- package/dist/appmixer/clientify/crm/AddCompanyNote/component.json +75 -0
- package/dist/appmixer/clientify/crm/AddCompanyPhone/AddCompanyPhone.js +25 -0
- package/dist/appmixer/clientify/crm/AddCompanyPhone/component.json +87 -0
- package/dist/appmixer/clientify/crm/AddCompanyTag/AddCompanyTag.js +23 -0
- package/dist/appmixer/clientify/crm/AddCompanyTag/component.json +71 -0
- package/dist/appmixer/clientify/crm/AddCompanyWebsite/AddCompanyWebsite.js +23 -0
- package/dist/appmixer/clientify/crm/AddCompanyWebsite/component.json +65 -0
- package/dist/appmixer/clientify/crm/AddContactAddress/AddContactAddress.js +33 -0
- package/dist/appmixer/clientify/crm/AddContactAddress/component.json +115 -0
- package/dist/appmixer/clientify/crm/AddContactCall/AddContactCall.js +20 -0
- package/dist/appmixer/clientify/crm/AddContactCall/component.json +55 -0
- package/dist/appmixer/clientify/crm/AddContactCheckin/AddContactCheckin.js +33 -0
- package/dist/appmixer/clientify/crm/AddContactCheckin/component.json +109 -0
- package/dist/appmixer/clientify/crm/AddContactEmail/AddContactEmail.js +25 -0
- package/dist/appmixer/clientify/crm/AddContactEmail/component.json +85 -0
- package/dist/appmixer/clientify/crm/AddContactNote/AddContactNote.js +25 -0
- package/dist/appmixer/clientify/crm/AddContactNote/component.json +75 -0
- package/dist/appmixer/clientify/crm/AddContactOtherCompany/AddContactOtherCompany.js +23 -0
- package/dist/appmixer/clientify/crm/AddContactOtherCompany/component.json +65 -0
- package/dist/appmixer/clientify/crm/AddContactPhone/AddContactPhone.js +25 -0
- package/dist/appmixer/clientify/crm/AddContactPhone/component.json +88 -0
- package/dist/appmixer/clientify/crm/AddContactTag/AddContactTag.js +23 -0
- package/dist/appmixer/clientify/crm/AddContactTag/component.json +71 -0
- package/dist/appmixer/clientify/crm/AssignContactOwner/AssignContactOwner.js +23 -0
- package/dist/appmixer/clientify/crm/AssignContactOwner/component.json +93 -0
- package/dist/appmixer/clientify/crm/BatchCreateContacts/BatchCreateContacts.js +23 -0
- package/dist/appmixer/clientify/crm/BatchCreateContacts/component.json +90 -0
- package/dist/appmixer/clientify/crm/CompleteTask/CompleteTask.js +24 -0
- package/dist/appmixer/clientify/crm/CompleteTask/component.json +69 -0
- package/dist/appmixer/clientify/crm/CreateCompany/CreateCompany.js +19 -0
- package/dist/appmixer/clientify/crm/CreateCompany/component.json +58 -0
- package/dist/appmixer/clientify/crm/CreateContact/CreateContact.js +19 -0
- package/dist/appmixer/clientify/crm/CreateContact/component.json +88 -0
- package/dist/appmixer/clientify/crm/CreateTask/CreateTask.js +19 -0
- package/dist/appmixer/clientify/crm/CreateTask/component.json +167 -0
- package/dist/appmixer/clientify/crm/DeleteCompany/DeleteCompany.js +22 -0
- package/dist/appmixer/clientify/crm/DeleteCompany/component.json +51 -0
- package/dist/appmixer/clientify/crm/DeleteCompanyAddress/DeleteCompanyAddress.js +22 -0
- package/dist/appmixer/clientify/crm/DeleteCompanyAddress/component.json +62 -0
- package/dist/appmixer/clientify/crm/DeleteCompanyEmail/DeleteCompanyEmail.js +22 -0
- package/dist/appmixer/clientify/crm/DeleteCompanyEmail/component.json +62 -0
- package/dist/appmixer/clientify/crm/DeleteCompanyPhone/DeleteCompanyPhone.js +22 -0
- package/dist/appmixer/clientify/crm/DeleteCompanyPhone/component.json +62 -0
- package/dist/appmixer/clientify/crm/DeleteCompanyWebsite/DeleteCompanyWebsite.js +22 -0
- package/dist/appmixer/clientify/crm/DeleteCompanyWebsite/component.json +62 -0
- package/dist/appmixer/clientify/crm/DeleteContact/DeleteContact.js +22 -0
- package/dist/appmixer/clientify/crm/DeleteContact/component.json +51 -0
- package/dist/appmixer/clientify/crm/DeleteContactAddress/DeleteContactAddress.js +22 -0
- package/dist/appmixer/clientify/crm/DeleteContactAddress/component.json +62 -0
- package/dist/appmixer/clientify/crm/DeleteContactEmail/DeleteContactEmail.js +22 -0
- package/dist/appmixer/clientify/crm/DeleteContactEmail/component.json +62 -0
- package/dist/appmixer/clientify/crm/DeleteContactOtherCompany/DeleteContactOtherCompany.js +22 -0
- package/dist/appmixer/clientify/crm/DeleteContactOtherCompany/component.json +62 -0
- package/dist/appmixer/clientify/crm/DeleteContactPhone/DeleteContactPhone.js +22 -0
- package/dist/appmixer/clientify/crm/DeleteContactPhone/component.json +62 -0
- package/dist/appmixer/clientify/crm/GetCompany/GetCompany.js +24 -0
- package/dist/appmixer/clientify/crm/GetCompany/component.json +69 -0
- package/dist/appmixer/clientify/crm/GetContact/GetContact.js +24 -0
- package/dist/appmixer/clientify/crm/GetContact/component.json +90 -0
- package/dist/appmixer/clientify/crm/GetCurrentUser/GetCurrentUser.js +17 -0
- package/dist/appmixer/clientify/crm/GetCurrentUser/component.json +49 -0
- package/dist/appmixer/clientify/crm/GetTask/GetTask.js +24 -0
- package/dist/appmixer/clientify/crm/GetTask/component.json +78 -0
- package/dist/appmixer/clientify/crm/ListAllCompanyTags/ListAllCompanyTags.js +16 -0
- package/dist/appmixer/clientify/crm/ListAllCompanyTags/component.json +67 -0
- package/dist/appmixer/clientify/crm/ListAllContactTags/ListAllContactTags.js +16 -0
- package/dist/appmixer/clientify/crm/ListAllContactTags/component.json +67 -0
- package/dist/appmixer/clientify/crm/ListCompanies/ListCompanies.js +26 -0
- package/dist/appmixer/clientify/crm/ListCompanies/component.json +117 -0
- package/dist/appmixer/clientify/crm/ListCompanyAddresses/ListCompanyAddresses.js +20 -0
- package/dist/appmixer/clientify/crm/ListCompanyAddresses/component.json +79 -0
- package/dist/appmixer/clientify/crm/ListCompanyCustomfields/ListCompanyCustomfields.js +20 -0
- package/dist/appmixer/clientify/crm/ListCompanyCustomfields/component.json +79 -0
- package/dist/appmixer/clientify/crm/ListCompanyEmails/ListCompanyEmails.js +20 -0
- package/dist/appmixer/clientify/crm/ListCompanyEmails/component.json +88 -0
- package/dist/appmixer/clientify/crm/ListCompanyEmployees/ListCompanyEmployees.js +20 -0
- package/dist/appmixer/clientify/crm/ListCompanyEmployees/component.json +79 -0
- package/dist/appmixer/clientify/crm/ListCompanyPhones/ListCompanyPhones.js +20 -0
- package/dist/appmixer/clientify/crm/ListCompanyPhones/component.json +91 -0
- package/dist/appmixer/clientify/crm/ListCompanySectors/ListCompanySectors.js +16 -0
- package/dist/appmixer/clientify/crm/ListCompanySectors/component.json +64 -0
- package/dist/appmixer/clientify/crm/ListCompanyTags/ListCompanyTags.js +20 -0
- package/dist/appmixer/clientify/crm/ListCompanyTags/component.json +85 -0
- package/dist/appmixer/clientify/crm/ListCompanyTasks/ListCompanyTasks.js +20 -0
- package/dist/appmixer/clientify/crm/ListCompanyTasks/component.json +79 -0
- package/dist/appmixer/clientify/crm/ListCompanyWallentries/ListCompanyWallentries.js +20 -0
- package/dist/appmixer/clientify/crm/ListCompanyWallentries/component.json +79 -0
- package/dist/appmixer/clientify/crm/ListCompanyWebsites/ListCompanyWebsites.js +20 -0
- package/dist/appmixer/clientify/crm/ListCompanyWebsites/component.json +79 -0
- package/dist/appmixer/clientify/crm/ListContactAddresses/ListContactAddresses.js +20 -0
- package/dist/appmixer/clientify/crm/ListContactAddresses/component.json +79 -0
- package/dist/appmixer/clientify/crm/ListContactCustomfields/ListContactCustomfields.js +20 -0
- package/dist/appmixer/clientify/crm/ListContactCustomfields/component.json +79 -0
- package/dist/appmixer/clientify/crm/ListContactEmails/ListContactEmails.js +20 -0
- package/dist/appmixer/clientify/crm/ListContactEmails/component.json +88 -0
- package/dist/appmixer/clientify/crm/ListContactOtherCompanies/ListContactOtherCompanies.js +20 -0
- package/dist/appmixer/clientify/crm/ListContactOtherCompanies/component.json +85 -0
- package/dist/appmixer/clientify/crm/ListContactPhones/ListContactPhones.js +20 -0
- package/dist/appmixer/clientify/crm/ListContactPhones/component.json +91 -0
- package/dist/appmixer/clientify/crm/ListContactTags/ListContactTags.js +20 -0
- package/dist/appmixer/clientify/crm/ListContactTags/component.json +85 -0
- package/dist/appmixer/clientify/crm/ListContactTasks/ListContactTasks.js +20 -0
- package/dist/appmixer/clientify/crm/ListContactTasks/component.json +79 -0
- package/dist/appmixer/clientify/crm/ListContactWallentries/ListContactWallentries.js +20 -0
- package/dist/appmixer/clientify/crm/ListContactWallentries/component.json +79 -0
- package/dist/appmixer/clientify/crm/ListContacts/ListContacts.js +26 -0
- package/dist/appmixer/clientify/crm/ListContacts/component.json +138 -0
- package/dist/appmixer/clientify/crm/ListCustomFieldValues/ListCustomFieldValues.js +19 -0
- package/dist/appmixer/clientify/crm/ListCustomFieldValues/component.json +77 -0
- package/dist/appmixer/clientify/crm/ListCustomFields/ListCustomFields.js +19 -0
- package/dist/appmixer/clientify/crm/ListCustomFields/component.json +77 -0
- package/dist/appmixer/clientify/crm/ListTaskStages/ListTaskStages.js +19 -0
- package/dist/appmixer/clientify/crm/ListTaskStages/component.json +87 -0
- package/dist/appmixer/clientify/crm/ListTaskTypes/ListTaskTypes.js +19 -0
- package/dist/appmixer/clientify/crm/ListTaskTypes/component.json +87 -0
- package/dist/appmixer/clientify/crm/ListTasks/ListTasks.js +25 -0
- package/dist/appmixer/clientify/crm/ListTasks/component.json +102 -0
- package/dist/appmixer/clientify/crm/ListUsers/ListUsers.js +24 -0
- package/dist/appmixer/clientify/crm/ListUsers/component.json +93 -0
- package/dist/appmixer/clientify/crm/RemoveCompanyEmployee/RemoveCompanyEmployee.js +22 -0
- package/dist/appmixer/clientify/crm/RemoveCompanyEmployee/component.json +62 -0
- package/dist/appmixer/clientify/crm/RemoveCompanyTag/RemoveCompanyTag.js +22 -0
- package/dist/appmixer/clientify/crm/RemoveCompanyTag/component.json +62 -0
- package/dist/appmixer/clientify/crm/RemoveContactTag/RemoveContactTag.js +22 -0
- package/dist/appmixer/clientify/crm/RemoveContactTag/component.json +62 -0
- package/dist/appmixer/clientify/crm/SearchCompanies/SearchCompanies.js +29 -0
- package/dist/appmixer/clientify/crm/SearchCompanies/component.json +111 -0
- package/dist/appmixer/clientify/crm/UpdateCompany/UpdateCompany.js +24 -0
- package/dist/appmixer/clientify/crm/UpdateCompany/component.json +60 -0
- package/dist/appmixer/clientify/crm/UpdateCompanyAddress/UpdateCompanyAddress.js +35 -0
- package/dist/appmixer/clientify/crm/UpdateCompanyAddress/component.json +131 -0
- package/dist/appmixer/clientify/crm/UpdateCompanyEmail/UpdateCompanyEmail.js +27 -0
- package/dist/appmixer/clientify/crm/UpdateCompanyEmail/component.json +91 -0
- package/dist/appmixer/clientify/crm/UpdateCompanyPhone/UpdateCompanyPhone.js +27 -0
- package/dist/appmixer/clientify/crm/UpdateCompanyPhone/component.json +91 -0
- package/dist/appmixer/clientify/crm/UpdateCompanyWebsite/UpdateCompanyWebsite.js +25 -0
- package/dist/appmixer/clientify/crm/UpdateCompanyWebsite/component.json +81 -0
- package/dist/appmixer/clientify/crm/UpdateContact/UpdateContact.js +24 -0
- package/dist/appmixer/clientify/crm/UpdateContact/component.json +81 -0
- package/dist/appmixer/clientify/crm/UpdateContactAddress/UpdateContactAddress.js +35 -0
- package/dist/appmixer/clientify/crm/UpdateContactAddress/component.json +152 -0
- package/dist/appmixer/clientify/crm/UpdateContactEmail/UpdateContactEmail.js +27 -0
- package/dist/appmixer/clientify/crm/UpdateContactEmail/component.json +112 -0
- package/dist/appmixer/clientify/crm/UpdateContactMarketingStatus/UpdateContactMarketingStatus.js +25 -0
- package/dist/appmixer/clientify/crm/UpdateContactMarketingStatus/component.json +92 -0
- package/dist/appmixer/clientify/crm/UpdateContactOtherCompany/UpdateContactOtherCompany.js +25 -0
- package/dist/appmixer/clientify/crm/UpdateContactOtherCompany/component.json +102 -0
- package/dist/appmixer/clientify/crm/UpdateContactPhone/UpdateContactPhone.js +27 -0
- package/dist/appmixer/clientify/crm/UpdateContactPhone/component.json +112 -0
- package/dist/appmixer/clientify/crm/UpdateTask/UpdateTask.js +24 -0
- package/dist/appmixer/clientify/crm/UpdateTask/component.json +69 -0
- package/dist/appmixer/clientify/crm/clientify.js +49 -0
- package/dist/appmixer/clientify/crm/fields.js +24 -0
- package/dist/appmixer/clientify/crm/module.json +7 -0
- package/dist/credentials/{ClientifyMcpApi.credentials.d.ts → ClientifyApi.credentials.d.ts} +1 -1
- package/dist/credentials/ClientifyApi.credentials.js +33 -0
- package/dist/nodes/{ClientifyMcp/ClientifyMcpDynamic.node.d.ts → ClientifyApi/ClientifyApi.node.d.ts} +1 -1
- package/dist/nodes/ClientifyApi/ClientifyApi.node.js +139 -0
- package/dist/nodes/ClientifyApi/ClientifyApiCatalog.d.ts +23 -0
- package/dist/nodes/ClientifyApi/ClientifyApiCatalog.js +217 -0
- package/dist/nodes/{ClientifyMcp/ClientifyMcpTrigger.node.d.ts → ClientifyTrigger/ClientifyTrigger.node.d.ts} +1 -1
- package/dist/nodes/{ClientifyMcp/ClientifyMcpTrigger.node.js → ClientifyTrigger/ClientifyTrigger.node.js} +6 -12
- package/dist/nodes/ClientifyTrigger/clientify.png +0 -0
- package/dist/nodes/ClientifyTrigger/clientify.svg +5 -0
- package/dist/package.json +13 -6
- package/package.json +13 -6
- package/dist/credentials/ClientifyMcpApi.credentials.js +0 -25
- package/dist/nodes/ClientifyMcp/ClientifyMcpDynamic.node.js +0 -211
- package/dist/nodes/ClientifyMcp/ClientifyMcpFields.d.ts +0 -15
- package/dist/nodes/ClientifyMcp/ClientifyMcpFields.js +0 -894
- /package/dist/nodes/{ClientifyMcp → ClientifyApi}/clientify.png +0 -0
- /package/dist/nodes/{ClientifyMcp → ClientifyApi}/clientify.svg +0 -0
package/README.md
CHANGED
|
@@ -3,24 +3,14 @@
|
|
|
3
3
|
[](https://www.npmjs.com/package/n8n-nodes-clientify)
|
|
4
4
|
[](https://opensource.org/licenses/MIT)
|
|
5
5
|
|
|
6
|
-
Connect n8n to Clientify CRM
|
|
6
|
+
Connect n8n to Clientify CRM via the Clientify REST API using API keys (`Authorization: Token <apiKey>`).
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
This package stays aligned with the official action catalog by generating actions/fields from the same connector spec used elsewhere (bundled inside this package under `appmixer/clientify/crm/`).
|
|
9
9
|
|
|
10
|
-
-
|
|
11
|
-
- [Prerequisites](#prerequisites)
|
|
12
|
-
- [Configuration](#configuration)
|
|
13
|
-
- [Available Operations](#available-operations)
|
|
14
|
-
- [Trigger Events](#trigger-events)
|
|
15
|
-
- [Usage Examples](#usage-examples)
|
|
16
|
-
- [Troubleshooting](#troubleshooting)
|
|
17
|
-
- [Support](#support)
|
|
18
|
-
- [License](#license)
|
|
10
|
+
Under the hood, requests are executed via `@clientify/api-client`.
|
|
19
11
|
|
|
20
12
|
## Installation
|
|
21
13
|
|
|
22
|
-
Start with the GUI method - it's the easiest.
|
|
23
|
-
|
|
24
14
|
### In n8n (GUI)
|
|
25
15
|
|
|
26
16
|
1. Go to **Settings** → **Community Nodes**
|
|
@@ -39,7 +29,7 @@ npm install n8n-nodes-clientify
|
|
|
39
29
|
|
|
40
30
|
### Docker
|
|
41
31
|
|
|
42
|
-
|
|
32
|
+
Persist the nodes directory, or you’ll lose the node on restart:
|
|
43
33
|
|
|
44
34
|
```yaml
|
|
45
35
|
volumes:
|
|
@@ -56,356 +46,59 @@ environment:
|
|
|
56
46
|
## Prerequisites
|
|
57
47
|
|
|
58
48
|
You'll need:
|
|
59
|
-
- n8n
|
|
60
|
-
- Node.js 20
|
|
61
|
-
-
|
|
62
|
-
- JWT token from Clientify MCP server
|
|
49
|
+
- n8n 2.x
|
|
50
|
+
- Node.js 20+
|
|
51
|
+
- A Clientify API key
|
|
63
52
|
|
|
64
53
|
## Configuration
|
|
65
54
|
|
|
66
|
-
### Step 1: Obtain Your Clientify MCP Token
|
|
67
|
-
|
|
68
|
-
1. Log into your Clientify account
|
|
69
|
-
2. Navigate to API settings or contact your Clientify administrator
|
|
70
|
-
3. Generate or copy your MCP authentication token (JWT format)
|
|
71
|
-
|
|
72
|
-
### Step 2: Add Credentials in n8n
|
|
73
|
-
|
|
74
55
|
1. In n8n, go to **Credentials** → **New**
|
|
75
|
-
2. Search for **"Clientify
|
|
76
|
-
3. Enter your **
|
|
56
|
+
2. Search for **"Clientify API"**
|
|
57
|
+
3. Enter your **API Key**
|
|
77
58
|
4. Click **Save**
|
|
78
59
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
1. In your workflow, click **+** to add a node
|
|
82
|
-
2. Search for **"Clientify"**
|
|
83
|
-
3. Select the **Clientify** node
|
|
84
|
-
4. Choose your saved credentials
|
|
85
|
-
5. Select an operation from the dropdown
|
|
86
|
-
6. Configure the parameters for your operation
|
|
87
|
-
|
|
88
|
-
## Available Operations
|
|
89
|
-
|
|
90
|
-
26 operations available from the Clientify MCP API:
|
|
91
|
-
|
|
92
|
-
### 📊 Companies
|
|
93
|
-
- **List Companies** - Browse all companies with pagination
|
|
94
|
-
- **Get Company** - Fetch full company details by ID
|
|
95
|
-
- **Create Company** - Add a new company to your CRM
|
|
96
|
-
- **Update Company** - Modify existing company info
|
|
97
|
-
- **Delete Company** - Remove a company
|
|
98
|
-
- **Search Companies** - Find companies by name or criteria
|
|
99
|
-
|
|
100
|
-
### 👥 Contacts
|
|
101
|
-
- **List Contacts** - View all contacts or search for specific ones
|
|
102
|
-
- **Get Contact** - Look up a contact's information by ID
|
|
103
|
-
- **Create Contact** - Add someone new to your CRM
|
|
104
|
-
- **Update Contact** - Change contact details
|
|
105
|
-
- **Delete Contact** - Remove a contact
|
|
106
|
-
|
|
107
|
-
### 💼 Deals
|
|
108
|
-
- **List Deals** - See all deals with filters and pagination
|
|
109
|
-
- **List Deals By Stage** - Show deals in a specific pipeline stage
|
|
110
|
-
- **Get Deal** - Pull complete deal data by ID
|
|
111
|
-
- **Create Deal** - Start tracking a new opportunity
|
|
112
|
-
- **Update Deal** - Modify deal information
|
|
113
|
-
- **Delete Deal** - Remove a deal
|
|
114
|
-
- **Mark Deal Won** - Close a deal as won
|
|
115
|
-
- **Mark Deal Lost** - Mark a deal as lost
|
|
116
|
-
|
|
117
|
-
### ✅ Tasks
|
|
118
|
-
- **List Tasks** - View all tasks with pagination
|
|
119
|
-
- **Get Task** - Retrieve task details by ID
|
|
120
|
-
- **Create Task** - Add a new activity or to-do
|
|
121
|
-
- **List Activity Types** - See available task categories
|
|
122
|
-
|
|
123
|
-
### ⚙️ Configuration & Utilities
|
|
124
|
-
- **List Pipelines** - Get your sales pipeline configurations
|
|
125
|
-
- **Get Current User** - Check authenticated user details
|
|
126
|
-
- **Get Current Time** - Grab current timestamp with timezone
|
|
127
|
-
|
|
128
|
-
## Trigger Events
|
|
129
|
-
|
|
130
|
-
**NEW in v0.2.0!** Triggers are way better than polling. The Clientify Trigger node enables automatic workflow execution when events occur in Clientify CRM. With 16 event types covering contacts, companies, deals, and tasks, you can automate workflows instantly when things happen in your CRM.
|
|
131
|
-
|
|
132
|
-
### How triggers work
|
|
133
|
-
|
|
134
|
-
Add a Clientify Trigger node, pick an event (like "Contact Created"), and activate your workflow. You'll get a unique webhook URL. Configure that URL in Clientify's webhook settings, and boom - your workflow runs automatically whenever that event fires.
|
|
135
|
-
|
|
136
|
-
### 16 Available Triggers
|
|
137
|
-
|
|
138
|
-
| Event | Trigger Name | When It Fires | Common Use Cases |
|
|
139
|
-
|-------|--------------|---------------|------------------|
|
|
140
|
-
| 👥 **Contacts** | | | |
|
|
141
|
-
| | Contact Created | New contact added | Welcome email, create follow-up task, add to CRM |
|
|
142
|
-
| | Contact Updated | Contact details changed | Sync to other systems, log changes, update records |
|
|
143
|
-
| | Contact Deleted | Contact removed | Archive data, remove from email lists, cleanup |
|
|
144
|
-
| 📊 **Companies** | | | |
|
|
145
|
-
| | Company Created | New company added | Research company, assign account manager, notify team |
|
|
146
|
-
| | Company Updated | Company details changed | Update external systems, track changes |
|
|
147
|
-
| | Company Deleted | Company removed | Clean up related data, archive records |
|
|
148
|
-
| 💼 **Deals** | | | |
|
|
149
|
-
| | Deal Created | New deal/opportunity created | Notify sales team, create tasks, log in analytics |
|
|
150
|
-
| | Deal Updated | Deal details changed | Track value changes, update forecasts, log activity |
|
|
151
|
-
| | Deal Won | Deal closed successfully | Send celebration, create invoice, start onboarding |
|
|
152
|
-
| | Deal Lost | Deal closed unsuccessfully | Add to nurture campaign, analyze loss reason |
|
|
153
|
-
| | Deal Stage Changed | Deal moved to different stage | Stage-specific actions (send pricing, generate contract) |
|
|
154
|
-
| | Deal Deleted | Deal removed | Log deletion, archive data |
|
|
155
|
-
| ✅ **Tasks** | | | |
|
|
156
|
-
| | Task Created | New task added | Add to calendar, notify assignee, sync to project tools |
|
|
157
|
-
| | Task Completed | Task marked complete | Log activity, update metrics, trigger next steps |
|
|
158
|
-
| | Task Due Soon | Task approaching due date | Send reminder to assignee |
|
|
159
|
-
| | Task Overdue | Task past due date | Escalate to manager, send urgent notification |
|
|
160
|
-
|
|
161
|
-
### Setup Instructions
|
|
162
|
-
|
|
163
|
-
**In n8n:**
|
|
164
|
-
1. Add "Clientify Trigger" node to your workflow
|
|
165
|
-
2. Select the event from the dropdown
|
|
166
|
-
3. Choose your Clientify MCP credentials
|
|
167
|
-
4. Save and **activate** the workflow (toggle ON)
|
|
168
|
-
5. Click the trigger node → Expand "Webhook URLs"
|
|
169
|
-
6. Switch to "Production URL" tab
|
|
170
|
-
7. Copy the webhook URL
|
|
171
|
-
|
|
172
|
-
**In Clientify:**
|
|
173
|
-
1. Go to Settings → Webhooks
|
|
174
|
-
2. Click "Add Webhook"
|
|
175
|
-
3. Select the matching event (e.g., "contact.created")
|
|
176
|
-
4. Paste your n8n webhook URL
|
|
177
|
-
5. Set status to "Active"
|
|
178
|
-
6. Save
|
|
179
|
-
|
|
180
|
-
**Test It:**
|
|
181
|
-
Create a contact, deal, or task in Clientify → Check n8n executions → Your workflow should have run!
|
|
182
|
-
|
|
183
|
-
### Data You'll Receive
|
|
184
|
-
|
|
185
|
-
Webhook data is automatically flattened for easy access in your workflows. Event payloads look like this:
|
|
186
|
-
|
|
187
|
-
**Contact Events** (`contact.created`, `contact.updated`, `contact.deleted`)
|
|
188
|
-
```json
|
|
189
|
-
{
|
|
190
|
-
"event": "contact.created",
|
|
191
|
-
"timestamp": "2025-10-02T15:30:00Z",
|
|
192
|
-
"contact_id": 12345,
|
|
193
|
-
"first_name": "John",
|
|
194
|
-
"last_name": "Doe",
|
|
195
|
-
"email": "john.doe@example.com",
|
|
196
|
-
"phone": "+1234567890",
|
|
197
|
-
"company_id": 456,
|
|
198
|
-
"company_name": "Acme Corp",
|
|
199
|
-
"changes": { /* only for .updated events */ }
|
|
200
|
-
}
|
|
201
|
-
```
|
|
202
|
-
Access with: `{{$json.first_name}}`, `{{$json.email}}`, `{{$json.company_name}}`
|
|
203
|
-
|
|
204
|
-
**Company Events** (`company.created`, `company.updated`, `company.deleted`)
|
|
205
|
-
```json
|
|
206
|
-
{
|
|
207
|
-
"event": "company.created",
|
|
208
|
-
"timestamp": "2025-10-02T18:00:00Z",
|
|
209
|
-
"company_id": 999,
|
|
210
|
-
"name": "Tech Startup Inc",
|
|
211
|
-
"domain": "techstartup.com",
|
|
212
|
-
"industry": "Technology",
|
|
213
|
-
"size": "50-100",
|
|
214
|
-
"country": "USA"
|
|
215
|
-
}
|
|
216
|
-
```
|
|
217
|
-
Access with: `{{$json.name}}`, `{{$json.domain}}`, `{{$json.industry}}`
|
|
218
|
-
|
|
219
|
-
**Deal Events** (`deal.created`, `deal.updated`, `deal.won`, `deal.lost`, `deal.stage_changed`, `deal.deleted`)
|
|
220
|
-
```json
|
|
221
|
-
{
|
|
222
|
-
"event": "deal.won",
|
|
223
|
-
"timestamp": "2025-10-02T23:00:00Z",
|
|
224
|
-
"deal_id": 98765,
|
|
225
|
-
"title": "Enterprise License Sale",
|
|
226
|
-
"value": 60000,
|
|
227
|
-
"currency": "USD",
|
|
228
|
-
"contact_id": 12345,
|
|
229
|
-
"contact_name": "John Doe",
|
|
230
|
-
"company_id": 999,
|
|
231
|
-
"company_name": "Tech Startup Inc",
|
|
232
|
-
"stage_name": "Won",
|
|
233
|
-
"won_at": "2025-10-02T23:00:00Z"
|
|
234
|
-
}
|
|
235
|
-
```
|
|
236
|
-
Access with: `{{$json.title}}`, `{{$json.value}}`, `{{$json.contact_name}}`
|
|
237
|
-
|
|
238
|
-
**Task Events** (`task.created`, `task.completed`, `task.due_soon`, `task.overdue`)
|
|
239
|
-
```json
|
|
240
|
-
{
|
|
241
|
-
"event": "task.created",
|
|
242
|
-
"timestamp": "2025-10-03T03:00:00Z",
|
|
243
|
-
"task_id": 5555,
|
|
244
|
-
"title": "Follow up with John Doe",
|
|
245
|
-
"description": "Discuss pricing options",
|
|
246
|
-
"type": "call",
|
|
247
|
-
"contact_id": 12345,
|
|
248
|
-
"contact_name": "John Doe",
|
|
249
|
-
"deal_id": 98765,
|
|
250
|
-
"assigned_to_name": "Sales Rep",
|
|
251
|
-
"due_date": "2025-10-05"
|
|
252
|
-
}
|
|
253
|
-
```
|
|
254
|
-
Access with: `{{$json.title}}`, `{{$json.contact_name}}`, `{{$json.due_date}}`
|
|
255
|
-
|
|
256
|
-
### Important Notes
|
|
257
|
-
|
|
258
|
-
- Event names are case-sensitive - use `contact.created`, not `Contact.Created`
|
|
259
|
-
- Each workflow gets a unique webhook URL - you'll need to update Clientify if you recreate the workflow
|
|
260
|
-
- ⚠️ **Common mistake:** Workflows must be active to receive webhooks - toggle that switch on!
|
|
261
|
-
- All payloads include a `_raw` field with the original data if you need it
|
|
262
|
-
- Update events show what changed in the `changes` object (old vs new values)
|
|
263
|
-
- 💡 **Tip:** Session IDs expire after each request. Don't try to reuse them across workflow runs.
|
|
264
|
-
|
|
265
|
-
## Usage Examples
|
|
266
|
-
|
|
267
|
-
We recommend starting with List Contacts to verify your setup works.
|
|
268
|
-
|
|
269
|
-
### Example 1: List All Contacts
|
|
270
|
-
|
|
271
|
-
Retrieve a paginated list of all contacts in your CRM.
|
|
272
|
-
|
|
273
|
-
**Configuration:**
|
|
274
|
-
- **Operation:** `List Contacts`
|
|
275
|
-
- **Parameters:** Leave empty for all contacts, or add filters
|
|
276
|
-
|
|
277
|
-
**Output:** Array of contact objects with names, emails, phone numbers, and IDs.
|
|
278
|
-
|
|
279
|
-
```json
|
|
280
|
-
[
|
|
281
|
-
{
|
|
282
|
-
"id": 123,
|
|
283
|
-
"first_name": "John",
|
|
284
|
-
"last_name": "Doe",
|
|
285
|
-
"email": "john.doe@example.com",
|
|
286
|
-
"phone": "+1234567890",
|
|
287
|
-
"company_id": 456
|
|
288
|
-
}
|
|
289
|
-
]
|
|
290
|
-
```
|
|
291
|
-
|
|
292
|
-
---
|
|
293
|
-
|
|
294
|
-
### Example 2: Auto-Send Welcome Email (Using Trigger)
|
|
295
|
-
|
|
296
|
-
**NEW in v0.2.0!**
|
|
297
|
-
|
|
298
|
-
Automatically send a welcome email when a new contact is created.
|
|
299
|
-
|
|
300
|
-
**Workflow:**
|
|
301
|
-
1. **Clientify Trigger**
|
|
302
|
-
- Event: `Contact Created`
|
|
60
|
+
## Nodes
|
|
303
61
|
|
|
304
|
-
|
|
305
|
-
- To: `{{$json.email}}`
|
|
306
|
-
- Subject: `Welcome {{$json.first_name}}!`
|
|
307
|
-
- Body: Welcome message
|
|
62
|
+
### Clientify (action node)
|
|
308
63
|
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
- Due: 3 days from now
|
|
64
|
+
1. Add a node and search for **Clientify**.
|
|
65
|
+
2. Pick an **Action**.
|
|
66
|
+
3. Fill fields directly or map them from previous nodes using expressions.
|
|
313
67
|
|
|
314
|
-
|
|
315
|
-
- Jane automatically receives welcome email
|
|
316
|
-
- Follow-up task is created for sales team
|
|
317
|
-
- All happens instantly without manual intervention
|
|
68
|
+
### Clientify Trigger (webhook helper)
|
|
318
69
|
|
|
319
|
-
|
|
70
|
+
Use this when you want a Clientify-branded trigger in the workflow. Under the hood it behaves like an n8n webhook:
|
|
320
71
|
|
|
321
|
-
|
|
72
|
+
- Use **Test URL** when executing on the canvas.
|
|
73
|
+
- Use **Production URL** for always-on external calls (runs show up in **Executions**).
|
|
74
|
+
- The trigger verifies the incoming payload `event` matches the selected event type.
|
|
322
75
|
|
|
323
|
-
|
|
76
|
+
For payload formats and examples, see `TRIGGERS_REFERENCE.md`.
|
|
324
77
|
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
**Workflow:**
|
|
328
|
-
1. **Clientify Trigger**
|
|
329
|
-
- Event: `Deal Won`
|
|
78
|
+
## Available Operations
|
|
330
79
|
|
|
331
|
-
|
|
332
|
-
- Message: `🎉 Deal Won! {{$json.title}} - ${{$json.value}} - {{$json.contact_name}}`
|
|
333
|
-
- Channel: `#sales-wins`
|
|
80
|
+
Operations are generated from the bundled catalog (currently 81 actions).
|
|
334
81
|
|
|
335
|
-
|
|
336
|
-
- Operation: `Create Task`
|
|
337
|
-
- Title: `Onboard {{$json.contact_name}}`
|
|
338
|
-
- Deal ID: `{{$json.deal_id}}`
|
|
82
|
+
## Mapping (inputs from earlier steps)
|
|
339
83
|
|
|
340
|
-
|
|
341
|
-
- Team gets instant Slack notification
|
|
342
|
-
- Onboarding task is automatically created
|
|
343
|
-
- No manual steps required
|
|
84
|
+
Mapping is field-based:
|
|
344
85
|
|
|
345
|
-
|
|
86
|
+
- Use the field’s **+** button (variable picker), or
|
|
87
|
+
- Toggle **=** and use expressions like `{{$node["Create Contact"].json.id}}`.
|
|
346
88
|
|
|
347
89
|
## Troubleshooting
|
|
348
90
|
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
Still nothing? Clear your browser cache (Ctrl+Shift+Del) and search for "Clientify" in the node panel. Not the package name, just "Clientify".
|
|
354
|
-
|
|
355
|
-
Check Settings → Community Nodes to confirm it installed. If it's there but still not showing up, something's cached - try a hard refresh (Ctrl+F5).
|
|
356
|
-
|
|
357
|
-
### Getting auth errors?
|
|
358
|
-
|
|
359
|
-
Your token's probably expired or invalid. Double-check it in your Clientify settings, or generate a fresh one. Happens to everyone.
|
|
360
|
-
|
|
361
|
-
Make sure you're using the MCP token, not a regular API key - they're different things. The MCP token starts with your account identifier.
|
|
362
|
-
|
|
363
|
-
### Missing parameter errors?
|
|
364
|
-
|
|
365
|
-
Look for the red asterisk (*) next to field names - those are required.
|
|
366
|
-
|
|
367
|
-
Some operations need IDs from previous steps. Run a Get operation first to grab the ID, then pass it to Update or Delete. You'll save yourself a headache. Example: Get Contact → use `{{$json.id}}` in Update Contact.
|
|
368
|
-
|
|
369
|
-
### Empty results?
|
|
370
|
-
|
|
371
|
-
Your token might not have permission to access that data. Check your Clientify user permissions first.
|
|
372
|
-
|
|
373
|
-
Pro tip: Try listing without filters to confirm basic access works. If you see results, then it's your filters that need adjusting.
|
|
374
|
-
|
|
375
|
-
## Development & Contribution
|
|
376
|
-
|
|
377
|
-
This is an official Clientify node. Contributions are welcome!
|
|
378
|
-
|
|
379
|
-
**Repository:** https://github.com/contacteitor/clientify_n8n
|
|
380
|
-
|
|
381
|
-
**Report Issues:** https://github.com/contacteitor/clientify_n8n/issues
|
|
382
|
-
|
|
383
|
-
**Documentation:** See the repository for full documentation
|
|
91
|
+
- If the node does not appear after install, restart n8n.
|
|
92
|
+
- If the API returns `401`, verify your API key.
|
|
93
|
+
- If an operation requires an ID, ensure you mapped the correct numeric ID from a previous node.
|
|
384
94
|
|
|
385
95
|
## Support
|
|
386
96
|
|
|
387
|
-
- **
|
|
388
|
-
- **
|
|
389
|
-
- **Clientify Documentation:** https://mcp.clientify.com/docs
|
|
390
|
-
|
|
391
|
-
## Version History
|
|
392
|
-
|
|
393
|
-
**v0.2.0** (2025-10-02) - Triggers!
|
|
394
|
-
|
|
395
|
-
Added webhook-based triggers for real-time automation. ~~28 operations~~ 16 trigger events covering contacts, companies, deals, and tasks. Way faster than polling.
|
|
396
|
-
|
|
397
|
-
**v0.1.0** (2025-10-01) - Initial release
|
|
398
|
-
|
|
399
|
-
26 operations for managing contacts, companies, deals, and tasks through the MCP API.
|
|
97
|
+
- **Clientify API docs:** https://newapi.clientify.com/
|
|
98
|
+
- **Triggers reference:** [`TRIGGERS_REFERENCE.md`](TRIGGERS_REFERENCE.md)
|
|
400
99
|
|
|
401
100
|
## License
|
|
402
101
|
|
|
403
102
|
MIT License - see [LICENSE](LICENSE) file for details.
|
|
404
103
|
|
|
405
104
|
Copyright (c) 2025 Clientify
|
|
406
|
-
|
|
407
|
-
---
|
|
408
|
-
|
|
409
|
-
**Made with ❤️ by Clientify**
|
|
410
|
-
|
|
411
|
-
*This is an official Clientify node. n8n is a trademark of its respective owner.*
|