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.
Files changed (186) hide show
  1. package/README.md +31 -338
  2. package/dist/README.md +31 -338
  3. package/dist/TRIGGERS_REFERENCE.md +1 -1
  4. package/dist/appmixer/clientify/crm/AddCompanyAddress/AddCompanyAddress.js +33 -0
  5. package/dist/appmixer/clientify/crm/AddCompanyAddress/component.json +115 -0
  6. package/dist/appmixer/clientify/crm/AddCompanyCall/AddCompanyCall.js +32 -0
  7. package/dist/appmixer/clientify/crm/AddCompanyCall/component.json +109 -0
  8. package/dist/appmixer/clientify/crm/AddCompanyCheckin/AddCompanyCheckin.js +31 -0
  9. package/dist/appmixer/clientify/crm/AddCompanyCheckin/component.json +98 -0
  10. package/dist/appmixer/clientify/crm/AddCompanyEmail/AddCompanyEmail.js +25 -0
  11. package/dist/appmixer/clientify/crm/AddCompanyEmail/component.json +84 -0
  12. package/dist/appmixer/clientify/crm/AddCompanyEmployee/AddCompanyEmployee.js +22 -0
  13. package/dist/appmixer/clientify/crm/AddCompanyEmployee/component.json +65 -0
  14. package/dist/appmixer/clientify/crm/AddCompanyNote/AddCompanyNote.js +25 -0
  15. package/dist/appmixer/clientify/crm/AddCompanyNote/component.json +75 -0
  16. package/dist/appmixer/clientify/crm/AddCompanyPhone/AddCompanyPhone.js +25 -0
  17. package/dist/appmixer/clientify/crm/AddCompanyPhone/component.json +87 -0
  18. package/dist/appmixer/clientify/crm/AddCompanyTag/AddCompanyTag.js +23 -0
  19. package/dist/appmixer/clientify/crm/AddCompanyTag/component.json +71 -0
  20. package/dist/appmixer/clientify/crm/AddCompanyWebsite/AddCompanyWebsite.js +23 -0
  21. package/dist/appmixer/clientify/crm/AddCompanyWebsite/component.json +65 -0
  22. package/dist/appmixer/clientify/crm/AddContactAddress/AddContactAddress.js +33 -0
  23. package/dist/appmixer/clientify/crm/AddContactAddress/component.json +115 -0
  24. package/dist/appmixer/clientify/crm/AddContactCall/AddContactCall.js +20 -0
  25. package/dist/appmixer/clientify/crm/AddContactCall/component.json +55 -0
  26. package/dist/appmixer/clientify/crm/AddContactCheckin/AddContactCheckin.js +33 -0
  27. package/dist/appmixer/clientify/crm/AddContactCheckin/component.json +109 -0
  28. package/dist/appmixer/clientify/crm/AddContactEmail/AddContactEmail.js +25 -0
  29. package/dist/appmixer/clientify/crm/AddContactEmail/component.json +85 -0
  30. package/dist/appmixer/clientify/crm/AddContactNote/AddContactNote.js +25 -0
  31. package/dist/appmixer/clientify/crm/AddContactNote/component.json +75 -0
  32. package/dist/appmixer/clientify/crm/AddContactOtherCompany/AddContactOtherCompany.js +23 -0
  33. package/dist/appmixer/clientify/crm/AddContactOtherCompany/component.json +65 -0
  34. package/dist/appmixer/clientify/crm/AddContactPhone/AddContactPhone.js +25 -0
  35. package/dist/appmixer/clientify/crm/AddContactPhone/component.json +88 -0
  36. package/dist/appmixer/clientify/crm/AddContactTag/AddContactTag.js +23 -0
  37. package/dist/appmixer/clientify/crm/AddContactTag/component.json +71 -0
  38. package/dist/appmixer/clientify/crm/AssignContactOwner/AssignContactOwner.js +23 -0
  39. package/dist/appmixer/clientify/crm/AssignContactOwner/component.json +93 -0
  40. package/dist/appmixer/clientify/crm/BatchCreateContacts/BatchCreateContacts.js +23 -0
  41. package/dist/appmixer/clientify/crm/BatchCreateContacts/component.json +90 -0
  42. package/dist/appmixer/clientify/crm/CompleteTask/CompleteTask.js +24 -0
  43. package/dist/appmixer/clientify/crm/CompleteTask/component.json +69 -0
  44. package/dist/appmixer/clientify/crm/CreateCompany/CreateCompany.js +19 -0
  45. package/dist/appmixer/clientify/crm/CreateCompany/component.json +58 -0
  46. package/dist/appmixer/clientify/crm/CreateContact/CreateContact.js +19 -0
  47. package/dist/appmixer/clientify/crm/CreateContact/component.json +88 -0
  48. package/dist/appmixer/clientify/crm/CreateTask/CreateTask.js +19 -0
  49. package/dist/appmixer/clientify/crm/CreateTask/component.json +167 -0
  50. package/dist/appmixer/clientify/crm/DeleteCompany/DeleteCompany.js +22 -0
  51. package/dist/appmixer/clientify/crm/DeleteCompany/component.json +51 -0
  52. package/dist/appmixer/clientify/crm/DeleteCompanyAddress/DeleteCompanyAddress.js +22 -0
  53. package/dist/appmixer/clientify/crm/DeleteCompanyAddress/component.json +62 -0
  54. package/dist/appmixer/clientify/crm/DeleteCompanyEmail/DeleteCompanyEmail.js +22 -0
  55. package/dist/appmixer/clientify/crm/DeleteCompanyEmail/component.json +62 -0
  56. package/dist/appmixer/clientify/crm/DeleteCompanyPhone/DeleteCompanyPhone.js +22 -0
  57. package/dist/appmixer/clientify/crm/DeleteCompanyPhone/component.json +62 -0
  58. package/dist/appmixer/clientify/crm/DeleteCompanyWebsite/DeleteCompanyWebsite.js +22 -0
  59. package/dist/appmixer/clientify/crm/DeleteCompanyWebsite/component.json +62 -0
  60. package/dist/appmixer/clientify/crm/DeleteContact/DeleteContact.js +22 -0
  61. package/dist/appmixer/clientify/crm/DeleteContact/component.json +51 -0
  62. package/dist/appmixer/clientify/crm/DeleteContactAddress/DeleteContactAddress.js +22 -0
  63. package/dist/appmixer/clientify/crm/DeleteContactAddress/component.json +62 -0
  64. package/dist/appmixer/clientify/crm/DeleteContactEmail/DeleteContactEmail.js +22 -0
  65. package/dist/appmixer/clientify/crm/DeleteContactEmail/component.json +62 -0
  66. package/dist/appmixer/clientify/crm/DeleteContactOtherCompany/DeleteContactOtherCompany.js +22 -0
  67. package/dist/appmixer/clientify/crm/DeleteContactOtherCompany/component.json +62 -0
  68. package/dist/appmixer/clientify/crm/DeleteContactPhone/DeleteContactPhone.js +22 -0
  69. package/dist/appmixer/clientify/crm/DeleteContactPhone/component.json +62 -0
  70. package/dist/appmixer/clientify/crm/GetCompany/GetCompany.js +24 -0
  71. package/dist/appmixer/clientify/crm/GetCompany/component.json +69 -0
  72. package/dist/appmixer/clientify/crm/GetContact/GetContact.js +24 -0
  73. package/dist/appmixer/clientify/crm/GetContact/component.json +90 -0
  74. package/dist/appmixer/clientify/crm/GetCurrentUser/GetCurrentUser.js +17 -0
  75. package/dist/appmixer/clientify/crm/GetCurrentUser/component.json +49 -0
  76. package/dist/appmixer/clientify/crm/GetTask/GetTask.js +24 -0
  77. package/dist/appmixer/clientify/crm/GetTask/component.json +78 -0
  78. package/dist/appmixer/clientify/crm/ListAllCompanyTags/ListAllCompanyTags.js +16 -0
  79. package/dist/appmixer/clientify/crm/ListAllCompanyTags/component.json +67 -0
  80. package/dist/appmixer/clientify/crm/ListAllContactTags/ListAllContactTags.js +16 -0
  81. package/dist/appmixer/clientify/crm/ListAllContactTags/component.json +67 -0
  82. package/dist/appmixer/clientify/crm/ListCompanies/ListCompanies.js +26 -0
  83. package/dist/appmixer/clientify/crm/ListCompanies/component.json +117 -0
  84. package/dist/appmixer/clientify/crm/ListCompanyAddresses/ListCompanyAddresses.js +20 -0
  85. package/dist/appmixer/clientify/crm/ListCompanyAddresses/component.json +79 -0
  86. package/dist/appmixer/clientify/crm/ListCompanyCustomfields/ListCompanyCustomfields.js +20 -0
  87. package/dist/appmixer/clientify/crm/ListCompanyCustomfields/component.json +79 -0
  88. package/dist/appmixer/clientify/crm/ListCompanyEmails/ListCompanyEmails.js +20 -0
  89. package/dist/appmixer/clientify/crm/ListCompanyEmails/component.json +88 -0
  90. package/dist/appmixer/clientify/crm/ListCompanyEmployees/ListCompanyEmployees.js +20 -0
  91. package/dist/appmixer/clientify/crm/ListCompanyEmployees/component.json +79 -0
  92. package/dist/appmixer/clientify/crm/ListCompanyPhones/ListCompanyPhones.js +20 -0
  93. package/dist/appmixer/clientify/crm/ListCompanyPhones/component.json +91 -0
  94. package/dist/appmixer/clientify/crm/ListCompanySectors/ListCompanySectors.js +16 -0
  95. package/dist/appmixer/clientify/crm/ListCompanySectors/component.json +64 -0
  96. package/dist/appmixer/clientify/crm/ListCompanyTags/ListCompanyTags.js +20 -0
  97. package/dist/appmixer/clientify/crm/ListCompanyTags/component.json +85 -0
  98. package/dist/appmixer/clientify/crm/ListCompanyTasks/ListCompanyTasks.js +20 -0
  99. package/dist/appmixer/clientify/crm/ListCompanyTasks/component.json +79 -0
  100. package/dist/appmixer/clientify/crm/ListCompanyWallentries/ListCompanyWallentries.js +20 -0
  101. package/dist/appmixer/clientify/crm/ListCompanyWallentries/component.json +79 -0
  102. package/dist/appmixer/clientify/crm/ListCompanyWebsites/ListCompanyWebsites.js +20 -0
  103. package/dist/appmixer/clientify/crm/ListCompanyWebsites/component.json +79 -0
  104. package/dist/appmixer/clientify/crm/ListContactAddresses/ListContactAddresses.js +20 -0
  105. package/dist/appmixer/clientify/crm/ListContactAddresses/component.json +79 -0
  106. package/dist/appmixer/clientify/crm/ListContactCustomfields/ListContactCustomfields.js +20 -0
  107. package/dist/appmixer/clientify/crm/ListContactCustomfields/component.json +79 -0
  108. package/dist/appmixer/clientify/crm/ListContactEmails/ListContactEmails.js +20 -0
  109. package/dist/appmixer/clientify/crm/ListContactEmails/component.json +88 -0
  110. package/dist/appmixer/clientify/crm/ListContactOtherCompanies/ListContactOtherCompanies.js +20 -0
  111. package/dist/appmixer/clientify/crm/ListContactOtherCompanies/component.json +85 -0
  112. package/dist/appmixer/clientify/crm/ListContactPhones/ListContactPhones.js +20 -0
  113. package/dist/appmixer/clientify/crm/ListContactPhones/component.json +91 -0
  114. package/dist/appmixer/clientify/crm/ListContactTags/ListContactTags.js +20 -0
  115. package/dist/appmixer/clientify/crm/ListContactTags/component.json +85 -0
  116. package/dist/appmixer/clientify/crm/ListContactTasks/ListContactTasks.js +20 -0
  117. package/dist/appmixer/clientify/crm/ListContactTasks/component.json +79 -0
  118. package/dist/appmixer/clientify/crm/ListContactWallentries/ListContactWallentries.js +20 -0
  119. package/dist/appmixer/clientify/crm/ListContactWallentries/component.json +79 -0
  120. package/dist/appmixer/clientify/crm/ListContacts/ListContacts.js +26 -0
  121. package/dist/appmixer/clientify/crm/ListContacts/component.json +138 -0
  122. package/dist/appmixer/clientify/crm/ListCustomFieldValues/ListCustomFieldValues.js +19 -0
  123. package/dist/appmixer/clientify/crm/ListCustomFieldValues/component.json +77 -0
  124. package/dist/appmixer/clientify/crm/ListCustomFields/ListCustomFields.js +19 -0
  125. package/dist/appmixer/clientify/crm/ListCustomFields/component.json +77 -0
  126. package/dist/appmixer/clientify/crm/ListTaskStages/ListTaskStages.js +19 -0
  127. package/dist/appmixer/clientify/crm/ListTaskStages/component.json +87 -0
  128. package/dist/appmixer/clientify/crm/ListTaskTypes/ListTaskTypes.js +19 -0
  129. package/dist/appmixer/clientify/crm/ListTaskTypes/component.json +87 -0
  130. package/dist/appmixer/clientify/crm/ListTasks/ListTasks.js +25 -0
  131. package/dist/appmixer/clientify/crm/ListTasks/component.json +102 -0
  132. package/dist/appmixer/clientify/crm/ListUsers/ListUsers.js +24 -0
  133. package/dist/appmixer/clientify/crm/ListUsers/component.json +93 -0
  134. package/dist/appmixer/clientify/crm/RemoveCompanyEmployee/RemoveCompanyEmployee.js +22 -0
  135. package/dist/appmixer/clientify/crm/RemoveCompanyEmployee/component.json +62 -0
  136. package/dist/appmixer/clientify/crm/RemoveCompanyTag/RemoveCompanyTag.js +22 -0
  137. package/dist/appmixer/clientify/crm/RemoveCompanyTag/component.json +62 -0
  138. package/dist/appmixer/clientify/crm/RemoveContactTag/RemoveContactTag.js +22 -0
  139. package/dist/appmixer/clientify/crm/RemoveContactTag/component.json +62 -0
  140. package/dist/appmixer/clientify/crm/SearchCompanies/SearchCompanies.js +29 -0
  141. package/dist/appmixer/clientify/crm/SearchCompanies/component.json +111 -0
  142. package/dist/appmixer/clientify/crm/UpdateCompany/UpdateCompany.js +24 -0
  143. package/dist/appmixer/clientify/crm/UpdateCompany/component.json +60 -0
  144. package/dist/appmixer/clientify/crm/UpdateCompanyAddress/UpdateCompanyAddress.js +35 -0
  145. package/dist/appmixer/clientify/crm/UpdateCompanyAddress/component.json +131 -0
  146. package/dist/appmixer/clientify/crm/UpdateCompanyEmail/UpdateCompanyEmail.js +27 -0
  147. package/dist/appmixer/clientify/crm/UpdateCompanyEmail/component.json +91 -0
  148. package/dist/appmixer/clientify/crm/UpdateCompanyPhone/UpdateCompanyPhone.js +27 -0
  149. package/dist/appmixer/clientify/crm/UpdateCompanyPhone/component.json +91 -0
  150. package/dist/appmixer/clientify/crm/UpdateCompanyWebsite/UpdateCompanyWebsite.js +25 -0
  151. package/dist/appmixer/clientify/crm/UpdateCompanyWebsite/component.json +81 -0
  152. package/dist/appmixer/clientify/crm/UpdateContact/UpdateContact.js +24 -0
  153. package/dist/appmixer/clientify/crm/UpdateContact/component.json +81 -0
  154. package/dist/appmixer/clientify/crm/UpdateContactAddress/UpdateContactAddress.js +35 -0
  155. package/dist/appmixer/clientify/crm/UpdateContactAddress/component.json +152 -0
  156. package/dist/appmixer/clientify/crm/UpdateContactEmail/UpdateContactEmail.js +27 -0
  157. package/dist/appmixer/clientify/crm/UpdateContactEmail/component.json +112 -0
  158. package/dist/appmixer/clientify/crm/UpdateContactMarketingStatus/UpdateContactMarketingStatus.js +25 -0
  159. package/dist/appmixer/clientify/crm/UpdateContactMarketingStatus/component.json +92 -0
  160. package/dist/appmixer/clientify/crm/UpdateContactOtherCompany/UpdateContactOtherCompany.js +25 -0
  161. package/dist/appmixer/clientify/crm/UpdateContactOtherCompany/component.json +102 -0
  162. package/dist/appmixer/clientify/crm/UpdateContactPhone/UpdateContactPhone.js +27 -0
  163. package/dist/appmixer/clientify/crm/UpdateContactPhone/component.json +112 -0
  164. package/dist/appmixer/clientify/crm/UpdateTask/UpdateTask.js +24 -0
  165. package/dist/appmixer/clientify/crm/UpdateTask/component.json +69 -0
  166. package/dist/appmixer/clientify/crm/clientify.js +49 -0
  167. package/dist/appmixer/clientify/crm/fields.js +24 -0
  168. package/dist/appmixer/clientify/crm/module.json +7 -0
  169. package/dist/credentials/{ClientifyMcpApi.credentials.d.ts → ClientifyApi.credentials.d.ts} +1 -1
  170. package/dist/credentials/ClientifyApi.credentials.js +33 -0
  171. package/dist/nodes/{ClientifyMcp/ClientifyMcpDynamic.node.d.ts → ClientifyApi/ClientifyApi.node.d.ts} +1 -1
  172. package/dist/nodes/ClientifyApi/ClientifyApi.node.js +139 -0
  173. package/dist/nodes/ClientifyApi/ClientifyApiCatalog.d.ts +23 -0
  174. package/dist/nodes/ClientifyApi/ClientifyApiCatalog.js +217 -0
  175. package/dist/nodes/{ClientifyMcp/ClientifyMcpTrigger.node.d.ts → ClientifyTrigger/ClientifyTrigger.node.d.ts} +1 -1
  176. package/dist/nodes/{ClientifyMcp/ClientifyMcpTrigger.node.js → ClientifyTrigger/ClientifyTrigger.node.js} +6 -12
  177. package/dist/nodes/ClientifyTrigger/clientify.png +0 -0
  178. package/dist/nodes/ClientifyTrigger/clientify.svg +5 -0
  179. package/dist/package.json +13 -6
  180. package/package.json +13 -6
  181. package/dist/credentials/ClientifyMcpApi.credentials.js +0 -25
  182. package/dist/nodes/ClientifyMcp/ClientifyMcpDynamic.node.js +0 -211
  183. package/dist/nodes/ClientifyMcp/ClientifyMcpFields.d.ts +0 -15
  184. package/dist/nodes/ClientifyMcp/ClientifyMcpFields.js +0 -894
  185. /package/dist/nodes/{ClientifyMcp → ClientifyApi}/clientify.png +0 -0
  186. /package/dist/nodes/{ClientifyMcp → ClientifyApi}/clientify.svg +0 -0
