n8n-nodes-clientify 0.2.8 → 0.2.10

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 (172) hide show
  1. package/README.md +2 -2
  2. package/dist/README.md +2 -2
  3. package/dist/credentials/ClientifyApi.credentials.d.ts +14 -0
  4. package/dist/credentials/ClientifyApi.credentials.js +14 -0
  5. package/dist/nodes/ClientifyApi/ClientifyApi.node.js +1 -1
  6. package/dist/package.json +2 -2
  7. package/package.json +2 -2
  8. package/dist/appmixer/clientify/crm/AddCompanyAddress/AddCompanyAddress.js +0 -33
  9. package/dist/appmixer/clientify/crm/AddCompanyAddress/component.json +0 -115
  10. package/dist/appmixer/clientify/crm/AddCompanyCall/AddCompanyCall.js +0 -32
  11. package/dist/appmixer/clientify/crm/AddCompanyCall/component.json +0 -109
  12. package/dist/appmixer/clientify/crm/AddCompanyCheckin/AddCompanyCheckin.js +0 -31
  13. package/dist/appmixer/clientify/crm/AddCompanyCheckin/component.json +0 -98
  14. package/dist/appmixer/clientify/crm/AddCompanyEmail/AddCompanyEmail.js +0 -25
  15. package/dist/appmixer/clientify/crm/AddCompanyEmail/component.json +0 -84
  16. package/dist/appmixer/clientify/crm/AddCompanyEmployee/AddCompanyEmployee.js +0 -22
  17. package/dist/appmixer/clientify/crm/AddCompanyEmployee/component.json +0 -65
  18. package/dist/appmixer/clientify/crm/AddCompanyNote/AddCompanyNote.js +0 -25
  19. package/dist/appmixer/clientify/crm/AddCompanyNote/component.json +0 -75
  20. package/dist/appmixer/clientify/crm/AddCompanyPhone/AddCompanyPhone.js +0 -25
  21. package/dist/appmixer/clientify/crm/AddCompanyPhone/component.json +0 -87
  22. package/dist/appmixer/clientify/crm/AddCompanyTag/AddCompanyTag.js +0 -23
  23. package/dist/appmixer/clientify/crm/AddCompanyTag/component.json +0 -71
  24. package/dist/appmixer/clientify/crm/AddCompanyWebsite/AddCompanyWebsite.js +0 -23
  25. package/dist/appmixer/clientify/crm/AddCompanyWebsite/component.json +0 -65
  26. package/dist/appmixer/clientify/crm/AddContactAddress/AddContactAddress.js +0 -33
  27. package/dist/appmixer/clientify/crm/AddContactAddress/component.json +0 -115
  28. package/dist/appmixer/clientify/crm/AddContactCall/AddContactCall.js +0 -20
  29. package/dist/appmixer/clientify/crm/AddContactCall/component.json +0 -55
  30. package/dist/appmixer/clientify/crm/AddContactCheckin/AddContactCheckin.js +0 -33
  31. package/dist/appmixer/clientify/crm/AddContactCheckin/component.json +0 -109
  32. package/dist/appmixer/clientify/crm/AddContactEmail/AddContactEmail.js +0 -25
  33. package/dist/appmixer/clientify/crm/AddContactEmail/component.json +0 -85
  34. package/dist/appmixer/clientify/crm/AddContactNote/AddContactNote.js +0 -25
  35. package/dist/appmixer/clientify/crm/AddContactNote/component.json +0 -75
  36. package/dist/appmixer/clientify/crm/AddContactOtherCompany/AddContactOtherCompany.js +0 -23
  37. package/dist/appmixer/clientify/crm/AddContactOtherCompany/component.json +0 -65
  38. package/dist/appmixer/clientify/crm/AddContactPhone/AddContactPhone.js +0 -25
  39. package/dist/appmixer/clientify/crm/AddContactPhone/component.json +0 -88
  40. package/dist/appmixer/clientify/crm/AddContactTag/AddContactTag.js +0 -23
  41. package/dist/appmixer/clientify/crm/AddContactTag/component.json +0 -71
  42. package/dist/appmixer/clientify/crm/AssignContactOwner/AssignContactOwner.js +0 -23
  43. package/dist/appmixer/clientify/crm/AssignContactOwner/component.json +0 -93
  44. package/dist/appmixer/clientify/crm/BatchCreateContacts/BatchCreateContacts.js +0 -23
  45. package/dist/appmixer/clientify/crm/BatchCreateContacts/component.json +0 -90
  46. package/dist/appmixer/clientify/crm/CompleteTask/CompleteTask.js +0 -24
  47. package/dist/appmixer/clientify/crm/CompleteTask/component.json +0 -69
  48. package/dist/appmixer/clientify/crm/CreateCompany/CreateCompany.js +0 -19
  49. package/dist/appmixer/clientify/crm/CreateCompany/component.json +0 -58
  50. package/dist/appmixer/clientify/crm/CreateContact/CreateContact.js +0 -19
  51. package/dist/appmixer/clientify/crm/CreateContact/component.json +0 -88
  52. package/dist/appmixer/clientify/crm/CreateTask/CreateTask.js +0 -19
  53. package/dist/appmixer/clientify/crm/CreateTask/component.json +0 -167
  54. package/dist/appmixer/clientify/crm/DeleteCompany/DeleteCompany.js +0 -22
  55. package/dist/appmixer/clientify/crm/DeleteCompany/component.json +0 -51
  56. package/dist/appmixer/clientify/crm/DeleteCompanyAddress/DeleteCompanyAddress.js +0 -22
  57. package/dist/appmixer/clientify/crm/DeleteCompanyAddress/component.json +0 -62
  58. package/dist/appmixer/clientify/crm/DeleteCompanyEmail/DeleteCompanyEmail.js +0 -22
  59. package/dist/appmixer/clientify/crm/DeleteCompanyEmail/component.json +0 -62
  60. package/dist/appmixer/clientify/crm/DeleteCompanyPhone/DeleteCompanyPhone.js +0 -22
  61. package/dist/appmixer/clientify/crm/DeleteCompanyPhone/component.json +0 -62
  62. package/dist/appmixer/clientify/crm/DeleteCompanyWebsite/DeleteCompanyWebsite.js +0 -22
  63. package/dist/appmixer/clientify/crm/DeleteCompanyWebsite/component.json +0 -62
  64. package/dist/appmixer/clientify/crm/DeleteContact/DeleteContact.js +0 -22
  65. package/dist/appmixer/clientify/crm/DeleteContact/component.json +0 -51
  66. package/dist/appmixer/clientify/crm/DeleteContactAddress/DeleteContactAddress.js +0 -22
  67. package/dist/appmixer/clientify/crm/DeleteContactAddress/component.json +0 -62
  68. package/dist/appmixer/clientify/crm/DeleteContactEmail/DeleteContactEmail.js +0 -22
  69. package/dist/appmixer/clientify/crm/DeleteContactEmail/component.json +0 -62
  70. package/dist/appmixer/clientify/crm/DeleteContactOtherCompany/DeleteContactOtherCompany.js +0 -22
  71. package/dist/appmixer/clientify/crm/DeleteContactOtherCompany/component.json +0 -62
  72. package/dist/appmixer/clientify/crm/DeleteContactPhone/DeleteContactPhone.js +0 -22
  73. package/dist/appmixer/clientify/crm/DeleteContactPhone/component.json +0 -62
  74. package/dist/appmixer/clientify/crm/GetCompany/GetCompany.js +0 -24
  75. package/dist/appmixer/clientify/crm/GetCompany/component.json +0 -69
  76. package/dist/appmixer/clientify/crm/GetContact/GetContact.js +0 -24
  77. package/dist/appmixer/clientify/crm/GetContact/component.json +0 -90
  78. package/dist/appmixer/clientify/crm/GetCurrentUser/GetCurrentUser.js +0 -17
  79. package/dist/appmixer/clientify/crm/GetCurrentUser/component.json +0 -49
  80. package/dist/appmixer/clientify/crm/GetTask/GetTask.js +0 -24
  81. package/dist/appmixer/clientify/crm/GetTask/component.json +0 -78
  82. package/dist/appmixer/clientify/crm/ListAllCompanyTags/ListAllCompanyTags.js +0 -16
  83. package/dist/appmixer/clientify/crm/ListAllCompanyTags/component.json +0 -67
  84. package/dist/appmixer/clientify/crm/ListAllContactTags/ListAllContactTags.js +0 -16
  85. package/dist/appmixer/clientify/crm/ListAllContactTags/component.json +0 -67
  86. package/dist/appmixer/clientify/crm/ListCompanies/ListCompanies.js +0 -26
  87. package/dist/appmixer/clientify/crm/ListCompanies/component.json +0 -117
  88. package/dist/appmixer/clientify/crm/ListCompanyAddresses/ListCompanyAddresses.js +0 -20
  89. package/dist/appmixer/clientify/crm/ListCompanyAddresses/component.json +0 -79
  90. package/dist/appmixer/clientify/crm/ListCompanyCustomfields/ListCompanyCustomfields.js +0 -20
  91. package/dist/appmixer/clientify/crm/ListCompanyCustomfields/component.json +0 -79
  92. package/dist/appmixer/clientify/crm/ListCompanyEmails/ListCompanyEmails.js +0 -20
  93. package/dist/appmixer/clientify/crm/ListCompanyEmails/component.json +0 -88
  94. package/dist/appmixer/clientify/crm/ListCompanyEmployees/ListCompanyEmployees.js +0 -20
  95. package/dist/appmixer/clientify/crm/ListCompanyEmployees/component.json +0 -79
  96. package/dist/appmixer/clientify/crm/ListCompanyPhones/ListCompanyPhones.js +0 -20
  97. package/dist/appmixer/clientify/crm/ListCompanyPhones/component.json +0 -91
  98. package/dist/appmixer/clientify/crm/ListCompanySectors/ListCompanySectors.js +0 -16
  99. package/dist/appmixer/clientify/crm/ListCompanySectors/component.json +0 -64
  100. package/dist/appmixer/clientify/crm/ListCompanyTags/ListCompanyTags.js +0 -20
  101. package/dist/appmixer/clientify/crm/ListCompanyTags/component.json +0 -85
  102. package/dist/appmixer/clientify/crm/ListCompanyTasks/ListCompanyTasks.js +0 -20
  103. package/dist/appmixer/clientify/crm/ListCompanyTasks/component.json +0 -79
  104. package/dist/appmixer/clientify/crm/ListCompanyWallentries/ListCompanyWallentries.js +0 -20
  105. package/dist/appmixer/clientify/crm/ListCompanyWallentries/component.json +0 -79
  106. package/dist/appmixer/clientify/crm/ListCompanyWebsites/ListCompanyWebsites.js +0 -20
  107. package/dist/appmixer/clientify/crm/ListCompanyWebsites/component.json +0 -79
  108. package/dist/appmixer/clientify/crm/ListContactAddresses/ListContactAddresses.js +0 -20
  109. package/dist/appmixer/clientify/crm/ListContactAddresses/component.json +0 -79
  110. package/dist/appmixer/clientify/crm/ListContactCustomfields/ListContactCustomfields.js +0 -20
  111. package/dist/appmixer/clientify/crm/ListContactCustomfields/component.json +0 -79
  112. package/dist/appmixer/clientify/crm/ListContactEmails/ListContactEmails.js +0 -20
  113. package/dist/appmixer/clientify/crm/ListContactEmails/component.json +0 -88
  114. package/dist/appmixer/clientify/crm/ListContactOtherCompanies/ListContactOtherCompanies.js +0 -20
  115. package/dist/appmixer/clientify/crm/ListContactOtherCompanies/component.json +0 -85
  116. package/dist/appmixer/clientify/crm/ListContactPhones/ListContactPhones.js +0 -20
  117. package/dist/appmixer/clientify/crm/ListContactPhones/component.json +0 -91
  118. package/dist/appmixer/clientify/crm/ListContactTags/ListContactTags.js +0 -20
  119. package/dist/appmixer/clientify/crm/ListContactTags/component.json +0 -85
  120. package/dist/appmixer/clientify/crm/ListContactTasks/ListContactTasks.js +0 -20
  121. package/dist/appmixer/clientify/crm/ListContactTasks/component.json +0 -79
  122. package/dist/appmixer/clientify/crm/ListContactWallentries/ListContactWallentries.js +0 -20
  123. package/dist/appmixer/clientify/crm/ListContactWallentries/component.json +0 -79
  124. package/dist/appmixer/clientify/crm/ListContacts/ListContacts.js +0 -26
  125. package/dist/appmixer/clientify/crm/ListContacts/component.json +0 -138
  126. package/dist/appmixer/clientify/crm/ListCustomFieldValues/ListCustomFieldValues.js +0 -19
  127. package/dist/appmixer/clientify/crm/ListCustomFieldValues/component.json +0 -77
  128. package/dist/appmixer/clientify/crm/ListCustomFields/ListCustomFields.js +0 -19
  129. package/dist/appmixer/clientify/crm/ListCustomFields/component.json +0 -77
  130. package/dist/appmixer/clientify/crm/ListTaskStages/ListTaskStages.js +0 -19
  131. package/dist/appmixer/clientify/crm/ListTaskStages/component.json +0 -87
  132. package/dist/appmixer/clientify/crm/ListTaskTypes/ListTaskTypes.js +0 -19
  133. package/dist/appmixer/clientify/crm/ListTaskTypes/component.json +0 -87
  134. package/dist/appmixer/clientify/crm/ListTasks/ListTasks.js +0 -25
  135. package/dist/appmixer/clientify/crm/ListTasks/component.json +0 -102
  136. package/dist/appmixer/clientify/crm/ListUsers/ListUsers.js +0 -24
  137. package/dist/appmixer/clientify/crm/ListUsers/component.json +0 -93
  138. package/dist/appmixer/clientify/crm/RemoveCompanyEmployee/RemoveCompanyEmployee.js +0 -22
  139. package/dist/appmixer/clientify/crm/RemoveCompanyEmployee/component.json +0 -62
  140. package/dist/appmixer/clientify/crm/RemoveCompanyTag/RemoveCompanyTag.js +0 -22
  141. package/dist/appmixer/clientify/crm/RemoveCompanyTag/component.json +0 -62
  142. package/dist/appmixer/clientify/crm/RemoveContactTag/RemoveContactTag.js +0 -22
  143. package/dist/appmixer/clientify/crm/RemoveContactTag/component.json +0 -62
  144. package/dist/appmixer/clientify/crm/SearchCompanies/SearchCompanies.js +0 -29
  145. package/dist/appmixer/clientify/crm/SearchCompanies/component.json +0 -111
  146. package/dist/appmixer/clientify/crm/UpdateCompany/UpdateCompany.js +0 -24
  147. package/dist/appmixer/clientify/crm/UpdateCompany/component.json +0 -60
  148. package/dist/appmixer/clientify/crm/UpdateCompanyAddress/UpdateCompanyAddress.js +0 -35
  149. package/dist/appmixer/clientify/crm/UpdateCompanyAddress/component.json +0 -131
  150. package/dist/appmixer/clientify/crm/UpdateCompanyEmail/UpdateCompanyEmail.js +0 -27
  151. package/dist/appmixer/clientify/crm/UpdateCompanyEmail/component.json +0 -91
  152. package/dist/appmixer/clientify/crm/UpdateCompanyPhone/UpdateCompanyPhone.js +0 -27
  153. package/dist/appmixer/clientify/crm/UpdateCompanyPhone/component.json +0 -91
  154. package/dist/appmixer/clientify/crm/UpdateCompanyWebsite/UpdateCompanyWebsite.js +0 -25
  155. package/dist/appmixer/clientify/crm/UpdateCompanyWebsite/component.json +0 -81
  156. package/dist/appmixer/clientify/crm/UpdateContact/UpdateContact.js +0 -24
  157. package/dist/appmixer/clientify/crm/UpdateContact/component.json +0 -81
  158. package/dist/appmixer/clientify/crm/UpdateContactAddress/UpdateContactAddress.js +0 -35
  159. package/dist/appmixer/clientify/crm/UpdateContactAddress/component.json +0 -152
  160. package/dist/appmixer/clientify/crm/UpdateContactEmail/UpdateContactEmail.js +0 -27
  161. package/dist/appmixer/clientify/crm/UpdateContactEmail/component.json +0 -112
  162. package/dist/appmixer/clientify/crm/UpdateContactMarketingStatus/UpdateContactMarketingStatus.js +0 -25
  163. package/dist/appmixer/clientify/crm/UpdateContactMarketingStatus/component.json +0 -92
  164. package/dist/appmixer/clientify/crm/UpdateContactOtherCompany/UpdateContactOtherCompany.js +0 -25
  165. package/dist/appmixer/clientify/crm/UpdateContactOtherCompany/component.json +0 -102
  166. package/dist/appmixer/clientify/crm/UpdateContactPhone/UpdateContactPhone.js +0 -27
  167. package/dist/appmixer/clientify/crm/UpdateContactPhone/component.json +0 -112
  168. package/dist/appmixer/clientify/crm/UpdateTask/UpdateTask.js +0 -24
  169. package/dist/appmixer/clientify/crm/UpdateTask/component.json +0 -69
  170. package/dist/appmixer/clientify/crm/clientify.js +0 -49
  171. package/dist/appmixer/clientify/crm/fields.js +0 -24
  172. package/dist/appmixer/clientify/crm/module.json +0 -7
