@segment/action-destinations 3.239.5 → 3.240.0-snap-connector

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 (89) hide show
  1. package/dist/destinations/aggregations-io/index.js +17 -7
  2. package/dist/destinations/aggregations-io/index.js.map +1 -1
  3. package/dist/destinations/aggregations-io/types.d.ts +8 -0
  4. package/dist/destinations/aggregations-io/types.js +8 -0
  5. package/dist/destinations/aggregations-io/types.js.map +1 -0
  6. package/dist/destinations/amazon-ads/generated-types.d.ts +3 -0
  7. package/dist/destinations/amazon-ads/generated-types.js.map +1 -0
  8. package/dist/destinations/amazon-ads/index.d.ts +4 -0
  9. package/dist/destinations/amazon-ads/index.js +87 -0
  10. package/dist/destinations/amazon-ads/index.js.map +1 -0
  11. package/dist/destinations/amazon-ads/syncAudiences/generated-types.d.ts +2 -0
  12. package/dist/destinations/amazon-ads/syncAudiences/generated-types.js +3 -0
  13. package/dist/destinations/amazon-ads/syncAudiences/generated-types.js.map +1 -0
  14. package/dist/destinations/{tiktok-offline-conversions/reportOfflineEvent → amazon-ads/syncAudiences}/index.d.ts +1 -1
  15. package/dist/destinations/amazon-ads/syncAudiences/index.js +15 -0
  16. package/dist/destinations/amazon-ads/syncAudiences/index.js.map +1 -0
  17. package/dist/destinations/amazon-ads/types.d.ts +22 -0
  18. package/dist/destinations/amazon-ads/types.js +11 -0
  19. package/dist/destinations/amazon-ads/types.js.map +1 -0
  20. package/dist/destinations/braze/trackEvent/generated-types.d.ts +1 -0
  21. package/dist/destinations/braze/trackEvent/index.js +8 -0
  22. package/dist/destinations/braze/trackEvent/index.js.map +1 -1
  23. package/dist/destinations/braze/trackPurchase/generated-types.d.ts +1 -0
  24. package/dist/destinations/braze/trackPurchase/index.js +8 -0
  25. package/dist/destinations/braze/trackPurchase/index.js.map +1 -1
  26. package/dist/destinations/braze/utils.js +15 -11
  27. package/dist/destinations/braze/utils.js.map +1 -1
  28. package/dist/destinations/criteo-audiences/criteo-audiences.js +11 -6
  29. package/dist/destinations/criteo-audiences/criteo-audiences.js.map +1 -1
  30. package/dist/destinations/display-video-360/index.js +1 -1
  31. package/dist/destinations/display-video-360/index.js.map +1 -1
  32. package/dist/destinations/engage/sendgrid/sendEmail/SendEmailPerformer.js +3 -1
  33. package/dist/destinations/engage/sendgrid/sendEmail/SendEmailPerformer.js.map +1 -1
  34. package/dist/destinations/engage/twilio/utils/TwilioMessageSender.js +1 -1
  35. package/dist/destinations/engage/twilio/utils/TwilioMessageSender.js.map +1 -1
  36. package/dist/destinations/hubspot/sendCustomBehavioralEvent/index.js +26 -0
  37. package/dist/destinations/hubspot/sendCustomBehavioralEvent/index.js.map +1 -1
  38. package/dist/destinations/hubspot/utils.d.ts +10 -0
  39. package/dist/destinations/index.js +1 -0
  40. package/dist/destinations/index.js.map +1 -1
  41. package/dist/destinations/linkedin-conversions/api/api.test.js +42 -24
  42. package/dist/destinations/linkedin-conversions/api/api.test.js.map +1 -1
  43. package/dist/destinations/linkedin-conversions/api/index.js +6 -10
  44. package/dist/destinations/linkedin-conversions/api/index.js.map +1 -1
  45. package/dist/destinations/linkedin-conversions/types.d.ts +4 -7
  46. package/dist/destinations/snap-conversions-api/_tests_/capiV2tests.d.ts +1 -0
  47. package/dist/destinations/snap-conversions-api/_tests_/capiV2tests.js +381 -0
  48. package/dist/destinations/snap-conversions-api/_tests_/capiV2tests.js.map +1 -0
  49. package/dist/destinations/snap-conversions-api/_tests_/capiV3tests.d.ts +1 -0
  50. package/dist/destinations/snap-conversions-api/_tests_/capiV3tests.js +499 -0
  51. package/dist/destinations/snap-conversions-api/_tests_/capiV3tests.js.map +1 -0
  52. package/dist/destinations/snap-conversions-api/_tests_/index.test.js +4 -352
  53. package/dist/destinations/snap-conversions-api/_tests_/index.test.js.map +1 -1
  54. package/dist/destinations/snap-conversions-api/reportConversionEvent/index.js +24 -20
  55. package/dist/destinations/snap-conversions-api/reportConversionEvent/index.js.map +1 -1
  56. package/dist/destinations/snap-conversions-api/reportConversionEvent/snap-capi-v2.d.ts +4 -0
  57. package/dist/destinations/snap-conversions-api/reportConversionEvent/snap-capi-v2.js +97 -0
  58. package/dist/destinations/snap-conversions-api/reportConversionEvent/snap-capi-v2.js.map +1 -0
  59. package/dist/destinations/snap-conversions-api/reportConversionEvent/snap-capi-v3.d.ts +8 -0
  60. package/dist/destinations/snap-conversions-api/reportConversionEvent/snap-capi-v3.js +125 -0
  61. package/dist/destinations/snap-conversions-api/reportConversionEvent/snap-capi-v3.js.map +1 -0
  62. package/dist/destinations/snap-conversions-api/reportConversionEvent/utils.d.ts +19 -0
  63. package/dist/destinations/snap-conversions-api/reportConversionEvent/utils.js +62 -0
  64. package/dist/destinations/snap-conversions-api/reportConversionEvent/utils.js.map +1 -0
  65. package/dist/destinations/snap-conversions-api/snap-capi-properties.d.ts +0 -5
  66. package/dist/destinations/snap-conversions-api/snap-capi-properties.js +1 -86
  67. package/dist/destinations/snap-conversions-api/snap-capi-properties.js.map +1 -1
  68. package/dist/destinations/tiktok-offline-conversions/common_fields.js +20 -179
  69. package/dist/destinations/tiktok-offline-conversions/common_fields.js.map +1 -1
  70. package/dist/destinations/tiktok-offline-conversions/formatter.d.ts +0 -1
  71. package/dist/destinations/tiktok-offline-conversions/formatter.js +1 -11
  72. package/dist/destinations/tiktok-offline-conversions/formatter.js.map +1 -1
  73. package/dist/destinations/tiktok-offline-conversions/index.js +15 -169
  74. package/dist/destinations/tiktok-offline-conversions/index.js.map +1 -1
  75. package/dist/destinations/tiktok-offline-conversions/trackNonPaymentOfflineConversion/generated-types.d.ts +2 -25
  76. package/dist/destinations/tiktok-offline-conversions/trackNonPaymentOfflineConversion/index.js +29 -4
  77. package/dist/destinations/tiktok-offline-conversions/trackNonPaymentOfflineConversion/index.js.map +1 -1
  78. package/dist/destinations/tiktok-offline-conversions/trackPaymentOfflineConversion/generated-types.d.ts +5 -18
  79. package/dist/destinations/tiktok-offline-conversions/trackPaymentOfflineConversion/index.js +126 -5
  80. package/dist/destinations/tiktok-offline-conversions/trackPaymentOfflineConversion/index.js.map +1 -1
  81. package/package.json +1 -1
  82. package/dist/destinations/tiktok-offline-conversions/reportOfflineEvent/generated-types.d.ts +0 -33
  83. package/dist/destinations/tiktok-offline-conversions/reportOfflineEvent/generated-types.js.map +0 -1
  84. package/dist/destinations/tiktok-offline-conversions/reportOfflineEvent/index.js +0 -16
  85. package/dist/destinations/tiktok-offline-conversions/reportOfflineEvent/index.js.map +0 -1
  86. package/dist/destinations/tiktok-offline-conversions/utils.d.ts +0 -8
  87. package/dist/destinations/tiktok-offline-conversions/utils.js +0 -67
  88. package/dist/destinations/tiktok-offline-conversions/utils.js.map +0 -1
  89. /package/dist/destinations/{tiktok-offline-conversions/reportOfflineEvent → amazon-ads}/generated-types.js +0 -0
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.formatUserIds = exports.formatPhones = exports.formatEmails = void 0;
3
+ exports.formatPhones = exports.formatEmails = void 0;
4
4
  const crypto_1 = require("crypto");
