@segment/action-destinations 3.199.0 → 3.199.1-staging.225

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 (107) hide show
  1. package/dist/destinations/engage/sendgrid/sendEmail/SendEmailPerformer.js +11 -11
  2. package/dist/destinations/engage/sendgrid/sendEmail/SendEmailPerformer.js.map +1 -1
  3. package/dist/destinations/engage/sendgrid/sendEmail/actionDefinition.js +6 -0
  4. package/dist/destinations/engage/sendgrid/sendEmail/actionDefinition.js.map +1 -1
  5. package/dist/destinations/engage/twilio/sendMobilePush/PushSender.js +4 -5
  6. package/dist/destinations/engage/twilio/sendMobilePush/PushSender.js.map +1 -1
  7. package/dist/destinations/engage/twilio/sendSms/actionDefinition.js +6 -0
  8. package/dist/destinations/engage/twilio/sendSms/actionDefinition.js.map +1 -1
  9. package/dist/destinations/engage/twilio/utils/PhoneMessageSender.d.ts +1 -0
  10. package/dist/destinations/engage/twilio/utils/PhoneMessageSender.js +17 -2
  11. package/dist/destinations/engage/twilio/utils/PhoneMessageSender.js.map +1 -1
  12. package/dist/destinations/engage/utils/EngageStats.js.map +1 -1
  13. package/dist/destinations/engage/utils/MessageSendPerformer.d.ts +4 -0
  14. package/dist/destinations/engage/utils/MessageSendPerformer.js +21 -1
  15. package/dist/destinations/engage/utils/MessageSendPerformer.js.map +1 -1
  16. package/dist/destinations/engage-messaging-sendgrid/sendEmail.types.d.ts +1 -0
  17. package/dist/destinations/engage-messaging-twilio/sendSms.types.d.ts +1 -0
  18. package/dist/destinations/facebook-conversions-api/addToCart/generated-types.d.ts +1 -1
  19. package/dist/destinations/facebook-conversions-api/custom/generated-types.d.ts +1 -1
  20. package/dist/destinations/facebook-conversions-api/fb-capi-user-data.js +20 -4
  21. package/dist/destinations/facebook-conversions-api/fb-capi-user-data.js.map +1 -1
  22. package/dist/destinations/facebook-conversions-api/initiateCheckout/generated-types.d.ts +1 -1
  23. package/dist/destinations/facebook-conversions-api/pageView/generated-types.d.ts +1 -1
  24. package/dist/destinations/facebook-conversions-api/purchase/generated-types.d.ts +1 -1
  25. package/dist/destinations/facebook-conversions-api/search/generated-types.d.ts +1 -1
  26. package/dist/destinations/facebook-conversions-api/viewContent/generated-types.d.ts +1 -1
  27. package/dist/destinations/hubspot/upsertContact/generated-types.d.ts +1 -0
  28. package/dist/destinations/hubspot/upsertContact/index.d.ts +19 -0
  29. package/dist/destinations/hubspot/upsertContact/index.js +127 -0
  30. package/dist/destinations/hubspot/upsertContact/index.js.map +1 -1
  31. package/dist/destinations/linkedin-audiences/updateAudience/index.js +1 -2
  32. package/dist/destinations/linkedin-audiences/updateAudience/index.js.map +1 -1
  33. package/dist/destinations/listrak/updateEmailContactProfileFields/index.js.map +1 -1
  34. package/dist/destinations/liveramp-audiences/operations.js +25 -13
  35. package/dist/destinations/liveramp-audiences/operations.js.map +1 -1
  36. package/dist/destinations/m3ter/auth.js.map +1 -1
  37. package/dist/destinations/m3ter/submitMeasurements/index.js +3 -3
  38. package/dist/destinations/m3ter/submitMeasurements/index.js.map +1 -1
  39. package/dist/destinations/playerzero-cloud/identifyUser/index.js +3 -3
  40. package/dist/destinations/segment/properties.js +4 -4
  41. package/dist/destinations/segment/properties.js.map +1 -1
  42. package/dist/destinations/segment/sendGroup/index.js +4 -1
  43. package/dist/destinations/segment/sendGroup/index.js.map +1 -1
  44. package/dist/destinations/segment/sendIdentify/index.js +4 -1
  45. package/dist/destinations/segment/sendIdentify/index.js.map +1 -1
  46. package/dist/destinations/segment/sendPage/index.js +4 -1
  47. package/dist/destinations/segment/sendPage/index.js.map +1 -1
  48. package/dist/destinations/segment/sendScreen/index.js +4 -1
  49. package/dist/destinations/segment/sendScreen/index.js.map +1 -1
  50. package/dist/destinations/segment/sendTrack/index.js +4 -1
  51. package/dist/destinations/segment/sendTrack/index.js.map +1 -1
  52. package/dist/destinations/segment-profiles/sendGroup/index.js +4 -1
  53. package/dist/destinations/segment-profiles/sendGroup/index.js.map +1 -1
  54. package/dist/destinations/segment-profiles/sendIdentify/index.js +6 -3
  55. package/dist/destinations/segment-profiles/sendIdentify/index.js.map +1 -1
  56. package/dist/destinations/the-trade-desk-crm/awsClient.d.ts +0 -1
  57. package/dist/destinations/the-trade-desk-crm/awsClient.js +0 -1
  58. package/dist/destinations/the-trade-desk-crm/awsClient.js.map +1 -1
  59. package/dist/destinations/the-trade-desk-crm/functions.js +1 -58
  60. package/dist/destinations/the-trade-desk-crm/functions.js.map +1 -1
  61. package/dist/destinations/the-trade-desk-crm/generated-types.d.ts +3 -0
  62. package/dist/destinations/the-trade-desk-crm/index.d.ts +29 -3
  63. package/dist/destinations/the-trade-desk-crm/index.js +63 -1
  64. package/dist/destinations/the-trade-desk-crm/index.js.map +1 -1
  65. package/dist/destinations/the-trade-desk-crm/properties.d.ts +1 -2
  66. package/dist/destinations/the-trade-desk-crm/properties.js +8 -12
  67. package/dist/destinations/the-trade-desk-crm/properties.js.map +1 -1
  68. package/dist/destinations/the-trade-desk-crm/syncAudience/generated-types.d.ts +1 -2
  69. package/dist/destinations/the-trade-desk-crm/syncAudience/index.js +1 -2
  70. package/dist/destinations/the-trade-desk-crm/syncAudience/index.js.map +1 -1
  71. package/dist/destinations/tiktok-audiences/addUser/generated-types.d.ts +1 -2
  72. package/dist/destinations/tiktok-audiences/addUser/index.d.ts +2 -2
  73. package/dist/destinations/tiktok-audiences/addUser/index.js +12 -39
  74. package/dist/destinations/tiktok-audiences/addUser/index.js.map +1 -1
  75. package/dist/destinations/tiktok-audiences/api/index.d.ts +2 -8
  76. package/dist/destinations/tiktok-audiences/api/index.js +1 -117
  77. package/dist/destinations/tiktok-audiences/api/index.js.map +1 -1
  78. package/dist/destinations/tiktok-audiences/constants.d.ts +2 -0
  79. package/dist/destinations/tiktok-audiences/constants.js +3 -1
  80. package/dist/destinations/tiktok-audiences/constants.js.map +1 -1
  81. package/dist/destinations/tiktok-audiences/functions.d.ts +3 -6
  82. package/dist/destinations/tiktok-audiences/functions.js +10 -16
  83. package/dist/destinations/tiktok-audiences/functions.js.map +1 -1
  84. package/dist/destinations/tiktok-audiences/generated-types.d.ts +4 -1
  85. package/dist/destinations/tiktok-audiences/index.d.ts +3 -3
  86. package/dist/destinations/tiktok-audiences/index.js +84 -12
  87. package/dist/destinations/tiktok-audiences/index.js.map +1 -1
  88. package/dist/destinations/tiktok-audiences/properties.d.ts +1 -0
  89. package/dist/destinations/tiktok-audiences/properties.js +9 -1
  90. package/dist/destinations/tiktok-audiences/properties.js.map +1 -1
  91. package/dist/destinations/tiktok-audiences/removeUser/generated-types.d.ts +1 -2
  92. package/dist/destinations/tiktok-audiences/removeUser/index.d.ts +2 -2
  93. package/dist/destinations/tiktok-audiences/removeUser/index.js +12 -39
  94. package/dist/destinations/tiktok-audiences/removeUser/index.js.map +1 -1
  95. package/package.json +4 -4
  96. package/dist/destinations/liveramp-audiences/audienceEnteredSFTP.types.d.ts +0 -16
  97. package/dist/destinations/liveramp-audiences/audienceEnteredSFTP.types.js +0 -3
  98. package/dist/destinations/liveramp-audiences/audienceEnteredSFTP.types.js.map +0 -1
  99. package/dist/destinations/tiktok-audiences/api/api.test.d.ts +0 -1
  100. package/dist/destinations/tiktok-audiences/api/api.test.js +0 -185
  101. package/dist/destinations/tiktok-audiences/api/api.test.js.map +0 -1
  102. package/dist/destinations/tiktok-audiences/createAudience/generated-types.d.ts +0 -5
  103. package/dist/destinations/tiktok-audiences/createAudience/generated-types.js +0 -3
  104. package/dist/destinations/tiktok-audiences/createAudience/generated-types.js.map +0 -1
  105. package/dist/destinations/tiktok-audiences/createAudience/index.d.ts +0 -5
  106. package/dist/destinations/tiktok-audiences/createAudience/index.js +0 -37
  107. package/dist/destinations/tiktok-audiences/createAudience/index.js.map +0 -1
