@segment/action-destinations 3.257.0 → 3.258.0-staging-b97a16328

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 (88) hide show
  1. package/dist/destinations/blackbaud-raisers-edge-nxt/utils/index.d.ts +1 -1
  2. package/dist/destinations/engage/sendgrid/Profile.d.ts +6 -0
  3. package/dist/destinations/engage/sendgrid/Profile.js +3 -0
  4. package/dist/destinations/engage/sendgrid/Profile.js.map +1 -0
  5. package/dist/destinations/engage/sendgrid/previewApiLookup/api-lookups.d.ts +21 -0
  6. package/dist/destinations/engage/sendgrid/previewApiLookup/api-lookups.js +174 -0
  7. package/dist/destinations/engage/sendgrid/previewApiLookup/api-lookups.js.map +1 -0
  8. package/dist/destinations/engage/utils/track.d.ts +17 -17
  9. package/dist/destinations/google-enhanced-conversions/functions.d.ts +7 -0
  10. package/dist/destinations/google-enhanced-conversions/functions.js +7 -3
  11. package/dist/destinations/google-enhanced-conversions/functions.js.map +1 -1
  12. package/dist/destinations/index.js.map +1 -1
  13. package/dist/destinations/klaviyo/addProfileToList/index.js +1 -1
  14. package/dist/destinations/klaviyo/addProfileToList/index.js.map +1 -1
  15. package/dist/destinations/klaviyo/functions.d.ts +7 -4
  16. package/dist/destinations/klaviyo/functions.js +80 -1
  17. package/dist/destinations/klaviyo/functions.js.map +1 -1
  18. package/dist/destinations/klaviyo/removeProfileFromList/index.js +1 -1
  19. package/dist/destinations/klaviyo/removeProfileFromList/index.js.map +1 -1
  20. package/dist/destinations/klaviyo/types.d.ts +97 -0
  21. package/dist/destinations/klaviyo/upsertProfile/index.js +29 -19
  22. package/dist/destinations/klaviyo/upsertProfile/index.js.map +1 -1
  23. package/dist/destinations/marketo-static-lists/addToList/generated-types.d.ts +13 -4
  24. package/dist/destinations/marketo-static-lists/addToList/index.js +65 -4
  25. package/dist/destinations/marketo-static-lists/addToList/index.js.map +1 -1
  26. package/dist/destinations/marketo-static-lists/constants.d.ts +10 -3
  27. package/dist/destinations/marketo-static-lists/constants.js +2 -14
  28. package/dist/destinations/marketo-static-lists/constants.js.map +1 -1
  29. package/dist/destinations/marketo-static-lists/functions.d.ts +22 -2
  30. package/dist/destinations/marketo-static-lists/functions.js +91 -3
  31. package/dist/destinations/marketo-static-lists/functions.js.map +1 -1
  32. package/dist/destinations/marketo-static-lists/index.js +4 -42
  33. package/dist/destinations/marketo-static-lists/index.js.map +1 -1
  34. package/dist/destinations/marketo-static-lists/properties.js +2 -39
  35. package/dist/destinations/marketo-static-lists/properties.js.map +1 -1
  36. package/dist/destinations/marketo-static-lists/removeFromList/generated-types.d.ts +1 -1
  37. package/dist/destinations/mixpanel/utils.d.ts +13 -0
  38. package/dist/destinations/mixpanel/utils.js +117 -0
  39. package/dist/destinations/mixpanel/utils.js.map +1 -0
  40. package/dist/destinations/responsys/asyncMergePetRecords/generated-types.d.ts +14 -0
  41. package/dist/destinations/responsys/asyncMergePetRecords/generated-types.js +3 -0
  42. package/dist/destinations/responsys/asyncMergePetRecords/generated-types.js.map +1 -0
  43. package/dist/destinations/responsys/asyncMergePetRecords/index.d.ts +5 -0
  44. package/dist/destinations/responsys/asyncMergePetRecords/index.js +113 -0
  45. package/dist/destinations/responsys/asyncMergePetRecords/index.js.map +1 -0
  46. package/dist/destinations/responsys/asyncMergeProfileListMembers/generated-types.d.ts +20 -0
  47. package/dist/destinations/responsys/asyncMergeProfileListMembers/generated-types.js +3 -0
  48. package/dist/destinations/responsys/asyncMergeProfileListMembers/generated-types.js.map +1 -0
  49. package/dist/destinations/responsys/asyncMergeProfileListMembers/index.d.ts +5 -0
  50. package/dist/destinations/responsys/asyncMergeProfileListMembers/index.js +174 -0
  51. package/dist/destinations/responsys/asyncMergeProfileListMembers/index.js.map +1 -0
  52. package/dist/destinations/responsys/rsp-operations.d.ts +14 -0
  53. package/dist/destinations/responsys/rsp-operations.js +33 -0
  54. package/dist/destinations/responsys/rsp-operations.js.map +1 -0
  55. package/dist/destinations/responsys/rsp-properties.d.ts +4 -0
  56. package/dist/destinations/responsys/rsp-properties.js +27 -0
  57. package/dist/destinations/responsys/rsp-properties.js.map +1 -0
  58. package/dist/destinations/segment/segment-properties.d.ts +1 -0
  59. package/dist/destinations/segment/segment-properties.js +8 -1
  60. package/dist/destinations/segment/segment-properties.js.map +1 -1
  61. package/dist/destinations/segment/sendGroup/generated-types.d.ts +1 -0
  62. package/dist/destinations/segment/sendGroup/index.js +2 -0
  63. package/dist/destinations/segment/sendGroup/index.js.map +1 -1
  64. package/dist/destinations/segment/sendIdentify/generated-types.d.ts +1 -0
  65. package/dist/destinations/segment/sendIdentify/index.js +2 -0
  66. package/dist/destinations/segment/sendIdentify/index.js.map +1 -1
  67. package/dist/destinations/segment/sendPage/generated-types.d.ts +1 -0
  68. package/dist/destinations/segment/sendPage/index.js +2 -0
  69. package/dist/destinations/segment/sendPage/index.js.map +1 -1
  70. package/dist/destinations/segment/sendScreen/generated-types.d.ts +1 -0
  71. package/dist/destinations/segment/sendScreen/index.js +2 -0
  72. package/dist/destinations/segment/sendScreen/index.js.map +1 -1
  73. package/dist/destinations/segment/sendTrack/generated-types.d.ts +1 -0
  74. package/dist/destinations/segment/sendTrack/index.js +2 -0
  75. package/dist/destinations/segment/sendTrack/index.js.map +1 -1
  76. package/dist/destinations/snap-conversions-api/_tests_/capiV2tests.d.ts +1 -0
  77. package/dist/destinations/snap-conversions-api/_tests_/capiV2tests.js +381 -0
  78. package/dist/destinations/snap-conversions-api/_tests_/capiV2tests.js.map +1 -0
  79. package/dist/destinations/snap-conversions-api/_tests_/capiV3tests.d.ts +1 -0
  80. package/dist/destinations/snap-conversions-api/_tests_/capiV3tests.js +581 -0
  81. package/dist/destinations/snap-conversions-api/_tests_/capiV3tests.js.map +1 -0
  82. package/dist/destinations/snap-conversions-api/reportConversionEvent/snap-capi-v2.d.ts +4 -0
  83. package/dist/destinations/snap-conversions-api/reportConversionEvent/snap-capi-v2.js +97 -0
  84. package/dist/destinations/snap-conversions-api/reportConversionEvent/snap-capi-v2.js.map +1 -0
  85. package/dist/destinations/tiktok-offline-conversions/reportOfflineEvent/formatter.d.ts +3 -0
  86. package/dist/destinations/tiktok-offline-conversions/reportOfflineEvent/formatter.js +43 -0
  87. package/dist/destinations/tiktok-offline-conversions/reportOfflineEvent/formatter.js.map +1 -0
  88. package/package.json +4 -4