package/README.md CHANGED
@@ -3,24 +3,14 @@
3
3
  [![npm version](https://badge.fury.io/js/n8n-nodes-clientify.svg)](https://www.npmjs.com/package/n8n-nodes-clientify)
4
4
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
5
5
 
6
- Connect n8n to Clientify CRM using the Model Context Protocol. Access contacts, companies, deals, tasks, and more through simple workflow nodes.
6
+ Connect n8n to Clientify CRM via the Clientify REST API using API keys (`Authorization: Token <apiKey>`).
7
7
 
8
- ## Table of Contents
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
- - [Installation](#installation)
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
- ⚠️ Don't forget to persist the nodes directory, or you'll lose the node on restart:
32
+ Persist the nodes directory, or youll 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 0.180.0+
60
- - Node.js 20.15+
61
- - Active Clientify CRM account
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 MCP API"**
76
- 3. Enter your **Authentication Token** (JWT)
56
+ 2. Search for **"Clientify API"**
57
+ 3. Enter your **API Key**
77
58
  4. Click **Save**
78
59
 
79
- ### Step 3: Use the Node
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
- 2. **Send Email**
305
- - To: `{{$json.email}}`
306
- - Subject: `Welcome {{$json.first_name}}!`
307
- - Body: Welcome message
62
+ ### Clientify (action node)
308
63
 
309
- 3. **Create Task**
310
- - Title: `Follow up with {{$json.first_name}} {{$json.last_name}}`
311
- - Contact ID: `{{$json.contact_id}}`
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
- **Result:** When someone creates a contact "Jane Smith" in Clientify:
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
- ### Example 3: Deal Won Notification (Using Trigger)
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
- **NEW in v0.2.0!**
76
+ For payload formats and examples, see `TRIGGERS_REFERENCE.md`.
324
77
 
325
- Notify your team instantly when a deal closes.
326
-
327
- **Workflow:**
328
- 1. **Clientify Trigger**
329
- - Event: `Deal Won`
78
+ ## Available Operations
330
79
 
331
- 2. **Slack** (or Email)
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
- 3. **Clientify** (Action Node)
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
- **Result:** When a deal is marked as won:
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
- ### Node not showing up?
350
-
351
- Restart n8n first. Seriously - it won't appear until you do a full restart.
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
- - **Issues & Bugs:** https://github.com/contacteitor/clientify_n8n/issues
388
- - **Email:** develop@clientify.com
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.*