@segment/action-destinations 3.328.0 → 3.330.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 (98) hide show
  1. package/dist/destinations/accoil-analytics/group/generated-types.d.ts +2 -0
  2. package/dist/destinations/accoil-analytics/group/index.js +14 -0
  3. package/dist/destinations/accoil-analytics/group/index.js.map +1 -1
  4. package/dist/destinations/braze/trackEvent2/index.js +1 -1
  5. package/dist/destinations/braze/trackEvent2/index.js.map +1 -1
  6. package/dist/destinations/braze/trackPurchase2/index.js +1 -1
  7. package/dist/destinations/braze/trackPurchase2/index.js.map +1 -1
  8. package/dist/destinations/braze/updateUserProfile2/index.js +1 -1
  9. package/dist/destinations/braze/updateUserProfile2/index.js.map +1 -1
  10. package/dist/destinations/braze/utils.d.ts +19 -6
  11. package/dist/destinations/braze/utils.js +156 -32
  12. package/dist/destinations/braze/utils.js.map +1 -1
  13. package/dist/destinations/engage-messaging-sendgrid/previewApiLookup/apiLookups.d.ts +3 -3
  14. package/dist/destinations/engage-messaging-sendgrid/previewApiLookup/apiLookups.js +9 -9
  15. package/dist/destinations/engage-messaging-sendgrid/previewApiLookup/apiLookups.js.map +1 -1
  16. package/dist/destinations/engage-messaging-sendgrid/sendEmail/SendEmailPerformer.d.ts +2 -1
  17. package/dist/destinations/engage-messaging-sendgrid/sendEmail/SendEmailPerformer.js +14 -4
  18. package/dist/destinations/engage-messaging-sendgrid/sendEmail/SendEmailPerformer.js.map +1 -1
  19. package/dist/destinations/facebook-conversions-api/addToCart/generated-types.d.ts +3 -0
  20. package/dist/destinations/facebook-conversions-api/addToCart2/generated-types.d.ts +3 -0
  21. package/dist/destinations/facebook-conversions-api/custom/generated-types.d.ts +3 -0
  22. package/dist/destinations/facebook-conversions-api/custom2/generated-types.d.ts +3 -0
  23. package/dist/destinations/facebook-conversions-api/fb-capi-app-data.js +20 -2
  24. package/dist/destinations/facebook-conversions-api/fb-capi-app-data.js.map +1 -1
  25. package/dist/destinations/facebook-conversions-api/fb-capi-user-data.js +6 -0
  26. package/dist/destinations/facebook-conversions-api/fb-capi-user-data.js.map +1 -1
  27. package/dist/destinations/facebook-conversions-api/initiateCheckout/generated-types.d.ts +3 -0
  28. package/dist/destinations/facebook-conversions-api/initiateCheckout2/generated-types.d.ts +3 -0
  29. package/dist/destinations/facebook-conversions-api/pageView/generated-types.d.ts +3 -0
  30. package/dist/destinations/facebook-conversions-api/pageView2/generated-types.d.ts +3 -0
  31. package/dist/destinations/facebook-conversions-api/purchase/generated-types.d.ts +3 -0
  32. package/dist/destinations/facebook-conversions-api/purchase2/generated-types.d.ts +3 -0
  33. package/dist/destinations/facebook-conversions-api/search/generated-types.d.ts +3 -0
  34. package/dist/destinations/facebook-conversions-api/search2/generated-types.d.ts +3 -0
  35. package/dist/destinations/facebook-conversions-api/viewContent/generated-types.d.ts +3 -0
  36. package/dist/destinations/facebook-conversions-api/viewContent2/generated-types.d.ts +3 -0
  37. package/dist/destinations/google-enhanced-conversions/userList/index.js +1 -1
  38. package/dist/destinations/google-enhanced-conversions/userList/index.js.map +1 -1
  39. package/dist/destinations/index.js +2 -0
  40. package/dist/destinations/index.js.map +1 -1
  41. package/dist/destinations/optimizely-web/generated-types.d.ts +5 -0
  42. package/dist/destinations/optimizely-web/generated-types.js +3 -0
  43. package/dist/destinations/optimizely-web/generated-types.js.map +1 -0
  44. package/dist/destinations/optimizely-web/index.d.ts +4 -0
  45. package/dist/destinations/optimizely-web/index.js +49 -0
  46. package/dist/destinations/optimizely-web/index.js.map +1 -0
  47. package/dist/destinations/optimizely-web/trackEvent/client.d.ts +11 -0
  48. package/dist/destinations/optimizely-web/trackEvent/client.js +61 -0
  49. package/dist/destinations/optimizely-web/trackEvent/client.js.map +1 -0
  50. package/dist/destinations/optimizely-web/trackEvent/constants.d.ts +3 -0
  51. package/dist/destinations/optimizely-web/trackEvent/constants.js +7 -0
  52. package/dist/destinations/optimizely-web/trackEvent/constants.js.map +1 -0
  53. package/dist/destinations/optimizely-web/trackEvent/fields.d.ts +2 -0
  54. package/dist/destinations/optimizely-web/trackEvent/fields.js +193 -0
  55. package/dist/destinations/optimizely-web/trackEvent/fields.js.map +1 -0
  56. package/dist/destinations/optimizely-web/trackEvent/generated-types.d.ts +26 -0
  57. package/dist/destinations/optimizely-web/trackEvent/generated-types.js +3 -0
  58. package/dist/destinations/optimizely-web/trackEvent/generated-types.js.map +1 -0
  59. package/dist/destinations/optimizely-web/trackEvent/index.d.ts +5 -0
  60. package/dist/destinations/optimizely-web/trackEvent/index.js +15 -0
  61. package/dist/destinations/optimizely-web/trackEvent/index.js.map +1 -0
  62. package/dist/destinations/optimizely-web/trackEvent/types.d.ts +59 -0
  63. package/dist/destinations/optimizely-web/trackEvent/types.js +3 -0
  64. package/dist/destinations/optimizely-web/trackEvent/types.js.map +1 -0
  65. package/dist/destinations/optimizely-web/trackEvent/utils.d.ts +25 -0
  66. package/dist/destinations/optimizely-web/trackEvent/utils.js +156 -0
  67. package/dist/destinations/optimizely-web/trackEvent/utils.js.map +1 -0
  68. package/dist/destinations/s3/fields.js +1 -1
  69. package/dist/destinations/s3/functions.js +3 -2
  70. package/dist/destinations/s3/functions.js.map +1 -1
  71. package/dist/destinations/s3/index.js +6 -0
  72. package/dist/destinations/s3/index.js.map +1 -1
  73. package/dist/destinations/snap-audiences/generated-types.d.ts +8 -0
  74. package/dist/destinations/snap-audiences/generated-types.js +3 -0
  75. package/dist/destinations/snap-audiences/generated-types.js.map +1 -0
  76. package/dist/destinations/snap-audiences/index.d.ts +4 -0
  77. package/dist/destinations/snap-audiences/index.js +139 -0
  78. package/dist/destinations/snap-audiences/index.js.map +1 -0
  79. package/dist/destinations/snap-audiences/syncAudience/generated-types.d.ts +12 -0
  80. package/dist/destinations/snap-audiences/syncAudience/generated-types.js +3 -0
  81. package/dist/destinations/snap-audiences/syncAudience/generated-types.js.map +1 -0
  82. package/dist/destinations/snap-audiences/syncAudience/index.d.ts +5 -0
  83. package/dist/destinations/snap-audiences/syncAudience/index.js +156 -0
  84. package/dist/destinations/snap-audiences/syncAudience/index.js.map +1 -0
  85. package/dist/destinations/snap-audiences/syncAudience/utils.d.ts +8 -0
  86. package/dist/destinations/snap-audiences/syncAudience/utils.js +73 -0
  87. package/dist/destinations/snap-audiences/syncAudience/utils.js.map +1 -0
  88. package/dist/destinations/webhook-extensible/__test__/webhook.test.js +0 -67
  89. package/dist/destinations/webhook-extensible/__test__/webhook.test.js.map +1 -1
  90. package/dist/destinations/webhook-extensible/index.d.ts +4 -1
  91. package/dist/destinations/webhook-extensible/index.js +20 -9
  92. package/dist/destinations/webhook-extensible/index.js.map +1 -1
  93. package/dist/destinations/webhook-extensible/send/index.js +31 -3
  94. package/dist/destinations/webhook-extensible/send/index.js.map +1 -1
  95. package/dist/destinations/webhook-extensible/types.d.ts +6 -0
  96. package/dist/destinations/webhook-extensible/types.js +3 -0
  97. package/dist/destinations/webhook-extensible/types.js.map +1 -0
  98. package/package.json +4 -4