@@ -99,6 +99,7 @@ export interface ProfileAttributes {
99
99
  location?: Location | null;
100
100
  properties?: Record<string, any>;
101
101
  list_id?: string;
102
+ subscriptions?: Record<string, any>;
102
103
  }
103
104
  export interface ImportJobPayload {
104
105
  type: string;
@@ -126,3 +127,99 @@ export interface Profile {
126
127
  export interface GetProfileResponse {
127
128
  data: Profile[];
128
129
  }
130
+ export interface SubProfilePayload {
131
+ type: string;
132
+ attributes: {
133
+ email?: string;
134
+ phone_number?: string;
135
+ subscriptions?: {
136
+ email?: {};
137
+ sms?: {};
138
+ };
139
+ };
140
+ }
141
+ export interface SubscriptionData {
142
+ data: {
143
+ type: string;
144
+ attributes: {
145
+ custom_source: string;
146
+ profiles: {
147
+ data: Array<SubProfilePayload>;
148
+ };
149
+ };
150
+ relationships?: {
151
+ list: {
152
+ data: {
153
+ type: 'list';
154
+ id: string;
155
+ };
156
+ };
157
+ };
158
+ };
159
+ }
160
+ export interface SubProfile {
161
+ email?: string;
162
+ phone_number?: string;
163
+ list_id: string;
164
+ }
165
+ export interface KlaviyoJobStatusResponse {
166
+ data: {
167
+ type: string;
168
+ id: string;
169
+ attributes: {
170
+ status: string;
171
+ created_at: string;
172
+ total_count: number;
173
+ completed_count: number;
174
+ failed_count: number;
175
+ completed_at: string | null;
176
+ started_at: string | null;
177
+ };
178
+ relationships: {};
179
+ links: {
180
+ self: string;
181
+ };
182
+ };
183
+ }
184
+ export interface KlaviyoImportJobData {
185
+ data: {
186
+ type: string;
187
+ id: string;
188
+ attributes: {
189
+ status: string;
190
+ created_at: string;
191
+ total_count: number;
192
+ completed_count: number;
193
+ failed_count: number;
194
+ completed_at: string | null;
195
+ expires_at: string;
196
+ started_at: string | null;
197
+ };
198
+ relationships: {
199
+ lists: {
200
+ data: Array<{
201
+ type: string;
202
+ id: string;
203
+ }>;
204
+ links: {
205
+ self: string;
206
+ related: string;
207
+ };
208
+ };
209
+ profiles: {
210
+ links: {
211
+ self: string;
212
+ related: string;
213
+ };
214
+ };
215
+ import_errors: {
216
+ links: {
217
+ related: string;
218
+ };
219
+ };
220
+ };
221
+ links: {
222
+ self: string;
223
+ };
224
+ };
225
+ }
@@ -159,9 +159,12 @@ const action = {
159
159
  json: profileData
160
160
  });
161
161
  if (list_id) {
162
- const content = JSON.parse(profile?.content);
163
- const id = content.data.id;
164
- await functions_1.addProfileToList(request, id, list_id);
162
+ const subscriptionProfile = {
163
+ email: profileData.data.attributes.email,
164
+ phone_number: profileData.data.attributes.phone_number,
165
+ list_id
166
+ };
167
+ await functions_1.subscribeProfiles(request, subscriptionProfile);
165
168
  }
166
169
  return profile;
167
170
  }
