@segment/action-destinations 3.457.0 → 3.457.1-staging-2bbab8979.0

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 (140) hide show
  1. package/dist/destinations/amazon-amc/constants.d.ts +17 -0
  2. package/dist/destinations/amazon-amc/constants.js +25 -0
  3. package/dist/destinations/amazon-amc/constants.js.map +1 -0
  4. package/dist/destinations/amazon-amc/function.d.ts +4 -2
  5. package/dist/destinations/amazon-amc/function.js +44 -18
  6. package/dist/destinations/amazon-amc/function.js.map +1 -1
  7. package/dist/destinations/amazon-amc/generated-types.d.ts +5 -1
  8. package/dist/destinations/amazon-amc/index.js +89 -34
  9. package/dist/destinations/amazon-amc/index.js.map +1 -1
  10. package/dist/destinations/amazon-amc/syncAudiencesToDSP/index.js +1 -1
  11. package/dist/destinations/amazon-amc/syncAudiencesToDSP/index.js.map +1 -1
  12. package/dist/destinations/amazon-amc/types.d.ts +44 -0
  13. package/dist/destinations/amazon-amc/types.js +4 -1
  14. package/dist/destinations/amazon-amc/types.js.map +1 -1
  15. package/dist/destinations/amazon-amc/utils.d.ts +3 -49
  16. package/dist/destinations/amazon-amc/utils.js +10 -24
  17. package/dist/destinations/amazon-amc/utils.js.map +1 -1
  18. package/dist/destinations/amplitude/event-schema.js +30 -3
  19. package/dist/destinations/amplitude/event-schema.js.map +1 -1
  20. package/dist/destinations/amplitude/logEvent/generated-types.d.ts +4 -0
  21. package/dist/destinations/amplitude/logEvent/index.js +11 -3
  22. package/dist/destinations/amplitude/logEvent/index.js.map +1 -1
  23. package/dist/destinations/amplitude/logEventV2/generated-types.d.ts +4 -0
  24. package/dist/destinations/amplitude/logEventV2/index.js +10 -5
  25. package/dist/destinations/amplitude/logEventV2/index.js.map +1 -1
  26. package/dist/destinations/amplitude/logPurchase/generated-types.d.ts +4 -0
  27. package/dist/destinations/amplitude/logPurchase/index.js +10 -5
  28. package/dist/destinations/amplitude/logPurchase/index.js.map +1 -1
  29. package/dist/destinations/aws-kinesis/utils.js +3 -0
  30. package/dist/destinations/aws-kinesis/utils.js.map +1 -1
  31. package/dist/destinations/braze/ecommerce/constants.d.ts +8 -0
  32. package/dist/destinations/braze/ecommerce/constants.js +12 -0
  33. package/dist/destinations/braze/ecommerce/constants.js.map +1 -0
  34. package/dist/destinations/braze/ecommerce/fields.d.ts +25 -0
  35. package/dist/destinations/braze/ecommerce/fields.js +555 -0
  36. package/dist/destinations/braze/ecommerce/fields.js.map +1 -0
  37. package/dist/destinations/braze/ecommerce/functions.d.ts +10 -0
  38. package/dist/destinations/braze/ecommerce/functions.js +502 -0
  39. package/dist/destinations/braze/ecommerce/functions.js.map +1 -0
  40. package/dist/destinations/braze/ecommerce/generated-types.d.ts +40 -0
  41. package/dist/destinations/braze/ecommerce/generated-types.js +3 -0
  42. package/dist/destinations/braze/ecommerce/generated-types.js.map +1 -0
  43. package/dist/destinations/braze/ecommerce/index.d.ts +5 -0
  44. package/dist/destinations/braze/ecommerce/index.js +20 -0
  45. package/dist/destinations/braze/ecommerce/index.js.map +1 -0
  46. package/dist/destinations/braze/ecommerce/types.d.ts +123 -0
  47. package/dist/destinations/braze/ecommerce/types.js +3 -0
  48. package/dist/destinations/braze/ecommerce/types.js.map +1 -0
  49. package/dist/destinations/braze/ecommerceSingleProduct/generated-types.d.ts +38 -0
  50. package/dist/destinations/braze/ecommerceSingleProduct/generated-types.js +3 -0
  51. package/dist/destinations/braze/ecommerceSingleProduct/generated-types.js.map +1 -0
  52. package/dist/destinations/braze/ecommerceSingleProduct/index.d.ts +5 -0
  53. package/dist/destinations/braze/ecommerceSingleProduct/index.js +20 -0
  54. package/dist/destinations/braze/ecommerceSingleProduct/index.js.map +1 -0
  55. package/dist/destinations/braze/index.js +65 -5
  56. package/dist/destinations/braze/index.js.map +1 -1
  57. package/dist/destinations/customerio/index.js +1 -1
  58. package/dist/destinations/google-enhanced-conversions/functions.js +2 -6
  59. package/dist/destinations/google-enhanced-conversions/functions.js.map +1 -1
  60. package/dist/destinations/google-enhanced-conversions/uploadClickConversion/index.js +1 -1
  61. package/dist/destinations/google-enhanced-conversions/uploadClickConversion/index.js.map +1 -1
  62. package/dist/destinations/google-enhanced-conversions/uploadClickConversion2/index.js +1 -1
  63. package/dist/destinations/google-enhanced-conversions/uploadClickConversion2/index.js.map +1 -1
  64. package/dist/destinations/index.js +1 -0
  65. package/dist/destinations/index.js.map +1 -1
  66. package/dist/destinations/kafka/generated-types.d.ts +0 -3
  67. package/dist/destinations/kafka/index.js +0 -21
  68. package/dist/destinations/kafka/index.js.map +1 -1
  69. package/dist/destinations/kafka/send/generated-types.d.ts +1 -0
  70. package/dist/destinations/kafka/send/index.js +7 -0
  71. package/dist/destinations/kafka/send/index.js.map +1 -1
  72. package/dist/destinations/kafka/utils.js +0 -13
  73. package/dist/destinations/kafka/utils.js.map +1 -1
  74. package/dist/destinations/linkedin-audiences/updateAudience/fields.js.map +1 -1
  75. package/dist/destinations/linkedin-conversions/api/index.js +6 -2
  76. package/dist/destinations/linkedin-conversions/api/index.js.map +1 -1
  77. package/dist/destinations/linkedin-conversions/streamConversion/index.js.map +1 -1
  78. package/dist/destinations/memora/generated-types.d.ts +5 -0
  79. package/dist/destinations/memora/generated-types.js +3 -0
  80. package/dist/destinations/memora/generated-types.js.map +1 -0
  81. package/dist/destinations/memora/index.d.ts +6 -0
  82. package/dist/destinations/memora/index.js +69 -0
  83. package/dist/destinations/memora/index.js.map +1 -0
  84. package/dist/destinations/memora/upsertProfile/generated-types.d.ts +12 -0
  85. package/dist/destinations/memora/upsertProfile/generated-types.js +3 -0
  86. package/dist/destinations/memora/upsertProfile/generated-types.js.map +1 -0
  87. package/dist/destinations/memora/upsertProfile/index.d.ts +5 -0
  88. package/dist/destinations/memora/upsertProfile/index.js +297 -0
  89. package/dist/destinations/memora/upsertProfile/index.js.map +1 -0
  90. package/dist/destinations/salesforce-marketing-cloud/_tests_/asyncDataExtension.test.d.ts +1 -0
  91. package/dist/destinations/salesforce-marketing-cloud/_tests_/asyncDataExtension.test.js +96 -0
  92. package/dist/destinations/salesforce-marketing-cloud/_tests_/asyncDataExtension.test.js.map +1 -0
  93. package/dist/destinations/salesforce-marketing-cloud/asyncDataExtension/generated-types.d.ts +59 -0
  94. package/dist/destinations/salesforce-marketing-cloud/asyncDataExtension/generated-types.js +3 -0
  95. package/dist/destinations/salesforce-marketing-cloud/asyncDataExtension/generated-types.js.map +1 -0
  96. package/dist/destinations/salesforce-marketing-cloud/asyncDataExtension/index.d.ts +5 -0
  97. package/dist/destinations/salesforce-marketing-cloud/asyncDataExtension/index.js +82 -0
  98. package/dist/destinations/salesforce-marketing-cloud/asyncDataExtension/index.js.map +1 -0
  99. package/dist/destinations/salesforce-marketing-cloud/index.d.ts +1 -1
  100. package/dist/destinations/salesforce-marketing-cloud/index.js +3 -1
  101. package/dist/destinations/salesforce-marketing-cloud/index.js.map +1 -1
  102. package/dist/destinations/salesforce-marketing-cloud/sfmc-operations.d.ts +1 -0
  103. package/dist/destinations/salesforce-marketing-cloud/sfmc-operations.js +25 -0
  104. package/dist/destinations/salesforce-marketing-cloud/sfmc-operations.js.map +1 -1
  105. package/dist/destinations/snap-audiences/index.js.map +1 -1
  106. package/dist/destinations/snap-audiences/syncAudience/fields.js +2 -2
  107. package/dist/destinations/snap-audiences/syncAudience/fields.js.map +1 -1
  108. package/dist/destinations/snap-audiences/syncAudience/functions.js +27 -6
  109. package/dist/destinations/snap-audiences/syncAudience/functions.js.map +1 -1
  110. package/dist/destinations/snap-audiences/syncAudience/types.d.ts +1 -1
  111. package/dist/destinations/stackadapt-audiences/forwardAudienceEvent/constants.js +11 -11
  112. package/dist/destinations/stackadapt-audiences/forwardAudienceEvent/fields.js +9 -3
  113. package/dist/destinations/stackadapt-audiences/forwardAudienceEvent/fields.js.map +1 -1
  114. package/dist/destinations/stackadapt-audiences/forwardAudienceEvent/functions.js +2 -2
  115. package/dist/destinations/stackadapt-audiences/forwardAudienceEvent/functions.js.map +1 -1
  116. package/dist/destinations/taguchi/syncUserProfile/utils.js.map +1 -1
  117. package/dist/destinations/the-trade-desk-crm/functions.d.ts +2 -2
  118. package/dist/destinations/the-trade-desk-crm/functions.js +76 -18
  119. package/dist/destinations/the-trade-desk-crm/functions.js.map +1 -1
  120. package/dist/destinations/tiktok-app-events/index.js +1 -1
  121. package/dist/destinations/tiktok-app-events/index.js.map +1 -1
  122. package/dist/destinations/tiktok-app-events/reportAppEvent/constants.js.map +1 -1
  123. package/dist/destinations/tiktok-app-events/reportAppEvent/fields/common_fields.js +29 -29
  124. package/dist/destinations/tiktok-app-events/reportAppEvent/fields/common_fields.js.map +1 -1
  125. package/dist/destinations/tiktok-app-events/reportAppEvent/utils.js +4 -3
  126. package/dist/destinations/tiktok-app-events/reportAppEvent/utils.js.map +1 -1
  127. package/dist/destinations/twilio-messaging/sendMessage/constants.d.ts +3 -3
  128. package/dist/destinations/twilio-messaging/sendMessage/constants.js +3 -3
  129. package/dist/destinations/twilio-messaging/sendMessage/constants.js.map +1 -1
  130. package/dist/destinations/twilio-messaging/sendMessage/fields.js.map +1 -1
  131. package/dist/destinations/twilio-messaging/sendMessage/utils.js.map +1 -1
  132. package/dist/destinations/yonoma/trackEvent/index.js +1 -1
  133. package/dist/destinations/yonoma/trackEvent/index.js.map +1 -1
  134. package/dist/destinations/yonoma/trackPageView/index.js +1 -1
  135. package/dist/destinations/yonoma/trackPageView/index.js.map +1 -1
  136. package/dist/destinations/yonoma/upsertContact/index.js +3 -3
  137. package/dist/destinations/yonoma/upsertContact/index.js.map +1 -1
  138. package/dist/destinations/zapier/send/constants.js.map +1 -1
  139. package/dist/destinations/zapier/send/index.js.map +1 -1
  140. package/package.json +4 -4