@@ -0,0 +1,156 @@
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
+ exports.ensureEventSchema = exports.getEventsFromCache = exports.getEventFromCache = exports.cleanKey = exports.getEventid = exports.areAllPropertiesPrimitive = exports.validate = exports.send = void 0;
7
+ const actions_core_1 = require("@segment/actions-core");
8
+ const constants_1 = require("./constants");
9
+ const client_1 = require("./client");
10
+ const snakeCase_1 = __importDefault(require("lodash/snakeCase"));
11
+ async function send(request, settings, payload) {
12
+ const { unixTimestamp13, restProperties, value, revenue, quantity, currency, tags } = validate(payload);
13
+ const { endUserId, sessionId: session_id, uuid, eventMatching: { eventId, eventKey, shouldSnakeCaseEventKey }, eventType } = payload;
14
+ const client = new client_1.OptimizelyWebClient(request, settings);
15
+ const entity_id = eventId ?? (await getEventid(client, payload));
16
+ const body = {
17
+ account_id: settings.optimizelyAccountId,
18
+ project_id: settings.projectID,
19
+ anonymize_ip: payload.anonymizeIP,
20
+ client_name: 'Segment Optimizely Web Destination',
21
+ client_version: '1.0.0',
22
+ enrich_decisions: true,
23
+ visitors: [
24
+ {
25
+ visitor_id: endUserId,
26
+ session_id,
27
+ attributes: [],
28
+ snapshots: [
29
+ {
30
+ decisions: [],
31
+ events: [
32
+ {
33
+ entity_id,
34
+ key: cleanKey(eventType, shouldSnakeCaseEventKey, eventKey),
35
+ timestamp: unixTimestamp13,
36
+ uuid,
37
+ type: eventType === constants_1.PAGE ? 'view_activated' : 'other',
38
+ revenue: revenue ? revenue * 100 : undefined,
39
+ value,
40
+ tags: {
41
+ quantity,
42
+ currency,
43
+ $opt_event_properties: restProperties,
44
+ ...tags
45
+ }
46
+ }
47
+ ]
48
+ }
49
+ ]
50
+ }
51
+ ]
52
+ };
53
+ return await client.sendEvent(body);
54
+ }
55
+ exports.send = send;
56
+ function validate(payload) {
57
+ const { eventMatching: { eventKey, eventId }, eventType, tags, timestamp, properties: { value, revenue, quantity, currency, ...restProperties } = {} } = payload;
58
+ if (!eventKey && !eventId) {
59
+ throw new actions_core_1.PayloadValidationError('One of "Event Key" or "Event Id" is required');
60
+ }
61
+ if (!constants_1.SUPPORTED_TYPES.includes(eventType)) {
62
+ throw new actions_core_1.PayloadValidationError(`Event type ${eventType} is not supported. Supported types are ${constants_1.SUPPORTED_TYPES.join(', ')}`);
63
+ }
64
+ const unixTimestamp13 = new Date(timestamp).getTime();
65
+ if (unixTimestamp13.toString().length !== 13) {
66
+ throw new actions_core_1.PayloadValidationError('Unable to convert timestamp into 13 digit Unix timestamp');
67
+ }
68
+ if (!areAllPropertiesPrimitive(restProperties, ['string', 'number', 'boolean'])) {
69
+ throw new actions_core_1.PayloadValidationError('Event properties must be of type string, number or boolean');
70
+ }
71
+ if (!areAllPropertiesPrimitive(tags, ['string', 'number'])) {
72
+ throw new actions_core_1.PayloadValidationError('Tags must be of type string or number');
73
+ }
74
+ return {
75
+ unixTimestamp13,
76
+ restProperties,
77
+ value,
78
+ revenue,
79
+ quantity,
80
+ currency,
81
+ tags
82
+ };
83
+ }
84
+ exports.validate = validate;
85
+ function areAllPropertiesPrimitive(obj, typesToCheck = ['string', 'boolean', 'number']) {
86
+ if (obj === undefined || Object.keys(obj).length === 0) {
87
+ return true;
88
+ }
89
+ return Object.values(obj).every((value) => {
90
+ const type = typeof value;
91
+ return typesToCheck.includes(type);
92
+ });
93
+ }
94
+ exports.areAllPropertiesPrimitive = areAllPropertiesPrimitive;
95
+ async function getEventid(client, payload) {
96
+ const { category, eventMatching: { createEventIfNotFound, eventKey, shouldSnakeCaseEventKey }, eventType, pageUrl } = payload;
97
+ if (!eventKey) {
98
+ throw new actions_core_1.PayloadValidationError('Event key is required to get the event id');
99
+ }
100
+ const key = cleanKey(eventType, shouldSnakeCaseEventKey, eventKey);
101
+ const name = eventKey;
102
+ let event = getEventFromCache(key);
103
+ if (event === undefined) {
104
+ if (createEventIfNotFound === 'CREATE') {
105
+ event = await ensureEventSchema(client, key, name, category, eventType, pageUrl);
106
+ }
107
+ else {
108
+ throw new actions_core_1.PayloadValidationError(`Event with key = ${key} not found in Optimizely. "Create If Not Found" field set to "Do not create" which prevents Segment from creating the event.`);
109
+ }
110
+ }
111
+ if (!event) {
112
+ throw new actions_core_1.PayloadValidationError(`Error attempting to find event with key = ${key} in Optimizely`);
113
+ }
114
+ return event.id.toString();
115
+ }
116
+ exports.getEventid = getEventid;
117
+ function cleanKey(eventType, shouldSnakeCaseEventKey, key) {
118
+ if (!key) {
119
+ return undefined;
120
+ }
121
+ const maybeSnakeKey = shouldSnakeCaseEventKey ? snakeCase_1.default(key) : key;
122
+ return eventType === constants_1.PAGE ? maybeSnakeKey.replace(/[^a-zA-Z0-9_]/g, '_') : maybeSnakeKey;
123
+ }
124
+ exports.cleanKey = cleanKey;
125
+ function getEventFromCache(key) {
126
+ return getEventsFromCache().find((event) => {
127
+ return event.key === key;
128
+ });
129
+ }
130
+ exports.getEventFromCache = getEventFromCache;
131
+ function getEventsFromCache() {
132
+ return [];
133
+ }
134
+ exports.getEventsFromCache = getEventsFromCache;
135
+ async function ensureEventSchema(client, key, name, category, type, pageUrl) {
136
+ let event = await (async () => {
137
+ const response = await client.getCustomEvents(type);
138
+ const eventItems = await response.json();
139
+ return eventItems.find((event) => {
140
+ return event.key === key;
141
+ });
142
+ })();
143
+ if (event === undefined) {
144
+ event = await (async () => {
145
+ const response = await client.createCustomEvent(key, name, category, type, pageUrl);
146
+ const event = await response.json();
147
+ return event;
148
+ })();
149
+ }
150
+ if (!event) {
151
+ throw new actions_core_1.IntegrationError(`Unable to create event with key ${key} in Optimizely`, 'EVENT_CREATION_ERROR', 400);
152
+ }
153
+ return event;
154
+ }
155
+ exports.ensureEventSchema = ensureEventSchema;
156
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/destinations/optimizely-web/trackEvent/utils.ts"],"names":[],"mappings":"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"}
@@ -182,7 +182,7 @@ exports.commonFields = {
182
182
  },