@@ -177,7 +180,12 @@ const action = {
177
180
  json: profileData
178
181
  });
179
182
  if (list_id) {
180
- await functions_1.addProfileToList(request, id, list_id);
183
+ const subscriptionProfile = {
184
+ email: profileData.data.attributes.email,
185
+ phone_number: profileData.data.attributes.phone_number,
186
+ list_id
187
+ };
188
+ await functions_1.subscribeProfiles(request, subscriptionProfile);
181
189
  }
182
190
  return profile;
183
191
  }
@@ -187,23 +195,25 @@ const action = {
187
195
  },
188
196
  performBatch: async (request, { payload }) => {
189
197
  payload = payload.filter((profile) => profile.email || profile.external_id || profile.phone_number);
190
- const profilesWithList = payload.filter((profile) => profile.list_id);
191
- const profilesWithoutList = payload.filter((profile) => !profile.list_id);
192
- let importResponseWithList;
193
- let importResponseWithoutList;
194
- if (profilesWithList.length > 0) {
195
- const listId = profilesWithList[0].list_id;
196
- const importJobPayload = functions_1.createImportJobPayload(profilesWithList, listId);
197
- importResponseWithList = await functions_1.sendImportJobRequest(request, importJobPayload);
198
+ if (payload.length === 0) {
199
+ throw new actions_core_1.PayloadValidationError(`'One of External ID, Phone Number and Email is required.'`);
198
200
  }
199
- if (profilesWithoutList.length > 0) {
200
- const importJobPayload = functions_1.createImportJobPayload(profilesWithoutList);
201
- importResponseWithoutList = await functions_1.sendImportJobRequest(request, importJobPayload);
201
+ const profilesForImport = payload.map(({ list_id, ...profile }) => profile);
202
+ const importJobResponse = await functions_1.sendImportJobRequest(request, functions_1.createImportJobPayload(profilesForImport));
203
+ const parsedData = JSON.parse(importJobResponse.data);
204
+ const jobId = parsedData.data.id;
205
+ if (jobId) {
206
+ const jobStatusResponse = await functions_1.pollKlaviyoJobStatus(request, jobId);
207
+ if (jobStatusResponse.data.attributes.status !== 'complete') {
208
+ throw new actions_core_1.APIError('Import job did not complete successfully.', 401);
209
+ }
210
+ const profilesWithListId = payload.filter((profile) => !!profile.list_id);
211
+ for (let i = 0; i < profilesWithListId.length; i += 100) {
212
+ const batch = profilesWithListId.slice(i, i + 100);
213
+ await functions_1.subscribeProfiles(request, batch);
214
+ }
202
215
  }
203
- return {
204
- withList: importResponseWithList,
205
- withoutList: importResponseWithoutList
206
- };
216
+ return importJobResponse;
207
217
  }
208
218
  };
209
219
  exports.default = action;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/klaviyo/upsertProfile/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/klaviyo/upsertProfile/index.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,23 @@
1
1
  export interface Payload {
2
- external_id: string;
2
+ external_id?: string;
3
3
  lookup_field: string;
4
4
  data: {
5
5
  email?: string;
6
- firstName?: string;
7
- lastName?: string;
8
- phone?: string;
9
6
  [k: string]: unknown;
10
7
  };
11
8
  enable_batching: boolean;
12
9
  batch_size: number;
13
10
  event_name: string;
14
11
  }
12
+ export interface HookBundle {
13
+ retlOnMappingSave: {
14
+ inputs?: {
15
+ list_id?: string;
16
+ list_name?: string;
17
+ };
18
+ outputs?: {
19
+ id?: string;
20
+ name?: string;
21
+ };
22
+ };
23
+ }
@@ -14,13 +14,74 @@ const action = {
14
14
  batch_size: { ...properties_1.batch_size },
15
15
  event_name: { ...properties_1.event_name }
16
16
  },
17
- perform: async (request, { settings, payload, statsContext }) => {
17
+ hooks: {
18
+ retlOnMappingSave: {
19
+ label: 'Connect to a static list in Marketo',
20
+ description: 'When saving this mapping, we will create a static list in Marketo using the fields you provided.',
21
+ inputFields: {
22
+ list_id: {
23
+ type: 'string',
24
+ label: 'Existing List ID',
25
+ description: 'The ID of the Marketo Static List that users will be synced to. If defined, we will not create a new list.',
26
+ required: false
27
+ },
28
+ list_name: {
29
+ type: 'string',
30
+ label: 'List Name',
31
+ description: 'The name of the Marketo Static List that you would like to create.',
32
+ required: false
33
+ }
34
+ },
35
+ outputTypes: {
36
+ id: {
37
+ type: 'string',
38
+ label: 'ID',
39
+ description: 'The ID of the created Marketo Static List that users will be synced to.',
40
+ required: false
41
+ },
42
+ name: {
43
+ type: 'string',
44
+ label: 'List Name',
45
+ description: 'The name of the created Marketo Static List that users will be synced to.',
46
+ required: false
47
+ }
48
+ },
49
+ performHook: async (request, { settings, hookInputs, statsContext }) => {
50
+ if (hookInputs.list_id) {
51
+ return functions_1.getList(request, settings, hookInputs.list_id);
52
+ }
53
+ try {
54
+ const input = {
55
+ audienceName: hookInputs.list_name,
56
+ settings: settings
57
+ };
58
+ const listId = await functions_1.createList(request, input, statsContext);
59
+ return {
60
+ successMessage: `List '${hookInputs.list_name}' (id: ${listId}) created successfully!`,
61
+ savedData: {
62
+ id: listId,
63
+ name: hookInputs.list_name
64
+ }
65
+ };
66
+ }
67
+ catch (e) {
68
+ return {
69
+ error: {
70
+ message: 'Failed to create list',
71
+ code: 'CREATE_LIST_FAILURE'
72
+ }
73
+ };
74
+ }
75
+ }
76
+ }
77
+ },
78
+ perform: async (request, { settings, payload, statsContext, hookOutputs }) => {
18
79
  statsContext?.statsClient?.incr('addToAudience', 1, statsContext?.tags);
19
- return functions_1.addToList(request, settings, [payload], statsContext);
80
+ return functions_1.addToList(request, settings, [payload], statsContext, hookOutputs?.retlOnMappingSave?.outputs);
20
81
  },
21
- performBatch: async (request, { settings, payload, statsContext }) => {
82
+ performBatch: async (request, { settings, payload, statsContext, hookOutputs }) => {
22
83
  statsContext?.statsClient?.incr('addToAudience.batch', 1, statsContext?.tags);
23
- return functions_1.addToList(request, settings, payload, statsContext);
84
+ return functions_1.addToList(request, settings, payload, statsContext, hookOutputs?.retlOnMappingSave?.outputs);
24
85
  }
25
86
  };
26
87
  exports.default = action;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/marketo-static-lists/addToList/index.ts"],"names":[],"mappings":";;AAGA,8CAAwG;AACxG,4CAAwC;AAExC,MAAM,MAAM,GAAwC;IAClD,KAAK,EAAE,aAAa;IACpB,WAAW,EAAE,yDAAyD;IACtE,mBAAmB,EAAE,4BAA4B;IACjD,MAAM,EAAE;QACN,WAAW,EAAE,EAAE,GAAG,wBAAW,EAAE;QAC/B,YAAY,EAAE,EAAE,GAAG,yBAAY,EAAE;QACjC,IAAI,EAAE,EAAE,GAAG,iBAAI,EAAE;QACjB,eAAe,EAAE,EAAE,GAAG,4BAAe,EAAE;QACvC,UAAU,EAAE,EAAE,GAAG,uBAAU,EAAE;QAC7B,UAAU,EAAE,EAAE,GAAG,uBAAU,EAAE;KAC9B;IACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE;QAC9D,YAAY,EAAE,WAAW,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,CAAA;QACvE,OAAO,qBAAS,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC,CAAA;IAC9D,CAAC;IACD,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE;QACnE,YAAY,EAAE,WAAW,EAAE,IAAI,CAAC,qBAAqB,EAAE,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,CAAA;QAC7E,OAAO,qBAAS,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,CAAC,CAAA;IAC5D,CAAC;CACF,CAAA;AAED,kBAAe,MAAM,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/marketo-static-lists/addToList/index.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,4 @@
1
- import { RequestClient } from '@segment/actions-core';
2
- import { Settings } from './generated-types';
1
+ export declare const OAUTH_ENDPOINT = "identity/oauth/token";
3
2
  export declare const GET_FOLDER_ENDPOINT: string;
4
3
  export declare const CREATE_LIST_ENDPOINT: string;
5
4
  export declare const GET_LIST_ENDPOINT: string;
@@ -56,4 +55,12 @@ export interface MarketoLeads {
56
55
  updatedAt: string;
57
56
  createdAt: string;
58
57
  }
59
- export declare function getAccessToken(request: RequestClient, settings: Settings): Promise<string>;
58
+ export interface CreateListInput {
59
+ audienceName: string;
60
+ settings: {
61
+ client_id: string;
62
+ client_secret: string;
63
+ api_endpoint: string;
64
+ folder_name: string;
65
+ };
66
+ }
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getAccessToken = exports.CSV_LIMIT = exports.REMOVE_USERS_ENDPOINT = exports.GET_LEADS_ENDPOINT = exports.BULK_IMPORT_ENDPOINT = exports.GET_LIST_ENDPOINT = exports.CREATE_LIST_ENDPOINT = exports.GET_FOLDER_ENDPOINT = void 0;
3
+ exports.CSV_LIMIT = exports.REMOVE_USERS_ENDPOINT = exports.GET_LEADS_ENDPOINT = exports.BULK_IMPORT_ENDPOINT = exports.GET_LIST_ENDPOINT = exports.CREATE_LIST_ENDPOINT = exports.GET_FOLDER_ENDPOINT = exports.OAUTH_ENDPOINT = void 0;
4
4
  const API_VERSION = 'v1';
5
- const OAUTH_ENDPOINT = 'identity/oauth/token';
5
+ exports.OAUTH_ENDPOINT = 'identity/oauth/token';
6
6
  exports.GET_FOLDER_ENDPOINT = `/rest/asset/${API_VERSION}/folder/byName.json?name=folderName`;
7
7
  exports.CREATE_LIST_ENDPOINT = `/rest/asset/${API_VERSION}/staticLists.json?folder=folderId&name=listName`;
8
8
  exports.GET_LIST_ENDPOINT = `/rest/asset/${API_VERSION}/staticList/listId.json`;
@@ -10,16 +10,4 @@ exports.BULK_IMPORT_ENDPOINT = `/bulk/${API_VERSION}/leads.json?format=csv&listI
10
10
  exports.GET_LEADS_ENDPOINT = `/rest/${API_VERSION}/leads.json?filterType=field&filterValues=emailsToFilter`;
11
11
  exports.REMOVE_USERS_ENDPOINT = `/rest/${API_VERSION}/lists/listId/leads.json?id=idsToDelete`;
12
12
  exports.CSV_LIMIT = 10000000;
13
- async function getAccessToken(request, settings) {
14
- const res = await request(`${settings.api_endpoint}/${OAUTH_ENDPOINT}`, {
15
- method: 'POST',
16
- body: new URLSearchParams({
17
- client_id: settings.client_id,
18
- client_secret: settings.client_secret,
19
- grant_type: 'client_credentials'
20
- })
21
- });
22
- return res.data.access_token;
23
- }
24
- exports.getAccessToken = getAccessToken;
25
13
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/destinations/marketo-static-lists/constants.ts"],"names":[],"mappings":";;;AAGA,MAAM,WAAW,GAAG,IAAI,CAAA;AACxB,MAAM,cAAc,GAAG,sBAAsB,CAAA;AAChC,QAAA,mBAAmB,GAAG,eAAe,WAAW,qCAAqC,CAAA;AACrF,QAAA,oBAAoB,GAAG,eAAe,WAAW,iDAAiD,CAAA;AAClG,QAAA,iBAAiB,GAAG,eAAe,WAAW,yBAAyB,CAAA;AACvE,QAAA,oBAAoB,GAAG,SAAS,WAAW,oEAAoE,CAAA;AAC/G,QAAA,kBAAkB,GAAG,SAAS,WAAW,0DAA0D,CAAA;AACnG,QAAA,qBAAqB,GAAG,SAAS,WAAW,yCAAyC,CAAA;AAErF,QAAA,SAAS,GAAG,QAAQ,CAAA;AAyD1B,KAAK,UAAU,cAAc,CAAC,OAAsB,EAAE,QAAkB;IAC7E,MAAM,GAAG,GAAG,MAAM,OAAO,CAAuB,GAAG,QAAQ,CAAC,YAAY,IAAI,cAAc,EAAE,EAAE;QAC5F,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,IAAI,eAAe,CAAC;YACxB,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,aAAa,EAAE,QAAQ,CAAC,aAAa;YACrC,UAAU,EAAE,oBAAoB;SACjC,CAAC;KACH,CAAC,CAAA;IAEF,OAAO,GAAG,CAAC,IAAI,CAAC,YAAY,CAAA;AAC9B,CAAC;AAXD,wCAWC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/destinations/marketo-static-lists/constants.ts"],"names":[],"mappings":";;;AAAA,MAAM,WAAW,GAAG,IAAI,CAAA;AACX,QAAA,cAAc,GAAG,sBAAsB,CAAA;AACvC,QAAA,mBAAmB,GAAG,eAAe,WAAW,qCAAqC,CAAA;AACrF,QAAA,oBAAoB,GAAG,eAAe,WAAW,iDAAiD,CAAA;AAClG,QAAA,iBAAiB,GAAG,eAAe,WAAW,yBAAyB,CAAA;AACvE,QAAA,oBAAoB,GAAG,SAAS,WAAW,oEAAoE,CAAA;AAC/G,QAAA,kBAAkB,GAAG,SAAS,WAAW,0DAA0D,CAAA;AACnG,QAAA,qBAAqB,GAAG,SAAS,WAAW,yCAAyC,CAAA;AAErF,QAAA,SAAS,GAAG,QAAQ,CAAA"}
@@ -2,7 +2,27 @@ import { RequestClient, StatsContext } from '@segment/actions-core';
2
2
  import { Settings } from './generated-types';
3
3
  import { Payload as AddToListPayload } from './addToList/generated-types';
4
4
  import { Payload as RemoveFromListPayload } from './removeFromList/generated-types';
5
- import { MarketoBulkImportResponse, MarketoDeleteLeadsResponse } from './constants';
5
+ import { MarketoBulkImportResponse, MarketoDeleteLeadsResponse, CreateListInput } from './constants';
6
6
  export declare function formatEndpoint(endpoint: string): string;
7
- export declare function addToList(request: RequestClient, settings: Settings, payloads: AddToListPayload[], statsContext?: StatsContext): Promise<MarketoBulkImportResponse>;
7
+ export declare function addToList(request: RequestClient, settings: Settings, payloads: AddToListPayload[], statsContext?: StatsContext, hookOutputs?: {
8
+ id: string;
9
+ name: string;
10
+ }): Promise<MarketoBulkImportResponse>;
8
11
  export declare function removeFromList(request: RequestClient, settings: Settings, payloads: RemoveFromListPayload[], statsContext?: StatsContext): Promise<MarketoDeleteLeadsResponse>;
12
+ export declare function getAccessToken(request: RequestClient, settings: Settings): Promise<string>;
13
+ export declare function getList(request: RequestClient, settings: Settings, id: string): Promise<{
14
+ error: {
15
+ message: string;
16
+ code: string;
17
+ };
18
+ successMessage?: undefined;
19
+ savedData?: undefined;
20
+ } | {
21
+ successMessage: string;
22
+ savedData: {
23
+ id: string;
24
+ name: string;
25
+ };
26
+ error?: undefined;
27
+ }>;
28
+ export declare function createList(request: RequestClient, input: CreateListInput, statsContext?: StatsContext): Promise<string>;
@@ -1,13 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.removeFromList = exports.addToList = exports.formatEndpoint = void 0;
3
+ exports.createList = exports.getList = exports.getAccessToken = exports.removeFromList = exports.addToList = exports.formatEndpoint = void 0;
4
4
  const actions_core_1 = require("@segment/actions-core");
5
5
  const constants_1 = require("./constants");
6
6
  function formatEndpoint(endpoint) {
7
7
  return endpoint.replace('/rest', '');
8
8
  }
9
9
  exports.formatEndpoint = formatEndpoint;
10
- async function addToList(request, settings, payloads, statsContext) {
10
+ async function addToList(request, settings, payloads, statsContext, hookOutputs) {
11
+ const list_id = hookOutputs?.id ?? payloads[0].external_id;
12
+ if (!list_id) {
13
+ throw new actions_core_1.IntegrationError('No list ID found in payload', 'INVALID_REQUEST_DATA', 400);
14
+ }
11
15
  const api_endpoint = formatEndpoint(settings.api_endpoint);
12
16
  const csvData = formatData(payloads);
13
17
  const csvSize = Buffer.byteLength(csvData, 'utf8');
@@ -16,7 +20,7 @@ async function addToList(request, settings, payloads, statsContext) {
16
20
  throw new actions_core_1.IntegrationError(`CSV data size exceeds limit of ${constants_1.CSV_LIMIT} bytes`, 'INVALID_REQUEST_DATA', 400);
17
21
  }
18
22
  const url = api_endpoint +
19
- constants_1.BULK_IMPORT_ENDPOINT.replace('externalId', payloads[0].external_id).replace('fieldToLookup', payloads[0].lookup_field);
23
+ constants_1.BULK_IMPORT_ENDPOINT.replace('externalId', list_id).replace('fieldToLookup', payloads[0].lookup_field);
20
24
  const response = await request(url, {
21
25
  method: 'POST',
22
26
  headers: {
@@ -33,6 +37,9 @@ async function addToList(request, settings, payloads, statsContext) {
33
37
  }
34
38
  exports.addToList = addToList;
35
39
  async function removeFromList(request, settings, payloads, statsContext) {
40
+ if (!payloads[0].external_id) {
41
+ throw new actions_core_1.IntegrationError('No external_id found in payload', 'INVALID_REQUEST_DATA', 400);
42
+ }
36
43
  const api_endpoint = formatEndpoint(settings.api_endpoint);
37
44
  const usersToRemove = extractFilterData(payloads);
38
45
  const getLeadsUrl = api_endpoint +
@@ -99,4 +106,85 @@ function parseErrorResponse(response) {
99
106
  }
100
107
  throw new actions_core_1.IntegrationError(response.errors[0].message, 'INVALID_RESPONSE', 400);
101
108
  }
109
+ async function getAccessToken(request, settings) {
110
+ const api_endpoint = formatEndpoint(settings.api_endpoint);
111
+ const res = await request(`${api_endpoint}/${constants_1.OAUTH_ENDPOINT}`, {
112
+ method: 'POST',
113
+ body: new URLSearchParams({
114
+ client_id: settings.client_id,
115
+ client_secret: settings.client_secret,
116
+ grant_type: 'client_credentials'
117
+ })
118
+ });
119
+ return res.data.access_token;
120
+ }
121
+ exports.getAccessToken = getAccessToken;
122
+ async function getList(request, settings, id) {
123
+ const accessToken = await getAccessToken(request, settings);
124
+ const endpoint = formatEndpoint(settings.api_endpoint);
125
+ const getListUrl = endpoint + constants_1.GET_LIST_ENDPOINT.replace('listId', id);
126
+ const getListResponse = await request(getListUrl, {
127
+ method: 'GET',
128
+ headers: {
129
+ authorization: `Bearer ${accessToken}`
130
+ }
131
+ });
132
+ if (!getListResponse.data.success && getListResponse.data.errors) {
133
+ return {
134
+ error: {
135
+ message: getListResponse.data.errors[0].message,
136
+ code: 'LIST_ID_VERIFICATION_FAILURE'
137
+ }
138
+ };
139
+ }
140
+ return {
141
+ successMessage: `Using existing list '${getListResponse.data.result[0].name}' (id: ${id})`,
142
+ savedData: {
143
+ id: id,
144
+ name: getListResponse.data.result[0].name
145
+ }
146
+ };
147
+ }
148
+ exports.getList = getList;
149
+ async function createList(request, input, statsContext) {
150
+ const statsClient = statsContext?.statsClient;
151
+ const statsTags = statsContext?.tags;
152
+ if (!input.audienceName) {
153
+ throw new actions_core_1.IntegrationError('Missing audience name value', 'MISSING_REQUIRED_FIELD', 400);
154
+ }
155
+ const endpoint = formatEndpoint(input.settings.api_endpoint);
156
+ const accessToken = await getAccessToken(request, input.settings);
157
+ const getFolderUrl = endpoint + constants_1.GET_FOLDER_ENDPOINT.replace('folderName', encodeURIComponent(input.settings.folder_name));
158
+ const getFolderResponse = await request(getFolderUrl, {
159
+ method: 'GET',
160
+ headers: {
161
+ authorization: `Bearer ${accessToken}`
162
+ }
163
+ });
164
+ if (!getFolderResponse.data.success && getFolderResponse.data.errors) {
165
+ statsClient?.incr('createAudience.error', 1, statsTags);
166
+ throw new actions_core_1.IntegrationError(`${getFolderResponse.data.errors[0].message}`, 'INVALID_RESPONSE', 400);
167
+ }
168
+ if (!getFolderResponse.data.result) {
169
+ statsClient?.incr('createAudience.error', 1, statsTags);
170
+ throw new actions_core_1.IntegrationError(`A folder with the name ${input.settings.folder_name} not found`, 'INVALID_REQUEST_DATA', 400);
171
+ }
172
+ const folderId = getFolderResponse.data.result[0].id.toString();
173
+ const createListUrl = endpoint +
174
+ constants_1.CREATE_LIST_ENDPOINT.replace('folderId', folderId).replace('listName', encodeURIComponent(input.audienceName));
175
+ const createListResponse = await request(createListUrl, {
176
+ method: 'POST',
177
+ headers: {
178
+ authorization: `Bearer ${accessToken}`
179
+ }
180
+ });
181
+ if (!createListResponse.data.success && createListResponse.data.errors) {
182
+ statsClient?.incr('createAudience.error', 1, statsTags);
183
+ throw new actions_core_1.IntegrationError(`${createListResponse.data.errors[0].message}`, 'INVALID_RESPONSE', 400);
184
+ }
185
+ const listId = createListResponse.data.result[0].id.toString();
186
+ statsClient?.incr('createAudience.success', 1, statsTags);
187
+ return listId;
188
+ }
189
+ exports.createList = createList;
102
190
  //# sourceMappingURL=functions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"functions.js","sourceRoot":"","sources":["../../../src/destinations/marketo-static-lists/functions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"functions.js","sourceRoot":"","sources":["../../../src/destinations/marketo-static-lists/functions.ts"],"names":[],"mappings":"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"}
@@ -41,7 +41,7 @@ const destination = {
41
41
  }
42
42
  },
43
43
  refreshAccessToken: async (request, { settings }) => {
44
- return { accessToken: await constants_1.getAccessToken(request, settings) };
44
+ return { accessToken: await functions_1.getAccessToken(request, settings) };
45
45
  }
46
46
  },
47
47
  extendRequest({ auth }) {
@@ -58,47 +58,9 @@ const destination = {
58
58
  full_audience_sync: false
59
59
  },
60
60
  async createAudience(request, createAudienceInput) {
61
- const audienceName = createAudienceInput.audienceName;
62
- const folder = createAudienceInput.settings.folder_name;
63
- const endpoint = functions_1.formatEndpoint(createAudienceInput.settings.api_endpoint);
64
- const statsClient = createAudienceInput?.statsContext?.statsClient;
65
- const statsTags = createAudienceInput?.statsContext?.tags;
66
- if (!audienceName) {
67
- throw new actions_core_1.IntegrationError('Missing audience name value', 'MISSING_REQUIRED_FIELD', 400);
68
- }
69
- const accessToken = await constants_1.getAccessToken(request, createAudienceInput.settings);
70
- const getFolderUrl = endpoint + constants_1.GET_FOLDER_ENDPOINT.replace('folderName', encodeURIComponent(folder));
71
- const getFolderResponse = await request(getFolderUrl, {
72
- method: 'GET',
73
- headers: {
74
- authorization: `Bearer ${accessToken}`
75
- }
76
- });
77
- if (!getFolderResponse.data.success && getFolderResponse.data.errors) {
78
- statsClient?.incr('createAudience.error', 1, statsTags);
79
- throw new actions_core_1.IntegrationError(`${getFolderResponse.data.errors[0].message}`, 'INVALID_RESPONSE', 400);
80
- }
81
- if (!getFolderResponse.data.result) {
82
- statsClient?.incr('createAudience.error', 1, statsTags);
83
- throw new actions_core_1.IntegrationError(`A folder with the name ${folder} not found`, 'INVALID_REQUEST_DATA', 400);
84
- }
85
- const folderId = getFolderResponse.data.result[0].id.toString();
86
- const createListUrl = endpoint +
87
- constants_1.CREATE_LIST_ENDPOINT.replace('folderId', folderId).replace('listName', encodeURIComponent(audienceName));
88
- const createListResponse = await request(createListUrl, {
89
- method: 'POST',
90
- headers: {
91
- authorization: `Bearer ${accessToken}`
92
- }
93
- });
94
- if (!createListResponse.data.success && createListResponse.data.errors) {
95
- statsClient?.incr('createAudience.error', 1, statsTags);
96
- throw new actions_core_1.IntegrationError(`${createListResponse.data.errors[0].message}`, 'INVALID_RESPONSE', 400);
97
- }
98
- const externalId = createListResponse.data.result[0].id.toString();
99
- statsClient?.incr('createAudience.success', 1, statsTags);
61
+ const listId = await functions_1.createList(request, createAudienceInput, createAudienceInput.statsContext);
100
62
  return {
101
- externalId: externalId
63
+ externalId: listId
102
64
  };
103
65
  },
104
66
  async getAudience(request, getAudienceInput) {
@@ -106,7 +68,7 @@ const destination = {
106
68
  const listId = getAudienceInput.externalId;
107
69
  const statsClient = getAudienceInput?.statsContext?.statsClient;
108
70
  const statsTags = getAudienceInput?.statsContext?.tags;
109
- const accessToken = await constants_1.getAccessToken(request, getAudienceInput.settings);
71
+ const accessToken = await functions_1.getAccessToken(request, getAudienceInput.settings);
110
72
  const getListUrl = endpoint + constants_1.GET_LIST_ENDPOINT.replace('listId', listId);
111
73
  const getListResponse = await request(getListUrl, {
112
74
  method: 'GET',