n8n-nodes-novinmarketing 0.3.1 → 0.3.3

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 (30) hide show
  1. package/dist/nodes/{SendSmsBatch/SendSmsBatch.node.d.ts → CallCenter/CallCenter.node.d.ts} +1 -1
  2. package/dist/nodes/{SendToCallCenter/SendToCallCenter.node.js → CallCenter/CallCenter.node.js} +87 -43
  3. package/dist/nodes/CallCenter/CallCenter.node.js.map +1 -0
  4. package/dist/nodes/{SendSmsBatch/SendSmsBatch.node.json → CallCenter/CallCenter.node.json} +1 -1
  5. package/dist/nodes/GetSegmentUsers/GetSegmentUsers.node.js.map +1 -1
  6. package/dist/nodes/SendEmail/SendEmail.node.d.ts +2 -1
  7. package/dist/nodes/SendEmail/SendEmail.node.js +139 -56
  8. package/dist/nodes/SendEmail/SendEmail.node.js.map +1 -1
  9. package/dist/nodes/SendEmail/SendEmail.node.json +2 -2
  10. package/dist/nodes/SendEmail/SendEmail.svg +33 -42
  11. package/dist/nodes/SendSms/SendSms.node.d.ts +2 -1
  12. package/dist/nodes/SendSms/SendSms.node.js +137 -32
  13. package/dist/nodes/SendSms/SendSms.node.js.map +1 -1
  14. package/dist/nodes/SendSms/SendSms.node.json +2 -2
  15. package/dist/nodes/SendSms/SendSms.svg +2 -28
  16. package/dist/package.json +2 -4
  17. package/dist/tsconfig.tsbuildinfo +1 -1
  18. package/package.json +2 -4
  19. package/dist/nodes/SendEmailBatch/SendEmail.svg +0 -33
  20. package/dist/nodes/SendEmailBatch/SendEmailBatch.node.d.ts +0 -5
  21. package/dist/nodes/SendEmailBatch/SendEmailBatch.node.js +0 -261
  22. package/dist/nodes/SendEmailBatch/SendEmailBatch.node.js.map +0 -1
  23. package/dist/nodes/SendEmailBatch/SendEmailBatch.node.json +0 -20
  24. package/dist/nodes/SendSmsBatch/SendSms.svg +0 -2
  25. package/dist/nodes/SendSmsBatch/SendSmsBatch.node.js +0 -221
  26. package/dist/nodes/SendSmsBatch/SendSmsBatch.node.js.map +0 -1
  27. package/dist/nodes/SendToCallCenter/SendToCallCenter.node.d.ts +0 -5
  28. package/dist/nodes/SendToCallCenter/SendToCallCenter.node.js.map +0 -1
  29. package/dist/nodes/SendToCallCenter/SendToCallCenter.node.json +0 -20
  30. /package/dist/nodes/{SendToCallCenter/SendToCallCenter.svg → CallCenter/CallCenter.svg} +0 -0
@@ -1,5 +1,5 @@
1
1
  import { INodeType, INodeTypeDescription, IExecuteFunctions, INodeExecutionData } from 'n8n-workflow';
