@segment/action-destinations 3.332.1-staging.2 → 3.332.1-staging.4

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 (100) hide show
  1. package/dist/destinations/blackbaud-raisers-edge-nxt/utils/index.d.ts +1 -1
  2. package/dist/destinations/display-video-360/addToAudience/index.js +2 -0
  3. package/dist/destinations/display-video-360/addToAudience/index.js.map +1 -1
  4. package/dist/destinations/display-video-360/errors.js +1 -3
  5. package/dist/destinations/display-video-360/errors.js.map +1 -1
  6. package/dist/destinations/display-video-360/index.js +10 -6
  7. package/dist/destinations/display-video-360/index.js.map +1 -1
  8. package/dist/destinations/display-video-360/listManagement.d.ts +9 -0
  9. package/dist/destinations/display-video-360/listManagement.js +16 -0
  10. package/dist/destinations/display-video-360/listManagement.js.map +1 -0
  11. package/dist/destinations/display-video-360/removeFromAudience/index.js +2 -0
  12. package/dist/destinations/display-video-360/removeFromAudience/index.js.map +1 -1
  13. package/dist/destinations/display-video-360/shared.d.ts +8 -1
  14. package/dist/destinations/display-video-360/shared.js +27 -6
  15. package/dist/destinations/display-video-360/shared.js.map +1 -1
  16. package/dist/destinations/engage/utils/track.d.ts +17 -17
  17. package/dist/destinations/index.js +1 -0
  18. package/dist/destinations/index.js.map +1 -1
  19. package/dist/destinations/movable-ink/categoryView/generated-types.d.ts +22 -0
  20. package/dist/destinations/movable-ink/categoryView/generated-types.js +3 -0
  21. package/dist/destinations/movable-ink/categoryView/generated-types.js.map +1 -0
  22. package/dist/destinations/movable-ink/categoryView/index.d.ts +5 -0
  23. package/dist/destinations/movable-ink/categoryView/index.js +43 -0
  24. package/dist/destinations/movable-ink/categoryView/index.js.map +1 -0
  25. package/dist/destinations/movable-ink/conversion/generated-types.d.ts +20 -0
  26. package/dist/destinations/movable-ink/conversion/generated-types.js +3 -0
  27. package/dist/destinations/movable-ink/conversion/generated-types.js.map +1 -0
  28. package/dist/destinations/movable-ink/conversion/index.d.ts +5 -0
  29. package/dist/destinations/movable-ink/conversion/index.js +45 -0
  30. package/dist/destinations/movable-ink/conversion/index.js.map +1 -0
  31. package/dist/destinations/movable-ink/fields.d.ts +21 -0
  32. package/dist/destinations/movable-ink/fields.js +236 -0
  33. package/dist/destinations/movable-ink/fields.js.map +1 -0
  34. package/dist/destinations/movable-ink/identify/generated-types.d.ts +7 -0
  35. package/dist/destinations/movable-ink/identify/generated-types.js +3 -0
  36. package/dist/destinations/movable-ink/identify/generated-types.js.map +1 -0
  37. package/dist/destinations/movable-ink/identify/index.d.ts +5 -0
  38. package/dist/destinations/movable-ink/identify/index.js +32 -0
  39. package/dist/destinations/movable-ink/identify/index.js.map +1 -0
  40. package/dist/destinations/movable-ink/productAdded/generated-types.d.ts +22 -0
  41. package/dist/destinations/movable-ink/productAdded/generated-types.js +3 -0
  42. package/dist/destinations/movable-ink/productAdded/generated-types.js.map +1 -0
  43. package/dist/destinations/movable-ink/productAdded/index.d.ts +5 -0
  44. package/dist/destinations/movable-ink/productAdded/index.js +43 -0
  45. package/dist/destinations/movable-ink/productAdded/index.js.map +1 -0
  46. package/dist/destinations/movable-ink/productViewed/generated-types.d.ts +21 -0
  47. package/dist/destinations/movable-ink/productViewed/generated-types.js +3 -0
  48. package/dist/destinations/movable-ink/productViewed/generated-types.js.map +1 -0
  49. package/dist/destinations/movable-ink/productViewed/index.d.ts +5 -0
  50. package/dist/destinations/movable-ink/productViewed/index.js +43 -0
  51. package/dist/destinations/movable-ink/productViewed/index.js.map +1 -0
  52. package/dist/destinations/movable-ink/search/generated-types.d.ts +12 -0
  53. package/dist/destinations/movable-ink/search/generated-types.js +3 -0
  54. package/dist/destinations/movable-ink/search/generated-types.js.map +1 -0
  55. package/dist/destinations/movable-ink/search/index.d.ts +5 -0
  56. package/dist/destinations/movable-ink/search/index.js +43 -0
  57. package/dist/destinations/movable-ink/search/index.js.map +1 -0
  58. package/dist/destinations/movable-ink/sendCustomEvent/generated-types.d.ts +25 -0
  59. package/dist/destinations/movable-ink/sendCustomEvent/generated-types.js +3 -0
  60. package/dist/destinations/movable-ink/sendCustomEvent/generated-types.js.map +1 -0
  61. package/dist/destinations/movable-ink/sendCustomEvent/index.d.ts +5 -0
  62. package/dist/destinations/movable-ink/sendCustomEvent/index.js +48 -0
  63. package/dist/destinations/movable-ink/sendCustomEvent/index.js.map +1 -0
  64. package/dist/destinations/responsys/asyncMergePetRecords/generated-types.d.ts +14 -0
  65. package/dist/destinations/responsys/asyncMergePetRecords/generated-types.js +3 -0
  66. package/dist/destinations/responsys/asyncMergePetRecords/generated-types.js.map +1 -0
  67. package/dist/destinations/responsys/asyncMergePetRecords/index.d.ts +5 -0
  68. package/dist/destinations/responsys/asyncMergePetRecords/index.js +113 -0
  69. package/dist/destinations/responsys/asyncMergePetRecords/index.js.map +1 -0
  70. package/dist/destinations/responsys/asyncMergeProfileListMembers/generated-types.d.ts +20 -0
  71. package/dist/destinations/responsys/asyncMergeProfileListMembers/generated-types.js +3 -0
  72. package/dist/destinations/responsys/asyncMergeProfileListMembers/generated-types.js.map +1 -0
  73. package/dist/destinations/responsys/asyncMergeProfileListMembers/index.d.ts +5 -0
  74. package/dist/destinations/responsys/asyncMergeProfileListMembers/index.js +174 -0
  75. package/dist/destinations/responsys/asyncMergeProfileListMembers/index.js.map +1 -0
  76. package/dist/destinations/responsys/generated-types.d.ts +5 -0
  77. package/dist/destinations/responsys/generated-types.js +3 -0
  78. package/dist/destinations/responsys/generated-types.js.map +1 -0
  79. package/dist/destinations/responsys/index.d.ts +4 -0
  80. package/dist/destinations/responsys/index.js +62 -0
  81. package/dist/destinations/responsys/index.js.map +1 -0
  82. package/dist/destinations/responsys/rsp-operations.d.ts +14 -0
  83. package/dist/destinations/responsys/rsp-operations.js +33 -0
  84. package/dist/destinations/responsys/rsp-operations.js.map +1 -0
  85. package/dist/destinations/responsys/rsp-properties.d.ts +4 -0
  86. package/dist/destinations/responsys/rsp-properties.js +27 -0
  87. package/dist/destinations/responsys/rsp-properties.js.map +1 -0
  88. package/dist/destinations/responsys/types.d.ts +37 -0
  89. package/dist/destinations/responsys/types.js +3 -0
  90. package/dist/destinations/responsys/types.js.map +1 -0
  91. package/dist/destinations/trackey/group.types.d.ts +11 -0
  92. package/dist/destinations/trackey/group.types.js +3 -0
  93. package/dist/destinations/trackey/group.types.js.map +1 -0
  94. package/dist/destinations/trackey/identify.types.d.ts +11 -0
  95. package/dist/destinations/trackey/identify.types.js +3 -0
  96. package/dist/destinations/trackey/identify.types.js.map +1 -0
  97. package/dist/destinations/trackey/track.types.d.ts +12 -0
  98. package/dist/destinations/trackey/track.types.js +3 -0
  99. package/dist/destinations/trackey/track.types.js.map +1 -0
  100. package/package.json +1 -1