@@ -0,0 +1,297 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const actions_core_1 = require("@segment/actions-core");
4
+ const index_1 = require("../index");
5
+ const action = {
6
+ title: 'Upsert Profile',
7
+ description: 'Create or update Memora profiles using the bulk upsert API. If a profile already exists, its traits are merged (new keys added, existing keys overwritten). Supports batching up to 1000 profiles.',
8
+ defaultSubscription: 'type = "identify"',
9
+ fields: {
10
+ enable_batching: {
11
+ label: 'Enable Batching',
12
+ description: 'Enable batching of requests to Memora. Batches can contain up to 1000 profiles.',
13
+ type: 'boolean',
14
+ default: true,
15
+ unsafe_hidden: true
16
+ },
17
+ batch_size: {
18
+ label: 'Batch Size',
19
+ description: 'Maximum number of profiles to include in each batch. Actual batch sizes may be lower.',
20
+ type: 'number',
21
+ default: 1000,
22
+ unsafe_hidden: true
23
+ },
24
+ memora_store: {
25
+ label: 'Memora Store',
26
+ description: 'The Memora Store ID to use for this profile. This should be a valid Memora Store associated with your Twilio account.',
27
+ type: 'string',
28
+ required: false,
29
+ dynamic: true
30
+ },
31
+ contact: {
32
+ label: 'Contact Information',
33
+ description: 'Contact information object containing email, firstName, lastName, and phone fields that will be placed in the Contact trait group in the Memora API call.',
34
+ type: 'object',
35
+ required: false,
36
+ additionalProperties: true,
37
+ properties: {
38
+ email: {
39
+ label: 'Email',
40
+ description: 'User email address',
41
+ type: 'string',
42
+ format: 'email'
43
+ },
44
+ firstName: {
45
+ label: 'First Name',
46
+ description: 'User first name',
47
+ type: 'string'
48
+ },
49
+ lastName: {
50
+ label: 'Last Name',
51
+ description: 'User last name',
52
+ type: 'string'
53
+ },
54
+ phone: {
55
+ label: 'Phone',
56
+ description: 'User phone number',
57
+ type: 'string'
58
+ }
59
+ },
60
+ default: {
61
+ email: { '@path': '$.properties.email' },
62
+ firstName: { '@path': '$.traits.first_name' },
63
+ lastName: { '@path': '$.traits.last_name' },
64
+ phone: {
65
+ '@path': '$.traits.phone'
66
+ }
67
+ }
68
+ }
69
+ },
70
+ dynamicFields: {
71
+ memora_store: async (request, { settings }) => {
72
+ return fetchMemoryStores(request, settings);
73
+ },
74
+ contact: {
75
+ __keys__: async (request, { settings, payload }) => {
76
+ return fetchTraitFields(request, settings, payload, 'Contact');
77
+ }
78
+ }
79
+ },
80
+ perform: async (request, { payload, settings }) => {
81
+ const storeId = payload.memora_store;
82
+ if (!storeId) {
83
+ throw new actions_core_1.IntegrationError('Memora Store is required', 'MISSING_REQUIRED_FIELD', 400);
84
+ }
85
+ const traitGroups = buildTraitGroups(payload);
86
+ if (Object.keys(traitGroups).length === 0) {
87
+ throw new actions_core_1.IntegrationError('Profile must contain at least one trait group or contact field', 'EMPTY_PROFILE', 400);
88
+ }
89
+ try {
90
+ const response = await request(`${index_1.BASE_URL}/${index_1.API_VERSION}/Stores/${storeId}/Profiles/Bulk`, {
91
+ method: 'PUT',
92
+ headers: {
93
+ 'Content-Type': 'application/json',
94
+ ...(settings.twilioAccount && { 'X-Pre-Auth-Context': settings.twilioAccount })
95
+ },
96
+ json: {
97
+ profiles: [
98
+ {
99
+ traits: traitGroups
100
+ }
101
+ ]
102
+ }
103
+ });
104
+ if (response.status !== 202) {
105
+ throw new actions_core_1.IntegrationError(`Unexpected response status: ${response.status}`, 'API_ERROR', response.status);
106
+ }
107
+ return response;
108
+ }
109
+ catch (error) {
110
+ if (error instanceof actions_core_1.IntegrationError) {
111
+ throw error;
112
+ }
113
+ handleMemoraApiError(error);
114
+ }
115
+ },
116
+ performBatch: async (request, { payload: payloads, settings }) => {
117
+ const storeId = payloads[0]?.memora_store;
118
+ if (!storeId) {
119
+ throw new actions_core_1.IntegrationError('Memora Store is required', 'MISSING_REQUIRED_FIELD', 400);
120
+ }
121
+ if (!payloads || payloads.length === 0) {
122
+ throw new actions_core_1.IntegrationError('No profiles provided for batch sync', 'EMPTY_BATCH', 400);
123
+ }
124
+ if (payloads.length > 1000) {
125
+ throw new actions_core_1.IntegrationError('Batch size cannot exceed 1000 profiles', 'BATCH_SIZE_EXCEEDED', 400);
126
+ }
127
+ const profiles = payloads.map((payload, index) => {
128
+ const traitGroups = buildTraitGroups(payload);
129
+ if (Object.keys(traitGroups).length === 0) {
130
+ throw new actions_core_1.IntegrationError(`Profile at index ${index} must contain at least one trait group or contact field`, 'EMPTY_PROFILE', 400);
131
+ }
132
+ return { traits: traitGroups };
133
+ });
134
+ try {
135
+ const response = await request(`${index_1.BASE_URL}/${index_1.API_VERSION}/Stores/${storeId}/Profiles/Bulk`, {
136
+ method: 'PUT',
137
+ headers: {
138
+ 'Content-Type': 'application/json',
139
+ ...(settings.twilioAccount && { 'X-Pre-Auth-Context': settings.twilioAccount })
140
+ },
141
+ json: {
142
+ profiles
143
+ }
144
+ });
145
+ if (response.status !== 202) {
146
+ throw new actions_core_1.IntegrationError(`Unexpected response status: ${response.status}`, 'API_ERROR', response.status);
147
+ }
148
+ return response;
149
+ }
150
+ catch (error) {
151
+ if (error instanceof actions_core_1.IntegrationError) {
152
+ throw error;
153
+ }
154
+ handleMemoraApiError(error);
155
+ }
156
+ }
157
+ };
158
+ function buildTraitGroups(payload) {
159
+ const traitGroups = {};
160
+ if (payload.contact && typeof payload.contact === 'object') {
161
+ const contact = cleanObject(payload.contact);
162
+ if (Object.keys(contact).length > 0) {
163
+ traitGroups.Contact = {
164
+ ...(traitGroups.Contact ?? {}),
165
+ ...contact
166
+ };
167
+ }
168
+ }
169
+ return traitGroups;
170
+ }
171
+ function cleanObject(input) {
172
+ if (!input || typeof input !== 'object') {
173
+ return {};
174
+ }
175
+ const value = input;
176
+ const cleaned = {};
177
+ for (const [key, fieldValue] of Object.entries(value)) {
178
+ if (fieldValue === undefined || fieldValue === null) {
179
+ continue;
180
+ }
181
+ if (Array.isArray(fieldValue)) {
182
+ if (fieldValue.length > 0) {
183
+ cleaned[key] = fieldValue;
184
+ }
185
+ continue;
186
+ }
187
+ if (typeof fieldValue === 'object') {
188
+ const nested = cleanObject(fieldValue);
189
+ if (Object.keys(nested).length > 0) {
190
+ cleaned[key] = nested;
191
+ }
192
+ continue;
193
+ }
194
+ cleaned[key] = fieldValue;
195
+ }
196
+ return cleaned;
197
+ }
198
+ function handleMemoraApiError(error) {
199
+ const httpError = error;
200
+ if (httpError.response) {
201
+ const status = httpError.response.status;
202
+ const data = httpError.response.data;
203
+ switch (status) {
204
+ case 400:
205
+ throw new actions_core_1.IntegrationError(data?.message || 'Bad Request - Invalid request data', 'INVALID_REQUEST_DATA', 400);
206
+ case 404:
207
+ throw new actions_core_1.IntegrationError(data?.message || 'Profile or service not found', 'SERVICE_NOT_FOUND', 404);
208
+ case 429: {
209
+ const retryAfter = httpError.response.headers?.['retry-after'];
210
+ const message = retryAfter ? `Rate limit exceeded. Retry after ${retryAfter} seconds` : 'Rate limit exceeded';
211
+ throw new actions_core_1.RetryableError(data?.message || message);
212
+ }
213
+ case 500:
214
+ throw new actions_core_1.RetryableError(data?.message || 'Internal server error');
215
+ case 503:
216
+ throw new actions_core_1.RetryableError(data?.message || 'Service unavailable');
217
+ default:
218
+ throw new actions_core_1.IntegrationError(data?.message || `HTTP ${status} error`, 'API_ERROR', status);
219
+ }
220
+ }
221
+ throw new actions_core_1.RetryableError(httpError.message || 'Network error occurred');
222
+ }
223
+ async function fetchMemoryStores(request, settings) {
224
+ try {
225
+ const response = await request(`${index_1.BASE_URL}/${index_1.API_VERSION}/ControlPlane/Stores?pageSize=100&orderBy=ASC`, {
226
+ method: 'GET',
227
+ headers: {
228
+ ...(settings.twilioAccount && { 'X-Pre-Auth-Context': settings.twilioAccount })
229
+ },
230
+ skipResponseCloning: true
231
+ });
232
+ const services = response?.data?.services || [];
233
+ const choices = services.map((serviceId) => ({
234
+ label: serviceId,
235
+ value: serviceId
236
+ }));
237
+ return {
238
+ choices,
239
+ nextPage: response?.data?.meta?.nextToken
240
+ };
241
+ }
242
+ catch (error) {
243
+ return {
244
+ choices: [],
245
+ error: {
246
+ message: 'Unable to fetch memory stores. You can still manually enter a memory store ID.',
247
+ code: 'FETCH_ERROR'
248
+ }
249
+ };
250
+ }
251
+ }
252
+ async function fetchTraitFields(request, settings, payload, traitGroup) {
253
+ try {
254
+ const storeId = payload.memora_store;
255
+ if (!storeId) {
256
+ return {
257
+ choices: [],
258
+ error: {
259
+ message: `Please select a Memora Store first to fetch available ${traitGroup} trait fields.`,
260
+ code: 'STORE_ID_REQUIRED'
261
+ }
262
+ };
263
+ }
264
+ const response = await request(`${index_1.BASE_URL}/${index_1.API_VERSION}/ControlPlane/Stores/${storeId}/TraitGroups/${traitGroup}`, {
265
+ method: 'GET',
266
+ headers: {
267
+ ...(settings.twilioAccount && { 'X-Pre-Auth-Context': settings.twilioAccount })
268
+ },
269
+ searchParams: {
270
+ includeTraits: 'true',
271
+ pageSize: '100',
272
+ orderBy: 'ASC'
273
+ },
274
+ skipResponseCloning: true
275
+ });
276
+ const traits = response?.data?.traitGroup?.traits || [];
277
+ const choices = traits.map((trait) => ({
278
+ label: trait.name || trait.key,
279
+ value: trait.key
280
+ }));
281
+ return {
282
+ choices,
283
+ nextPage: response?.data?.meta?.pageToken
284
+ };
285
+ }
286
+ catch (error) {
287
+ return {
288
+ choices: [],
289
+ error: {
290
+ message: 'Unable to fetch trait fields. You can still manually enter trait names.',
291
+ code: 'FETCH_ERROR'
292
+ }
293
+ };
294
+ }
295
+ }
296
+ exports.default = action;
297
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/memora/upsertProfile/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const nock_1 = __importDefault(require("nock"));
7
+ const actions_core_1 = require("@segment/actions-core");
8
+ const index_1 = __importDefault(require("../index"));
9
+ const testDestination = (0, actions_core_1.createTestIntegration)(index_1.default);
10
+ const timestamp = '2025-10-13T4:00:00.449Z';
11
+ const settings = {
12
+ subdomain: 'test123',
13
+ client_id: 'test123',
14
+ client_secret: 'test123',
15
+ account_id: 'test123'
16
+ };
17
+ const event = (0, actions_core_1.createTestEvent)({
18
+ timestamp: timestamp,
19
+ type: 'track',
20
+ userId: 'TonyStark001',
21
+ properties: {
22
+ id: 'ily3000'
23
+ }
24
+ });
25
+ const payload = {
26
+ keys: {
27
+ id: 'version'
28
+ },
29
+ values: {
30
+ name: 'MARK42'
31
+ },
32
+ retlOnMappingSave: {
33
+ outputs: {
34
+ id: '1234567890'
35
+ }
36
+ }
37
+ };
38
+ const authUrl = `https://${settings.subdomain}.auth.marketingcloudapis.com/v2/token`;
39
+ const externalKeyUrl = `https://${settings.subdomain}.rest.marketingcloudapis.com/data/v1/customobjects/1234567890`;
40
+ describe('Salesforce Marketing Cloud', () => {
41
+ describe('Async Data Extension', () => {
42
+ it('should send data to the correct endpoint', async () => {
43
+ (0, nock_1.default)(authUrl).post('').reply(200, {
44
+ access_token: 'test_access_token',
45
+ soap_instance_url: 'https://test123.soap.marketingcloudapis.com/'
46
+ });
47
+ (0, nock_1.default)(externalKeyUrl).get('').reply(200, {
48
+ key: '1234567890'
49
+ });
50
+ (0, nock_1.default)(`https://${settings.subdomain}.rest.marketingcloudapis.com`)
51
+ .post('/data/v1/async/dataextensions/key:1234567890/rows')
52
+ .reply(200, {
53
+ requestId: 'b241e73b-9b35-46ff-9c2d-e779ac5836a9',
54
+ resultMessages: []
55
+ });
56
+ const responses = await testDestination.testAction('asyncDataExtension', {
57
+ event,
58
+ settings,
59
+ mapping: payload
60
+ });
61
+ expect(responses.length).toBe(2);
62
+ expect(responses[1].data).toEqual({
63
+ requestId: 'b241e73b-9b35-46ff-9c2d-e779ac5836a9',
64
+ resultMessages: []
65
+ });
66
+ });
67
+ it('should throw an error if no data extension is connected', async () => {
68
+ await expect(testDestination.testAction('asyncDataExtension', {
69
+ event,
70
+ settings,
71
+ mapping: {
72
+ keys: {
73
+ id: 'version'
74
+ },
75
+ values: {
76
+ name: 'MARK42'
77
+ }
78
+ }
79
+ })).rejects.toThrowError('No Data Extension Connected');
80
+ });
81
+ it('should throw an error if no external Key is found', async () => {
82
+ nock_1.default.cleanAll();
83
+ (0, nock_1.default)(externalKeyUrl)
84
+ .get('')
85
+ .reply(200, { key: '' })
86
+ .persist();
87
+ nock_1.default.disableNetConnect();
88
+ await expect(testDestination.testAction('asyncDataExtension', {
89
+ event,
90
+ settings,
91
+ mapping: payload
92
+ })).rejects.toThrowError('No External Key found for Data Extension');
93
+ });
94
+ });
95
+ });
96
+ //# sourceMappingURL=asyncDataExtension.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asyncDataExtension.test.js","sourceRoot":"","sources":["../../../../src/destinations/salesforce-marketing-cloud/_tests_/asyncDataExtension.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ export interface Payload {
2
+ keys: {
3
+ [k: string]: unknown;
4
+ };
5
+ values: {
6
+ [k: string]: unknown;
7
+ };
8
+ enable_batching?: boolean;
9
+ batch_bytes?: number;
10
+ batch_size?: number;
11
+ }
12
+ export interface RetlOnMappingSaveInputs {
13
+ operation: string;
14
+ dataExtensionId?: string;
15
+ categoryId?: string;
16
+ name?: string;
17
+ description?: string;
18
+ isSendable?: boolean;
19
+ sendableCustomObjectField?: string;
20
+ sendableSubscriberField?: string;
21
+ columns?: {
22
+ name: string;
23
+ type: string;
24
+ isNullable: boolean;
25
+ isPrimaryKey: boolean;
26
+ length?: number;
27
+ scale?: number;
28
+ description?: string;
29
+ [k: string]: unknown;
30
+ }[];
31
+ }
32
+ export interface RetlOnMappingSaveOutputs {
33
+ id: string;
34
+ name: string;
35
+ }
36
+ export interface OnMappingSaveInputs {
37
+ operation: string;
38
+ dataExtensionId?: string;
39
+ categoryId?: string;
40
+ name?: string;
41
+ description?: string;
42
+ isSendable?: boolean;
43
+ sendableCustomObjectField?: string;
44
+ sendableSubscriberField?: string;
45
+ columns?: {
46
+ name: string;
47
+ type: string;
48
+ isNullable: boolean;
49
+ isPrimaryKey: boolean;
50
+ length?: number;
51
+ scale?: number;
52
+ description?: string;
53
+ [k: string]: unknown;
54
+ }[];
55
+ }
56
+ export interface OnMappingSaveOutputs {
57
+ id: string;
58
+ name: string;
59
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=generated-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generated-types.js","sourceRoot":"","sources":["../../../../src/destinations/salesforce-marketing-cloud/asyncDataExtension/generated-types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import { ActionDefinition } from '@segment/actions-core';
2
+ import type { Settings } from '../generated-types';
3
+ import type { Payload } from './generated-types';
4
+ declare const action: ActionDefinition<Settings, Payload>;
5
+ export default action;
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const actions_core_1 = require("@segment/actions-core");
4
+ const sfmc_properties_1 = require("../sfmc-properties");
5
+ const sfmc_operations_1 = require("../sfmc-operations");
6
+ const action = {
7
+ title: 'Send Event asynchronously to Data Extension',
8
+ description: 'Upsert event records asynchronously as rows into a data extension in Salesforce Marketing Cloud.',
9
+ fields: {
10
+ keys: { ...sfmc_properties_1.keys, required: true, dynamic: true },
11
+ values: { ...sfmc_properties_1.values_dataExtensionFields, dynamic: true },
12
+ enable_batching: {
13
+ label: 'Batch data to SFMC',
14
+ description: 'If true, data is batched before sending to the SFMC Data Extension.',
15
+ type: 'boolean',
16
+ default: true,
17
+ unsafe_hidden: true
18
+ },
19
+ batch_bytes: {
20
+ label: 'Batch Bytes',
21
+ description: 'The maximum size of a batch in bytes.',
22
+ type: 'number',
23
+ unsafe_hidden: true,
24
+ required: false,
25
+ default: 5000000
26
+ },
27
+ batch_size: {
28
+ label: 'Batch Size',
29
+ description: 'Maximum number of events to include in each batch. Actual batch sizes may be lower.',
30
+ type: 'number',
31
+ required: false,
32
+ minimum: 1000,
33
+ default: 28000,
34
+ maximum: 30000,
35
+ unsafe_hidden: false
36
+ }
37
+ },
38
+ dynamicFields: {
39
+ keys: {
40
+ __keys__: async (request, { settings, payload }) => {
41
+ const dataExtensionId = payload.onMappingSave?.outputs?.id || payload.retlOnMappingSave?.outputs?.id || '';
42
+ return await (0, sfmc_operations_1.getDataExtensionFields)(request, settings.subdomain, settings, dataExtensionId, true);
43
+ }
44
+ },
45
+ values: {
46
+ __keys__: async (request, { settings, payload }) => {
47
+ const dataExtensionId = payload.onMappingSave?.outputs?.id || payload.retlOnMappingSave?.outputs?.id || '';
48
+ return await (0, sfmc_operations_1.getDataExtensionFields)(request, settings.subdomain, settings, dataExtensionId, false);
49
+ }
50
+ }
51
+ },
52
+ hooks: {
53
+ retlOnMappingSave: {
54
+ ...sfmc_properties_1.dataExtensionHook
55
+ },
56
+ onMappingSave: {
57
+ ...sfmc_properties_1.dataExtensionHook
58
+ }
59
+ },
60
+ perform: async (request, { settings, payload, hookOutputs }) => {
61
+ const dataExtensionId = hookOutputs?.onMappingSave?.outputs?.id ||
62
+ hookOutputs?.retlOnMappingSave?.outputs?.id ||
63
+ '7a0270c1-25d0-f011-a5ad-d4f5ef42f423';
64
+ if (!dataExtensionId) {
65
+ throw new actions_core_1.IntegrationError('No Data Extension Connected', 'INVALID_CONFIGURATION', 400);
66
+ }
67
+ console.log('Async Data Extension - perform - dataExtensionId:', dataExtensionId);
68
+ return (0, sfmc_operations_1.asyncUpsertRowsV2)(request, settings.subdomain, [payload], dataExtensionId);
69
+ },
70
+ performBatch: async (request, { settings, payload, hookOutputs }) => {
71
+ const dataExtensionId = hookOutputs?.onMappingSave?.outputs?.id ||
72
+ hookOutputs?.retlOnMappingSave?.outputs?.id ||
73
+ '7a0270c1-25d0-f011-a5ad-d4f5ef42f423';
74
+ console.log('Async Data Extension - performBatch - dataExtensionId:', dataExtensionId);
75
+ if (!dataExtensionId) {
76
+ throw new actions_core_1.IntegrationError('No Data Extension Connected', 'INVALID_CONFIGURATION', 400);
77
+ }
78
+ return (0, sfmc_operations_1.asyncUpsertRowsV2)(request, settings.subdomain, payload, dataExtensionId);
79
+ }
80
+ };
81
+ exports.default = action;
82
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/salesforce-marketing-cloud/asyncDataExtension/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { DestinationDefinition } from '@segment/actions-core';
1
+ import { DestinationDefinition } from '@segment/actions-core';
2
2
  import type { Settings } from './generated-types';
3
3
  declare const destination: DestinationDefinition<Settings>;
4
4
  export default destination;
@@ -8,6 +8,7 @@ const dataExtension_1 = __importDefault(require("./dataExtension"));
8
8
  const contactDataExtension_1 = __importDefault(require("./contactDataExtension"));
9
9
  const apiEvent_1 = __importDefault(require("./apiEvent"));
10
10
  const dataExtensionV2_1 = __importDefault(require("./dataExtensionV2"));
11
+ const asyncDataExtension_1 = __importDefault(require("./asyncDataExtension"));
11
12
  const contactDataExtensionV2_1 = __importDefault(require("./contactDataExtensionV2"));
12
13
  const destination = {
13
14
  name: 'Salesforce Marketing Cloud (Actions)',
@@ -68,7 +69,8 @@ const destination = {
68
69
  contactDataExtension: contactDataExtension_1.default,
69
70
  apiEvent: apiEvent_1.default,
70
71
  dataExtensionV2: dataExtensionV2_1.default,
71
- contactDataExtensionV2: contactDataExtensionV2_1.default
72
+ contactDataExtensionV2: contactDataExtensionV2_1.default,
73
+ asyncDataExtension: asyncDataExtension_1.default
72
74
  }
73
75
  };
74
76
  exports.default = destination;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destinations/salesforce-marketing-cloud/index.ts"],"names":[],"mappings":";;;;;AAEA,wDAA+B;AAC/B,oEAA2C;AAC3C,kFAAyD;AACzD,0DAAiC;AAIjC,wEAA+C;AAC/C,sFAA6D;AAM7D,MAAM,WAAW,GAAoC;IACnD,IAAI,EAAE,sCAAsC;IAC5C,IAAI,EAAE,oCAAoC;IAC1C,IAAI,EAAE,OAAO;IAEb,cAAc,EAAE;QACd,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE;YACN,SAAS,EAAE;gBACT,KAAK,EAAE,WAAW;gBAClB,WAAW,EACT,0aAA0a;gBAC5a,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI;aACf;YACD,UAAU,EAAE;gBACV,KAAK,EAAE,YAAY;gBACnB,WAAW,EACT,mOAAmO;gBACrO,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI;aACf;YACD,SAAS,EAAE;gBACT,KAAK,EAAE,WAAW;gBAClB,WAAW,EACT,6NAA6N;gBAC/N,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI;aACf;YACD,aAAa,EAAE;gBACb,KAAK,EAAE,eAAe;gBACtB,WAAW,EACT,sIAAsI;gBACxI,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,IAAI;aACf;SACF;QACD,kBAAkB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;YAClD,MAAM,OAAO,GAAG,WAAW,QAAQ,CAAC,SAAS,uCAAuC,CAAA;YACpF,MAAM,GAAG,GAAG,MAAM,OAAO,CAAuB,GAAG,OAAO,EAAE,EAAE;gBAC5D,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,IAAI,eAAe,CAAC;oBACxB,UAAU,EAAE,QAAQ,CAAC,UAAU;oBAC/B,SAAS,EAAE,QAAQ,CAAC,SAAS;oBAC7B,aAAa,EAAE,QAAQ,CAAC,aAAa;oBACrC,UAAU,EAAE,oBAAoB;iBACjC,CAAC;aACH,CAAC,CAAA;YACF,OAAO,EAAE,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,CAAA;QAC/C,CAAC;KACF;IACD,aAAa,CAAC,EAAE,IAAI,EAAE;QACpB,OAAO;YACL,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,IAAI,EAAE,WAAW,EAAE;aAC7C;SACF,CAAA;IACH,CAAC;IACD,OAAO,EAAE;QACP,OAAO,EAAP,iBAAO;QACP,aAAa,EAAb,uBAAa;QACb,oBAAoB,EAApB,8BAAoB;QACpB,QAAQ,EAAR,kBAAQ;QACR,eAAe,EAAf,yBAAe;QACf,sBAAsB,EAAtB,gCAAsB;KACvB;CACF,CAAA;AAED,kBAAe,WAAW,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destinations/salesforce-marketing-cloud/index.ts"],"names":[],"mappings":";;;;;AAEA,wDAA+B;AAC/B,oEAA2C;AAC3C,kFAAyD;AACzD,0DAAiC;AAIjC,wEAA+C;AAC/C,8EAAqD;AACrD,sFAA6D;AAM7D,MAAM,WAAW,GAAoC;IACnD,IAAI,EAAE,sCAAsC;IAC5C,IAAI,EAAE,oCAAoC;IAC1C,IAAI,EAAE,OAAO;IAEb,cAAc,EAAE;QACd,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE;YACN,SAAS,EAAE;gBACT,KAAK,EAAE,WAAW;gBAClB,WAAW,EACT,0aAA0a;gBAC5a,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI;aACf;YACD,UAAU,EAAE;gBACV,KAAK,EAAE,YAAY;gBACnB,WAAW,EACT,mOAAmO;gBACrO,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI;aACf;YACD,SAAS,EAAE;gBACT,KAAK,EAAE,WAAW;gBAClB,WAAW,EACT,6NAA6N;gBAC/N,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI;aACf;YACD,aAAa,EAAE;gBACb,KAAK,EAAE,eAAe;gBACtB,WAAW,EACT,sIAAsI;gBACxI,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,IAAI;aACf;SACF;QACD,kBAAkB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;YAClD,MAAM,OAAO,GAAG,WAAW,QAAQ,CAAC,SAAS,uCAAuC,CAAA;YACpF,MAAM,GAAG,GAAG,MAAM,OAAO,CAAuB,GAAG,OAAO,EAAE,EAAE;gBAC5D,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,IAAI,eAAe,CAAC;oBACxB,UAAU,EAAE,QAAQ,CAAC,UAAU;oBAC/B,SAAS,EAAE,QAAQ,CAAC,SAAS;oBAC7B,aAAa,EAAE,QAAQ,CAAC,aAAa;oBACrC,UAAU,EAAE,oBAAoB;iBACjC,CAAC;aACH,CAAC,CAAA;YACF,OAAO,EAAE,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,CAAA;QAC/C,CAAC;KACF;IACD,aAAa,CAAC,EAAE,IAAI,EAAE;QACpB,OAAO;YACL,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,IAAI,EAAE,WAAW,EAAE;aAC7C;SACF,CAAA;IACH,CAAC;IACD,OAAO,EAAE;QACP,OAAO,EAAP,iBAAO;QACP,aAAa,EAAb,uBAAa;QACb,oBAAoB,EAApB,8BAAoB;QACpB,QAAQ,EAAR,kBAAQ;QACR,eAAe,EAAf,yBAAe;QACf,sBAAsB,EAAtB,gCAAsB;QACtB,kBAAkB,EAAlB,4BAAkB;KACnB;CACF,CAAA;AAED,kBAAe,WAAW,CAAA"}
@@ -3,6 +3,7 @@ import { Payload as payload_dataExtension } from './dataExtension/generated-type
3
3
  import { Payload as payload_contactDataExtension } from './contactDataExtension/generated-types';
4
4
  import { OnMappingSaveInputs } from './dataExtensionV2/generated-types';
5
5
  import { Settings } from './generated-types';
6
+ export declare function asyncUpsertRowsV2(request: RequestClient, subdomain: String, payloads: payload_dataExtension[] | payload_contactDataExtension[], dataExtensionId?: string): Promise<ModifiedResponse<unknown>>;
6
7
  export declare function upsertRows(request: RequestClient, subdomain: String, payloads: payload_dataExtension[] | payload_contactDataExtension[]): Promise<ModifiedResponse<unknown>>;
7
8
  export declare function upsertRowsV2(request: RequestClient, subdomain: String, payloads: payload_dataExtension[] | payload_contactDataExtension[], dataExtensionId: string): Promise<ModifiedResponse<unknown>>;
8
9
  export declare function executeUpsertWithMultiStatus(request: RequestClient, subdomain: String, payloads: payload_dataExtension[] | payload_contactDataExtension[], dataExtensionId?: string, statsContext?: StatsContext): Promise<MultiStatusResponse>;