@@ -15,11 +15,11 @@ const action = {
15
15
  group_id: segment_properties_1.group_id,
16
16
  traits: segment_properties_1.traits
17
17
  },
18
- perform: (request, { payload, settings }) => {
18
+ perform: (request, { payload, settings, features }) => {
19
19
  if (!payload.anonymous_id && !payload.user_id) {
20
20
  throw errors_1.MissingUserOrAnonymousIdThrowableError;
21
21
  }
22
- const groupPayload = {
22
+ const identityPayload = {
23
23
  userId: payload?.user_id,
24
24
  anonymousId: payload?.anonymous_id,
25
25
  groupId: payload?.group_id,
@@ -33,10 +33,13 @@ const action = {
33
33
  if (!settings.endpoint || !(settings.endpoint in properties_1.SEGMENT_ENDPOINTS)) {
34
34
  throw errors_1.InvalidEndpointSelectedThrowableError;
35
35
  }
36
+ if (features && features['actions-segment-profiles-tapi-internal']) {
37
+ return { batch: [identityPayload] };
38
+ }
36
39
  const selectedSegmentEndpoint = properties_1.SEGMENT_ENDPOINTS[settings.endpoint].url;
37
40
  return request(`${selectedSegmentEndpoint}/identify`, {
38
41
  method: 'POST',
39
- json: groupPayload,
42
+ json: identityPayload,
40
43
  headers: {
41
44
  authorization: helperFunctions_1.generateSegmentAPIAuthHeaders(payload.engage_space)
42
45
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/segment-profiles/sendIdentify/index.ts"],"names":[],"mappings":";;AAGA,8DAA6F;AAC7F,wDAAkE;AAClE,8CAAiD;AACjD,sCAAyG;AAEzG,MAAM,MAAM,GAAwC;IAClD,KAAK,EAAE,eAAe;IACtB,WAAW,EACT,gIAAgI;IAClI,mBAAmB,EAAE,mBAAmB;IACxC,MAAM,EAAE;QACN,YAAY,EAAZ,iCAAY;QACZ,OAAO,EAAP,4BAAO;QACP,YAAY,EAAZ,iCAAY;QACZ,QAAQ,EAAR,6BAAQ;QACR,MAAM,EAAN,2BAAM;KACP;IACD,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC1C,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;YAC7C,MAAM,+CAAsC,CAAA;SAC7C;QACD,MAAM,YAAY,GAAW;YAC3B,MAAM,EAAE,OAAO,EAAE,OAAO;YACxB,WAAW,EAAE,OAAO,EAAE,YAAY;YAClC,OAAO,EAAE,OAAO,EAAE,QAAQ;YAC1B,MAAM,EAAE;gBACN,GAAG,OAAO,EAAE,MAAM;aACnB;YACD,YAAY,EAAE;gBAGZ,GAAG,EAAE,KAAK;aACX;SACF,CAAA;QAGD,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,IAAI,8BAAiB,CAAC,EAAE;YACnE,MAAM,8CAAqC,CAAA;SAC5C;QAED,MAAM,uBAAuB,GAAG,8BAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAA;QACxE,OAAO,OAAO,CAAC,GAAG,uBAAuB,WAAW,EAAE;YACpD,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE;gBACP,aAAa,EAAE,+CAA6B,CAAC,OAAO,CAAC,YAAY,CAAC;aACnE;SACF,CAAC,CAAA;IACJ,CAAC;CACF,CAAA;AAED,kBAAe,MAAM,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/segment-profiles/sendIdentify/index.ts"],"names":[],"mappings":";;AAGA,8DAA6F;AAC7F,wDAAkE;AAClE,8CAAiD;AACjD,sCAAyG;AAEzG,MAAM,MAAM,GAAwC;IAClD,KAAK,EAAE,eAAe;IACtB,WAAW,EACT,gIAAgI;IAClI,mBAAmB,EAAE,mBAAmB;IACxC,MAAM,EAAE;QACN,YAAY,EAAZ,iCAAY;QACZ,OAAO,EAAP,4BAAO;QACP,YAAY,EAAZ,iCAAY;QACZ,QAAQ,EAAR,6BAAQ;QACR,MAAM,EAAN,2BAAM;KACP;IACD,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE;QACpD,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;YAC7C,MAAM,+CAAsC,CAAA;SAC7C;QACD,MAAM,eAAe,GAAW;YAC9B,MAAM,EAAE,OAAO,EAAE,OAAO;YACxB,WAAW,EAAE,OAAO,EAAE,YAAY;YAClC,OAAO,EAAE,OAAO,EAAE,QAAQ;YAC1B,MAAM,EAAE;gBACN,GAAG,OAAO,EAAE,MAAM;aACnB;YACD,YAAY,EAAE;gBAGZ,GAAG,EAAE,KAAK;aACX;SACF,CAAA;QAGD,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,IAAI,8BAAiB,CAAC,EAAE;YACnE,MAAM,8CAAqC,CAAA;SAC5C;QAED,IAAI,QAAQ,IAAI,QAAQ,CAAC,wCAAwC,CAAC,EAAE;YAClE,OAAO,EAAE,KAAK,EAAE,CAAC,eAAe,CAAC,EAAE,CAAA;SACpC;QAED,MAAM,uBAAuB,GAAG,8BAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAA;QACxE,OAAO,OAAO,CAAC,GAAG,uBAAuB,WAAW,EAAE;YACpD,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE;gBACP,aAAa,EAAE,+CAA6B,CAAC,OAAO,CAAC,YAAY,CAAC;aACnE;SACF,CAAC,CAAA;IACJ,CAAC;CACF,CAAA;AAED,kBAAe,MAAM,CAAA"}
@@ -3,7 +3,6 @@ interface SendToAWSRequest {
3
3
  TDDAuthToken: string;
4
4
  AdvertiserId: string;
5
5
  CrmDataId: string;
6
- SegmentName: string;
7
6
  UsersFormatted: string;
8
7
  DropOptions: {
9
8
  PiiType: string;
@@ -19,7 +19,6 @@ const sendEventToAWS = async (request, input) => {
19
19
  const metadata = JSON.stringify({
20
20
  TDDAuthToken: input.TDDAuthToken,
21
21
  AdvertiserId: input.AdvertiserId,
22
- SegmentName: input.SegmentName,
23
22
  CrmDataId: input.CrmDataId,
24
23
  DropOptions: input.DropOptions,
25
24
  RequeueCount: 0
@@ -1 +1 @@
1
- {"version":3,"file":"awsClient.js","sourceRoot":"","sources":["../../../src/destinations/the-trade-desk-crm/awsClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"awsClient.js","sourceRoot":"","sources":["../../../src/destinations/the-trade-desk-crm/awsClient.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,7 @@ async function processPayload(input) {
12
12
  if (input.payloads.length < TTD_MIN_RECORD_COUNT) {
13
13
  throw new actions_core_1.PayloadValidationError(`received payload count below The Trade Desk's ingestion limits. Expected: >=${TTD_MIN_RECORD_COUNT} actual: ${input.payloads.length}`);
14
14
  }
15
- const crmID = await getCRMInfo(input.request, input.settings, input.payloads[0]);
15
+ const crmID = input.payloads[0].external_id;
16
16
  const usersFormatted = extractUsers(input.payloads);
17
17
  if (input.features && input.features[exports.TTD_LEGACY_FLOW_FLAG_NAME]) {
18
18
  const dropEndpoint = await getCRMDataDropEndpoint(input.request, input.settings, input.payloads[0], crmID);
@@ -23,7 +23,6 @@ async function processPayload(input) {
23
23
  TDDAuthToken: input.settings.auth_token,
24
24
  AdvertiserId: input.settings.advertiser_id,
25
25
  CrmDataId: crmID,
26
- SegmentName: input.payloads[0].name,
27
26
  UsersFormatted: usersFormatted,
28
27
  DropOptions: {
29
28
  PiiType: input.payloads[0].pii_type,
@@ -33,62 +32,6 @@ async function processPayload(input) {
33
32
  }
34
33
  }
35
34
  exports.processPayload = processPayload;
36
- async function getAllDataSegments(request, settings) {
37
- const allDataSegments = [];
38
- let response = await request(`${BASE_URL}/crmdata/segment/${settings.advertiser_id}`, {
39
- method: 'GET',
40
- headers: {
41
- 'Content-Type': 'application/json',
42
- 'TTD-Auth': settings.auth_token
43
- }
44
- });
45
- let segments = response.data.Segments;
46
- let pagingToken = response.data.PagingToken;
47
- while (segments.length > 0) {
48
- allDataSegments.push(...segments);
49
- response = await request(`${BASE_URL}/crmdata/segment/${settings.advertiser_id}?pagingToken=${pagingToken}`, {
50
- method: 'GET',
51
- headers: {
52
- 'Content-Type': 'application/json',
53
- 'TTD-Auth': settings.auth_token
54
- }
55
- });
56
- segments = response.data.Segments;
57
- pagingToken = response.data.PagingToken;
58
- }
59
- return allDataSegments;
60
- }
61
- async function getCRMInfo(request, settings, payload) {
62
- let segmentId;
63
- const segments = await getAllDataSegments(request, settings);
64
- const segmentExists = segments.filter(function (segment) {
65
- if (segment.SegmentName == payload.name) {
66
- return segment;
67
- }
68
- });
69
- if (segmentExists.length > 1) {
70
- throw new actions_core_1.IntegrationError('Multiple audiences found with the same name', 'INVALID_SETTINGS', 400);
71
- }
72
- else if (segmentExists.length == 1) {
73
- segmentId = segmentExists[0].CrmDataId;
74
- }
75
- else {
76
- const response = await request(`${BASE_URL}/crmdata/segment`, {
77
- method: 'POST',
78
- headers: {
79
- 'Content-Type': 'application/json',
80
- 'TTD-Auth': settings.auth_token
81
- },
82
- json: {
83
- AdvertiserId: settings.advertiser_id,
84
- SegmentName: payload.name,
85
- Region: payload.region
86
- }
87
- });
88
- segmentId = response.data.CrmDataId;
89
- }
90
- return segmentId;
91
- }
92
35
  function extractUsers(payloads) {
93
36
  let users = '';
94
37
  payloads.forEach((payload) => {
@@ -1 +1 @@
1
- {"version":3,"file":"functions.js","sourceRoot":"","sources":["../../../src/destinations/the-trade-desk-crm/functions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"functions.js","sourceRoot":"","sources":["../../../src/destinations/the-trade-desk-crm/functions.ts"],"names":[],"mappings":"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"}
@@ -4,3 +4,6 @@ export interface Settings {
4
4
  __segment_internal_engage_force_full_sync: boolean;
5
5
  __segment_internal_engage_batch_sync: boolean;
6
6
  }
7
+ export interface AudienceSettings {
8
+ region?: string;
9
+ }
@@ -1,4 +1,30 @@
1
- import type { DestinationDefinition } from '@segment/actions-core';
2
- import type { Settings } from './generated-types';
3
- declare const destination: DestinationDefinition<Settings>;
1
+ import type { AudienceDestinationDefinition } from '@segment/actions-core';
2
+ import type { Settings, AudienceSettings } from './generated-types';
3
+ export interface CREATE_API_RESPONSE {
4
+ CrmDataId: string;
5
+ FirstPartyDataId: number;
6
+ }
7
+ export interface GET_API_RESPONSE {
8
+ AdvertiserId: string;
9
+ CrmDataId: string;
10
+ SegmentName: number;
11
+ }
12
+ export interface Segments {
13
+ CrmDataId: string;
14
+ SegmentName: string;
15
+ Region: string;
16
+ FirstPartyDataId: number;
17
+ }
18
+ export interface GET_CRMS_API_RESPONSE {
19
+ Segments: [
20
+ {
21
+ CrmDataId: string;
22
+ SegmentName: string;
23
+ Region: string;
24
+ FirstPartyDataId: number;
25
+ }
26
+ ];
27
+ PagingToken: string;
28
+ }
29
+ declare const destination: AudienceDestinationDefinition<Settings, AudienceSettings>;
4
30
  export default destination;
@@ -3,9 +3,12 @@ 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 syncAudience_1 = __importDefault(require("./syncAudience"));
8
+ const API_VERSION = 'v3';
9
+ const BASE_URL = `https://api.thetradedesk.com/${API_VERSION}`;
7
10
  const destination = {
8
- name: 'The Trade Desk CRM',
11
+ name: 'The Trade Desk Crm',
9
12
  slug: 'actions-the-trade-desk-crm',
10
13
  mode: 'cloud',
11
14
  authentication: {
@@ -39,6 +42,65 @@ const destination = {
39
42
  }
40
43
  }
41
44
  },
45
+ audienceFields: {
46
+ region: {
47
+ type: 'string',
48
+ label: 'Region',
49
+ description: 'Region of your audience.'
50
+ }
51
+ },
52
+ audienceConfig: {
53
+ mode: {
54
+ type: 'synced',
55
+ full_audience_sync: false
56
+ },
57
+ async createAudience(request, createAudienceInput) {
58
+ const audienceName = createAudienceInput.audienceName;
59
+ const advertiserId = createAudienceInput.settings.advertiser_id;
60
+ const authToken = createAudienceInput.settings.auth_token;
61
+ const region = createAudienceInput.audienceSettings?.region;
62
+ if (audienceName?.length == 0) {
63
+ throw new actions_core_1.IntegrationError('Missing audience name value', 'MISSING_REQUIRED_FIELD', 400);
64
+ }
65
+ const response = await request(`${BASE_URL}/crmdata/segment`, {
66
+ method: 'POST',
67
+ headers: {
68
+ 'Content-Type': 'application/json',
69
+ 'TTD-Auth': authToken
70
+ },
71
+ json: {
72
+ AdvertiserId: advertiserId,
73
+ SegmentName: audienceName,
74
+ Region: region
75
+ }
76
+ });
77
+ return {
78
+ externalId: response.data.CrmDataId
79
+ };
80
+ },
81
+ async getAudience(request, getAudienceInput) {
82
+ const crmDataId = getAudienceInput.externalId;
83
+ const advertiserId = getAudienceInput.settings.advertiser_id;
84
+ const authToken = getAudienceInput.settings.auth_token;
85
+ const response = await request(`${BASE_URL}/crmdata/segment/${advertiserId}/${crmDataId}`, {
86
+ method: 'GET',
87
+ headers: {
88
+ 'Content-Type': 'application/json',
89
+ 'TTD-Auth': authToken
90
+ }
91
+ });
92
+ if (response.status !== 200) {
93
+ throw new actions_core_1.IntegrationError('Invalid response from get audience request', 'INVALID_RESPONSE', 400);
94
+ }
95
+ const externalId = response.data.CrmDataId;
96
+ if (externalId !== getAudienceInput.externalId) {
97
+ throw new actions_core_1.IntegrationError("Unable to verify ownership over audience. Segment Audience ID doesn't match The Trade Desk's Audience ID.", 'INVALID_REQUEST_DATA', 400);
98
+ }
99
+ return {
100
+ externalId: externalId
101
+ };
102
+ }
103
+ },
42
104
  actions: {
43
105
  syncAudience: syncAudience_1.default
44
106
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destinations/the-trade-desk-crm/index.ts"],"names":[],"mappings":";;;;;AAGA,kEAAyC;AAEzC,MAAM,WAAW,GAAoC;IACnD,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,4BAA4B;IAClC,IAAI,EAAE,OAAO;IAEb,cAAc,EAAE;QACd,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE;YACN,UAAU,EAAE;gBACV,KAAK,EAAE,sBAAsB;gBAC7B,WAAW,EACT,yRAAyR;gBAC3R,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI;aACf;YACD,aAAa,EAAE;gBACb,KAAK,EAAE,eAAe;gBACtB,WAAW,EACT,uGAAuG;gBACzG,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI;aACf;YACD,yCAAyC,EAAE;gBACzC,KAAK,EAAE,iBAAiB;gBACxB,WAAW,EAAE,iBAAiB;gBAC9B,IAAI,EAAE,SAAS;gBACf,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,IAAI;aACd;YACD,oCAAoC,EAAE;gBACpC,KAAK,EAAE,6BAA6B;gBACpC,WAAW,EAAE,6BAA6B;gBAC1C,IAAI,EAAE,SAAS;gBACf,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,IAAI;aACd;SACF;KACF;IACD,OAAO,EAAE;QACP,YAAY,EAAZ,sBAAY;KACb;CACF,CAAA;AAED,kBAAe,WAAW,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destinations/the-trade-desk-crm/index.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  import { InputField } from '@segment/actions-core/destination-kit/types';
2
- export declare const name: InputField;
3
- export declare const region: InputField;
2
+ export declare const external_id: InputField;
4
3
  export declare const pii_type: InputField;
5
4
  export declare const email: InputField;
6
5
  export declare const event_name: InputField;
@@ -1,18 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.merge_mode = exports.batch_size = exports.enable_batching = exports.event_name = exports.email = exports.pii_type = exports.region = exports.name = void 0;
4
- exports.name = {
5
- label: 'Segment Name',
6
- description: 'The name of The Trade Desk CRM Data Segment you want to sync. If the audience name does not exist Segment will create one.',
7
- type: 'string',
8
- required: true
9
- };
10
- exports.region = {
11
- label: 'Region',
12
- description: 'The geographical region of the CRM data segment based on the origin of PII.',
13
- type: 'string',
3
+ exports.merge_mode = exports.batch_size = exports.enable_batching = exports.event_name = exports.email = exports.pii_type = exports.external_id = void 0;
4
+ exports.external_id = {
5
+ label: 'External Audience ID',
6
+ description: 'The CRM Data ID for The Trade Desk Segment. ',
7
+ type: 'hidden',
14
8
  required: true,
15
- default: 'US'
9
+ default: {
10
+ '@path': '$.context.personas.external_audience_id'
11
+ }
16
12
  };
17
13
  exports.pii_type = {
18
14
  label: 'PII Type',
@@ -1 +1 @@
1
- {"version":3,"file":"properties.js","sourceRoot":"","sources":["../../../src/destinations/the-trade-desk-crm/properties.ts"],"names":[],"mappings":";;;AAEa,QAAA,IAAI,GAAe;IAC9B,KAAK,EAAE,cAAc;IACrB,WAAW,EACT,4HAA4H;IAC9H,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,IAAI;CACf,CAAA;AAEY,QAAA,MAAM,GAAe;IAChC,KAAK,EAAE,QAAQ;IACf,WAAW,EAAE,6EAA6E;IAC1F,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,IAAI;CACd,CAAA;AAEY,QAAA,QAAQ,GAAe;IAClC,KAAK,EAAE,UAAU;IACjB,WAAW,EAAE,wEAAwE;IACrF,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE;QACP,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;QAClC,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,uBAAuB,EAAE;KAC1D;IACD,QAAQ,EAAE,IAAI;CACf,CAAA;AAEY,QAAA,KAAK,GAAe;IAC/B,KAAK,EAAE,YAAY;IACnB,WAAW,EAAE,qDAAqD;IAClE,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE;QACP,OAAO,EAAE,wBAAwB;KAClC;CACF,CAAA;AAEY,QAAA,UAAU,GAAe;IACpC,KAAK,EAAE,YAAY;IACnB,WAAW,EAAE,wCAAwC;IACrD,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE;QACP,OAAO,EAAE,SAAS;KACnB;CACF,CAAA;AAEY,QAAA,eAAe,GAAe;IACzC,KAAK,EAAE,iBAAiB;IACxB,WAAW,EAAE,4DAA4D;IACzE,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,IAAI;CACd,CAAA;AAEY,QAAA,UAAU,GAAe;IACpC,KAAK,EAAE,YAAY;IACnB,WAAW,EAAE,qFAAqF;IAClG,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,KAAK;IACf,OAAO,EAAE,MAAM;CAChB,CAAA;AAEY,QAAA,UAAU,GAAe;IACpC,KAAK,EAAE,YAAY;IACnB,WAAW,EAAE,wEAAwE;IACrF,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE;QACP;YACE,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,KAAK;SACb;QACD;YACE,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,SAAS;SACjB;KACF;IACD,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,KAAK;CAChB,CAAA"}
1
+ {"version":3,"file":"properties.js","sourceRoot":"","sources":["../../../src/destinations/the-trade-desk-crm/properties.ts"],"names":[],"mappings":";;;AAEa,QAAA,WAAW,GAAe;IACrC,KAAK,EAAE,sBAAsB;IAC7B,WAAW,EAAE,8CAA8C;IAC3D,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE;QACP,OAAO,EAAE,yCAAyC;KACnD;CACF,CAAA;AAEY,QAAA,QAAQ,GAAe;IAClC,KAAK,EAAE,UAAU;IACjB,WAAW,EAAE,wEAAwE;IACrF,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE;QACP,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;QAClC,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,uBAAuB,EAAE;KAC1D;IACD,QAAQ,EAAE,IAAI;CACf,CAAA;AAEY,QAAA,KAAK,GAAe;IAC/B,KAAK,EAAE,YAAY;IACnB,WAAW,EAAE,qDAAqD;IAClE,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE;QACP,OAAO,EAAE,wBAAwB;KAClC;CACF,CAAA;AAEY,QAAA,UAAU,GAAe;IACpC,KAAK,EAAE,YAAY;IACnB,WAAW,EAAE,wCAAwC;IACrD,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE;QACP,OAAO,EAAE,SAAS;KACnB;CACF,CAAA;AAEY,QAAA,eAAe,GAAe;IACzC,KAAK,EAAE,iBAAiB;IACxB,WAAW,EAAE,4DAA4D;IACzE,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,IAAI;CACd,CAAA;AAEY,QAAA,UAAU,GAAe;IACpC,KAAK,EAAE,YAAY;IACnB,WAAW,EAAE,qFAAqF;IAClG,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,KAAK;IACf,OAAO,EAAE,MAAM;CAChB,CAAA;AAEY,QAAA,UAAU,GAAe;IACpC,KAAK,EAAE,YAAY;IACnB,WAAW,EAAE,wEAAwE;IACrF,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE;QACP;YACE,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,KAAK;SACb;QACD;YACE,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,SAAS;SACjB;KACF;IACD,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,KAAK;CAChB,CAAA"}
@@ -1,6 +1,5 @@
1
1
  export interface Payload {
2
- name: string;
3
- region: string;
2
+ external_id: string;
4
3
  pii_type: string;
5
4
  email?: string;
6
5
  merge_mode?: string;
@@ -7,8 +7,7 @@ const action = {
7
7
  description: 'Drop users into the given CRM Data Segment',
8
8
  defaultSubscription: 'event = "Audience Entered"',
9
9
  fields: {
10
- name: { ...properties_1.name },
11
- region: { ...properties_1.region },
10
+ external_id: { ...properties_1.external_id },
12
11
  pii_type: { ...properties_1.pii_type },
13
12
  email: { ...properties_1.email },
14
13
  merge_mode: { ...properties_1.merge_mode },
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/the-trade-desk-crm/syncAudience/index.ts"],"names":[],"mappings":";;AAGA,8CAAkH;AAClH,4CAA6C;AAE7C,MAAM,MAAM,GAAwC;IAClD,KAAK,EAAE,mCAAmC;IAC1C,WAAW,EAAE,4CAA4C;IACzD,mBAAmB,EAAE,4BAA4B;IACjD,MAAM,EAAE;QACN,IAAI,EAAE,EAAE,GAAG,iBAAI,EAAE;QACjB,MAAM,EAAE,EAAE,GAAG,mBAAM,EAAE;QACrB,QAAQ,EAAE,EAAE,GAAG,qBAAQ,EAAE;QACzB,KAAK,EAAE,EAAE,GAAG,kBAAK,EAAE;QACnB,UAAU,EAAE,EAAE,GAAG,uBAAU,EAAE;QAC7B,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,QAAQ,EAAE,EAAE,EAAE;QAC1D,OAAO,0BAAc,CAAC;YACpB,OAAO;YACP,QAAQ;YACR,QAAQ,EAAE,CAAC,OAAO,CAAC;YACnB,QAAQ;SACT,CAAC,CAAA;IACJ,CAAC;IACD,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC/D,OAAO,0BAAc,CAAC;YACpB,OAAO;YACP,QAAQ;YACR,QAAQ,EAAE,OAAO;YACjB,QAAQ;SACT,CAAC,CAAA;IACJ,CAAC;CACF,CAAA;AAED,kBAAe,MAAM,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/the-trade-desk-crm/syncAudience/index.ts"],"names":[],"mappings":";;AAGA,8CAAiH;AACjH,4CAA6C;AAE7C,MAAM,MAAM,GAAwC;IAClD,KAAK,EAAE,mCAAmC;IAC1C,WAAW,EAAE,4CAA4C;IACzD,mBAAmB,EAAE,4BAA4B;IACjD,MAAM,EAAE;QACN,WAAW,EAAE,EAAE,GAAG,wBAAW,EAAE;QAC/B,QAAQ,EAAE,EAAE,GAAG,qBAAQ,EAAE;QACzB,KAAK,EAAE,EAAE,GAAG,kBAAK,EAAE;QACnB,UAAU,EAAE,EAAE,GAAG,uBAAU,EAAE;QAC7B,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,QAAQ,EAAE,EAAE,EAAE;QAC1D,OAAO,0BAAc,CAAC;YACpB,OAAO;YACP,QAAQ;YACR,QAAQ,EAAE,CAAC,OAAO,CAAC;YACnB,QAAQ;SACT,CAAC,CAAA;IACJ,CAAC;IACD,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC/D,OAAO,0BAAc,CAAC;YACpB,OAAO;YACP,QAAQ;YACR,QAAQ,EAAE,OAAO;YACjB,QAAQ;SACT,CAAC,CAAA;IACJ,CAAC;CACF,CAAA;AAED,kBAAe,MAAM,CAAA"}
@@ -1,10 +1,9 @@
1
1
  export interface Payload {
2
- selected_advertiser_id: string;
3
- audience_id: string;
4
2
  email?: string;
5
3
  advertising_id?: string;
6
4
  send_email?: boolean;
7
5
  send_advertising_id?: boolean;
8
6
  event_name?: string;
9
7
  enable_batching?: boolean;
8
+ external_audience_id?: string;
10
9
  }
@@ -1,5 +1,5 @@
1
1
  import type { ActionDefinition } from '@segment/actions-core';
2
- import type { Settings } from '../generated-types';
2
+ import type { Settings, AudienceSettings } from '../generated-types';
3
3
  import type { Payload } from './generated-types';
4
- declare const action: ActionDefinition<Settings, Payload>;
4
+ declare const action: ActionDefinition<Settings, Payload, AudienceSettings>;
5
5
  export default action;
@@ -2,58 +2,31 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const functions_1 = require("../functions");
4
4
  const properties_1 = require("../properties");
5
- const api_1 = require("../api");
5
+ const actions_core_1 = require("@segment/actions-core");
6
6
  const action = {
7
7
  title: 'Add Users',
8
8
  description: 'Add contacts from an Engage Audience to a TikTok Audience Segment.',
9
9
  defaultSubscription: 'event = "Audience Entered"',
10
10
  fields: {
11
- selected_advertiser_id: { ...properties_1.selected_advertiser_id },
12
- audience_id: { ...properties_1.audience_id },
13
11
  email: { ...properties_1.email },
14
12
  advertising_id: { ...properties_1.advertising_id },
15
13
  send_email: { ...properties_1.send_email },
16
14
  send_advertising_id: { ...properties_1.send_advertising_id },
17
15
  event_name: { ...properties_1.event_name },
18
- enable_batching: { ...properties_1.enable_batching }
16
+ enable_batching: { ...properties_1.enable_batching },
17
+ external_audience_id: { ...properties_1.external_audience_id }
19
18
  },
20
- dynamicFields: {
21
- selected_advertiser_id: async (request, { settings }) => {
22
- try {
23
- const tiktok = new api_1.TikTokAudiences(request);
24
- return tiktok.fetchAdvertisers(settings.advertiser_ids);
25
- }
26
- catch (err) {
27
- return {
28
- choices: [],
29
- error: {
30
- message: JSON.stringify(err),
31
- code: '500'
32
- }
33
- };
34
- }
35
- },
36
- audience_id: async (request, { payload }) => {
37
- try {
38
- const tiktok = new api_1.TikTokAudiences(request);
39
- return await tiktok.fetchAudiences(payload.selected_advertiser_id);
40
- }
41
- catch (err) {
42
- return {
43
- choices: [],
44
- error: {
45
- message: JSON.stringify(err),
46
- code: '500'
47
- }
48
- };
49
- }
19
+ perform: async (request, { audienceSettings, payload }) => {
20
+ if (!audienceSettings) {
21
+ throw new actions_core_1.IntegrationError('Bad Request: no audienceSettings found.', 'INVALID_REQUEST_DATA', 400);
50
22
  }
23
+ return functions_1.processPayload(request, audienceSettings, [payload], 'add');
51
24
  },
52
- perform: async (request, { settings, payload }) => {
53
- return functions_1.processPayload(request, settings, [payload], 'add');
54
- },
55
- performBatch: async (request, { settings, payload }) => {
56
- return functions_1.processPayload(request, settings, payload, 'add');
25
+ performBatch: async (request, { payload, audienceSettings }) => {
26
+ if (!audienceSettings) {
27
+ throw new actions_core_1.IntegrationError('Bad Request: no audienceSettings found.', 'INVALID_REQUEST_DATA', 400);
28
+ }
29
+ return functions_1.processPayload(request, audienceSettings, payload, 'add');
57
30
  }
58
31
  };
59
32
  exports.default = action;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/tiktok-audiences/addUser/index.ts"],"names":[],"mappings":";;AAGA,4CAA6C;AAC7C,8CASsB;AACtB,gCAAwC;AAExC,MAAM,MAAM,GAAwC;IAClD,KAAK,EAAE,WAAW;IAClB,WAAW,EAAE,oEAAoE;IACjF,mBAAmB,EAAE,4BAA4B;IACjD,MAAM,EAAE;QACN,sBAAsB,EAAE,EAAE,GAAG,mCAAsB,EAAE;QACrD,WAAW,EAAE,EAAE,GAAG,wBAAW,EAAE;QAC/B,KAAK,EAAE,EAAE,GAAG,kBAAK,EAAE;QACnB,cAAc,EAAE,EAAE,GAAG,2BAAc,EAAE;QACrC,UAAU,EAAE,EAAE,GAAG,uBAAU,EAAE;QAC7B,mBAAmB,EAAE,EAAE,GAAG,gCAAmB,EAAE;QAC/C,UAAU,EAAE,EAAE,GAAG,uBAAU,EAAE;QAC7B,eAAe,EAAE,EAAE,GAAG,4BAAe,EAAE;KACxC;IACD,aAAa,EAAE;QACb,sBAAsB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;YACtD,IAAI;gBACF,MAAM,MAAM,GAAG,IAAI,qBAAe,CAAC,OAAO,CAAC,CAAA;gBAE3C,OAAO,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAA;aACxD;YAAC,OAAO,GAAG,EAAE;gBACZ,OAAO;oBACL,OAAO,EAAE,EAAE;oBACX,KAAK,EAAE;wBACL,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;wBAC5B,IAAI,EAAE,KAAK;qBACZ;iBACF,CAAA;aACF;QACH,CAAC;QACD,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;YAC1C,IAAI;gBACF,MAAM,MAAM,GAAG,IAAI,qBAAe,CAAC,OAAO,CAAC,CAAA;gBAE3C,OAAO,MAAM,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAA;aACnE;YAAC,OAAO,GAAG,EAAE;gBACZ,OAAO;oBACL,OAAO,EAAE,EAAE;oBACX,KAAK,EAAE;wBACL,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;wBAC5B,IAAI,EAAE,KAAK;qBACZ;iBACF,CAAA;aACF;QACH,CAAC;KACF;IACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;QAChD,OAAO,0BAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAA;IAC5D,CAAC;IACD,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;QACrD,OAAO,0BAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;IAC1D,CAAC;CACF,CAAA;AAED,kBAAe,MAAM,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/tiktok-audiences/addUser/index.ts"],"names":[],"mappings":";;AAGA,4CAA6C;AAC7C,8CAQsB;AACtB,wDAAwD;AAExD,MAAM,MAAM,GAA0D;IACpE,KAAK,EAAE,WAAW;IAClB,WAAW,EAAE,oEAAoE;IACjF,mBAAmB,EAAE,4BAA4B;IACjD,MAAM,EAAE;QACN,KAAK,EAAE,EAAE,GAAG,kBAAK,EAAE;QACnB,cAAc,EAAE,EAAE,GAAG,2BAAc,EAAE;QACrC,UAAU,EAAE,EAAE,GAAG,uBAAU,EAAE;QAC7B,mBAAmB,EAAE,EAAE,GAAG,gCAAmB,EAAE;QAC/C,UAAU,EAAE,EAAE,GAAG,uBAAU,EAAE;QAC7B,eAAe,EAAE,EAAE,GAAG,4BAAe,EAAE;QACvC,oBAAoB,EAAE,EAAE,GAAG,iCAAoB,EAAE;KAClD;IACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,gBAAgB,EAAE,OAAO,EAAE,EAAE,EAAE;QACxD,IAAI,CAAC,gBAAgB,EAAE;YACrB,MAAM,IAAI,+BAAgB,CAAC,yCAAyC,EAAE,sBAAsB,EAAE,GAAG,CAAC,CAAA;SACnG;QAED,OAAO,0BAAc,CAAC,OAAO,EAAE,gBAAgB,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAA;IACpE,CAAC;IACD,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE,EAAE,EAAE;QAC7D,IAAI,CAAC,gBAAgB,EAAE;YACrB,MAAM,IAAI,+BAAgB,CAAC,yCAAyC,EAAE,sBAAsB,EAAE,GAAG,CAAC,CAAA;SACnG;QACD,OAAO,0BAAc,CAAC,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;IAClE,CAAC;CACF,CAAA;AAED,kBAAe,MAAM,CAAA"}
@@ -1,14 +1,8 @@
1
1
  import type { RequestClient, ModifiedResponse } from '@segment/actions-core';
2
- import type { APIResponse, CreateAudienceAPIResponse } from '../types';
3
- import { DynamicFieldResponse } from '@segment/actions-core';
4
- import type { Payload } from '../createAudience/generated-types';
2
+ import type { APIResponse } from '../types';
5
3
  export declare class TikTokAudiences {
6
4
  request: RequestClient;
7
- selectedAdvertiserID?: string;
8
- constructor(request: RequestClient, selectedAdvertiserID?: string);
5
+ constructor(request: RequestClient);
9
6
  getUserInfo(): Promise<ModifiedResponse<APIResponse>>;
10
- fetchAudiences: (selected_advertiser_id: string) => Promise<DynamicFieldResponse>;
11
- createAudience(payload: Payload): Promise<ModifiedResponse<CreateAudienceAPIResponse>>;
12
7
  batchUpdate(elements: {}): Promise<ModifiedResponse>;
13
- fetchAdvertisers: (advertiser_ids: string[]) => Promise<DynamicFieldResponse>;
14
8
  }
@@ -3,130 +3,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TikTokAudiences = void 0;
4
4
  const constants_1 = require("../constants");
5
5
  class TikTokAudiences {
6
- constructor(request, selectedAdvertiserID) {
7
- this.fetchAudiences = async (selected_advertiser_id) => {
8
- if (!selected_advertiser_id || !selected_advertiser_id.length) {
9
- return {
10
- choices: [],
11
- error: {
12
- message: 'Please select Advertiser ID first to get list of Audience IDs.',
13
- code: 'FIELD_NOT_SELECTED'
14
- }
15
- };
16
- }
17
- try {
18
- const response = [];
19
- let page_number = 1;
20
- let total_page = 1;
21
- while (page_number <= total_page) {
22
- const result = await this.request(`${constants_1.BASE_URL}${constants_1.TIKTOK_API_VERSION}/dmp/custom_audience/list/`, {
23
- method: 'GET',
24
- searchParams: {
25
- advertiser_id: selected_advertiser_id,
26
- page: page_number,
27
- page_size: '100'
28
- }
29
- });
30
- if (result.data.code !== 0) {
31
- throw {
32
- message: result.data.message,
33
- code: result.data.code
34
- };
35
- }
36
- total_page = result.data?.data?.page_info?.total_page || 1;
37
- page_number++;
38
- result.data.data.list.forEach((item) => {
39
- response.push(item);
40
- });
41
- }
42
- const choices = response?.map((item) => {
43
- return {
44
- label: item.name,
45
- value: item.audience_id
46
- };
47
- });
48
- return {
49
- choices: choices
50
- };
51
- }
52
- catch (err) {
53
- return {
54
- choices: [],
55
- error: {
56
- message: err.message ?? 'An error occurred while fetching audiences.',
57
- code: err.code.toString() ?? 'FETCH_AUDIENCE_ERROR'
58
- }
59
- };
60
- }
61
- };
62
- this.fetchAdvertisers = async (advertiser_ids) => {
63
- if (!advertiser_ids.length) {
64
- return {
65
- choices: [],
66
- error: {
67
- message: 'Sign in via OAuth on the settings page to load advertisers.',
68
- code: 'NOT_LOGGED_IN'
69
- }
70
- };
71
- }
72
- try {
73
- const result = await this.request(`${constants_1.BASE_URL}${constants_1.TIKTOK_API_VERSION}/advertiser/info/`, {
74
- method: 'GET',
75
- searchParams: {
76
- advertiser_ids: JSON.stringify(advertiser_ids)
77
- }
78
- });
79
- if (result.data.code !== 0) {
80
- throw {
81
- message: result.data.message,
82
- code: result.data.code
83
- };
84
- }
85
- const choices = result.data.data.list.map((item) => {
86
- return {
87
- label: item.name,
88
- value: item.advertiser_id
89
- };
90
- });
91
- return {
92
- choices: choices
93
- };
94
- }
95
- catch (err) {
96
- const choices = advertiser_ids.map((id) => {
97
- return {
98
- label: id,
99
- value: id
100
- };
101
- });
102
- return {
103
- choices: choices,
104
- error: {
105
- message: err.response.data.message ?? 'An error occurred while fetching advertisers.',
106
- code: err.response.data.code.toString() ?? 'FETCH_ADVERTISERS_ERROR'
107
- }
108
- };
109
- }
110
- };
6
+ constructor(request) {
111
7
  this.request = request;
112
- this.selectedAdvertiserID = selectedAdvertiserID;
113
8
  }
114
9
  async getUserInfo() {
115
10
  return this.request(`${constants_1.BASE_URL}${constants_1.TIKTOK_API_VERSION}/user/info/`, {
116
11
  method: 'GET'
117
12
  });
118
13
  }
119
- async createAudience(payload) {
120
- return this.request(`${constants_1.BASE_URL}${constants_1.TIKTOK_API_VERSION}/segment/audience/`, {
121
- method: 'POST',
122
- json: {
123
- custom_audience_name: payload.custom_audience_name,
124
- advertiser_id: this.selectedAdvertiserID,
125
- id_type: payload.id_type,
126
- action: 'create'
127
- }
128
- });
129
- }
130
14
  async batchUpdate(elements) {
131
15
  return this.request(`${constants_1.BASE_URL}${constants_1.TIKTOK_API_VERSION}/segment/mapping/`, {
132
16
  method: 'POST',