@@ -0,0 +1,48 @@
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 fields_1 = require("../fields");
8
+ const omit_1 = __importDefault(require("lodash/omit"));
9
+ const action = {
10
+ title: 'Send Custom Event',
11
+ description: 'Send a Custom Segment event to Movable Ink',
12
+ defaultSubscription: 'type = "track"',
13
+ fields: {
14
+ movable_ink_url: fields_1.movable_ink_url,
15
+ event_name: fields_1.event_name,
16
+ user_id: fields_1.user_id,
17
+ anonymous_id: fields_1.anonymous_id,
18
+ timestamp: fields_1.timestamp,
19
+ timezone: fields_1.timezone,
20
+ products_required_false: fields_1.products_required_false,
21
+ categories_required_false: fields_1.categories_required_false,
22
+ order_id_required_false: fields_1.order_id_required_false,
23
+ revenue_required_false: fields_1.revenue_required_false,
24
+ meta: fields_1.meta
25
+ },
26
+ perform: (request, { settings, payload }) => {
27
+ const url = payload?.movable_ink_url ?? settings?.movable_ink_url;
28
+ if (!url)
29
+ throw new actions_core_1.IntegrationError('"Movable Ink URL" setting or "Movable Ink URL" field must be populated', 'MISSING_DESTINATION_URL', 400);
30
+ return request(url, {
31
+ method: 'POST',
32
+ json: {
33
+ event_name: payload.event_name,
34
+ user_id: payload.user_id,
35
+ anonymous_id: payload.anonymous_id,
36
+ timestamp: payload.timestamp,
37
+ timezone: payload.timezone,
38
+ products: payload.products_required_false,
39
+ categories: payload.categories_required_false,
40
+ order_id: payload.order_id_required_false,
41
+ revenue: payload.revenue_required_false,
42
+ metadata: { ...omit_1.default(payload.meta, ['products', 'categories', 'order_id', 'revenue']) }
43
+ }
44
+ });
45
+ }
46
+ };
47
+ exports.default = action;
48
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/movable-ink/sendCustomEvent/index.ts"],"names":[],"mappings":";;;;;AAAA,wDAA0E;AAG1E,sCAYkB;AAClB,uDAA8B;AAE9B,MAAM,MAAM,GAAwC;IAClD,KAAK,EAAE,mBAAmB;IAC1B,WAAW,EAAE,4CAA4C;IACzD,mBAAmB,EAAE,gBAAgB;IACrC,MAAM,EAAE;QACN,eAAe,EAAf,wBAAe;QACf,UAAU,EAAV,mBAAU;QACV,OAAO,EAAP,gBAAO;QACP,YAAY,EAAZ,qBAAY;QACZ,SAAS,EAAT,kBAAS;QACT,QAAQ,EAAR,iBAAQ;QACR,uBAAuB,EAAvB,gCAAuB;QACvB,yBAAyB,EAAzB,kCAAyB;QACzB,uBAAuB,EAAvB,gCAAuB;QACvB,sBAAsB,EAAtB,+BAAsB;QACtB,IAAI,EAAJ,aAAI;KACL;IACD,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;QAC1C,MAAM,GAAG,GAAG,OAAO,EAAE,eAAe,IAAI,QAAQ,EAAE,eAAe,CAAA;QACjE,IAAI,CAAC,GAAG;YACN,MAAM,IAAI,+BAAgB,CACxB,wEAAwE,EACxE,yBAAyB,EACzB,GAAG,CACJ,CAAA;QAEH,OAAO,OAAO,CAAC,GAAG,EAAE;YAClB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE;gBACJ,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,QAAQ,EAAE,OAAO,CAAC,uBAAuB;gBACzC,UAAU,EAAE,OAAO,CAAC,yBAAyB;gBAC7C,QAAQ,EAAE,OAAO,CAAC,uBAAuB;gBACzC,OAAO,EAAE,OAAO,CAAC,sBAAsB;gBACvC,QAAQ,EAAE,EAAE,GAAG,cAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,EAAE;aACvF;SACF,CAAC,CAAA;IACJ,CAAC;CACF,CAAA;AAED,kBAAe,MAAM,CAAA"}
@@ -0,0 +1,14 @@
1
+ export interface Payload {
2
+ profileListName: string;
3
+ profileExtensionTable: string;
4
+ userData: {
5
+ [k: string]: unknown;
6
+ };
7
+ mapTemplateName?: string;
8
+ insertOnNoMatch?: boolean;
9
+ matchColumnName1?: string;
10
+ matchColumnName2?: string;
11
+ updateOnMatch: string;
12
+ enable_batching?: boolean;
13
+ batch_size?: number;
14
+ }
@@ -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/responsys/asyncMergePetRecords/generated-types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import { ActionDefinition } from '@segment/actions-core';
2
+ import type { Settings } from '../generated-types';
3
+ import type { Payload } from './generated-types';
4
+ declare const action: ActionDefinition<Settings, Payload>;
5
+ export default action;
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const rsp_properties_1 = require("../rsp-properties");
4
+ const rsp_operations_1 = require("../rsp-operations");
5
+ const action = {
6
+ title: 'Async Merge PET Records',
7
+ description: '',
8
+ defaultSubscription: 'type = "identify"',
9
+ fields: {
10
+ profileListName: {
11
+ label: 'List Name',
12
+ description: "Name of the profile extension table's parent profile list.",
13
+ type: 'string',
14
+ required: true
15
+ },
16
+ profileExtensionTable: {
17
+ label: 'Pet Name',
18
+ description: 'Name of the profile extension table.',
19
+ type: 'string',
20
+ required: true
21
+ },
22
+ userData: rsp_properties_1.userData,
23
+ mapTemplateName: {
24
+ label: 'Map Template Name',
25
+ description: 'The Map Template in Responsys that can be used to map Field Names of the Profile List to Column Names.',
26
+ type: 'string',
27
+ default: ''
28
+ },
29
+ insertOnNoMatch: {
30
+ label: 'Insert On No Match',
31
+ description: 'Indicates what should be done for records where a match is not found.',
32
+ type: 'boolean',
33
+ default: true
34
+ },
35
+ matchColumnName1: {
36
+ label: 'First Column Match',
37
+ description: 'First match column for determining whether an insert or update should occur.',
38
+ type: 'string',
39
+ choices: [
40
+ { label: 'RIID_', value: 'RIID_' },
41
+ { label: 'CUSTOMER_ID_', value: 'CUSTOMER_ID_' },
42
+ { label: 'EMAIL_ADDRESS_', value: 'EMAIL_ADDRESS_' },
43
+ { label: 'MOBILE_NUMBER_', value: 'MOBILE_NUMBER_' },
44
+ { label: 'EMAIL_MD5_HASH_', value: 'EMAIL_MD5_HASH_' },
45
+ { label: 'EMAIL_SHA256_HASH_', value: 'EMAIL_SHA256_HASH_' }
46
+ ]
47
+ },
48
+ matchColumnName2: {
49
+ label: 'Second Column Match',
50
+ description: 'Second match column for determining whether an insert or update should occur.',
51
+ type: 'string',
52
+ choices: [
53
+ { label: 'RIID_', value: 'RIID_' },
54
+ { label: 'CUSTOMER_ID_', value: 'CUSTOMER_ID_' },
55
+ { label: 'EMAIL_ADDRESS_', value: 'EMAIL_ADDRESS_' },
56
+ { label: 'MOBILE_NUMBER_', value: 'MOBILE_NUMBER_' },
57
+ { label: 'EMAIL_MD5_HASH_', value: 'EMAIL_MD5_HASH_' },
58
+ { label: 'EMAIL_SHA256_HASH_', value: 'EMAIL_SHA256_HASH_' }
59
+ ]
60
+ },
61
+ updateOnMatch: {
62
+ label: 'Update On Match',
63
+ description: 'Controls how the existing record should be updated.',
64
+ type: 'string',
65
+ required: true,
66
+ choices: [
67
+ { label: 'Replace All', value: 'REPLACE_ALL' },
68
+ { label: 'No Update', value: 'NO_UPDATE' }
69
+ ]
70
+ },
71
+ enable_batching: rsp_properties_1.enable_batching,
72
+ batch_size: rsp_properties_1.batch_size
73
+ },
74
+ perform: async (request, { settings, payload }) => {
75
+ if (payload && payload.profileListName) {
76
+ const { profileListName, profileExtensionTable, insertOnNoMatch, matchColumnName1, matchColumnName2, updateOnMatch, userData, mapTemplateName } = payload;
77
+ const baseUrl = (settings.baseUrl?.startsWith('https://') ? settings.baseUrl : `https://${settings.baseUrl}`)?.replace(/\/$/, '');
78
+ const endpoint = `${baseUrl}/rest/asyncApi/v1.3/lists/${profileListName}/listExtensions/${profileExtensionTable}/members`;
79
+ const recordData = rsp_operations_1.buildRecordData(userData, mapTemplateName ?? '');
80
+ const requestBody = {
81
+ recordData: recordData,
82
+ insertOnNoMatch: !!insertOnNoMatch,
83
+ updateOnMatch: updateOnMatch || '',
84
+ matchColumnName1: matchColumnName1?.replace(/_+$/, '') || '',
85
+ matchColumnName2: matchColumnName2?.replace(/_+$/, '') || ''
86
+ };
87
+ return request(endpoint, {
88
+ method: 'POST',
89
+ body: JSON.stringify(requestBody)
90
+ });
91
+ }
92
+ },
93
+ performBatch: async (request, { settings, payload }) => {
94
+ const { profileListName, profileExtensionTable, insertOnNoMatch, matchColumnName1, matchColumnName2, updateOnMatch, mapTemplateName } = payload[0];
95
+ const payloadData = payload.map((obj) => obj.userData);
96
+ const recordData = rsp_operations_1.buildRecordData(payloadData, mapTemplateName ?? '');
97
+ const requestBody = {
98
+ recordData: recordData,
99
+ insertOnNoMatch: !!insertOnNoMatch,
100
+ updateOnMatch: updateOnMatch || '',
101
+ matchColumnName1: matchColumnName1?.replace(/_+$/, '') || '',
102
+ matchColumnName2: matchColumnName2?.replace(/_+$/, '') || ''
103
+ };
104
+ const baseUrl = (settings.baseUrl?.startsWith('https://') ? settings.baseUrl : `https://${settings.baseUrl}`)?.replace(/\/$/, '');
105
+ const endpoint = `${baseUrl}/rest/asyncApi/v1.3/lists/${profileListName}/listExtensions/${profileExtensionTable}/members`;
106
+ return await request(endpoint, {
107
+ method: 'POST',
108
+ body: JSON.stringify(requestBody)
109
+ });
110
+ }
111
+ };
112
+ exports.default = action;
113
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/responsys/asyncMergePetRecords/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ export interface Payload {
2
+ profileListName: string;
3
+ userData: {
4
+ [k: string]: unknown;
5
+ };
6
+ mapTemplateName?: string;
7
+ defaultPermissionStatus?: string;
8
+ htmlValue?: string;
9
+ insertOnNoMatch?: boolean;
10
+ matchColumnName1?: string;
11
+ matchColumnName2?: string;
12
+ matchOperator?: string;
13
+ optinValue?: string;
14
+ optoutValue?: string;
15
+ rejectRecordIfChannelEmpty?: string;
16
+ textValue?: string;
17
+ updateOnMatch: string;
18
+ enable_batching?: boolean;
19
+ batch_size?: number;
20
+ }
@@ -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/responsys/asyncMergeProfileListMembers/generated-types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import { ActionDefinition } from '@segment/actions-core';
2
+ import type { Settings } from '../generated-types';
3
+ import type { Payload } from './generated-types';
4
+ declare const action: ActionDefinition<Settings, Payload>;
5
+ export default action;
@@ -0,0 +1,174 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const rsp_properties_1 = require("../rsp-properties");
4
+ const rsp_operations_1 = require("../rsp-operations");
5
+ const action = {
6
+ title: 'Async Merge Profile List Members',
7
+ description: 'Asynchronous Merge Profile List Members API',
8
+ fields: {
9
+ profileListName: {
10
+ label: 'List Name',
11
+ description: "Name of the profile extension table's parent profile list.",
12
+ type: 'string',
13
+ required: true
14
+ },
15
+ userData: rsp_properties_1.userData,
16
+ mapTemplateName: {
17
+ label: 'Map Template Name',
18
+ description: 'The Map Template in Responsys that can be used to map Field Names of the Profile List to Column Names.',
19
+ type: 'string',
20
+ default: ''
21
+ },
22
+ defaultPermissionStatus: {
23
+ label: 'Default Permission Status',
24
+ description: 'This value must be specified as either OPTIN or OPTOUT and would be applied to all of the records contained in the API call. If this value is not explicitly specified, then it is set to OPTOUT.',
25
+ type: 'string',
26
+ choices: [
27
+ { label: 'Opt In', value: 'OPTIN' },
28
+ { label: 'Opt Out', value: 'OPTOUT' }
29
+ ],
30
+ default: 'OPTOUT'
31
+ },
32
+ htmlValue: {
33
+ label: 'Preferred Email Format',
34
+ description: "Value of incoming preferred email format data. For example, 'H' may represent a preference for HTML formatted email.",
35
+ type: 'string'
36
+ },
37
+ insertOnNoMatch: {
38
+ label: 'Insert On No Match',
39
+ description: 'Indicates what should be done for records where a match is not found.',
40
+ type: 'boolean',
41
+ default: true
42
+ },
43
+ matchColumnName1: {
44
+ label: 'First Column Match',
45
+ description: 'First match column for determining whether an insert or update should occur.',
46
+ type: 'string',
47
+ choices: [
48
+ { label: 'RIID_', value: 'RIID_' },
49
+ { label: 'CUSTOMER_ID_', value: 'CUSTOMER_ID_' },
50
+ { label: 'EMAIL_ADDRESS_', value: 'EMAIL_ADDRESS_' },
51
+ { label: 'MOBILE_NUMBER_', value: 'MOBILE_NUMBER_' },
52
+ { label: 'EMAIL_MD5_HASH_', value: 'EMAIL_MD5_HASH_' },
53
+ { label: 'EMAIL_SHA256_HASH_', value: 'EMAIL_SHA256_HASH_' }
54
+ ]
55
+ },
56
+ matchColumnName2: {
57
+ label: 'Second Column Match',
58
+ description: 'Second match column for determining whether an insert or update should occur.',
59
+ type: 'string',
60
+ choices: [
61
+ { label: 'RIID_', value: 'RIID_' },
62
+ { label: 'CUSTOMER_ID_', value: 'CUSTOMER_ID_' },
63
+ { label: 'EMAIL_ADDRESS_', value: 'EMAIL_ADDRESS_' },
64
+ { label: 'MOBILE_NUMBER_', value: 'MOBILE_NUMBER_' },
65
+ { label: 'EMAIL_MD5_HASH_', value: 'EMAIL_MD5_HASH_' },
66
+ { label: 'EMAIL_SHA256_HASH_', value: 'EMAIL_SHA256_HASH_' }
67
+ ]
68
+ },
69
+ matchOperator: {
70
+ label: 'Match Operator',
71
+ description: 'Operator to join match column names.',
72
+ type: 'string',
73
+ choices: [
74
+ { label: 'None', value: 'NONE' },
75
+ { label: 'And', value: 'AND' }
76
+ ]
77
+ },
78
+ optinValue: {
79
+ label: 'Optin Value',
80
+ description: "Value of incoming opt-in status data that represents an opt-in status. For example, 'I' may represent an opt-in status.",
81
+ type: 'string'
82
+ },
83
+ optoutValue: {
84
+ label: 'Optout Value',
85
+ description: "Value of incoming opt-out status data that represents an optout status. For example, '0' may represent an opt-out status.",
86
+ type: 'string'
87
+ },
88
+ rejectRecordIfChannelEmpty: {
89
+ label: 'Reject Record If Channel Empty',
90
+ description: "String containing comma-separated channel codes that if specified will result in record rejection when the channel address field is null. Channel codes are 'E' (Email), 'M' (Mobile), 'P' (Postal Code). For example 'E,M' would indicate that a record that has a null for Email or Mobile Number value should be rejected. This parameter can also be set to null or to an empty string, which will cause the validation to not be performed for any channel, except if the matchColumnName1 parameter is set to EMAIL_ADDRESS_ or MOBILE_NUMBER_. When matchColumnName1 is set to EMAIL_ADDRESS_ or MOBILE_NUMBER_, then the null or empty string setting is effectively ignored for that channel.",
91
+ type: 'string'
92
+ },
93
+ textValue: {
94
+ label: 'Text Value',
95
+ description: "Value of incoming preferred email format data. For example, 'T' may represent a preference for Text formatted email.",
96
+ type: 'string'
97
+ },
98
+ updateOnMatch: {
99
+ label: 'Update On Match',
100
+ description: 'Controls how the existing record should be updated.',
101
+ type: 'string',
102
+ required: true,
103
+ choices: [
104
+ { label: 'Replace All', value: 'REPLACE_ALL' },
105
+ { label: 'No Update', value: 'NO_UPDATE' }
106
+ ]
107
+ },
108
+ enable_batching: rsp_properties_1.enable_batching,
109
+ batch_size: rsp_properties_1.batch_size
110
+ },
111
+ perform: async (request, { settings, payload, auth }) => {
112
+ if (payload && payload.profileListName) {
113
+ const { profileListName, defaultPermissionStatus, htmlValue, insertOnNoMatch, matchColumnName1, matchColumnName2, matchOperator, optinValue, optoutValue, rejectRecordIfChannelEmpty, textValue, updateOnMatch, userData, mapTemplateName } = payload;
114
+ const baseUrl = (settings.baseUrl?.startsWith('https://') ? settings.baseUrl : `https://${settings.baseUrl}`)?.replace(/\/$/, '');
115
+ const endpoint = `${baseUrl}/rest/asyncApi/v1.3/lists/${profileListName}/members`;
116
+ const recordData = rsp_operations_1.buildRecordData(userData, mapTemplateName ?? '');
117
+ const requestBody = {
118
+ recordData: recordData,
119
+ mergeRule: {
120
+ defaultPermissionStatus,
121
+ htmlValue,
122
+ insertOnNoMatch,
123
+ matchColumnName1,
124
+ matchColumnName2,
125
+ matchOperator,
126
+ optinValue,
127
+ optoutValue,
128
+ rejectRecordIfChannelEmpty,
129
+ textValue,
130
+ updateOnMatch
131
+ }
132
+ };
133
+ const token = auth?.accessToken ?? '';
134
+ const response = request(endpoint, {
135
+ method: 'POST',
136
+ headers: {
137
+ Authorization: token,
138
+ 'Content-Type': 'application/json'
139
+ },
140
+ body: JSON.stringify(requestBody)
141
+ });
142
+ return response;
143
+ }
144
+ },
145
+ performBatch: async (request, { settings, payload }) => {
146
+ const { profileListName, defaultPermissionStatus, htmlValue, insertOnNoMatch, matchColumnName1, matchColumnName2, matchOperator, optinValue, optoutValue, rejectRecordIfChannelEmpty, textValue, updateOnMatch, mapTemplateName } = payload[0];
147
+ const payloadData = payload.map((obj) => obj.userData);
148
+ const recordData = rsp_operations_1.buildRecordData(payloadData, mapTemplateName ?? '');
149
+ const requestBody = {
150
+ recordData: recordData,
151
+ mergeRule: {
152
+ defaultPermissionStatus,
153
+ htmlValue,
154
+ insertOnNoMatch,
155
+ matchColumnName1,
156
+ matchColumnName2,
157
+ matchOperator,
158
+ optinValue,
159
+ optoutValue,
160
+ rejectRecordIfChannelEmpty,
161
+ textValue,
162
+ updateOnMatch
163
+ }
164
+ };
165
+ const baseUrl = (settings.baseUrl?.startsWith('https://') ? settings.baseUrl : `https://${settings.baseUrl}`)?.replace(/\/$/, '');
166
+ const endpoint = `${baseUrl}/rest/asyncApi/v1.3/lists/${profileListName}/members`;
167
+ return await request(endpoint, {
168
+ method: 'POST',
169
+ body: JSON.stringify(requestBody)
170
+ });
171
+ }
172
+ };
173
+ exports.default = action;
174
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/responsys/asyncMergeProfileListMembers/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export interface Settings {
2
+ username: string;
3
+ userPassword: string;
4
+ baseUrl: string;
5
+ }
@@ -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/responsys/generated-types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import type { DestinationDefinition } from '@segment/actions-core';
2
+ import type { Settings } from './generated-types';
3
+ declare const destination: DestinationDefinition<Settings>;
4
+ export default destination;
@@ -0,0 +1,62 @@
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 asyncMergeProfileListMembers_1 = __importDefault(require("./asyncMergeProfileListMembers"));
7
+ const asyncMergePetRecords_1 = __importDefault(require("./asyncMergePetRecords"));
8
+ const destination = {
9
+ name: 'Responsys (Actions)',
10
+ slug: 'actions-responsys',
11
+ mode: 'cloud',
12
+ description: 'Send Segment events to Responsys.',
13
+ authentication: {
14
+ scheme: 'oauth2',
15
+ fields: {
16
+ username: {
17
+ label: 'Username',
18
+ description: 'Responsys username',
19
+ type: 'string',
20
+ required: true
21
+ },
22
+ userPassword: {
23
+ label: 'Password',
24
+ description: 'Responsys password',
25
+ type: 'string',
26
+ required: true
27
+ },
28
+ baseUrl: {
29
+ label: 'Responsys endpoint URL',
30
+ description: 'Responsys endpoint URL. Refer to Responsys documentation for more details.',
31
+ type: 'string',
32
+ required: true
33
+ }
34
+ },
35
+ refreshAccessToken: async (request, { settings }) => {
36
+ const baseUrl = settings.baseUrl?.replace(/\/$/, '');
37
+ const endpoint = `${baseUrl}/rest/api/v1.3/auth/token`;
38
+ const res = await request(endpoint, {
39
+ method: 'POST',
40
+ headers: {
41
+ 'Content-Type': 'application/x-www-form-urlencoded'
42
+ },
43
+ body: `user_name=${settings.username}&password=${settings.userPassword}&auth_type=password`
44
+ });
45
+ return { accessToken: res.data.authToken };
46
+ }
47
+ },
48
+ extendRequest({ auth }) {
49
+ return {
50
+ headers: {
51
+ 'Content-Type': 'application/json',
52
+ authorization: `${auth?.accessToken}`
53
+ }
54
+ };
55
+ },
56
+ actions: {
57
+ asyncMergeProfileListMembers: asyncMergeProfileListMembers_1.default,
58
+ asyncMergePetRecords: asyncMergePetRecords_1.default
59
+ }
60
+ };
61
+ exports.default = destination;
62
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destinations/responsys/index.ts"],"names":[],"mappings":";;;;;AAOA,kGAAyE;AAEzE,kFAAyD;AAMzD,MAAM,WAAW,GAAoC;IACnD,IAAI,EAAE,qBAAqB;IAC3B,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,mCAAmC;IAChD,cAAc,EAAE;QACd,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE;YACN,QAAQ,EAAE;gBACR,KAAK,EAAE,UAAU;gBACjB,WAAW,EAAE,oBAAoB;gBACjC,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI;aACf;YACD,YAAY,EAAE;gBACZ,KAAK,EAAE,UAAU;gBACjB,WAAW,EAAE,oBAAoB;gBACjC,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI;aACf;YACD,OAAO,EAAE;gBAEP,KAAK,EAAE,wBAAwB;gBAC/B,WAAW,EAAE,4EAA4E;gBACzF,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI;aACf;SACF;QAED,kBAAkB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;YAElD,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;YACpD,MAAM,QAAQ,GAAG,GAAG,OAAO,2BAA2B,CAAA;YAGtD,MAAM,GAAG,GAAG,MAAM,OAAO,CAAuB,QAAQ,EAAE;gBACxD,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,mCAAmC;iBACpD;gBACD,IAAI,EAAE,aAAa,QAAQ,CAAC,QAAQ,aAAa,QAAQ,CAAC,YAAY,qBAAqB;aAC5F,CAAC,CAAA;YACF,OAAO,EAAE,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,CAAA;QAC5C,CAAC;KACF;IACD,aAAa,CAAC,EAAE,IAAI,EAAE;QAEpB,OAAO;YACL,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,GAAG,IAAI,EAAE,WAAW,EAAE;aACtC;SACF,CAAA;IACH,CAAC;IACD,OAAO,EAAE;QACP,4BAA4B,EAA5B,sCAA4B;QAC5B,oBAAoB,EAApB,8BAAoB;KACrB;CACF,CAAA;AAED,kBAAe,WAAW,CAAA"}
@@ -0,0 +1,14 @@
1
+ import { Payload } from './asyncMergePetRecords/generated-types';
2
+ import { DynamicData, RecordData } from './types';
3
+ export declare const buildRecordData: (userData: DynamicData, mapTemplateName: string) => {
4
+ records: unknown[][];
5
+ fieldNames: string[];
6
+ mapTemplateName: string;
7
+ };
8
+ export declare const buildRequestBodyPET: (payload: Payload, recordData: RecordData) => {
9
+ recordData: RecordData;
10
+ insertOnNoMatch: boolean | undefined;
11
+ updateOnMatch: string;
12
+ matchColumnName1: string;
13
+ matchColumnName2: string;
14
+ };
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildRequestBodyPET = exports.buildRecordData = void 0;
4
+ const buildRecordData = (userData, mapTemplateName) => {
5
+ if (Array.isArray(userData)) {
6
+ const keysFromFirstObject = Object.keys(userData[0]);
7
+ return {
8
+ records: userData.map((record) => Object.values(record)),
9
+ fieldNames: keysFromFirstObject,
10
+ mapTemplateName: mapTemplateName || ''
11
+ };
12
+ }
13
+ const keysFromFirstObject = Object.keys(userData);
14
+ return {
15
+ records: [Object.values(userData)],
16
+ fieldNames: keysFromFirstObject,
17
+ mapTemplateName: mapTemplateName || ''
18
+ };
19
+ };
20
+ exports.buildRecordData = buildRecordData;
21
+ const buildRequestBodyPET = (payload, recordData) => {
22
+ const matchColumnName1 = payload.matchColumnName1 ? String(payload.matchColumnName1) : '';
23
+ const matchColumnName2 = payload.matchColumnName2 ? String(payload.matchColumnName2) : '';
24
+ return {
25
+ recordData: recordData,
26
+ insertOnNoMatch: payload.insertOnNoMatch,
27
+ updateOnMatch: payload.updateOnMatch,
28
+ matchColumnName1: matchColumnName1.replace(/_+$/, ''),
29
+ matchColumnName2: matchColumnName2.replace(/_+$/, '')
30
+ };
31
+ };
32
+ exports.buildRequestBodyPET = buildRequestBodyPET;
33
+ //# sourceMappingURL=rsp-operations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rsp-operations.js","sourceRoot":"","sources":["../../../src/destinations/responsys/rsp-operations.ts"],"names":[],"mappings":";;;AAGO,MAAM,eAAe,GAAG,CAAC,QAAqB,EAAE,eAAuB,EAAE,EAAE;IAEhF,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;QAC3B,MAAM,mBAAmB,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;QACpD,OAAO;YACL,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACxD,UAAU,EAAE,mBAAmB;YAC/B,eAAe,EAAE,eAAe,IAAI,EAAE;SACvC,CAAA;KACF;IACD,MAAM,mBAAmB,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACjD,OAAO;QACL,OAAO,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAClC,UAAU,EAAE,mBAAmB;QAC/B,eAAe,EAAE,eAAe,IAAI,EAAE;KACvC,CAAA;AACH,CAAC,CAAA;AAhBY,QAAA,eAAe,mBAgB3B;AAUM,MAAM,mBAAmB,GAAG,CAAC,OAAgB,EAAE,UAAsB,EAAkB,EAAE;IAC9F,MAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IACzF,MAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IACzF,OAAO;QACL,UAAU,EAAE,UAAU;QACtB,eAAe,EAAE,OAAO,CAAC,eAAe;QACxC,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,gBAAgB,EAAE,gBAAgB,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;QACrD,gBAAgB,EAAE,gBAAgB,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;KACtD,CAAA;AACH,CAAC,CAAA;AAVY,QAAA,mBAAmB,uBAU/B"}
@@ -0,0 +1,4 @@
1
+ import { InputField } from '@segment/actions-core/destination-kit/types';
2
+ export declare const userData: InputField;
3
+ export declare const enable_batching: InputField;
4
+ export declare const batch_size: InputField;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.batch_size = exports.enable_batching = exports.userData = void 0;
4
+ exports.userData = {
5
+ label: 'Recepient Data',
6
+ description: 'Record data that represents Field Names and corresponding values for the recipient.',
7
+ type: 'object',
8
+ defaultObjectUI: 'keyvalue:only',
9
+ required: true,
10
+ default: { '@path': '$.' }
11
+ };
12
+ exports.enable_batching = {
13
+ label: 'Use Responsys Async API',
14
+ description: 'Once enabled, Segment will collect events into batches of 200 before sending to Responsys.',
15
+ type: 'boolean',
16
+ default: true,
17
+ unsafe_hidden: true
18
+ };
19
+ exports.batch_size = {
20
+ label: 'Batch Size',
21
+ description: 'Maximum number of events to include in each batch. Actual batch sizes may be lower.',
22
+ type: 'number',
23
+ required: false,
24
+ unsafe_hidden: true,
25
+ default: 200
26
+ };
27
+ //# sourceMappingURL=rsp-properties.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rsp-properties.js","sourceRoot":"","sources":["../../../src/destinations/responsys/rsp-properties.ts"],"names":[],"mappings":";;;AAGa,QAAA,QAAQ,GAAe;IAClC,KAAK,EAAE,gBAAgB;IACvB,WAAW,EAAE,qFAAqF;IAClG,IAAI,EAAE,QAAQ;IACd,eAAe,EAAE,eAAe;IAChC,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;CAC3B,CAAA;AAEY,QAAA,eAAe,GAAe;IACzC,KAAK,EAAE,yBAAyB;IAChC,WAAW,EAAE,4FAA4F;IACzG,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,IAAI;IACb,aAAa,EAAE,IAAI;CACpB,CAAA;AAEY,QAAA,UAAU,GAAe;IACpC,KAAK,EAAE,YAAY;IACnB,WAAW,EAAE,qFAAqF;IAClG,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,KAAK;IACf,aAAa,EAAE,IAAI;IACnB,OAAO,EAAE,GAAG;CACb,CAAA"}