183
183
  batch_size: {
184
184
  label: 'Batch Size',
185
- description: 'Maximum number of events to include in each batch. Actual batch sizes may be lower. Max batch size is 25000.',
185
+ description: 'Maximum number of events to include in each batch. Actual batch sizes may be lower. Max batch size is 10000.',
186
186
  type: 'number',
187
187
  required: false,
188
188
  default: 5000
@@ -8,8 +8,9 @@ async function send(payloads, settings, rawMapping) {
8
8
  const delimiter = payloads[0]?.delimiter;
9
9
  const actionColName = payloads[0]?.audience_action_column_name;
10
10
  const batchColName = payloads[0]?.batch_size_column_name;
11
- if (batchSize > 5000) {
12
- throw new actions_core_1.IntegrationError('Batch size cannot exceed 5000', 'Invalid Payload', 400);
11
+ const maxBatchSize = 10000;
12
+ if (batchSize > maxBatchSize) {
13
+ throw new actions_core_1.IntegrationError(`Batch size cannot exceed ${maxBatchSize}`, 'Invalid Payload', 400);
13
14
  }
14
15
  const headers = Object.entries(rawMapping.columns)
15
16
  .filter(([_, value]) => value !== '')
@@ -1 +1 @@
1
- {"version":3,"file":"functions.js","sourceRoot":"","sources":["../../../src/destinations/s3/functions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"functions.js","sourceRoot":"","sources":["../../../src/destinations/s3/functions.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ const actions_core_1 = require("@segment/actions-core");
6
7
  const syncToS3_1 = __importDefault(require("./syncToS3"));
7
8
  const destination = {
8
9
  name: 'AWS S3 (Actions)',
@@ -38,6 +39,11 @@ const destination = {
38
39
  }
39
40
  }
40
41
  },
42
+ extendRequest() {
43
+ return {
44
+ timeout: Math.max(60000, actions_core_1.DEFAULT_REQUEST_TIMEOUT)
45
+ };
46
+ },
41
47
  actions: {
42
48
  syncToS3: syncToS3_1.default
43
49
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destinations/s3/index.ts"],"names":[],"mappings":";;;;;AAEA,0DAAiC;AAEjC,MAAM,WAAW,GAAoC;IACnD,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,oCAAoC;IAEjD,cAAc,EAAE;QACd,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE;YACN,YAAY,EAAE;gBACZ,KAAK,EAAE,cAAc;gBACrB,WAAW,EACT,sGAAsG;gBACxG,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI;aACf;YACD,kBAAkB,EAAE;gBAClB,KAAK,EAAE,iBAAiB;gBACxB,WAAW,EAAE,4DAA4D;gBACzE,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI;aACf;YACD,aAAa,EAAE;gBACb,KAAK,EAAE,iBAAiB;gBACxB,WAAW,EACT,mLAAmL;gBACrL,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI;aACf;YACD,eAAe,EAAE;gBACf,KAAK,EAAE,iBAAiB;gBACxB,WAAW,EAAE,0FAA0F;gBACvG,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,IAAI;aACf;SACF;KACF;IACD,OAAO,EAAE;QACP,QAAQ,EAAR,kBAAQ;KACT;CACF,CAAA;AAED,kBAAe,WAAW,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destinations/s3/index.ts"],"names":[],"mappings":";;;;;AAEA,wDAA+D;AAC/D,0DAAiC;AAEjC,MAAM,WAAW,GAAoC;IACnD,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,oCAAoC;IAEjD,cAAc,EAAE;QACd,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE;YACN,YAAY,EAAE;gBACZ,KAAK,EAAE,cAAc;gBACrB,WAAW,EACT,sGAAsG;gBACxG,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI;aACf;YACD,kBAAkB,EAAE;gBAClB,KAAK,EAAE,iBAAiB;gBACxB,WAAW,EAAE,4DAA4D;gBACzE,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI;aACf;YACD,aAAa,EAAE;gBACb,KAAK,EAAE,iBAAiB;gBACxB,WAAW,EACT,mLAAmL;gBACrL,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI;aACf;YACD,eAAe,EAAE;gBACf,KAAK,EAAE,iBAAiB;gBACxB,WAAW,EAAE,0FAA0F;gBACvG,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,IAAI;aACf;SACF;KACF;IACD,aAAa;QACX,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,KAAM,EAAE,sCAAuB,CAAC;SACnD,CAAA;IACH,CAAC;IACD,OAAO,EAAE;QACP,QAAQ,EAAR,kBAAQ;KACT;CACF,CAAA;AAED,kBAAe,WAAW,CAAA"}
@@ -0,0 +1,8 @@
1
+ export interface Settings {
2
+ ad_account_id: string;
3
+ }
4
+ export interface AudienceSettings {
5
+ customAudienceName?: string;
6
+ description?: string;
7
+ retention_in_days?: number;
8
+ }
@@ -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/snap-audiences/generated-types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import { AudienceDestinationDefinition } from '@segment/actions-core';
2
+ import type { Settings, AudienceSettings } from './generated-types';
3
+ declare const destination: AudienceDestinationDefinition<Settings, AudienceSettings>;
4
+ export default destination;
@@ -0,0 +1,139 @@
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 actions_core_1 = require("@segment/actions-core");
7
+ const syncAudience_1 = __importDefault(require("./syncAudience"));
8
+ const ACCESS_TOKEN_URL = 'https://accounts.snapchat.com/login/oauth2/access_token';
9
+ const destination = {
10
+ name: 'Snap Audiences (Actions)',
11
+ slug: 'actions-snap-audiences',
12
+ mode: 'cloud',
13
+ authentication: {
14
+ scheme: 'oauth2',
15
+ fields: {
16
+ ad_account_id: {
17
+ label: 'Ad Account ID',
18
+ description: 'The ID of the Snap Ad Account',
19
+ required: true,
20
+ type: 'string'
21
+ }
22
+ },
23
+ refreshAccessToken: async (request, { auth }) => {
24
+ const res = await request(ACCESS_TOKEN_URL, {
25
+ method: 'POST',
26
+ body: new URLSearchParams({
27
+ refresh_token: auth.refreshToken,
28
+ client_id: auth.clientId,
29
+ client_secret: auth.clientSecret,
30
+ grant_type: 'refresh_token'
31
+ })
32
+ });
33
+ return { accessToken: res.data.access_token };
34
+ }
35
+ },
36
+ extendRequest({ auth }) {
37
+ return {
38
+ headers: {
39
+ authorization: `Bearer ${auth?.accessToken}`
40
+ }
41
+ };
42
+ },
43
+ presets: [
44
+ {
45
+ name: 'Sync Audience with Email',
46
+ subscribe: 'type = "track" and context.traits.email exists',
47
+ partnerAction: 'syncAudience',
48
+ mapping: {
49
+ schema_type: 'EMAIL_SHA256'
50
+ },
51
+ type: 'automatic'
52
+ },
53
+ {
54
+ name: 'Sync Audience with Phone',
55
+ subscribe: 'type = "track" and properties.phone exists',
56
+ partnerAction: 'syncAudience',
57
+ mapping: {
58
+ schema_type: 'PHONE_SHA256'
59
+ },
60
+ type: 'automatic'
61
+ },
62
+ {
63
+ name: 'Sync Audience with Mobile AD ID',
64
+ subscribe: 'type = "track" and context.device.advertisingId exists',
65
+ partnerAction: 'syncAudience',
66
+ mapping: {
67
+ schema_type: 'MOBILE_AD_ID_SHA256'
68
+ },
69
+ type: 'automatic'
70
+ }
71
+ ],
72
+ audienceFields: {
73
+ customAudienceName: {
74
+ type: 'string',
75
+ label: 'Audience Name',
76
+ description: 'Name for the audience that will be created in Snap. Defaults to the snake_cased Segment audience name if left blank.',
77
+ default: '',
78
+ required: false
79
+ },
80
+ description: {
81
+ type: 'string',
82
+ label: 'Audience Description',
83
+ description: 'Description of for the audience that will be created in Snap.',
84
+ default: '',
85
+ required: false
86
+ },
87
+ retention_in_days: {
88
+ type: 'number',
89
+ label: 'Retention in days',
90
+ description: '# of days to retain audience members. (Default retention is lifetime represented as 9999)',
91
+ default: 9999,
92
+ required: false
93
+ }
94
+ },
95
+ audienceConfig: {
96
+ mode: {
97
+ type: 'synced',
98
+ full_audience_sync: false
99
+ },
100
+ async createAudience(request, createAudienceInput) {
101
+ const audienceName = createAudienceInput.audienceName;
102
+ const ad_account_id = createAudienceInput.settings.ad_account_id;
103
+ const { customAudienceName, description, retention_in_days } = createAudienceInput.audienceSettings || {};
104
+ if (!audienceName) {
105
+ throw new actions_core_1.IntegrationError('Missing audience name value', 'MISSING_REQUIRED_FIELD', 400);
106
+ }
107
+ const response = await request(`https://adsapi.snapchat.com/v1/adaccounts/${ad_account_id}/segments`, {
108
+ method: 'POST',
109
+ json: {
110
+ segments: [
111
+ {
112
+ name: customAudienceName !== '' ? customAudienceName : audienceName,
113
+ source_type: 'FIRST_PARTY',
114
+ ad_account_id,
115
+ description,
116
+ retention_in_days
117
+ }
118
+ ]
119
+ }
120
+ });
121
+ const data = await response.json();
122
+ const snapAudienceId = data.segments[0].segment.id;
123
+ return { externalId: snapAudienceId };
124
+ },
125
+ getAudience: async (request, { externalId }) => {
126
+ const response = await request(`https://adsapi.snapchat.com/v1/segments/${externalId}`, {
127
+ method: 'GET'
128
+ });
129
+ const data = await response.json();
130
+ const snapAudienceId = data.segments[0].segment.id;
131
+ return { externalId: snapAudienceId };
132
+ }
133
+ },
134
+ actions: {
135
+ syncAudience: syncAudience_1.default
136
+ }
137
+ };
138
+ exports.default = destination;
139
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destinations/snap-audiences/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ export interface Payload {
2
+ external_audience_id: string;
3
+ audienceKey: string;
4
+ props: {
5
+ [k: string]: unknown;
6
+ };
7
+ schema_type: string;
8
+ phone?: string;
9
+ email?: string;
10
+ advertising_id?: string;
11
+ enable_batching: boolean;
12
+ }
@@ -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/snap-audiences/syncAudience/generated-types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import type { 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,156 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const actions_core_1 = require("@segment/actions-core");
4
+ const utils_1 = require("./utils");
5
+ const action = {
6
+ title: 'Sync Audience',
7
+ description: 'Sync Segment Engage Audiences to Snap',
8
+ defaultSubscription: 'type = "track"',
9
+ fields: {
10
+ external_audience_id: {
11
+ type: 'string',
12
+ label: 'External Audience ID',
13
+ description: 'Unique Audience Identifier returned by the createAudience() function call.',
14
+ required: true,
15
+ unsafe_hidden: true,
16
+ default: {
17
+ '@path': '$.context.personas.external_audience_id'
18
+ }
19
+ },
20
+ audienceKey: {
21
+ type: 'string',
22
+ label: 'Audience Key',
23
+ description: 'Audience key.',
24
+ required: true,
25
+ unsafe_hidden: true,
26
+ default: {
27
+ '@path': '$.context.personas.computation_key'
28
+ }
29
+ },
30
+ props: {
31
+ label: 'Properties object',
32
+ description: 'A computed object for track events.',
33
+ type: 'object',
34
+ required: true,
35
+ unsafe_hidden: true,
36
+ default: { '@path': '$.properties' }
37
+ },
38
+ schema_type: {
39
+ type: 'string',
40
+ choices: [
41
+ { value: 'MOBILE_AD_ID_SHA256', label: 'Mobile ID' },
42
+ { value: 'PHONE_SHA256', label: 'Phone' },
43
+ { value: 'EMAIL_SHA256', label: 'Email' }
44
+ ],
45
+ label: 'External ID Type',
46
+ required: true,
47
+ description: 'Choose the type of identifier to use when adding users to Snap.',
48
+ default: 'EMAIL_SHA256',
49
+ disabledInputMethods: ['literal', 'variable', 'function', 'freeform', 'enrichment']
50
+ },
51
+ phone: {
52
+ label: 'Phone',
53
+ description: "If using phone as the identifier, an additional setup step is required when connecting the Destination to the Audience. Please ensure that 'phone' is configured as an additional identifier in the Audience settings tab.",
54
+ type: 'string',
55
+ required: false,
56
+ default: { '@path': '$.properties.phone' },
57
+ depends_on: {
58
+ match: 'all',
59
+ conditions: [
60
+ {
61
+ fieldKey: 'schema_type',
62
+ operator: 'is',
63
+ value: 'PHONE_SHA256'
64
+ }
65
+ ]
66
+ }
67
+ },
68
+ email: {
69
+ label: 'Email',
70
+ description: "The user's email address.",
71
+ type: 'string',
72
+ format: 'email',
73
+ required: false,
74
+ default: { '@path': '$.context.traits.email' },
75
+ depends_on: {
76
+ match: 'all',
77
+ conditions: [
78
+ {
79
+ fieldKey: 'schema_type',
80
+ operator: 'is',
81
+ value: 'EMAIL_SHA256'
82
+ }
83
+ ]
84
+ }
85
+ },
86
+ advertising_id: {
87
+ label: 'Mobile Advertising ID',
88
+ description: "If using Mobile Ad ID as the identifier, an additional setup step is required when connecting the Destination to the Audience. Please ensure that 'ios.idfa' and 'android.idfa' are configured as an additional identifier in the Audience settings tab.",
89
+ type: 'string',
90
+ required: false,
91
+ default: {
92
+ '@path': '$.context.device.advertisingId'
93
+ },
94
+ depends_on: {
95
+ match: 'all',
96
+ conditions: [
97
+ {
98
+ fieldKey: 'schema_type',
99
+ operator: 'is',
100
+ value: 'MOBILE_AD_ID_SHA256'
101
+ }
102
+ ]
103
+ }
104
+ },
105
+ enable_batching: {
106
+ label: 'Enable Batching',
107
+ description: 'When enabled, events will be batched before being sent to Snap.',
108
+ type: 'boolean',
109
+ required: true,
110
+ default: true
111
+ }
112
+ },
113
+ perform: async (request, { payload }) => {
114
+ return processPayload(request, [payload]);
115
+ },
116
+ performBatch: async (request, { payload }) => {
117
+ return processPayload(request, payload);
118
+ }
119
+ };
120
+ exports.default = action;
121
+ const processPayload = async (request, payload) => {
122
+ const { external_audience_id, schema_type } = payload[0];
123
+ const { enteredAudience, exitedAudience } = utils_1.sortPayload(payload);
124
+ if (enteredAudience.length === 0 && exitedAudience.length === 0) {
125
+ throw new actions_core_1.PayloadValidationError(`No ${utils_1.validationError(schema_type)} identifier present in payload(s)`);
126
+ }
127
+ const requests = [];
128
+ if (enteredAudience.length > 0) {
129
+ requests.push(request(`https://adsapi.snapchat.com/v1/segments/${external_audience_id}/users`, {
130
+ method: 'post',
131
+ json: {
132
+ users: [
133
+ {
134
+ schema: [`${schema_type}`],
135
+ data: enteredAudience
136
+ }
137
+ ]
138
+ }
139
+ }));
140
+ }
141
+ if (exitedAudience.length > 0) {
142
+ requests.push(request(`https://adsapi.snapchat.com/v1/segments/${external_audience_id}/users`, {
143
+ method: 'delete',
144
+ json: {
145
+ users: [
146
+ {
147
+ schema: [`${schema_type}`],
148
+ data: exitedAudience
149
+ }
150
+ ]
151
+ }
152
+ }));
153
+ }
154
+ return await Promise.all(requests);
155
+ };
156
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/snap-audiences/syncAudience/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { Payload } from './generated-types';
2
+ export declare const sortPayload: (payload: Payload[]) => {
3
+ enteredAudience: string[][];
4
+ exitedAudience: string[][];
5
+ };
6
+ export declare const validationError: (schema_type: string) => string;
7
+ export declare const normalizeAndHash: (identifier: string) => string;
8
+ export declare const normalizeAndHashPhone: (phone: string) => string;