5
5
  const formatEmails = (email_addresses) => {
6
6
  const result = [];
@@ -27,16 +27,6 @@ const formatPhones = (phone_numbers) => {
27
27
  return result;
28
28
  };
29
29
  exports.formatPhones = formatPhones;
30
- function formatUserIds(userIds) {
31
- const result = [];
32
- if (userIds) {
33
- userIds.forEach((userId) => {
34
- result.push(hashAndEncode(userId.toLowerCase()));
35
- });
36
- }
37
- return result;
38
- }
39
- exports.formatUserIds = formatUserIds;
40
30
  function hashAndEncode(property) {
41
31
  return crypto_1.createHash('sha256').update(property).digest('hex');
42
32
  }
@@ -1 +1 @@
1
- {"version":3,"file":"formatter.js","sourceRoot":"","sources":["../../../src/destinations/tiktok-offline-conversions/formatter.ts"],"names":[],"mappings":";;;AAAA,mCAAmC;AAK5B,MAAM,YAAY,GAAG,CAAC,eAAqC,EAAY,EAAE;IAC9E,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,IAAI,eAAe,EAAE;QACnB,eAAe,CAAC,OAAO,CAAC,CAAC,KAAa,EAAE,EAAE;YACxC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;QACjD,CAAC,CAAC,CAAA;KACH;IACD,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AARY,QAAA,YAAY,gBAQxB;AAOM,MAAM,YAAY,GAAG,CAAC,aAAmC,EAAY,EAAE;IAC5E,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,IAAI,CAAC,aAAa;QAAE,OAAO,MAAM,CAAA;IAEjC,aAAa,CAAC,OAAO,CAAC,CAAC,KAAa,EAAE,EAAE;QACtC,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;QAClD,IAAI,cAAc,KAAK,IAAI,EAAE;YAC3B,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,qCAAqC,CAAC,CAAA;SAC/D;QAED,MAAM,cAAc,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE,CAAA;QAEzD,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;IAC7D,CAAC,CAAC,CAAA;IAEF,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAhBY,QAAA,YAAY,gBAgBxB;AAOD,SAAgB,aAAa,CAAC,OAA6B;IACzD,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,IAAI,OAAO,EAAE;QACX,OAAO,CAAC,OAAO,CAAC,CAAC,MAAc,EAAE,EAAE;YACjC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;QAClD,CAAC,CAAC,CAAA;KACH;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AARD,sCAQC;AAED,SAAS,aAAa,CAAC,QAAgB;IACrC,OAAO,mBAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAC5D,CAAC"}
1
+ {"version":3,"file":"formatter.js","sourceRoot":"","sources":["../../../src/destinations/tiktok-offline-conversions/formatter.ts"],"names":[],"mappings":";;;AAAA,mCAAmC;AAK5B,MAAM,YAAY,GAAG,CAAC,eAAqC,EAAY,EAAE;IAC9E,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,IAAI,eAAe,EAAE;QACnB,eAAe,CAAC,OAAO,CAAC,CAAC,KAAa,EAAE,EAAE;YACxC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;QACjD,CAAC,CAAC,CAAA;KACH;IACD,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AARY,QAAA,YAAY,gBAQxB;AAOM,MAAM,YAAY,GAAG,CAAC,aAAmC,EAAY,EAAE;IAC5E,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,IAAI,CAAC,aAAa;QAAE,OAAO,MAAM,CAAA;IAEjC,aAAa,CAAC,OAAO,CAAC,CAAC,KAAa,EAAE,EAAE;QACtC,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;QAClD,IAAI,cAAc,KAAK,IAAI,EAAE;YAC3B,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,qCAAqC,CAAC,CAAA;SAC/D;QAED,MAAM,cAAc,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE,CAAA;QAEzD,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;IAC7D,CAAC,CAAC,CAAA;IAEF,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAhBY,QAAA,YAAY,gBAgBxB;AAED,SAAS,aAAa,CAAC,QAAgB;IACrC,OAAO,mBAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAC5D,CAAC"}
@@ -6,49 +6,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const actions_core_1 = require("@segment/actions-core");
7
7
  const trackPaymentOfflineConversion_1 = __importDefault(require("./trackPaymentOfflineConversion"));
8
8
  const trackNonPaymentOfflineConversion_1 = __importDefault(require("./trackNonPaymentOfflineConversion"));
9
- const reportOfflineEvent_1 = __importDefault(require("./reportOfflineEvent"));
10
- const productProperties = {
11
- price: {
12
- '@path': '$.price'
13
- },
14
- quantity: {
15
- '@path': '$.quantity'
16
- },
17
- content_category: {
18
- '@path': '$.category'
19
- },
20
- content_id: {
21
- '@path': '$.product_id'
22
- },
23
- content_name: {
24
- '@path': '$.name'
25
- },
26
- brand: {
27
- '@path': '$.brand'
28
- }
29
- };
30
- const singleProductContents = {
31
- ...actions_core_1.defaultValues(reportOfflineEvent_1.default.fields),
32
- contents: {
33
- '@arrayPath': [
34
- '$.properties',
35
- {
36
- ...productProperties
37
- }
38
- ]
39
- }
40
- };
41
- const multiProductContents = {
42
- ...actions_core_1.defaultValues(reportOfflineEvent_1.default.fields),
43
- contents: {
44
- '@arrayPath': [
45
- '$.properties.products',
46
- {
47
- ...productProperties
48
- }
49
- ]
50
- }
51
- };
52
9
  const destination = {
53
10
  name: 'TikTok Offline Conversions',
54
11
  slug: 'actions-tiktok-offline-conversions',
@@ -58,14 +15,14 @@ const destination = {
58
15
  fields: {
59
16
  accessToken: {
60
17
  label: 'Access Token',
61
- description: 'Your TikTok Access Token. Please see TikTok’s [Events API 2.0 documentation](https://business-api.tiktok.com/portal/docs?id=1771101130925058) for information on how to generate an access token via the TikTok Ads Manager or API.',
18
+ description: 'Your TikTok Access Token. Please see TikTok’s [Events API documentation](https://ads.tiktok.com/marketing_api/docs?rid=mcxl4tclmfa&id=1758051319816193) for information on how to generate an access token via the TikTok Ads Manager or API.',
62
19
  type: 'string',
63
20
  required: true
64
21
  },
65
22
  eventSetID: {
66
23
  label: 'Event Set ID',
67
24
  type: 'string',
68
- description: 'Your TikTok Offline Event Set ID. Please see TikTok’s [Events API 2.0 documentation](https://business-api.tiktok.com/portal/docs?id=1771101027431425) for information on how to find this value.',
25
+ description: 'Your TikTok Offline Event Set ID. Please see TikTok’s [Events API documentation](https://ads.tiktok.com/marketing_api/docs?rid=mcxl4tclmfa&id=1758051319816193) for information on how to find this value.',
69
26
  required: true
70
27
  }
71
28
  },
@@ -92,159 +49,48 @@ const destination = {
92
49
  presets: [
93
50
  {
94
51
  name: 'Complete Payment',
95
- subscribe: 'event = "Payment Completed"',
96
- partnerAction: 'reportOfflineEvent',
52
+ subscribe: 'type = "track" and event = "Order Completed"',
53
+ partnerAction: 'trackPaymentOfflineConversion',
97
54
  mapping: {
98
- ...multiProductContents,
55
+ ...actions_core_1.defaultValues(trackPaymentOfflineConversion_1.default.fields),
99
56
  event: 'CompletePayment'
100
57
  },
101
58
  type: 'automatic'
102
59
  },
103
60
  {
104
61
  name: 'Contact',
105
- subscribe: 'event = "Callback Started"',
106
- partnerAction: 'reportOfflineEvent',
62
+ subscribe: 'type = "track" and event = "User Contacted Call Center"',
63
+ partnerAction: 'trackNonPaymentOfflineConversion',
107
64
  mapping: {
108
- ...actions_core_1.defaultValues(reportOfflineEvent_1.default.fields),
65
+ ...actions_core_1.defaultValues(trackNonPaymentOfflineConversion_1.default.fields),
109
66
  event: 'Contact'
110
67
  },
111
68
  type: 'automatic'
112
69
  },
113
70
  {
114
71
  name: 'Subscribe',
115
- subscribe: 'event = "Subscription Created"',
116
- partnerAction: 'reportOfflineEvent',
72
+ subscribe: 'type = "track" and event = "User Subscribed In Store"',
73
+ partnerAction: 'trackNonPaymentOfflineConversion',
117
74
  mapping: {
118
- ...actions_core_1.defaultValues(reportOfflineEvent_1.default.fields),
75
+ ...actions_core_1.defaultValues(trackNonPaymentOfflineConversion_1.default.fields),
119
76
  event: 'Subscribe'
120
77
  },
121
78
  type: 'automatic'
122
79
  },
123
80
  {
124
81
  name: 'Submit Form',
125
- subscribe: 'event = "Form Submitted"',
126
- partnerAction: 'reportOfflineEvent',
82
+ subscribe: 'type = "track" and event = "Form Submitted"',
83
+ partnerAction: 'trackNonPaymentOfflineConversion',
127
84
  mapping: {
128
- ...actions_core_1.defaultValues(reportOfflineEvent_1.default.fields),
85
+ ...actions_core_1.defaultValues(trackNonPaymentOfflineConversion_1.default.fields),
129
86
  event: 'SubmitForm'
130
87
  },
131
88
  type: 'automatic'
132
- },
133
- {
134
- name: 'Page View',
135
- subscribe: 'type="page"',
136
- partnerAction: 'reportOfflineEvent',
137
- mapping: {
138
- ...multiProductContents,
139
- event: 'PageView'
140
- },
141
- type: 'automatic'
142
- },
143
- {
144
- name: 'View Content',
145
- subscribe: 'event = "Product Viewed"',
146
- partnerAction: 'reportOfflineEvent',
147
- mapping: {
148
- ...singleProductContents,
149
- event: 'ViewContent'
150
- },
151
- type: 'automatic'
152
- },
153
- {
154
- name: 'Click Button',
155
- subscribe: 'event = "Product Clicked"',
156
- partnerAction: 'reportOfflineEvent',
157
- mapping: {
158
- ...singleProductContents,
159
- event: 'ClickButton'
160
- },
161
- type: 'automatic'
162
- },
163
- {
164
- name: 'Search',
165
- subscribe: 'event = "Products Searched"',
166
- partnerAction: 'reportOfflineEvent',
167
- mapping: {
168
- ...singleProductContents,
169
- event: 'Search'
170
- },
171
- type: 'automatic'
172
- },
173
- {
174
- name: 'Add to Wishlist',
175
- subscribe: 'event = "Product Added to Wishlist"',
176
- partnerAction: 'reportOfflineEvent',
177
- mapping: {
178
- ...singleProductContents,
179
- event: 'AddToWishlist'
180
- },
181
- type: 'automatic'
182
- },
183
- {
184
- name: 'Add to Cart',
185
- subscribe: 'event = "Product Added"',
186
- partnerAction: 'reportOfflineEvent',
187
- mapping: {
188
- ...singleProductContents,
189
- event: 'AddToCart'
190
- },
191
- type: 'automatic'
192
- },
193
- {
194
- name: 'Initiate Checkout',
195
- subscribe: 'event = "Checkout Started"',
196
- partnerAction: 'reportOfflineEvent',
197
- mapping: {
198
- ...multiProductContents,
199
- event: 'InitiateCheckout'
200
- },
201
- type: 'automatic'
202
- },
203
- {
204
- name: 'Add Payment Info',
205
- subscribe: 'event = "Payment Info Entered"',
206
- partnerAction: 'reportOfflineEvent',
207
- mapping: {
208
- ...multiProductContents,
209
- event: 'AddPaymentInfo'
210
- },
211
- type: 'automatic'
212
- },
213
- {
214
- name: 'Place an Order',
215
- subscribe: 'event = "Order Completed"',
216
- partnerAction: 'reportOfflineEvent',
217
- mapping: {
218
- ...multiProductContents,
219
- event: 'PlaceAnOrder'
220
- },
221
- type: 'automatic'
222
- },
223
- {
224
- name: 'Download',
225
- subscribe: 'event = "Download Link Clicked"',
226
- partnerAction: 'reportOfflineEvent',
227
- mapping: {
228
- ...actions_core_1.defaultValues(reportOfflineEvent_1.default.fields),
229
- event: 'Download'
230
- },
231
- type: 'automatic'
232
- },
233
- {
234
- name: 'Complete Registration',
235
- subscribe: 'event = "Signed Up"',
236
- partnerAction: 'reportOfflineEvent',
237
- mapping: {
238
- ...actions_core_1.defaultValues(reportOfflineEvent_1.default.fields),
239
- event: 'CompleteRegistration'
240
- },
241
- type: 'automatic'
242
89
  }
243
90
  ],
244
91
  actions: {
245
92
  trackPaymentOfflineConversion: trackPaymentOfflineConversion_1.default,
246
- trackNonPaymentOfflineConversion: trackNonPaymentOfflineConversion_1.default,
247
- reportOfflineEvent: reportOfflineEvent_1.default
93
+ trackNonPaymentOfflineConversion: trackNonPaymentOfflineConversion_1.default
248
94
  }
249
95
  };
250
96
  exports.default = destination;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destinations/tiktok-offline-conversions/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destinations/tiktok-offline-conversions/index.ts"],"names":[],"mappings":";;;;;AAAA,wDAA4E;AAE5E,oGAA2E;AAC3E,0GAAiF;AAEjF,MAAM,WAAW,GAAoC;IACnD,IAAI,EAAE,4BAA4B;IAClC,IAAI,EAAE,oCAAoC;IAC1C,IAAI,EAAE,OAAO;IAEb,cAAc,EAAE;QACd,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE;YACN,WAAW,EAAE;gBACX,KAAK,EAAE,cAAc;gBACrB,WAAW,EACT,+OAA+O;gBACjP,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI;aACf;YACD,UAAU,EAAE;gBACV,KAAK,EAAE,cAAc;gBACrB,IAAI,EAAE,QAAQ;gBACd,WAAW,EACT,4MAA4M;gBAC9M,QAAQ,EAAE,IAAI;aACf;SACF;QACD,kBAAkB,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;YAC5C,OAAO,OAAO,CAAC,8DAA8D,EAAE;gBAC7E,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE;oBACJ,YAAY,EAAE,QAAQ,CAAC,UAAU;oBACjC,KAAK,EAAE,YAAY;oBACnB,SAAS,EAAE,EAAE;oBACb,OAAO,EAAE,EAAE;iBACZ;aACF,CAAC,CAAA;QACJ,CAAC;KACF;IACD,aAAa,CAAC,EAAE,QAAQ,EAAE;QACxB,OAAO;YACL,OAAO,EAAE;gBACP,cAAc,EAAE,QAAQ,CAAC,WAAW;gBACpC,cAAc,EAAE,kBAAkB;aACnC;SACF,CAAA;IACH,CAAC;IACD,OAAO,EAAE;QACP;YACE,IAAI,EAAE,kBAAkB;YACxB,SAAS,EAAE,8CAA8C;YACzD,aAAa,EAAE,+BAA+B;YAC9C,OAAO,EAAE;gBACP,GAAG,4BAAa,CAAC,uCAA6B,CAAC,MAAM,CAAC;gBACtD,KAAK,EAAE,iBAAiB;aACzB;YACD,IAAI,EAAE,WAAW;SAClB;QACD;YACE,IAAI,EAAE,SAAS;YACf,SAAS,EAAE,yDAAyD;YACpE,aAAa,EAAE,kCAAkC;YACjD,OAAO,EAAE;gBACP,GAAG,4BAAa,CAAC,0CAAgC,CAAC,MAAM,CAAC;gBACzD,KAAK,EAAE,SAAS;aACjB;YACD,IAAI,EAAE,WAAW;SAClB;QACD;YACE,IAAI,EAAE,WAAW;YACjB,SAAS,EAAE,uDAAuD;YAClE,aAAa,EAAE,kCAAkC;YACjD,OAAO,EAAE;gBACP,GAAG,4BAAa,CAAC,0CAAgC,CAAC,MAAM,CAAC;gBACzD,KAAK,EAAE,WAAW;aACnB;YACD,IAAI,EAAE,WAAW;SAClB;QACD;YACE,IAAI,EAAE,aAAa;YACnB,SAAS,EAAE,6CAA6C;YACxD,aAAa,EAAE,kCAAkC;YACjD,OAAO,EAAE;gBACP,GAAG,4BAAa,CAAC,0CAAgC,CAAC,MAAM,CAAC;gBACzD,KAAK,EAAE,YAAY;aACpB;YACD,IAAI,EAAE,WAAW;SAClB;KACF;IACD,OAAO,EAAE;QACP,6BAA6B,EAA7B,uCAA6B;QAC7B,gCAAgC,EAAhC,0CAAgC;KACjC;CACF,CAAA;AAED,kBAAe,WAAW,CAAA"}
@@ -1,33 +1,10 @@
1
1
  export interface Payload {
2
2
  event: string;
3
3
  event_id?: string;
4
- timestamp?: string;
4
+ timestamp: string;
5
5
  phone_numbers?: string[];
6
6
  email_addresses?: string[];
7
7
  order_id?: string;
8
8
  shop_id?: string;
9
- external_ids?: string[];
10
- ttclid?: string;
11
- ttp?: string;
12
- lead_id?: string;
13
- locale?: string;
14
- url?: string;
15
- referrer?: string;
16
- ip?: string;
17
- user_agent?: string;
18
- contents?: {
19
- price?: number;
20
- quantity?: number;
21
- content_category?: string;
22
- content_id?: string;
23
- content_name?: string;
24
- brand?: string;
25
- }[];
26
- content_type?: string;
27
- currency?: string;
28
- value?: number;
29
- description?: string;
30
- query?: string;
31
- limited_data_use?: boolean;
32
- test_event_code?: string;
9
+ event_channel?: string;
33
10
  }
@@ -1,15 +1,40 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ const actions_core_1 = require("@segment/actions-core");
3
4
  const common_fields_1 = require("../common_fields");
4
- const utils_1 = require("../utils");
5
+ const formatter_1 = require("../formatter");
5
6
  const action = {
6
- title: '[Deprecated] Track Non Payment Offline Conversion',
7
- description: "[Deprecated] Send a non payment related event to the TikTok Offline Conversions API. This Action has been Deprecated. Please use the 'Track Payment Offline Conversion' Action instead",
7
+ title: 'Track Non Payment Offline Conversion',
8
+ description: 'Send a non payment related event to the TikTok Offline Conversions API',
8
9
  fields: {
9
10
  ...common_fields_1.commonFields
10
11
  },
11
12
  perform: (request, { payload, settings }) => {
12
- return utils_1.performOfflineEvent(request, settings, payload);
13
+ const phone_numbers = formatter_1.formatPhones(payload.phone_numbers);
14
+ const emails = formatter_1.formatEmails(payload.email_addresses);
15
+ if (phone_numbers.length < 1 && emails.length < 1)
16
+ throw new actions_core_1.PayloadValidationError('TikTok Offline Conversions API requires an email address and/or phone number');
17
+ return request('https://business-api.tiktok.com/open_api/v1.3/offline/track/', {
18
+ method: 'post',
19
+ json: {
20
+ event_set_id: settings.eventSetID,
21
+ event: payload.event,
22
+ event_id: payload.event_id ? `${payload.event_id}` : undefined,
23
+ timestamp: payload.timestamp,
24
+ context: {
25
+ user: {
26
+ phone_numbers,
27
+ emails
28
+ }
29
+ },
30
+ properties: {
31
+ order_id: payload.order_id,
32
+ shop_id: payload.shop_id,
33
+ event_channel: payload.event_channel
34
+ },
35
+ partner_name: 'Segment'
36
+ }
37
+ });
13
38
  }
14
39
  };
15
40
  exports.default = action;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/tiktok-offline-conversions/trackNonPaymentOfflineConversion/index.ts"],"names":[],"mappings":";;AAGA,oDAA+C;AAC/C,oCAA8C;AAE9C,MAAM,MAAM,GAAwC;IAClD,KAAK,EAAE,mDAAmD;IAC1D,WAAW,EACT,wLAAwL;IAC1L,MAAM,EAAE;QACN,GAAG,4BAAY;KAChB;IACD,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC1C,OAAO,2BAAmB,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;IACxD,CAAC;CACF,CAAA;AAED,kBAAe,MAAM,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/tiktok-offline-conversions/trackNonPaymentOfflineConversion/index.ts"],"names":[],"mappings":";;AAAA,wDAAgF;AAGhF,oDAA+C;AAC/C,4CAAyD;AAEzD,MAAM,MAAM,GAAwC;IAClD,KAAK,EAAE,sCAAsC;IAC7C,WAAW,EAAE,wEAAwE;IACrF,MAAM,EAAE;QACN,GAAG,4BAAY;KAChB;IACD,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC1C,MAAM,aAAa,GAAG,wBAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;QACzD,MAAM,MAAM,GAAG,wBAAY,CAAC,OAAO,CAAC,eAAe,CAAC,CAAA;QAEpD,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;YAC/C,MAAM,IAAI,qCAAsB,CAAC,8EAA8E,CAAC,CAAA;QAElH,OAAO,OAAO,CAAC,8DAA8D,EAAE;YAC7E,MAAM,EAAE,MAAM;YACd,IAAI,EAAE;gBACJ,YAAY,EAAE,QAAQ,CAAC,UAAU;gBACjC,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS;gBAC9D,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,OAAO,EAAE;oBACP,IAAI,EAAE;wBACJ,aAAa;wBACb,MAAM;qBACP;iBACF;gBACD,UAAU,EAAE;oBACV,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,aAAa,EAAE,OAAO,CAAC,aAAa;iBACrC;gBACD,YAAY,EAAE,SAAS;aACxB;SACF,CAAC,CAAA;IACJ,CAAC;CACF,CAAA;AAED,kBAAe,MAAM,CAAA"}
@@ -6,28 +6,15 @@ export interface Payload {
6
6
  email_addresses?: string[];
7
7
  order_id?: string;
8
8
  shop_id?: string;
9
- external_ids?: string[];
10
- ttclid?: string;
11
- ttp?: string;
12
- lead_id?: string;
13
- locale?: string;
14
- url?: string;
15
- referrer?: string;
16
- ip?: string;
17
- user_agent?: string;
9
+ event_channel?: string;
18
10
  contents?: {
19
11
  price?: number;
20
12
  quantity?: number;
21
- content_category?: string;
13
+ content_type?: string;
22
14
  content_id?: string;
23
15
  content_name?: string;
24
- brand?: string;
16
+ content_category?: string;
25
17
  }[];
26
- content_type?: string;
27
- currency?: string;
28
- value?: number;
29
- description?: string;
30
- query?: string;
31
- limited_data_use?: boolean;
32
- test_event_code?: string;
18
+ currency: string;
19
+ value: number;
33
20
  }
@@ -1,15 +1,136 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ const actions_core_1 = require("@segment/actions-core");
3
4
  const common_fields_1 = require("../common_fields");
4
- const utils_1 = require("../utils");
5
+ const formatter_1 = require("../formatter");
5
6
  const action = {
6
- title: '[Deprecated] Track Payment Offline Conversion',
7
- description: "[Deprecated] Send details of an in-store purchase or console purchase to the Tiktok Offline Events API. This Action has been Deprecated. Please use the 'Track Payment Offline Conversion' Action instead",
7
+ title: 'Track Payment Offline Conversion',
8
+ description: 'Send details of an in-store purchase or console purchase to the Tiktok Offline Events API',
8
9
  fields: {
9
- ...common_fields_1.commonFields
10
+ ...common_fields_1.commonFields,
11
+ timestamp: {
12
+ label: 'Event Timestamp',
13
+ type: 'string',
14
+ description: 'Timestamp that the event took place, in ISO 8601 format. e.g. 2019-06-12T19:11:01.152Z',
15
+ default: {
16
+ '@path': '$.timestamp'
17
+ }
18
+ },
19
+ contents: {
20
+ label: 'Contents',
21
+ type: 'object',
22
+ multiple: true,
23
+ description: 'Array of product or content items for the offline event.',
24
+ properties: {
25
+ price: {
26
+ label: 'Price',
27
+ description: 'Price of the product or content item. Price is a required field for all content items.',
28
+ type: 'number'
29
+ },
30
+ quantity: {
31
+ label: 'Quantity',
32
+ description: 'Quantity of this product ot item in the offline event. Quantity is a required field for all content items.',
33
+ type: 'number'
34
+ },
35
+ content_type: {
36
+ label: 'Content Type',
37
+ description: 'Product type',
38
+ type: 'string'
39
+ },
40
+ content_id: {
41
+ label: 'Content ID',
42
+ description: 'Product or content item identifier. Content ID is a required field for all product or content items.',
43
+ type: 'string'
44
+ },
45
+ content_name: {
46
+ label: 'Content Name',
47
+ description: 'Name of the product or content item.',
48
+ type: 'string'
49
+ },
50
+ content_category: {
51
+ label: 'Content Category',
52
+ description: 'Category of the product or content item.',
53
+ type: 'string'
54
+ }
55
+ },
56
+ default: {
57
+ '@arrayPath': [
58
+ '$.properties.products',
59
+ {
60
+ price: {
61
+ '@path': 'price'
62
+ },
63
+ quantity: {
64
+ '@path': 'quantity'
65
+ },
66
+ content_type: {
67
+ '@path': 'type'
68
+ },
69
+ content_id: {
70
+ '@path': 'product_id'
71
+ },
72
+ content_name: {
73
+ '@path': 'name'
74
+ },
75
+ content_category: {
76
+ '@path': 'category'
77
+ }
78
+ }
79
+ ]
80
+ }
81
+ },
82
+ currency: {
83
+ label: 'Currency',
84
+ type: 'string',
85
+ required: true,
86
+ description: 'ISO 4217 code. Required for revenue reporting. Example: "USD".List of currencies currently supported: AED, ARS, AUD, BDT, BHD, BIF, BOB, BRL, CAD, CHF, CLP, CNY, COP, CRC, CZK, DKK, DZD, EGP, EUR, GBP, GTQ, HKD, HNL, HUF, IDR, ILS, INR, ISK, JPY, KES, KHR, KRW, KWD, KZT, MAD, MOP, MXN, MYR, NGN, NIO, NOK, NZD, OMR, PEN, PHP, PHP, PKR, PLN, PYG, QAR, RON, RUB, SAR, SEK, SGD, THB, TRY, TWD, UAH, USD, VES, VND, ZAR.',
87
+ default: {
88
+ '@path': '$.properties.currency'
89
+ }
90
+ },
91
+ value: {
92
+ label: 'Value',
93
+ type: 'number',
94
+ required: true,
95
+ description: 'Revenue of total products or content items. Required for revenue reporting. Must be a number. e.g. 101.99 and not "101.99 USD"',
96
+ default: {
97
+ '@if': {
98
+ exists: { '@path': '$.properties.value' },
99
+ then: { '@path': '$.properties.value' },
100
+ else: { '@path': '$.properties.revenue' }
101
+ }
102
+ }
103
+ }
10
104
  },
11
105
  perform: (request, { payload, settings }) => {
12
- return utils_1.performOfflineEvent(request, settings, payload);
106
+ const phone_numbers = formatter_1.formatPhones(payload.phone_numbers);
107
+ const emails = formatter_1.formatEmails(payload.email_addresses);
108
+ if (phone_numbers.length < 1 && emails.length < 1)
109
+ throw new actions_core_1.PayloadValidationError('TikTok Offline Conversions API requires an email address and/or phone number');
110
+ return request('https://business-api.tiktok.com/open_api/v1.3/offline/track/', {
111
+ method: 'post',
112
+ json: {
113
+ event_set_id: settings.eventSetID,
114
+ event: payload.event,
115
+ event_id: payload.event_id ? `${payload.event_id}` : undefined,
116
+ timestamp: payload.timestamp,
117
+ context: {
118
+ user: {
119
+ phone_numbers,
120
+ emails
121
+ }
122
+ },
123
+ properties: {
124
+ order_id: payload.order_id,
125
+ shop_id: payload.shop_id,
126
+ contents: payload.contents,
127
+ currency: payload.currency,
128
+ value: payload.value,
129
+ event_channel: payload.event_channel
130
+ },
131
+ partner_name: 'Segment'
132
+ }
133
+ });
13
134
  }
14
135
  };
15
136
  exports.default = action;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/tiktok-offline-conversions/trackPaymentOfflineConversion/index.ts"],"names":[],"mappings":";;AAGA,oDAA+C;AAC/C,oCAA8C;AAE9C,MAAM,MAAM,GAAwC;IAClD,KAAK,EAAE,+CAA+C;IACtD,WAAW,EACT,2MAA2M;IAC7M,MAAM,EAAE;QACN,GAAG,4BAAY;KAChB;IACD,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC1C,OAAO,2BAAmB,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;IACxD,CAAC;CACF,CAAA;AAED,kBAAe,MAAM,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/tiktok-offline-conversions/trackPaymentOfflineConversion/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@segment/action-destinations",
3
3
  "description": "Destination Actions engine and definitions.",
4
- "version": "3.239.5",
4
+ "version": "3.240.0-snap-connector",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/segmentio/action-destinations",
@@ -1,33 +0,0 @@
1
- export interface Payload {
2
- event: string;
3
- event_id?: string;
4
- timestamp?: string;
5
- phone_numbers?: string[];
6
- email_addresses?: string[];
7
- order_id?: string;
8
- shop_id?: string;
9
- external_ids?: string[];
10
- ttclid?: string;
11
- ttp?: string;
12
- lead_id?: string;
13
- locale?: string;
14
- url?: string;
15
- referrer?: string;
16
- ip?: string;
17
- user_agent?: string;
18
- contents?: {
19
- price?: number;
20
- quantity?: number;
21
- content_category?: string;
22
- content_id?: string;
23
- content_name?: string;
24
- brand?: string;
25
- }[];
26
- content_type?: string;
27
- currency?: string;
28
- value?: number;
29
- description?: string;
30
- query?: string;
31
- limited_data_use?: boolean;
32
- test_event_code?: string;
33
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"generated-types.js","sourceRoot":"","sources":["../../../../src/destinations/tiktok-offline-conversions/reportOfflineEvent/generated-types.ts"],"names":[],"mappings":""}
@@ -1,16 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const common_fields_1 = require("../common_fields");
4
- const utils_1 = require("../utils");
5
- const action = {
6
- title: 'Track Payment Offline Conversion',
7
- description: 'Send details of an in-store purchase or console purchase to the Tiktok Offline Events API',
8
- fields: {
9
- ...common_fields_1.commonFields
10
- },
11
- perform: (request, { payload, settings }) => {
12
- return utils_1.performOfflineEvent(request, settings, payload);
13
- }
14
- };
15
- exports.default = action;
16
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/tiktok-offline-conversions/reportOfflineEvent/index.ts"],"names":[],"mappings":";;AAGA,oDAA+C;AAC/C,oCAA8C;AAE9C,MAAM,MAAM,GAAwC;IAClD,KAAK,EAAE,kCAAkC;IACzC,WAAW,EAAE,2FAA2F;IACxG,MAAM,EAAE;QACN,GAAG,4BAAY;KAChB;IACD,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC1C,OAAO,2BAAmB,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;IACxD,CAAC;CACF,CAAA;AAED,kBAAe,MAAM,CAAA"}
@@ -1,8 +0,0 @@
1
- import { RequestClient } from '@segment/actions-core';
2
- import { Settings } from './generated-types';
3
- import { Payload as ReportOfflineEventPayload } from './reportOfflineEvent/generated-types';
4
- import { Payload as TrackNonPaymentOfflineConversionPayload } from './trackNonPaymentOfflineConversion/generated-types';
5
- import { Payload as TrackPaymentOfflineConversionPayload } from './trackPaymentOfflineConversion/generated-types';
6
- declare type OfflineEventPayload = ReportOfflineEventPayload | TrackNonPaymentOfflineConversionPayload | TrackPaymentOfflineConversionPayload;
7
- export declare function performOfflineEvent(request: RequestClient, settings: Settings, payload: OfflineEventPayload): Promise<import("@segment/actions-core").ModifiedResponse<unknown>>;
8
- export {};