n8n-nodes-meta-dataset-standalone 0.0.1
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/LICENSE.md +19 -0
- package/README.md +38 -0
- package/dist/nodes/FacebookConversionsApi/FacebookConversionsApi.node.d.ts +5 -0
- package/dist/nodes/FacebookConversionsApi/FacebookConversionsApi.node.js +685 -0
- package/dist/nodes/FacebookConversionsApi/FacebookConversionsApi.node.js.map +1 -0
- package/dist/nodes/FacebookConversionsApi/facebook.svg +3 -0
- package/index.js +0 -0
- package/package.json +27 -0
package/LICENSE.md
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
Copyright 2022 n8n
|
|
2
|
+
|
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
|
4
|
+
this software and associated documentation files (the "Software"), to deal in
|
|
5
|
+
the Software without restriction, including without limitation the rights to
|
|
6
|
+
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
|
7
|
+
of the Software, and to permit persons to whom the Software is furnished to do
|
|
8
|
+
so, subject to the following conditions:
|
|
9
|
+
|
|
10
|
+
The above copyright notice and this permission notice shall be included in all
|
|
11
|
+
copies or substantial portions of the Software.
|
|
12
|
+
|
|
13
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
14
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
15
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
16
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
17
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
18
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
19
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
📦 n8n-nodes-meta-dataset-noti-vn
|
|
2
|
+
Homepage: https://noti.vn/
|
|
3
|
+
|
|
4
|
+
Đây là một community node tùy chỉnh cho nền tảng n8n
|
|
5
|
+
, cho phép bạn bắn sự kiện (event) lên hệ thống Meta Dataset một cách linh hoạt, an toàn và dễ tích hợp vào các quy trình tự động.
|
|
6
|
+
|
|
7
|
+
✅ Node này yêu cầu xác thực API key trước khi hoạt động
|
|
8
|
+
|
|
9
|
+
🔧 Tính năng
|
|
10
|
+
|
|
11
|
+
📤 Gửi sự kiện tuỳ chỉnh như lead_created, form_submitted, conversion, v.v.
|
|
12
|
+
|
|
13
|
+
🔗 Dễ dàng tích hợp với các node khác trong workflow như: Webhook, Airtable, Telegram, Facebook, Notion,...
|
|
14
|
+
|
|
15
|
+
🧠 Phù hợp cho các hệ thống tracking hành vi, phân tích dữ liệu hoặc gửi tín hiệu về pipeline AI.
|
|
16
|
+
|
|
17
|
+
🚀 Cài đặt
|
|
18
|
+
Qua giao diện n8n (khuyên dùng)
|
|
19
|
+
|
|
20
|
+
Vào Settings → Community Nodes
|
|
21
|
+
|
|
22
|
+
Bấm Install, nhập vào:
|
|
23
|
+
|
|
24
|
+
n8n-nodes-meta-dataset-noti-vn
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
Cài đặt và khởi động lại n8n nếu cần.
|
|
28
|
+
|
|
29
|
+
Cài thủ công
|
|
30
|
+
npm install nn8n-nodes-meta-dataset-noti-vn --prefix ~/.n8n/nodes
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
Sau đó khởi động lại n8n.
|
|
34
|
+
|
|
35
|
+
📬 Hỗ trợ & liên hệ
|
|
36
|
+
|
|
37
|
+
Website: https://noti.vn
|
|
38
|
+
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { IExecuteFunctions, INodeExecutionData, INodeType, INodeTypeDescription } from 'n8n-workflow';
|
|
2
|
+
export declare class FacebookConversionsApi implements INodeType {
|
|
3
|
+
description: INodeTypeDescription;
|
|
4
|
+
execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
|
|
5
|
+
}
|
|
@@ -0,0 +1,685 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FacebookConversionsApi = void 0;
|
|
4
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
5
|
+
const crypto = require('crypto');
|
|
6
|
+
function hashData(data) {
|
|
7
|
+
if (!data || data === '')
|
|
8
|
+
return null;
|
|
9
|
+
return crypto.createHash('sha256').update(data.toString().toLowerCase().trim()).digest('hex');
|
|
10
|
+
}
|
|
11
|
+
function normalizePhoneNumber(phone) {
|
|
12
|
+
if (!phone)
|
|
13
|
+
return null;
|
|
14
|
+
const cleaned = phone.replace(/[^\d+]/g, '');
|
|
15
|
+
return cleaned.startsWith('+') ? cleaned : '+' + cleaned;
|
|
16
|
+
}
|
|
17
|
+
class FacebookConversionsApi {
|
|
18
|
+
constructor() {
|
|
19
|
+
this.description = {
|
|
20
|
+
displayName: 'Meta Dataset - noti.vn',
|
|
21
|
+
name: 'metaDatasetNotivn',
|
|
22
|
+
icon: 'file:facebook.svg',
|
|
23
|
+
group: ['transform'],
|
|
24
|
+
version: 1,
|
|
25
|
+
subtitle: '={{$parameter["operation"]}}',
|
|
26
|
+
description: 'Send events to Facebook Conversions API (standalone, no noti.vn license check)',
|
|
27
|
+
defaults: {
|
|
28
|
+
name: 'Meta Dataset - noti.vn',
|
|
29
|
+
},
|
|
30
|
+
inputs: ["main"],
|
|
31
|
+
outputs: ["main"],
|
|
32
|
+
properties: [
|
|
33
|
+
{
|
|
34
|
+
displayName: 'Dataset ID',
|
|
35
|
+
name: 'pixelId',
|
|
36
|
+
type: 'string',
|
|
37
|
+
required: true,
|
|
38
|
+
default: '',
|
|
39
|
+
placeholder: '1234567890123456',
|
|
40
|
+
description: 'Facebook Dataset ID from your Events Manager',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
displayName: 'Access Token',
|
|
44
|
+
name: 'accessToken',
|
|
45
|
+
type: 'string',
|
|
46
|
+
typeOptions: {
|
|
47
|
+
password: true,
|
|
48
|
+
},
|
|
49
|
+
required: true,
|
|
50
|
+
default: '',
|
|
51
|
+
placeholder: 'Enter your Facebook API Access Token',
|
|
52
|
+
description: 'Facebook API Access Token with ads_management permissions',
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
displayName: 'Operation',
|
|
56
|
+
name: 'operation',
|
|
57
|
+
type: 'options',
|
|
58
|
+
noDataExpression: true,
|
|
59
|
+
options: [
|
|
60
|
+
{
|
|
61
|
+
name: 'Send Event',
|
|
62
|
+
value: 'sendEvent',
|
|
63
|
+
description: 'Send a conversion event to Facebook',
|
|
64
|
+
action: 'Send an event',
|
|
65
|
+
},
|
|
66
|
+
],
|
|
67
|
+
default: 'sendEvent',
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
displayName: 'Event Name',
|
|
71
|
+
name: 'eventName',
|
|
72
|
+
type: 'options',
|
|
73
|
+
displayOptions: {
|
|
74
|
+
show: {
|
|
75
|
+
operation: ['sendEvent'],
|
|
76
|
+
},
|
|
77
|
+
},
|
|
78
|
+
options: [
|
|
79
|
+
{ name: 'Purchase', value: 'Purchase' },
|
|
80
|
+
{ name: 'Add Payment Info', value: 'AddPaymentInfo' },
|
|
81
|
+
{ name: 'Add to Cart', value: 'AddToCart' },
|
|
82
|
+
{ name: 'Add to Wishlist', value: 'AddToWishlist' },
|
|
83
|
+
{ name: 'Complete Registration', value: 'CompleteRegistration' },
|
|
84
|
+
{ name: 'Contact', value: 'Contact' },
|
|
85
|
+
{ name: 'Customize Product', value: 'CustomizeProduct' },
|
|
86
|
+
{ name: 'Donate', value: 'Donate' },
|
|
87
|
+
{ name: 'Find Location', value: 'FindLocation' },
|
|
88
|
+
{ name: 'Initiate Checkout', value: 'InitiateCheckout' },
|
|
89
|
+
{ name: 'Lead', value: 'Lead' },
|
|
90
|
+
{ name: 'Schedule', value: 'Schedule' },
|
|
91
|
+
{ name: 'Search', value: 'Search' },
|
|
92
|
+
{ name: 'Start Trial', value: 'StartTrial' },
|
|
93
|
+
{ name: 'Submit Application', value: 'SubmitApplication' },
|
|
94
|
+
{ name: 'Subscribe', value: 'Subscribe' },
|
|
95
|
+
{ name: 'View Content', value: 'ViewContent' },
|
|
96
|
+
{ name: 'LeadSubmitted', value: 'LeadSubmitted' },
|
|
97
|
+
{ name: 'OrderCreated', value: 'OrderCreated' },
|
|
98
|
+
{ name: 'OrderShipped', value: 'OrderShipped' },
|
|
99
|
+
{ name: 'OrderDelivered', value: 'OrderDelivered' },
|
|
100
|
+
{ name: 'OrderCanceled', value: 'OrderCanceled' },
|
|
101
|
+
{ name: 'OrderReturned', value: 'OrderReturned' },
|
|
102
|
+
{ name: 'CartAbandoned', value: 'CartAbandoned' },
|
|
103
|
+
{ name: 'QualifiedLead', value: 'QualifiedLead' },
|
|
104
|
+
{ name: 'RatingProvided', value: 'RatingProvided' },
|
|
105
|
+
{ name: 'ReviewProvided', value: 'ReviewProvided' },
|
|
106
|
+
{ name: 'Custom Event', value: 'custom' },
|
|
107
|
+
],
|
|
108
|
+
default: 'Purchase',
|
|
109
|
+
description: 'Chú ý sự kiện của Website và Business Messaging khác nhau, kiểm tra thật kỹ trước khi sử dụng.Sự kiện của Business Messaging vui lòng xem tại đây: https://developers.facebook.com/docs/marketing-api/conversions-api/business-messaging',
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
displayName: 'Custom Event Name',
|
|
113
|
+
name: 'customEventName',
|
|
114
|
+
type: 'string',
|
|
115
|
+
displayOptions: {
|
|
116
|
+
show: {
|
|
117
|
+
operation: ['sendEvent'],
|
|
118
|
+
eventName: ['custom'],
|
|
119
|
+
},
|
|
120
|
+
},
|
|
121
|
+
default: '',
|
|
122
|
+
placeholder: 'e.g., CustomPurchase',
|
|
123
|
+
description: 'Name for custom event',
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
displayName: 'Action Source',
|
|
127
|
+
name: 'actionSource',
|
|
128
|
+
type: 'options',
|
|
129
|
+
displayOptions: {
|
|
130
|
+
show: {
|
|
131
|
+
operation: ['sendEvent'],
|
|
132
|
+
},
|
|
133
|
+
},
|
|
134
|
+
options: [
|
|
135
|
+
{ name: 'Website', value: 'website' },
|
|
136
|
+
{ name: 'Email', value: 'email' },
|
|
137
|
+
{ name: 'App', value: 'app' },
|
|
138
|
+
{ name: 'Phone Call', value: 'phone_call' },
|
|
139
|
+
{ name: 'Chat', value: 'chat' },
|
|
140
|
+
{ name: 'Physical Store', value: 'physical_store' },
|
|
141
|
+
{ name: 'System Generated', value: 'system_generated' },
|
|
142
|
+
{ name: 'Business Messaging', value: 'business_messaging' },
|
|
143
|
+
{ name: 'Other', value: 'other' },
|
|
144
|
+
],
|
|
145
|
+
default: 'website',
|
|
146
|
+
description: 'Where the conversion event occurred',
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
displayName: 'Messaging Channel',
|
|
150
|
+
name: 'messagingChannel',
|
|
151
|
+
type: 'options',
|
|
152
|
+
displayOptions: {
|
|
153
|
+
show: {
|
|
154
|
+
operation: ['sendEvent'],
|
|
155
|
+
actionSource: ['business_messaging'],
|
|
156
|
+
},
|
|
157
|
+
},
|
|
158
|
+
options: [
|
|
159
|
+
{ name: 'Facebook Messenger', value: 'messenger' },
|
|
160
|
+
{ name: 'Instagram Direct', value: 'instagram' },
|
|
161
|
+
{ name: 'WhatsApp', value: 'whatsapp' },
|
|
162
|
+
],
|
|
163
|
+
default: 'messenger',
|
|
164
|
+
description: 'The messaging channel where the conversion occurred',
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
displayName: 'Event Time',
|
|
168
|
+
name: 'eventTime',
|
|
169
|
+
type: 'string',
|
|
170
|
+
displayOptions: {
|
|
171
|
+
show: {
|
|
172
|
+
operation: ['sendEvent'],
|
|
173
|
+
},
|
|
174
|
+
},
|
|
175
|
+
default: '={{Math.floor(Date.now() / 1000)}}',
|
|
176
|
+
description: 'Unix timestamp of the event (defaults to current time)',
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
displayName: 'User Data',
|
|
180
|
+
name: 'userData',
|
|
181
|
+
type: 'collection',
|
|
182
|
+
placeholder: 'Add User Data',
|
|
183
|
+
displayOptions: {
|
|
184
|
+
show: {
|
|
185
|
+
operation: ['sendEvent'],
|
|
186
|
+
},
|
|
187
|
+
},
|
|
188
|
+
default: {},
|
|
189
|
+
options: [
|
|
190
|
+
{
|
|
191
|
+
displayName: 'Email',
|
|
192
|
+
name: 'email',
|
|
193
|
+
type: 'string',
|
|
194
|
+
default: '',
|
|
195
|
+
placeholder: 'user@example.com',
|
|
196
|
+
description: 'User email address (will be automatically hashed)',
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
displayName: 'Phone Number',
|
|
200
|
+
name: 'phoneNumber',
|
|
201
|
+
type: 'string',
|
|
202
|
+
default: '',
|
|
203
|
+
placeholder: '+84901234567',
|
|
204
|
+
description: 'User phone number with country code',
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
displayName: 'First Name',
|
|
208
|
+
name: 'firstName',
|
|
209
|
+
type: 'string',
|
|
210
|
+
default: '',
|
|
211
|
+
description: 'User first name (will be automatically hashed)',
|
|
212
|
+
},
|
|
213
|
+
{
|
|
214
|
+
displayName: 'Last Name',
|
|
215
|
+
name: 'lastName',
|
|
216
|
+
type: 'string',
|
|
217
|
+
default: '',
|
|
218
|
+
description: 'User last name (will be automatically hashed)',
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
displayName: 'Gender',
|
|
222
|
+
name: 'gender',
|
|
223
|
+
type: 'options',
|
|
224
|
+
options: [
|
|
225
|
+
{ name: 'Male', value: 'm' },
|
|
226
|
+
{ name: 'Female', value: 'f' },
|
|
227
|
+
],
|
|
228
|
+
default: '',
|
|
229
|
+
description: 'User gender',
|
|
230
|
+
},
|
|
231
|
+
{
|
|
232
|
+
displayName: 'Date of Birth',
|
|
233
|
+
name: 'dateOfBirth',
|
|
234
|
+
type: 'string',
|
|
235
|
+
default: '',
|
|
236
|
+
placeholder: 'YYYYMMDD',
|
|
237
|
+
description: 'Date of birth in YYYYMMDD format (will be automatically hashed)',
|
|
238
|
+
},
|
|
239
|
+
{
|
|
240
|
+
displayName: 'City',
|
|
241
|
+
name: 'city',
|
|
242
|
+
type: 'string',
|
|
243
|
+
default: '',
|
|
244
|
+
description: 'User city (will be automatically hashed)',
|
|
245
|
+
},
|
|
246
|
+
{
|
|
247
|
+
displayName: 'State',
|
|
248
|
+
name: 'state',
|
|
249
|
+
type: 'string',
|
|
250
|
+
default: '',
|
|
251
|
+
description: 'User state/province (will be automatically hashed)',
|
|
252
|
+
},
|
|
253
|
+
{
|
|
254
|
+
displayName: 'Country',
|
|
255
|
+
name: 'country',
|
|
256
|
+
type: 'string',
|
|
257
|
+
default: '',
|
|
258
|
+
description: 'User country code (will be automatically hashed)',
|
|
259
|
+
},
|
|
260
|
+
{
|
|
261
|
+
displayName: 'Postal Code',
|
|
262
|
+
name: 'postalCode',
|
|
263
|
+
type: 'string',
|
|
264
|
+
default: '',
|
|
265
|
+
description: 'User postal code (will be automatically hashed)',
|
|
266
|
+
},
|
|
267
|
+
{
|
|
268
|
+
displayName: 'External ID',
|
|
269
|
+
name: 'externalId',
|
|
270
|
+
type: 'string',
|
|
271
|
+
default: '',
|
|
272
|
+
description: 'External user ID from your system',
|
|
273
|
+
},
|
|
274
|
+
{
|
|
275
|
+
displayName: 'Client IP Address',
|
|
276
|
+
name: 'clientIpAddress',
|
|
277
|
+
type: 'string',
|
|
278
|
+
default: '',
|
|
279
|
+
description: 'User IP address',
|
|
280
|
+
},
|
|
281
|
+
{
|
|
282
|
+
displayName: 'Client User Agent',
|
|
283
|
+
name: 'clientUserAgent',
|
|
284
|
+
type: 'string',
|
|
285
|
+
default: '',
|
|
286
|
+
description: 'User agent string from browser',
|
|
287
|
+
},
|
|
288
|
+
{
|
|
289
|
+
displayName: 'FBC (Facebook Click ID)',
|
|
290
|
+
name: 'fbc',
|
|
291
|
+
type: 'string',
|
|
292
|
+
default: '',
|
|
293
|
+
description: 'Facebook click identifier from _fbc cookie',
|
|
294
|
+
},
|
|
295
|
+
{
|
|
296
|
+
displayName: 'FBP (Facebook Browser ID)',
|
|
297
|
+
name: 'fbp',
|
|
298
|
+
type: 'string',
|
|
299
|
+
default: '',
|
|
300
|
+
description: 'Facebook browser identifier from _fbp cookie',
|
|
301
|
+
},
|
|
302
|
+
{
|
|
303
|
+
displayName: 'Page ID',
|
|
304
|
+
name: 'pageId',
|
|
305
|
+
type: 'string',
|
|
306
|
+
default: '',
|
|
307
|
+
description: 'Facebook Page ID where the user interacted',
|
|
308
|
+
},
|
|
309
|
+
{
|
|
310
|
+
displayName: 'Page Scoped User ID',
|
|
311
|
+
name: 'pageScopedUserId',
|
|
312
|
+
type: 'string',
|
|
313
|
+
default: '',
|
|
314
|
+
description: 'Page-scoped user ID from Facebook Messenger/Instagram',
|
|
315
|
+
},
|
|
316
|
+
],
|
|
317
|
+
},
|
|
318
|
+
{
|
|
319
|
+
displayName: 'Custom Data',
|
|
320
|
+
name: 'customData',
|
|
321
|
+
type: 'collection',
|
|
322
|
+
placeholder: 'Add Custom Data',
|
|
323
|
+
displayOptions: {
|
|
324
|
+
show: {
|
|
325
|
+
operation: ['sendEvent'],
|
|
326
|
+
},
|
|
327
|
+
},
|
|
328
|
+
default: {},
|
|
329
|
+
options: [
|
|
330
|
+
{
|
|
331
|
+
displayName: 'Value',
|
|
332
|
+
name: 'value',
|
|
333
|
+
type: 'number',
|
|
334
|
+
default: 0,
|
|
335
|
+
description: 'Value of the conversion event',
|
|
336
|
+
},
|
|
337
|
+
{
|
|
338
|
+
displayName: 'Currency',
|
|
339
|
+
name: 'currency',
|
|
340
|
+
type: 'string',
|
|
341
|
+
default: 'VND',
|
|
342
|
+
placeholder: 'USD, EUR, VND',
|
|
343
|
+
description: 'Currency code for the value',
|
|
344
|
+
},
|
|
345
|
+
{
|
|
346
|
+
displayName: 'Content Type',
|
|
347
|
+
name: 'contentType',
|
|
348
|
+
type: 'options',
|
|
349
|
+
options: [
|
|
350
|
+
{ name: 'Product', value: 'product' },
|
|
351
|
+
{ name: 'Product Group', value: 'product_group' },
|
|
352
|
+
],
|
|
353
|
+
default: 'product',
|
|
354
|
+
description: 'Type of content',
|
|
355
|
+
},
|
|
356
|
+
{
|
|
357
|
+
displayName: 'Content IDs',
|
|
358
|
+
name: 'contentIds',
|
|
359
|
+
type: 'string',
|
|
360
|
+
default: '',
|
|
361
|
+
placeholder: 'product1,product2,product3',
|
|
362
|
+
description: 'Comma-separated list of content/product IDs',
|
|
363
|
+
},
|
|
364
|
+
{
|
|
365
|
+
displayName: 'Content Name',
|
|
366
|
+
name: 'contentName',
|
|
367
|
+
type: 'string',
|
|
368
|
+
default: '',
|
|
369
|
+
description: 'Name of the product or content',
|
|
370
|
+
},
|
|
371
|
+
{
|
|
372
|
+
displayName: 'Content Category',
|
|
373
|
+
name: 'contentCategory',
|
|
374
|
+
type: 'string',
|
|
375
|
+
default: '',
|
|
376
|
+
description: 'Category of the content',
|
|
377
|
+
},
|
|
378
|
+
{
|
|
379
|
+
displayName: 'Num Items',
|
|
380
|
+
name: 'numItems',
|
|
381
|
+
type: 'number',
|
|
382
|
+
default: 1,
|
|
383
|
+
description: 'Number of items',
|
|
384
|
+
},
|
|
385
|
+
{
|
|
386
|
+
displayName: 'Order ID',
|
|
387
|
+
name: 'orderId',
|
|
388
|
+
type: 'string',
|
|
389
|
+
default: '',
|
|
390
|
+
description: 'Unique order identifier',
|
|
391
|
+
},
|
|
392
|
+
{
|
|
393
|
+
displayName: 'Search String',
|
|
394
|
+
name: 'searchString',
|
|
395
|
+
type: 'string',
|
|
396
|
+
default: '',
|
|
397
|
+
description: 'Search query string',
|
|
398
|
+
},
|
|
399
|
+
{
|
|
400
|
+
displayName: 'Status',
|
|
401
|
+
name: 'status',
|
|
402
|
+
type: 'string',
|
|
403
|
+
default: '',
|
|
404
|
+
description: 'Status of the registration event',
|
|
405
|
+
},
|
|
406
|
+
],
|
|
407
|
+
},
|
|
408
|
+
{
|
|
409
|
+
displayName: 'Attribution Data',
|
|
410
|
+
name: 'attributionData',
|
|
411
|
+
type: 'collection',
|
|
412
|
+
placeholder: 'Add Attribution Data',
|
|
413
|
+
displayOptions: {
|
|
414
|
+
show: {
|
|
415
|
+
operation: ['sendEvent'],
|
|
416
|
+
},
|
|
417
|
+
},
|
|
418
|
+
default: {},
|
|
419
|
+
options: [
|
|
420
|
+
{
|
|
421
|
+
displayName: 'Campaign ID',
|
|
422
|
+
name: 'campaignId',
|
|
423
|
+
type: 'string',
|
|
424
|
+
default: '',
|
|
425
|
+
description: 'Facebook campaign ID',
|
|
426
|
+
},
|
|
427
|
+
{
|
|
428
|
+
displayName: 'Ad Set ID',
|
|
429
|
+
name: 'adsetId',
|
|
430
|
+
type: 'string',
|
|
431
|
+
default: '',
|
|
432
|
+
description: 'Facebook ad set ID',
|
|
433
|
+
},
|
|
434
|
+
{
|
|
435
|
+
displayName: 'Ad ID',
|
|
436
|
+
name: 'adId',
|
|
437
|
+
type: 'string',
|
|
438
|
+
default: '',
|
|
439
|
+
description: 'Facebook ad ID',
|
|
440
|
+
},
|
|
441
|
+
{
|
|
442
|
+
displayName: 'Attribution Share',
|
|
443
|
+
name: 'attribution_share',
|
|
444
|
+
type: 'number',
|
|
445
|
+
typeOptions: {
|
|
446
|
+
minValue: 0,
|
|
447
|
+
maxValue: 1,
|
|
448
|
+
},
|
|
449
|
+
default: 0,
|
|
450
|
+
description: 'Float value from 0 to 1',
|
|
451
|
+
placeholder: 'e.g. 0.25',
|
|
452
|
+
},
|
|
453
|
+
],
|
|
454
|
+
},
|
|
455
|
+
{
|
|
456
|
+
displayName: 'Advanced Options',
|
|
457
|
+
name: 'advancedOptions',
|
|
458
|
+
type: 'collection',
|
|
459
|
+
placeholder: 'Add Advanced Option',
|
|
460
|
+
displayOptions: {
|
|
461
|
+
show: {
|
|
462
|
+
operation: ['sendEvent'],
|
|
463
|
+
},
|
|
464
|
+
},
|
|
465
|
+
default: {},
|
|
466
|
+
options: [
|
|
467
|
+
{
|
|
468
|
+
displayName: 'Test Event Code',
|
|
469
|
+
name: 'testEventCode',
|
|
470
|
+
type: 'string',
|
|
471
|
+
default: '',
|
|
472
|
+
description: 'Test event code for debugging (optional)',
|
|
473
|
+
},
|
|
474
|
+
{
|
|
475
|
+
displayName: 'Event Source URL',
|
|
476
|
+
name: 'eventSourceUrl',
|
|
477
|
+
type: 'string',
|
|
478
|
+
default: '',
|
|
479
|
+
description: 'URL where the event occurred',
|
|
480
|
+
},
|
|
481
|
+
{
|
|
482
|
+
displayName: 'Opt Out',
|
|
483
|
+
name: 'optOut',
|
|
484
|
+
type: 'boolean',
|
|
485
|
+
default: false,
|
|
486
|
+
description: 'Whether the user has opted out of tracking',
|
|
487
|
+
},
|
|
488
|
+
],
|
|
489
|
+
},
|
|
490
|
+
],
|
|
491
|
+
};
|
|
492
|
+
}
|
|
493
|
+
async execute() {
|
|
494
|
+
var _b, _c;
|
|
495
|
+
const items = this.getInputData();
|
|
496
|
+
const returnData = [];
|
|
497
|
+
for (let i = 0; i < items.length; i++) {
|
|
498
|
+
try {
|
|
499
|
+
const operation = this.getNodeParameter('operation', i);
|
|
500
|
+
if (operation === 'sendEvent') {
|
|
501
|
+
const pixelId = this.getNodeParameter('pixelId', i);
|
|
502
|
+
const accessToken = this.getNodeParameter('accessToken', i);
|
|
503
|
+
if (!pixelId || !accessToken) {
|
|
504
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Pixel ID and Access Token are required', { itemIndex: i });
|
|
505
|
+
}
|
|
506
|
+
const eventName = this.getNodeParameter('eventName', i);
|
|
507
|
+
const customEventName = this.getNodeParameter('customEventName', i, '');
|
|
508
|
+
const actionSource = this.getNodeParameter('actionSource', i);
|
|
509
|
+
const eventTime = this.getNodeParameter('eventTime', i);
|
|
510
|
+
const userData = this.getNodeParameter('userData', i, {});
|
|
511
|
+
const customData = this.getNodeParameter('customData', i, {});
|
|
512
|
+
const attributionData = this.getNodeParameter('attributionData', i, {});
|
|
513
|
+
const advancedOptions = this.getNodeParameter('advancedOptions', i, {});
|
|
514
|
+
const userDataObj = {};
|
|
515
|
+
if (userData.email) {
|
|
516
|
+
userDataObj.em = [hashData(userData.email)];
|
|
517
|
+
}
|
|
518
|
+
if (userData.phoneNumber) {
|
|
519
|
+
userDataObj.ph = [hashData(normalizePhoneNumber(userData.phoneNumber))];
|
|
520
|
+
}
|
|
521
|
+
if (userData.firstName) {
|
|
522
|
+
userDataObj.fn = [hashData(userData.firstName)];
|
|
523
|
+
}
|
|
524
|
+
if (userData.lastName) {
|
|
525
|
+
userDataObj.ln = [hashData(userData.lastName)];
|
|
526
|
+
}
|
|
527
|
+
if (userData.gender) {
|
|
528
|
+
userDataObj.ge = [hashData(userData.gender)];
|
|
529
|
+
}
|
|
530
|
+
if (userData.dateOfBirth) {
|
|
531
|
+
userDataObj.db = [hashData(userData.dateOfBirth)];
|
|
532
|
+
}
|
|
533
|
+
if (userData.city) {
|
|
534
|
+
userDataObj.ct = [hashData(userData.city)];
|
|
535
|
+
}
|
|
536
|
+
if (userData.state) {
|
|
537
|
+
userDataObj.st = [hashData(userData.state)];
|
|
538
|
+
}
|
|
539
|
+
if (userData.country) {
|
|
540
|
+
userDataObj.country = [hashData(userData.country)];
|
|
541
|
+
}
|
|
542
|
+
if (userData.postalCode) {
|
|
543
|
+
userDataObj.zp = [hashData(userData.postalCode)];
|
|
544
|
+
}
|
|
545
|
+
if (userData.pageId) {
|
|
546
|
+
userDataObj.page_id = userData.pageId;
|
|
547
|
+
}
|
|
548
|
+
if (userData.pageScopedUserId) {
|
|
549
|
+
userDataObj.page_scoped_user_id = userData.pageScopedUserId;
|
|
550
|
+
}
|
|
551
|
+
if (userData.externalId) {
|
|
552
|
+
userDataObj.external_id = [userData.externalId];
|
|
553
|
+
}
|
|
554
|
+
if (userData.clientIpAddress) {
|
|
555
|
+
userDataObj.client_ip_address = userData.clientIpAddress;
|
|
556
|
+
}
|
|
557
|
+
if (userData.clientUserAgent) {
|
|
558
|
+
userDataObj.client_user_agent = userData.clientUserAgent;
|
|
559
|
+
}
|
|
560
|
+
if (userData.fbc) {
|
|
561
|
+
userDataObj.fbc = userData.fbc;
|
|
562
|
+
}
|
|
563
|
+
if (userData.fbp) {
|
|
564
|
+
userDataObj.fbp = userData.fbp;
|
|
565
|
+
}
|
|
566
|
+
const customDataObj = {};
|
|
567
|
+
if (customData.value !== undefined && customData.value !== null) {
|
|
568
|
+
customDataObj.value = customData.value;
|
|
569
|
+
}
|
|
570
|
+
if (customData.currency) {
|
|
571
|
+
customDataObj.currency = customData.currency;
|
|
572
|
+
}
|
|
573
|
+
if (customData.contentType) {
|
|
574
|
+
customDataObj.content_type = customData.contentType;
|
|
575
|
+
}
|
|
576
|
+
if (customData.contentIds) {
|
|
577
|
+
customDataObj.content_ids = customData.contentIds
|
|
578
|
+
.split(',')
|
|
579
|
+
.map((id) => id.trim());
|
|
580
|
+
}
|
|
581
|
+
if (customData.contentName) {
|
|
582
|
+
customDataObj.content_name = customData.contentName;
|
|
583
|
+
}
|
|
584
|
+
if (customData.contentCategory) {
|
|
585
|
+
customDataObj.content_category = customData.contentCategory;
|
|
586
|
+
}
|
|
587
|
+
if (customData.numItems) {
|
|
588
|
+
customDataObj.num_items = customData.numItems;
|
|
589
|
+
}
|
|
590
|
+
if (customData.orderId) {
|
|
591
|
+
customDataObj.order_id = customData.orderId;
|
|
592
|
+
}
|
|
593
|
+
if (customData.searchString) {
|
|
594
|
+
customDataObj.search_string = customData.searchString;
|
|
595
|
+
}
|
|
596
|
+
if (customData.status) {
|
|
597
|
+
customDataObj.status = customData.status;
|
|
598
|
+
}
|
|
599
|
+
const attributionDataObj = {};
|
|
600
|
+
if (attributionData.campaignId) {
|
|
601
|
+
attributionDataObj.campaign_id = attributionData.campaignId;
|
|
602
|
+
}
|
|
603
|
+
if (attributionData.adsetId) {
|
|
604
|
+
attributionDataObj.adset_id = attributionData.adsetId;
|
|
605
|
+
}
|
|
606
|
+
if (attributionData.adId) {
|
|
607
|
+
attributionDataObj.ad_id = attributionData.adId;
|
|
608
|
+
}
|
|
609
|
+
if (attributionData.attribution_share) {
|
|
610
|
+
attributionDataObj.attribution_share = attributionData.attribution_share;
|
|
611
|
+
}
|
|
612
|
+
const eventData = {
|
|
613
|
+
event_name: eventName === 'custom' ? customEventName : eventName,
|
|
614
|
+
event_time: parseInt(eventTime, 10),
|
|
615
|
+
action_source: actionSource,
|
|
616
|
+
user_data: userDataObj,
|
|
617
|
+
};
|
|
618
|
+
if (Object.keys(customDataObj).length > 0) {
|
|
619
|
+
eventData.custom_data = customDataObj;
|
|
620
|
+
}
|
|
621
|
+
if (Object.keys(attributionDataObj).length > 0) {
|
|
622
|
+
eventData.attribution_data = attributionDataObj;
|
|
623
|
+
}
|
|
624
|
+
if (actionSource === 'business_messaging') {
|
|
625
|
+
const messagingChannel = this.getNodeParameter('messagingChannel', i);
|
|
626
|
+
eventData.messaging_channel = messagingChannel;
|
|
627
|
+
}
|
|
628
|
+
if (advancedOptions.eventSourceUrl) {
|
|
629
|
+
eventData.event_source_url = advancedOptions.eventSourceUrl;
|
|
630
|
+
}
|
|
631
|
+
if (advancedOptions.optOut) {
|
|
632
|
+
eventData.opt_out = advancedOptions.optOut;
|
|
633
|
+
}
|
|
634
|
+
const payload = {
|
|
635
|
+
data: [eventData],
|
|
636
|
+
partner_agent: 'noti.vn',
|
|
637
|
+
};
|
|
638
|
+
if (advancedOptions.testEventCode) {
|
|
639
|
+
payload.test_event_code = advancedOptions.testEventCode;
|
|
640
|
+
}
|
|
641
|
+
const url = `https://graph.facebook.com/v18.0/${pixelId}/events`;
|
|
642
|
+
const response = await this.helpers.request({
|
|
643
|
+
method: 'POST',
|
|
644
|
+
url: url,
|
|
645
|
+
headers: {
|
|
646
|
+
'Content-Type': 'application/json',
|
|
647
|
+
Authorization: `Bearer ${accessToken}`,
|
|
648
|
+
},
|
|
649
|
+
body: payload,
|
|
650
|
+
json: true,
|
|
651
|
+
});
|
|
652
|
+
returnData.push({
|
|
653
|
+
json: {
|
|
654
|
+
success: true,
|
|
655
|
+
eventsSent: response.events_received || 1,
|
|
656
|
+
messagesReceived: response.messages || [],
|
|
657
|
+
fbtrace_id: response.fbtrace_id,
|
|
658
|
+
eventData: eventData,
|
|
659
|
+
response: response,
|
|
660
|
+
},
|
|
661
|
+
});
|
|
662
|
+
}
|
|
663
|
+
}
|
|
664
|
+
catch (error) {
|
|
665
|
+
if (this.continueOnFail()) {
|
|
666
|
+
returnData.push({
|
|
667
|
+
json: {
|
|
668
|
+
success: false,
|
|
669
|
+
error: error.message,
|
|
670
|
+
fbtrace_id: (_c = (_b = error.response) === null || _b === void 0 ? void 0 : _b.body) === null || _c === void 0 ? void 0 : _c.fbtrace_id,
|
|
671
|
+
},
|
|
672
|
+
});
|
|
673
|
+
}
|
|
674
|
+
else {
|
|
675
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), error, {
|
|
676
|
+
itemIndex: i,
|
|
677
|
+
});
|
|
678
|
+
}
|
|
679
|
+
}
|
|
680
|
+
}
|
|
681
|
+
return [returnData];
|
|
682
|
+
}
|
|
683
|
+
}
|
|
684
|
+
exports.FacebookConversionsApi = FacebookConversionsApi;
|
|
685
|
+
//# sourceMappingURL=FacebookConversionsApi.node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FacebookConversionsApi.node.js","sourceRoot":"","sources":["../../../nodes/FacebookConversionsApi/FacebookConversionsApi.node.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24">
|
|
2
|
+
<path fill="#1877F2" d="M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.47h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.47h-2.796v8.385C19.612 23.027 24 18.062 24 12.073z"/>
|
|
3
|
+
</svg>
|
package/index.js
ADDED
|
File without changes
|
package/package.json
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "n8n-nodes-meta-dataset-standalone",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"description": "Standalone fork of n8n-nodes-meta-dataset-noti-vn (MIT) with the noti.vn license-key check removed. Sends events straight to Facebook Conversions API using your own Dataset ID + Access Token.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"n8n-community-node-package",
|
|
7
|
+
"n8n-nodes",
|
|
8
|
+
"n8n",
|
|
9
|
+
"facebook",
|
|
10
|
+
"conversion-api",
|
|
11
|
+
"api"
|
|
12
|
+
],
|
|
13
|
+
"license": "MIT",
|
|
14
|
+
"main": "index.js",
|
|
15
|
+
"files": [
|
|
16
|
+
"dist"
|
|
17
|
+
],
|
|
18
|
+
"n8n": {
|
|
19
|
+
"n8nNodesApiVersion": 1,
|
|
20
|
+
"nodes": [
|
|
21
|
+
"dist/nodes/FacebookConversionsApi/FacebookConversionsApi.node.js"
|
|
22
|
+
]
|
|
23
|
+
},
|
|
24
|
+
"peerDependencies": {
|
|
25
|
+
"n8n-workflow": "*"
|
|
26
|
+
}
|
|
27
|
+
}
|