package/README.md CHANGED
@@ -5,8 +5,8 @@
5
5
 
6
6
  Connect n8n to Clientify CRM via the Clientify REST API using API keys (`Authorization: Token <apiKey>`).
7
7
 
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
- Under the hood, requests are executed directly via n8n’s HTTP request helper using `Authorization: Token <apiKey>`.
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
10
 
11
11
  ## Installation
12
12
 
package/dist/README.md CHANGED
@@ -5,8 +5,8 @@
5
5
 
6
6
  Connect n8n to Clientify CRM via the Clientify REST API using API keys (`Authorization: Token <apiKey>`).
7
7
 
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
- Under the hood, requests are executed directly via n8n’s HTTP request helper using `Authorization: Token <apiKey>`.
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
10
 
11
11
  ## Installation
12
12
 
@@ -3,5 +3,19 @@ export declare class ClientifyApi implements ICredentialType {
3
3
  name: string;
4
4
  displayName: string;
5
5
  documentationUrl: string;
6
+ authenticate: {
7
+ readonly type: "generic";
8
+ readonly properties: {
9
+ readonly headers: {
10
+ readonly Authorization: "=Token {{$credentials.apiKey}}";
11
+ };
12
+ };
13
+ };
14
+ test: {
15
+ readonly request: {
16
+ readonly baseURL: "={{$credentials.baseUrl}}";
17
+ readonly url: "/users/me/";
18
+ };
19
+ };
6
20
  properties: INodeProperties[];
7
21
  }