2
- export declare class SendSmsBatch implements INodeType {
2
+ export declare class CallCenter implements INodeType {
3
3
  description: INodeTypeDescription;
4
4
  execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
5
5
  }
@@ -1,18 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SendToCallCenter = void 0;
4
- class SendToCallCenter {
3
+ exports.CallCenter = void 0;
4
+ class CallCenter {
5
5
  constructor() {
6
6
  this.description = {
7
- displayName: 'Novin Send To Call Center',
8
- name: 'sendToCallCenter',
9
- icon: 'file:SendToCallCenter.svg',
7
+ displayName: 'Novin Call Center',
8
+ name: 'callCenter',
9
+ icon: 'file:CallCenter.svg',
10
10
  group: ['transform'],
11
- version: [3],
11
+ version: [1],
12
12
  subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}',
13
- description: 'Node to Send User Information to Call Center',
13
+ description: 'Call Center Node',
14
14
  defaults: {
15
- name: 'Novin Send User To Call Center',
15
+ name: 'Novin Call Center',
16
16
  },
17
17
  inputs: ['main'],
18
18
  outputs: ['main'],
@@ -40,6 +40,10 @@ class SendToCallCenter {
40
40
  name: 'Send To Call Center',
41
41
  value: 'NovinSendToCallCenter',
42
42
  },
43
+ {
44
+ name: 'Delete From Call Center',
45
+ value: 'NovinDeleteFromCallCenter',
46
+ },
43
47
  ],
44
48
  default: 'NovinSendToCallCenter',
45
49
  },
@@ -72,14 +76,42 @@ class SendToCallCenter {
72
76
  default: 'post',
73
77
  },
74
78
  {
75
- displayName: 'User IDs',
76
- name: 'userIds',
79
+ displayName: 'Operation',
80
+ name: 'operation',
81
+ type: 'options',
82
+ noDataExpression: true,
83
+ displayOptions: {
84
+ show: {
85
+ resource: [
86
+ 'NovinDeleteFromCallCenter',
87
+ ],
88
+ },
89
+ },
90
+ options: [
91
+ {
92
+ name: 'Post',
93
+ value: 'post',
94
+ action: 'Delete from call center',
95
+ routing: {
96
+ request: {
97
+ method: 'POST',
98
+ url: '/users/deleteFromCallCenter',
99
+ body: '={{ { userIds: $json["userIds"] } }}',
100
+ },
101
+ },
102
+ },
103
+ ],
104
+ default: 'post',
105
+ },
106
+ {
107
+ displayName: 'Users',
108
+ name: 'users',
77
109
  type: 'string',
78
- default: '{{ $(nodeName).all() }}',
79
- placeholder: 'Array of user _id',
110
+ default: '{{ $(previousNodename).all() }}',
111
+ placeholder: 'users _id',
80
112
  routing: {
81
113
  send: {
82
- property: 'userIds',
114
+ property: 'users',
83
115
  type: 'body',
84
116
  },
85
117
  },
@@ -111,40 +143,53 @@ class SendToCallCenter {
111
143
  },
112
144
  },
113
145
  },
146
+ {
147
+ displayName: 'Batch Size',
148
+ name: 'batchSize',
149
+ type: 'number',
150
+ default: 50,
151
+ description: 'Number of messages to accumulate before sending a batch',
152
+ },
114
153
  ],
115
154
  };
116
155
  }