@@ -6,6 +6,20 @@ class ClientifyApi {
6
6
  this.name = 'clientifyApi';
7
7
  this.displayName = 'Clientify API';
8
8
  this.documentationUrl = 'https://newapi.clientify.com/';
9
+ this.authenticate = {
10
+ type: 'generic',
11
+ properties: {
12
+ headers: {
13
+ Authorization: '=Token {{$credentials.apiKey}}',
14
+ },
15
+ },
16
+ };
17
+ this.test = {
18
+ request: {
19
+ baseURL: '={{$credentials.baseUrl}}',
20
+ url: '/users/me/',
21
+ },
22
+ };
9
23
  this.properties = [
10
24
  {
11
25
  displayName: 'API Key',
@@ -52,7 +52,7 @@ class ClientifyApi {
52
52
  const operation = this.getNodeParameter('operation', itemIndex);
53
53
  const def = ClientifyApiCatalog_1.operationDefinitions[operation];
54
54
  if (!def) {
55
- throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Unknown operation "${operation}". Ensure the AppMixer CRM catalog is present in this node package build output.`);
55
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Unknown operation "${operation}". Ensure the operation catalog is present in this node package build output.`);
56
56
  }
57
57
  try {
58
58
  const input = {};
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "n8n-nodes-clientify",
3
- "version": "0.2.8",
3
+ "version": "0.2.10",
4
4
  "description": "N8N node for Clientify CRM integration",
5
5
  "keywords": [
6
6
  "n8n-node",
@@ -23,7 +23,7 @@
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 && mkdir -p dist/appmixer/clientify && cp -R ../../../appmixer/clientify/crm dist/appmixer/clientify/",
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
27
  "dev": "tsc --watch",
28
28
  "lint": "eslint nodes credentials --ext .ts",
29
29
  "lintfix": "eslint nodes credentials --ext .ts --fix",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "n8n-nodes-clientify",
3
- "version": "0.2.8",
3
+ "version": "0.2.10",
4
4
  "description": "N8N node for Clientify CRM integration",
5
5
  "keywords": [
6
6
  "n8n-node",
@@ -23,7 +23,7 @@
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 && mkdir -p dist/appmixer/clientify && cp -R ../../../appmixer/clientify/crm dist/appmixer/clientify/",
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
27
  "dev": "tsc --watch",
28
28
  "lint": "eslint nodes credentials --ext .ts",
29
29
  "lintfix": "eslint nodes credentials --ext .ts --fix",
@@ -1,33 +0,0 @@
1
- const { clientifyRequest } = require('../clientify');
2
-
3
- module.exports = {
4
- async receive(context) {
5
- const { apiKey, baseUrl } = context.auth;
6
- const input = (context.messages.in && context.messages.in.content) || {};
7
- const companyId = input.companyId;
8
- if (!companyId) throw new context.CancelError('companyId is required');
9
-
10
- const payload = {
11
- type: input.type,
12
- street: input.street,
13
- city: input.city,
14
- state: input.state,
15
- country: input.country,
16
- postal_code: input.postal_code,
17
- };
18
- for (const key of ['type', 'street', 'city', 'state', 'country', 'postal_code']) {
19
- if (!payload[key]) throw new context.CancelError(`${key} is required`);
20
- }
21
-
22
- const { data } = await clientifyRequest(context, {
23
- apiKey,
24
- baseUrl,
25
- method: 'POST',
26
- path: `/companies/${companyId}/addresses/`,
27
- data: payload,
28
- });
29
-
30
- return context.sendJson(data || { ok: true }, 'out');
31
- },
32
- };
33
-
@@ -1,115 +0,0 @@
1
- {
2
- "name": "appmixer.clientify.crm.AddCompanyAddress",
3
- "author": "Clientify",
4
- "label": "Add Company Address",
5
- "description": "Add an address to a company.",
6
- "private": false,
7
- "version": "0.1.0",
8
- "auth": {
9
- "service": "appmixer:clientify"
10
- },
11
- "inPorts": [
12
- {
13
- "name": "in",
14
- "schema": {
15
- "type": "object",
16
- "additionalProperties": false,
17
- "properties": {
18
- "companyId": {
19
- "type": "number"
20
- },
21
- "type": {
22
- "type": "number"
23
- },
24
- "street": {
25
- "type": "string"
26
- },
27
- "city": {
28
- "type": "string"
29
- },
30
- "state": {
31
- "type": "string"
32
- },
33
- "country": {
34
- "type": "string"
35
- },
36
- "postal_code": {
37
- "type": "string"
38
- }
39
- },
40
- "required": [
41
- "companyId",
42
- "type",
43
- "street",
44
- "city",
45
- "state",
46
- "country",
47
- "postal_code"
48
- ]
49
- },
50
- "inspector": {
51
- "inputs": {
52
- "companyId": {
53
- "type": "number",
54
- "label": "Company ID",
55
- "tooltip": "Set Company ID (can be mapped from previous steps).",
56
- "index": 1
57
- },
58
- "type": {
59
- "type": "number",
60
- "label": "Type",
61
- "tooltip": "Set Type (can be mapped from previous steps).",
62
- "index": 2
63
- },
64
- "street": {
65
- "type": "text",
66
- "label": "Street",
67
- "tooltip": "Set Street (can be mapped from previous steps).",
68
- "index": 3
69
- },
70
- "city": {
71
- "type": "text",
72
- "label": "City",
73
- "tooltip": "Set City (can be mapped from previous steps).",
74
- "index": 4
75
- },
76
- "state": {
77
- "type": "text",
78
- "label": "State",
79
- "tooltip": "Set State (can be mapped from previous steps).",
80
- "index": 5
81
- },
82
- "country": {
83
- "type": "text",
84
- "label": "Country",
85
- "tooltip": "Set Country (can be mapped from previous steps).",
86
- "index": 6
87
- },
88
- "postal_code": {
89
- "type": "text",
90
- "label": "Postal Code",
91
- "tooltip": "Set Postal Code (can be mapped from previous steps).",
92
- "index": 7
93
- }
94
- }
95
- }
96
- }
97
- ],
98
- "outPorts": [
99
- {
100
- "name": "out",
101
- "schema": {
102
- "type": "object",
103
- "additionalProperties": true,
104
- "properties": {
105
- "id": {
106
- "type": "number"
107
- }
108
- },
109
- "required": [
110
- "id"
111
- ]
112
- }
113
- }
114
- ]
115
- }
@@ -1,32 +0,0 @@
1
- const { clientifyRequest } = require('../clientify');
2
-
3
- module.exports = {
4
- async receive(context) {
5
- const { apiKey, baseUrl } = context.auth;
6
- const input = (context.messages.in && context.messages.in.content) || {};
7
- const companyId = input.companyId;
8
- if (!companyId) throw new context.CancelError('companyId is required');
9
-
10
- const payload = {
11
- type: input.type,
12
- comment: input.comment,
13
- outcome: input.outcome,
14
- call_date: input.call_date,
15
- call_time: input.call_time,
16
- };
17
- for (const key of ['type', 'comment', 'outcome', 'call_date', 'call_time']) {
18
- if (!payload[key]) throw new context.CancelError(`${key} is required`);
19
- }
20
-
21
- const { data } = await clientifyRequest(context, {
22
- apiKey,
23
- baseUrl,
24
- method: 'POST',
25
- path: `/companies/${companyId}/call/`,
26
- data: payload,
27
- });
28
-
29
- return context.sendJson(data || { ok: true }, 'out');
30
- },
31
- };
32
-
@@ -1,109 +0,0 @@
1
- {
2
- "name": "appmixer.clientify.crm.AddCompanyCall",
3
- "author": "Clientify",
4
- "label": "Add Company Call",
5
- "description": "Log a call on a company.",
6
- "private": false,
7
- "version": "0.1.0",
8
- "auth": {
9
- "service": "appmixer:clientify"
10
- },
11
- "inPorts": [
12
- {
13
- "name": "in",
14
- "schema": {
15
- "type": "object",
16
- "additionalProperties": false,
17
- "properties": {
18
- "companyId": {
19
- "type": "number"
20
- },
21
- "type": {
22
- "type": "string",
23
- "description": "Example: incoming"
24
- },
25
- "comment": {
26
- "type": "string"
27
- },
28
- "outcome": {
29
- "type": "string",
30
- "description": "Example: connected"
31
- },
32
- "call_date": {
33
- "type": "string",
34
- "description": "YYYY-MM-DD"
35
- },
36
- "call_time": {
37
- "type": "string",
38
- "description": "HH:MM:SS"
39
- }
40
- },
41
- "required": [
42
- "companyId",
43
- "type",
44
- "comment",
45
- "outcome",
46
- "call_date",
47
- "call_time"
48
- ]
49
- },
50
- "inspector": {
51
- "inputs": {
52
- "companyId": {
53
- "type": "number",
54
- "label": "Company ID",
55
- "tooltip": "Set Company ID (can be mapped from previous steps).",
56
- "index": 1
57
- },
58
- "type": {
59
- "type": "text",
60
- "label": "Type",
61
- "tooltip": "Set Type (can be mapped from previous steps).",
62
- "index": 2
63
- },
64
- "comment": {
65
- "type": "text",
66
- "label": "Comment",
67
- "tooltip": "Set Comment (can be mapped from previous steps).",
68
- "index": 3
69
- },
70
- "outcome": {
71
- "type": "text",
72
- "label": "Outcome",
73
- "tooltip": "Set Outcome (can be mapped from previous steps).",
74
- "index": 4
75
- },
76
- "call_date": {
77
- "type": "text",
78
- "label": "Call Date",
79
- "tooltip": "Set Call Date (can be mapped from previous steps).",
80
- "index": 5
81
- },
82
- "call_time": {
83
- "type": "text",
84
- "label": "Call Time",
85
- "tooltip": "Set Call Time (can be mapped from previous steps).",
86
- "index": 6
87
- }
88
- }
89
- }
90
- }
91
- ],
92
- "outPorts": [
93
- {
94
- "name": "out",
95
- "schema": {
96
- "type": "object",
97
- "additionalProperties": true,
98
- "properties": {
99
- "id": {
100
- "type": "number"
101
- }
102
- },
103
- "required": [
104
- "id"
105
- ]
106
- }
107
- }
108
- ]
109
- }
@@ -1,31 +0,0 @@
1
- const { clientifyRequest } = require('../clientify');
2
-
3
- module.exports = {
4
- async receive(context) {
5
- const { apiKey, baseUrl } = context.auth;
6
- const input = (context.messages.in && context.messages.in.content) || {};
7
- const companyId = input.companyId;
8
- if (!companyId) throw new context.CancelError('companyId is required');
9
-
10
- const payload = {
11
- type: input.type,
12
- comment: input.comment,
13
- outcome: input.outcome,
14
- date: input.date,
15
- };
16
- for (const key of ['type', 'comment', 'outcome', 'date']) {
17
- if (!payload[key]) throw new context.CancelError(`${key} is required`);
18
- }
19
-
20
- const { data } = await clientifyRequest(context, {
21
- apiKey,
22
- baseUrl,
23
- method: 'POST',
24
- path: `/companies/${companyId}/checkin/`,
25
- data: payload,
26
- });
27
-
28
- return context.sendJson(data || { ok: true }, 'out');
29
- },
30
- };
31
-
@@ -1,98 +0,0 @@
1
- {
2
- "name": "appmixer.clientify.crm.AddCompanyCheckin",
3
- "author": "Clientify",
4
- "label": "Add Company Check-in",
5
- "description": "Log a meeting/check-in on a company.",
6
- "private": false,
7
- "version": "0.1.0",
8
- "auth": {
9
- "service": "appmixer:clientify"
10
- },
11
- "inPorts": [
12
- {
13
- "name": "in",
14
- "schema": {
15
- "type": "object",
16
- "additionalProperties": false,
17
- "properties": {
18
- "companyId": {
19
- "type": "number"
20
- },
21
- "type": {
22
- "type": "string",
23
- "description": "Example: virtual"
24
- },
25
- "comment": {
26
- "type": "string"
27
- },
28
- "outcome": {
29
- "type": "string",
30
- "description": "Example: scheduled"
31
- },
32
- "date": {
33
- "type": "string",
34
- "description": "Example: 2021-07-08 12:34"
35
- }
36
- },
37
- "required": [
38
- "companyId",
39
- "type",
40
- "comment",
41
- "outcome",
42
- "date"
43
- ]
44
- },
45
- "inspector": {
46
- "inputs": {
47
- "companyId": {
48
- "type": "number",
49
- "label": "Company ID",
50
- "tooltip": "Set Company ID (can be mapped from previous steps).",
51
- "index": 1
52
- },
53
- "type": {
54
- "type": "text",
55
- "label": "Type",
56
- "tooltip": "Set Type (can be mapped from previous steps).",
57
- "index": 2
58
- },
59
- "comment": {
60
- "type": "text",
61
- "label": "Comment",
62
- "tooltip": "Set Comment (can be mapped from previous steps).",
63
- "index": 3
64
- },
65
- "outcome": {
66
- "type": "text",
67
- "label": "Outcome",
68
- "tooltip": "Set Outcome (can be mapped from previous steps).",
69
- "index": 4
70
- },
71
- "date": {
72
- "type": "text",
73
- "label": "Date",
74
- "tooltip": "Set Date (can be mapped from previous steps).",
75
- "index": 5
76
- }
77
- }
78
- }
79
- }
80
- ],
81
- "outPorts": [
82
- {
83
- "name": "out",
84
- "schema": {
85
- "type": "object",
86
- "additionalProperties": true,
87
- "properties": {
88
- "id": {
89
- "type": "number"
90
- }
91
- },
92
- "required": [
93
- "id"
94
- ]
95
- }
96
- }
97
- ]
98
- }
@@ -1,25 +0,0 @@
1
- const { clientifyRequest } = require('../clientify');
2
-
3
- module.exports = {
4
- async receive(context) {
5
- const { apiKey, baseUrl } = context.auth;
6
- const input = (context.messages.in && context.messages.in.content) || {};
7
- const companyId = input.companyId;
8
- const email = input.email;
9
- const type = input.type;
10
- if (!companyId) throw new context.CancelError('companyId is required');
11
- if (!email) throw new context.CancelError('email is required');
12
- if (!type) throw new context.CancelError('type is required');
13
-
14
- const { data } = await clientifyRequest(context, {
15
- apiKey,
16
- baseUrl,
17
- method: 'POST',
18
- path: `/companies/${companyId}/emails/`,
19
- data: { email, type },
20
- });
21
-
22
- return context.sendJson(data || { ok: true }, 'out');
23
- },
24
- };
25
-
@@ -1,84 +0,0 @@
1
- {
2
- "name": "appmixer.clientify.crm.AddCompanyEmail",
3
- "author": "Clientify",
4
- "label": "Add Company Email",
5
- "description": "Add an email to a company.",
6
- "private": false,
7
- "version": "0.1.0",
8
- "auth": {
9
- "service": "appmixer:clientify"
10
- },
11
- "inPorts": [
12
- {
13
- "name": "in",
14
- "schema": {
15
- "type": "object",
16
- "additionalProperties": false,
17
- "properties": {
18
- "companyId": {
19
- "type": "number"
20
- },
21
- "email": {
22
- "type": "string"
23
- },
24
- "type": {
25
- "type": "number"
26
- }
27
- },
28
- "required": [
29
- "companyId",
30
- "email",
31
- "type"
32
- ]
33
- },
34
- "inspector": {
35
- "inputs": {
36
- "companyId": {
37
- "type": "number",
38
- "label": "Company ID",
39
- "tooltip": "Set Company ID (can be mapped from previous steps).",
40
- "index": 1
41
- },
42
- "email": {
43
- "type": "text",
44
- "label": "Email",
45
- "tooltip": "Set Email (can be mapped from previous steps).",
46
- "index": 2
47
- },
48
- "type": {
49
- "type": "number",
50
- "label": "Type",
51
- "tooltip": "Set Type (can be mapped from previous steps).",
52
- "index": 3
53
- }
54
- }
55
- }
56
- }
57
- ],
58
- "outPorts": [
59
- {
60
- "name": "out",
61
- "schema": {
62
- "type": "object",
63
- "additionalProperties": true,
64
- "properties": {
65
- "id": {
66
- "type": "number"
67
- },
68
- "type": {
69
- "type": "number"
70
- },
71
- "email": {
72
- "type": "string"
73
- },
74
- "is_hard_bounce": {
75
- "type": "boolean"
76
- }
77
- },
78
- "required": [
79
- "id"
80
- ]
81
- }
82
- }
83
- ]
84
- }
@@ -1,22 +0,0 @@
1
- const { clientifyRequest } = require('../clientify');
2
-
3
- module.exports = {
4
- async receive(context) {
5
- const { apiKey, baseUrl } = context.auth;
6
- const input = (context.messages.in && context.messages.in.content) || {};
7
- const companyId = input.companyId;
8
- const contactId = input.contactId;
9
- if (!companyId) throw new context.CancelError('companyId is required');
10
- if (!contactId) throw new context.CancelError('contactId is required');
11
-
12
- const { data } = await clientifyRequest(context, {
13
- apiKey,
14
- baseUrl,
15
- method: 'PUT',
16
- path: `/companies/${companyId}/employees/${contactId}/`,
17
- });
18
-
19
- return context.sendJson(data || { ok: true }, 'out');
20
- },
21
- };
22
-