117
156
  async execute() {
118
- const users = this.getNodeParameter('userIds', 0);
157
+ const users = this.getNodeParameter('users', 0);
119
158
  const callCenterCategory = this.getNodeParameter('callCenterCategory', 0);
159
+ const batchSize = this.getNodeParameter('batchSize', 0);
120
160
  const sendCartItems = this.getNodeParameter('sendCartItems', 0);
121
- const apiUrl = 'https://cdp.novin.marketing/api/users/sendToCallCenter';
122
- const batchSize = 10;
123
- const results = [];
161
+ const resource = this.getNodeParameter('resource', 0);
162
+ const responseData = [];
163
+ let usersId = [];
124
164
  for (let i = 0; i < users.length; i += batchSize) {
125
165
  const batchUsers = users.slice(i, i + batchSize);
126
- let userIds = [];
127
166
  for (const user of batchUsers) {
128
- if (user && user.json) {
129
- if ('_id' in user.json) {
130
- userIds.push(user.json._id);
131
- }
132
- else if ('body' in user.json && '_id' in user.json.body) {
133
- userIds.push(user.json.body._id);
134
- }
135
- else {
136
- console.log('Invalid user format:', user);
137
- }
167
+ if ('_id' in user.json) {
168
+ usersId.push({ userId: user.json._id });
169
+ }
170
+ else if ('body' in user.json && '_id' in user.json.body) {
171
+ usersId.push({ userId: user.json.body._id });
138
172
  }
139
173
  else {
140
- console.log('User data is missing or not in expected format:', user);
174
+ console.log('Invalid user format');
141
175
  }
142
176
  }
143
- const requestBody = {
144
- userIds: userIds,
145
- callCenterCategory: callCenterCategory,
146
- sendCartItems: sendCartItems,
147
- };
177
+ let requestBody;
178
+ let apiUrl;
179
+ if (resource === 'NovinSendToCallCenter') {
180
+ apiUrl = 'https://cdp.novin.marketing/api/users/sendToCallCenter';
181
+ requestBody = {
182
+ userIds: usersId,
183
+ callCenterCategory: callCenterCategory,
184
+ sendCartItems: sendCartItems,
185
+ };
186
+ }
187
+ else {
188
+ apiUrl = 'https://cdp.novin.marketing/api/users/deleteFromCallCenter';
189
+ requestBody = {
190
+ userIds: usersId
191
+ };
192
+ }
148
193
  const options = {
149
194
  method: 'POST',
150
195
  url: apiUrl,
@@ -155,17 +200,16 @@ class SendToCallCenter {
155
200
  },
156
201
  json: true,
157
202
  };
158
- try {
159
- const response = await this.helpers.httpRequestWithAuthentication.call(this, 'novinMarketingApi', options);
160
- results.push(this.helpers.returnJsonArray(response));
203
+ const response = await this.helpers.httpRequestWithAuthentication.call(this, 'novinMarketingApi', options);
204
+ if (Array.isArray(response)) {
205
+ responseData.push(...response);
161
206
  }
162
- catch (error) {
163
- console.error('HTTP request failed:', error);
164
- throw error;
207
+ else {
208
+ responseData.push(response);
165
209
  }
166
210
  }
167
- return results;
211
+ return [this.helpers.returnJsonArray(responseData)];
168
212
  }
169
213
  }
170
- exports.SendToCallCenter = SendToCallCenter;
171
- //# sourceMappingURL=SendToCallCenter.node.js.map
214
+ exports.CallCenter = CallCenter;
215
+ //# sourceMappingURL=CallCenter.node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CallCenter.node.js","sourceRoot":"","sources":["../../../nodes/CallCenter/CallCenter.node.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  {
2
- "node": "n8n-nodes-base.SendSmsBatch",
2
+ "node": "n8n-nodes-base.CallCenter",
3
3
  "nodeVersion": "1",
4
4
  "codexVersion": "1",
5
5
  "categories": [
@@ -1 +1 @@
1
- {"version":3,"file":"GetSegmentUsers.node.js","sourceRoot":"","sources":["../../../nodes/GetSegmentUsers/GetSegmentUsers.node.ts"],"names":[],"mappings":";;;AACA,MAAa,eAAe;IAA5B;QACC,gBAAW,GAAyB;YACnC,WAAW,EAAE,8BAA8B;YAC3C,IAAI,EAAE,iBAAiB;YACvB,IAAI,EAAE,0BAA0B;YAChC,KAAK,EAAE,CAAC,WAAW,CAAC;YACpB,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YACf,QAAQ,EAAE,8DAA8D;YACxE,WAAW,EAAE,4CAA4C;YACzD,QAAQ,EAAE;gBACT,IAAI,EAAE,+BAA+B;aACrC;YACD,MAAM,EAAE,CAAC,MAAM,CAAC;YAChB,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,WAAW,EAAE;gBACZ;oBACC,IAAI,EAAE,mBAAmB;oBACzB,QAAQ,EAAE,IAAI;iBACd;aACD;YACD,eAAe,EAAE;gBAChB,OAAO,EAAE,iCAAiC;gBAC1C,OAAO,EAAE;oBACR,MAAM,EAAE,kBAAkB;oBAC1B,cAAc,EAAE,kBAAkB;iBAClC;aACD;YACD,UAAU,EAAE;gBAEX;oBACC,WAAW,EAAE,YAAY;oBACzB,IAAI,EAAE,YAAY;oBAClB,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,IAAI;oBACb,WAAW,EAAE,oBAAoB;iBACjC;gBACD;oBACC,WAAW,EAAE,WAAW;oBACxB,IAAI,EAAE,WAAW;oBACjB,IAAI,EAAE,SAAS;oBACf,gBAAgB,EAAE,IAAI;oBACtB,OAAO,EAAE;wBACR;4BACC,IAAI,EAAE,MAAM;4BACZ,KAAK,EAAE,MAAM;4BACb,MAAM,EAAE,wBAAwB;4BAChC,WAAW,EAAE,iDAAiD;4BAC9D,OAAO,EAAE;gCACR,OAAO,EAAE;oCACR,MAAM,EAAE,MAAM;oCACd,GAAG,EAAE,wBAAwB;oCAC7B,IAAI,EAAE,2CAA2C;iCACjD;6BACD;yBACD;qBACD;oBACD,OAAO,EAAE,MAAM;iBACf;aACD;SACD,CAAC;IACH,CAAC;CAAA;AA5DD,0CA4DC"}
1
+ {"version":3,"file":"GetSegmentUsers.node.js","sourceRoot":"","sources":["../../../nodes/GetSegmentUsers/GetSegmentUsers.node.ts"],"names":[],"mappings":";;;AACA,MAAa,eAAe;IAA5B;QACC,gBAAW,GAAyB;YACnC,WAAW,EAAE,8BAA8B;YAC3C,IAAI,EAAE,iBAAiB;YACvB,IAAI,EAAE,0BAA0B;YAChC,KAAK,EAAE,CAAC,WAAW,CAAC;YACpB,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YACf,QAAQ,EAAE,8DAA8D;YACxE,WAAW,EAAE,4CAA4C;YACzD,QAAQ,EAAE;gBACT,IAAI,EAAE,+BAA+B;aACrC;YACD,MAAM,EAAE,CAAC,MAAM,CAAC;YAChB,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,WAAW,EAAE;gBACZ;oBACC,IAAI,EAAE,mBAAmB;oBACzB,QAAQ,EAAE,IAAI;iBACd;aACD;YACD,eAAe,EAAE;gBAChB,OAAO,EAAE,iCAAiC;gBAG1C,OAAO,EAAE;oBACR,MAAM,EAAE,kBAAkB;oBAC1B,cAAc,EAAE,kBAAkB;iBAClC;aACD;YACD,UAAU,EAAE;gBAEX;oBACC,WAAW,EAAE,YAAY;oBACzB,IAAI,EAAE,YAAY;oBAClB,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,IAAI;oBACb,WAAW,EAAE,oBAAoB;iBACjC;gBACD;oBACC,WAAW,EAAE,WAAW;oBACxB,IAAI,EAAE,WAAW;oBACjB,IAAI,EAAE,SAAS;oBACf,gBAAgB,EAAE,IAAI;oBACtB,OAAO,EAAE;wBACR;4BACC,IAAI,EAAE,MAAM;4BACZ,KAAK,EAAE,MAAM;4BACb,MAAM,EAAE,wBAAwB;4BAChC,WAAW,EAAE,iDAAiD;4BAC9D,OAAO,EAAE;gCACR,OAAO,EAAE;oCACR,MAAM,EAAE,MAAM;oCACd,GAAG,EAAE,wBAAwB;oCAC7B,IAAI,EAAE,2CAA2C;iCACjD;6BACD;yBACD;qBACD;oBACD,OAAO,EAAE,MAAM;iBACf;aACD;SACD,CAAC;IACH,CAAC;CAAA;AA9DD,0CA8DC"}
@@ -1,4 +1,5 @@
1
- import { INodeType, INodeTypeDescription } from 'n8n-workflow';
1
+ import { INodeType, INodeTypeDescription, IExecuteFunctions, INodeExecutionData } from 'n8n-workflow';
2
2
  export declare class SendEmail implements INodeType {
3
3
  description: INodeTypeDescription;
4
+ execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
4
5
  }
@@ -8,7 +8,7 @@ class SendEmail {
8
8
  name: 'sendEmail',
9
9
  icon: 'file:SendEmail.svg',
10
10
  group: ['transform'],
11
- version: [2, 3, 4],
11
+ version: [1, 2, 3],
12
12
  subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}',
13
13
  description: 'Node to Send Email',
14
14
  defaults: {
@@ -31,60 +31,14 @@ class SendEmail {
31
31
  },
32
32
  properties: [
33
33
  {
34
- displayName: 'Resource',
35
- name: 'resource',
36
- type: 'options',
37
- noDataExpression: true,
38
- options: [
39
- {
40
- name: 'Send Email',
41
- value: 'NovinSendEmail',
42
- },
43
- ],
44
- default: 'NovinSendEmail',
45
- },
46
- {
47
- displayName: 'Operation',
48
- name: 'operation',
49
- type: 'options',
50
- noDataExpression: true,
51
- displayOptions: {
52
- show: {
53
- resource: [
54
- 'NovinSendEmail',
55
- ],
56
- },
57
- },
58
- options: [
59
- {
60
- name: 'Post',
61
- value: 'post',
62
- action: 'Send email',
63
- description: 'Send Email',
64
- routing: {
65
- request: {
66
- method: 'POST',
67
- url: '/users/sendEmail2',
68
- },
69
- },
70
- },
71
- ],
72
- default: 'post',
73
- },
74
- {
75
- displayName: 'User ID',
76
- displayOptions: {
77
- show: {
78
- '@version': [4],
79
- },
80
- },
81
- name: 'userId',
34
+ displayName: 'Users',
35
+ name: 'users',
82
36
  type: 'string',
83
- default: '',
84
- placeholder: 'user _id',
37
+ default: '{{ $(previousNodename).all() }}',
38
+ placeholder: 'users List',
85
39
  routing: {
86
40
  send: {
87
- property: 'userId',
41
+ property: 'users',
88
42
  type: 'body',
89
43
  },
90
44
  },
@@ -106,7 +60,7 @@ class SendEmail {
106
60
  displayName: 'Sender Name',
107
61
  name: 'senderName',
108
62
  type: 'string',
109
- default: '',
63
+ default: '{{ $(previousNodename).item.json.firstName.value }}',
110
64
  placeholder: 'Enter Sender Name',
111
65
  description: 'Sender Name of the email',
112
66
  routing: {
@@ -120,7 +74,7 @@ class SendEmail {
120
74
  displayName: 'Subject',
121
75
  name: 'subject',
122
76
  type: 'string',
123
- default: '',
77
+ default: '{{ $(previousNodename).item.json.firstName.value }}',
124
78
  placeholder: 'Enter Subject',
125
79
  description: 'Subject of the email',
126
80
  routing: {
@@ -134,7 +88,7 @@ class SendEmail {
134
88
  displayName: 'Preview',
135
89
  name: 'preview',
136
90
  type: 'string',
137
- default: '',
91
+ default: '{{ $(previousNodename).item.json.firstName.value }}',
138
92
  placeholder: 'Enter Preview',
139
93
  description: 'Preview of the email',
140
94
  routing: {
@@ -148,7 +102,7 @@ class SendEmail {
148
102
  displayName: 'Email Content',
149
103
  name: 'content',
150
104
  type: 'string',
151
- default: '',
105
+ default: '{{ $(previousNodename).item.json.firstName.value }}',
152
106
  placeholder: 'Enter Email content',
153
107
  description: 'Content to send',
154
108
  routing: {
@@ -171,9 +125,138 @@ class SendEmail {
171
125
  },
172
126
  },
173
127
  },
128
+ {
129
+ displayName: 'Dont Disturb',
130
+ name: 'dontDisturb',
131
+ type: 'boolean',
132
+ default: true,
133
+ },
134
+ {
135
+ displayName: 'Batch Size',
136
+ name: 'batchSize',
137
+ type: 'number',
138
+ default: 100,
139
+ description: 'Number of messages to accumulate before sending a batch',
140
+ },
174
141
  ],
175
142
  };
176
143
  }
144
+ async execute() {
145
+ const users = this.getNodeParameter('users', 0);
146
+ const dontDisturb = this.getNodeParameter('dontDisturb', 0);
147
+ const oncePerEmail = this.getNodeParameter('oncePerEmail', 0);
148
+ const parameters = this.getNode().parameters;
149
+ let textTemplate = parameters.content;
150
+ if (textTemplate.startsWith('=')) {
151
+ textTemplate = textTemplate.substring(1);
152
+ }
153
+ let preview = parameters.preview;
154
+ if (preview.startsWith('=')) {
155
+ preview = preview.substring(1);
156
+ }
157
+ let subject = parameters.subject;
158
+ if (subject.startsWith('=')) {
159
+ subject = subject.substring(1);
160
+ }
161
+ const senderName = this.getNodeParameter('senderName', 0);
162
+ const emailName = this.getNodeParameter('emailName', 0);
163
+ const batchSize = this.getNodeParameter('batchSize', 0);
164
+ if (dontDisturb) {
165
+ const currentTime = new Date();
166
+ const currentHour = currentTime.getHours();
167
+ if (currentHour >= 22 || currentHour < 9) {
168
+ let waitTime = 0;
169
+ if (currentHour >= 22) {
170
+ waitTime = (24 - currentHour + 9) * 60 * 60 * 1000 - currentTime.getMinutes() * 60 * 1000 - currentTime.getSeconds() * 1000 - currentTime.getMilliseconds();
171
+ }
172
+ else {
173
+ waitTime = (9 - currentHour) * 60 * 60 * 1000 - currentTime.getMinutes() * 60 * 1000 - currentTime.getSeconds() * 1000 - currentTime.getMilliseconds();
174
+ }
175
+ await new Promise(resolve => setTimeout(resolve, waitTime));
176
+ }
177
+ }
178
+ const apiUrl = 'https://cdp.novin.marketing/api/users/sendEmailBatch';
179
+ const responseData = [];
180
+ const regex = /{{\s*.*?\s*}}/g;
181
+ const subjectExpressions = [];
182
+ const previewExpressions = [];
183
+ const textExpressions = [];
184
+ let textMatch;
185
+ while ((textMatch = regex.exec(textTemplate)) !== null) {
186
+ textExpressions.push(textMatch[0].trim());
187
+ }
188
+ let subjectMatch;
189
+ while ((subjectMatch = regex.exec(subject)) !== null) {
190
+ subjectExpressions.push(subjectMatch[0].trim());
191
+ }
192
+ let previewMatch;
193
+ while ((previewMatch = regex.exec(preview)) !== null) {
194
+ previewExpressions.push(previewMatch[0].trim());
195
+ }
196
+ let j = 0;
197
+ for (let i = 0; i < users.length; i += batchSize) {
198
+ const batchUsers = users.slice(i, i + batchSize);
199
+ let usersAndText = [];
200
+ for (const user of batchUsers) {
201
+ let replacements = [];
202
+ let personalizedSubject = subject;
203
+ let personalizedPreview = preview;
204
+ textExpressions.forEach(expression => {
205
+ let expressionValue = this.evaluateExpression(expression, j);
206
+ if (!expressionValue)
207
+ expressionValue = "";
208
+ replacements.push({ expression, expressionValue });
209
+ });
210
+ subjectExpressions.forEach(expression => {
211
+ let expressionValue = this.evaluateExpression(expression, j);
212
+ if (!expressionValue)
213
+ expressionValue = "";
214
+ personalizedSubject = personalizedSubject.replace(expression, expressionValue);
215
+ });
216
+ previewExpressions.forEach(expression => {
217
+ let expressionValue = this.evaluateExpression(expression, j);
218
+ if (!expressionValue)
219
+ expressionValue = "";
220
+ personalizedPreview = personalizedPreview.replace(expression, expressionValue);
221
+ });
222
+ j++;
223
+ if ('_id' in user.json) {
224
+ usersAndText.push({ "userId": user.json._id, "replacements": replacements, subject: personalizedSubject, preview: personalizedPreview });
225
+ }
226
+ else if ('body' in user.json && '_id' in user.json.body) {
227
+ usersAndText.push({ "userId": user.json.body._id, "replacements": replacements, subject: personalizedSubject, preview: personalizedPreview });
228
+ }
229
+ else {
230
+ console.log('Invalid user format');
231
+ }
232
+ }
233
+ const requestBody = {
234
+ usersAndText: usersAndText,
235
+ template: textTemplate,
236
+ emailName: emailName,
237
+ senderName: senderName,
238
+ once: oncePerEmail
239
+ };
240
+ const options = {
241
+ method: 'POST',
242
+ url: apiUrl,
243
+ body: requestBody,
244
+ headers: {
245
+ 'Accept': 'application/json',
246
+ 'Content-Type': 'application/json',
247
+ },
248
+ json: true,
249
+ };
250
+ const response = await this.helpers.httpRequestWithAuthentication.call(this, 'novinMarketingApi', options);
251
+ if (Array.isArray(response)) {
252
+ responseData.push(...response);
253
+ }
254
+ else {
255
+ responseData.push(response);
256
+ }
257
+ }
258
+ return [this.helpers.returnJsonArray(responseData)];
259
+ }
177
260
  }
178
261
  exports.SendEmail = SendEmail;
179
262
  //# sourceMappingURL=SendEmail.node.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SendEmail.node.js","sourceRoot":"","sources":["../../../nodes/SendEmail/SendEmail.node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SendEmail.node.js","sourceRoot":"","sources":["../../../nodes/SendEmail/SendEmail.node.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "node": "n8n-nodes-base.SendEmail",
3
- "nodeVersion": "4",
4
- "codexVersion": "4",
3
+ "nodeVersion": "3",
4
+ "codexVersion": "3",
5
5
  "categories": [
6
6
  "Miscellaneous"
7
7
  ],
@@ -1,42 +1,33 @@
1
- <?xml version="1.0" encoding="iso-8859-1"?>
2
- <!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
3
- <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
4
- <svg fill="#000000" height="800px" width="800px" version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
5
- viewBox="0 0 345.834 345.834" xml:space="preserve">
6
- <g>
7
- <path d="M339.798,260.429c0.13-0.026,0.257-0.061,0.385-0.094c0.109-0.028,0.219-0.051,0.326-0.084
8
- c0.125-0.038,0.247-0.085,0.369-0.129c0.108-0.039,0.217-0.074,0.324-0.119c0.115-0.048,0.226-0.104,0.338-0.157
9
- c0.109-0.052,0.22-0.1,0.327-0.158c0.107-0.057,0.208-0.122,0.312-0.184c0.107-0.064,0.215-0.124,0.319-0.194
10
- c0.111-0.074,0.214-0.156,0.321-0.236c0.09-0.067,0.182-0.13,0.27-0.202c0.162-0.133,0.316-0.275,0.466-0.421
11
- c0.027-0.026,0.056-0.048,0.083-0.075c0.028-0.028,0.052-0.059,0.079-0.088c0.144-0.148,0.284-0.3,0.416-0.46
12
- c0.077-0.094,0.144-0.192,0.216-0.289c0.074-0.1,0.152-0.197,0.221-0.301c0.074-0.111,0.139-0.226,0.207-0.34
13
- c0.057-0.096,0.118-0.19,0.171-0.289c0.062-0.115,0.114-0.234,0.169-0.351c0.049-0.104,0.101-0.207,0.146-0.314
14
- c0.048-0.115,0.086-0.232,0.128-0.349c0.041-0.114,0.085-0.227,0.12-0.343c0.036-0.118,0.062-0.238,0.092-0.358
15
- c0.029-0.118,0.063-0.234,0.086-0.353c0.028-0.141,0.045-0.283,0.065-0.425c0.014-0.1,0.033-0.199,0.043-0.3
16
- c0.025-0.249,0.038-0.498,0.038-0.748V92.76c0-4.143-3.357-7.5-7.5-7.5h-236.25c-0.066,0-0.13,0.008-0.196,0.01
17
- c-0.143,0.004-0.285,0.01-0.427,0.022c-0.113,0.009-0.225,0.022-0.337,0.037c-0.128,0.016-0.255,0.035-0.382,0.058
18
- c-0.119,0.021-0.237,0.046-0.354,0.073c-0.119,0.028-0.238,0.058-0.356,0.092c-0.117,0.033-0.232,0.069-0.346,0.107
19
- c-0.117,0.04-0.234,0.082-0.349,0.128c-0.109,0.043-0.216,0.087-0.322,0.135c-0.118,0.053-0.235,0.11-0.351,0.169
20
- c-0.099,0.051-0.196,0.103-0.292,0.158c-0.116,0.066-0.23,0.136-0.343,0.208c-0.093,0.06-0.184,0.122-0.274,0.185
21
- c-0.106,0.075-0.211,0.153-0.314,0.235c-0.094,0.075-0.186,0.152-0.277,0.231c-0.09,0.079-0.179,0.158-0.266,0.242
22
- c-0.099,0.095-0.194,0.194-0.288,0.294c-0.047,0.05-0.097,0.094-0.142,0.145c-0.027,0.03-0.048,0.063-0.074,0.093
23
- c-0.094,0.109-0.182,0.223-0.27,0.338c-0.064,0.084-0.13,0.168-0.19,0.254c-0.078,0.112-0.15,0.227-0.222,0.343
24
- c-0.059,0.095-0.12,0.189-0.174,0.286c-0.063,0.112-0.118,0.227-0.175,0.342c-0.052,0.105-0.106,0.21-0.153,0.317
25
- c-0.049,0.113-0.092,0.23-0.135,0.345c-0.043,0.113-0.087,0.225-0.124,0.339c-0.037,0.115-0.067,0.232-0.099,0.349
26
- c-0.032,0.12-0.066,0.239-0.093,0.36c-0.025,0.113-0.042,0.228-0.062,0.342c-0.022,0.13-0.044,0.26-0.06,0.39
27
- c-0.013,0.108-0.019,0.218-0.027,0.328c-0.01,0.14-0.019,0.28-0.021,0.421c-0.001,0.041-0.006,0.081-0.006,0.122v46.252
28
- c0,4.143,3.357,7.5,7.5,7.5s7.5-3.357,7.5-7.5v-29.595l66.681,59.037c-0.348,0.245-0.683,0.516-0.995,0.827l-65.687,65.687v-49.288
29
- c0-4.143-3.357-7.5-7.5-7.5s-7.5,3.357-7.5,7.5v9.164h-38.75c-4.143,0-7.5,3.357-7.5,7.5s3.357,7.5,7.5,7.5h38.75v43.231
30
- c0,4.143,3.357,7.5,7.5,7.5h236.25c0.247,0,0.494-0.013,0.74-0.037c0.115-0.011,0.226-0.033,0.339-0.049
31
- C339.542,260.469,339.67,260.454,339.798,260.429z M330.834,234.967l-65.688-65.687c-0.042-0.042-0.087-0.077-0.13-0.117
32
- l49.383-41.897c3.158-2.68,3.546-7.412,0.866-10.571c-2.678-3.157-7.41-3.547-10.571-0.866l-84.381,71.59l-98.444-87.158h208.965
33
- V234.967z M185.878,179.888c0.535-0.535,0.969-1.131,1.308-1.765l28.051,24.835c1.418,1.255,3.194,1.885,4.972,1.885
34
- c1.726,0,3.451-0.593,4.853-1.781l28.587-24.254c0.26,0.38,0.553,0.743,0.89,1.08l65.687,65.687H120.191L185.878,179.888z"/>
35
- <path d="M7.5,170.676h126.667c4.143,0,7.5-3.357,7.5-7.5s-3.357-7.5-7.5-7.5H7.5c-4.143,0-7.5,3.357-7.5,7.5
36
- S3.357,170.676,7.5,170.676z"/>
37
- <path d="M20.625,129.345H77.5c4.143,0,7.5-3.357,7.5-7.5s-3.357-7.5-7.5-7.5H20.625c-4.143,0-7.5,3.357-7.5,7.5
38
- S16.482,129.345,20.625,129.345z"/>
39
- <path d="M62.5,226.51h-55c-4.143,0-7.5,3.357-7.5,7.5s3.357,7.5,7.5,7.5h55c4.143,0,7.5-3.357,7.5-7.5S66.643,226.51,62.5,226.51z"
40
- />
41
- </g>
42
- </svg>
1
+ <?xml version="1.0" ?>
2
+
3
+ <svg width="800px" height="800px" viewBox="0 0 512 512" id="Layer_1" version="1.1" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
4
+
5
+ .st0{fill:#00B4D8;}
6
+ </style>
7
+
8
+
9
+
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+
18
+
19
+
20
+
21
+
22
+
23
+
24
+
25
+
26
+
27
+
28
+
29
+
30
+
31
+
32
+
33
+
@@ -1,4 +1,5 @@
1
- import { INodeType, INodeTypeDescription } from 'n8n-workflow';
1
+ import { INodeType, INodeTypeDescription, IExecuteFunctions, INodeExecutionData } from 'n8n-workflow';
2
2
  export declare class SendSms implements INodeType {
3
3
  description: INodeTypeDescription;
4
+ execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
4
5
  }