@segment/action-destinations 3.253.0-staging-227c2b501 → 3.253.0-staging-e3dee8ea0

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 (134) hide show
  1. package/dist/destinations/blackbaud-raisers-edge-nxt/utils/index.d.ts +1 -1
  2. package/dist/destinations/customerio/utils.d.ts +1 -1
  3. package/dist/destinations/engage/utils/track.d.ts +9 -9
  4. package/dist/destinations/responsys-cloud/generated-types.d.ts +20 -0
  5. package/dist/destinations/responsys-cloud/generated-types.js.map +1 -0
  6. package/dist/destinations/responsys-cloud/index.d.ts +4 -0
  7. package/dist/destinations/responsys-cloud/index.js +207 -0
  8. package/dist/destinations/responsys-cloud/index.js.map +1 -0
  9. package/dist/destinations/responsys-cloud/sendAudience/generated-types.d.ts +16 -0
  10. package/dist/destinations/responsys-cloud/sendAudience/generated-types.js.map +1 -0
  11. package/dist/destinations/responsys-cloud/sendAudience/index.js +109 -0
  12. package/dist/destinations/responsys-cloud/sendAudience/index.js.map +1 -0
  13. package/dist/destinations/responsys-cloud/sendCustomTraits/generated-types.d.ts +11 -0
  14. package/dist/destinations/responsys-cloud/sendCustomTraits/generated-types.js.map +1 -0
  15. package/dist/destinations/responsys-cloud/sendCustomTraits/index.js +72 -0
  16. package/dist/destinations/responsys-cloud/sendCustomTraits/index.js.map +1 -0
  17. package/dist/destinations/{responsys/rsp-properties.d.ts → responsys-cloud/shared_properties.d.ts} +0 -1
  18. package/dist/destinations/{responsys/rsp-properties.js → responsys-cloud/shared_properties.js} +2 -10
  19. package/dist/destinations/responsys-cloud/shared_properties.js.map +1 -0
  20. package/dist/destinations/responsys-cloud/types.d.ts +38 -0
  21. package/dist/destinations/{engage/sendgrid/Profile.js → responsys-cloud/types.js} +1 -1
  22. package/dist/destinations/responsys-cloud/types.js.map +1 -0
  23. package/dist/destinations/responsys-cloud/upsertListMember/generated-types.d.ts +14 -0
  24. package/dist/destinations/responsys-cloud/upsertListMember/generated-types.js.map +1 -0
  25. package/dist/destinations/responsys-cloud/upsertListMember/index.js +85 -0
  26. package/dist/destinations/responsys-cloud/upsertListMember/index.js.map +1 -0
  27. package/dist/destinations/responsys-cloud/utils.d.ts +20 -0
  28. package/dist/destinations/responsys-cloud/utils.js +179 -0
  29. package/dist/destinations/responsys-cloud/utils.js.map +1 -0
  30. package/dist/destinations/segment-profiles/sendTrack/generated-types.d.ts +11 -0
  31. package/dist/destinations/segment-profiles/sendTrack/generated-types.js.map +1 -0
  32. package/dist/destinations/{movable-ink/productAdded → segment-profiles/sendTrack}/index.d.ts +1 -1
  33. package/dist/destinations/segment-profiles/sendTrack/index.js +42 -0
  34. package/dist/destinations/segment-profiles/sendTrack/index.js.map +1 -0
  35. package/dist/destinations/snap-conversions-api/_tests_/index.test.js +501 -4
  36. package/dist/destinations/snap-conversions-api/_tests_/index.test.js.map +1 -1
  37. package/dist/destinations/snap-conversions-api/index.js +42 -42
  38. package/dist/destinations/snap-conversions-api/index.js.map +1 -1
  39. package/dist/destinations/snap-conversions-api/reportConversionEvent/generated-types.d.ts +97 -18
  40. package/dist/destinations/snap-conversions-api/reportConversionEvent/index.js +8 -55
  41. package/dist/destinations/snap-conversions-api/reportConversionEvent/index.js.map +1 -1
  42. package/dist/destinations/snap-conversions-api/reportConversionEvent/snap-capi-input-fields-deprecated.d.ts +31 -0
  43. package/dist/destinations/snap-conversions-api/reportConversionEvent/snap-capi-input-fields-deprecated.js +174 -0
  44. package/dist/destinations/snap-conversions-api/reportConversionEvent/snap-capi-input-fields-deprecated.js.map +1 -0
  45. package/dist/destinations/snap-conversions-api/reportConversionEvent/snap-capi-input-fields-v3.d.ts +16 -0
  46. package/dist/destinations/snap-conversions-api/reportConversionEvent/snap-capi-input-fields-v3.js +637 -0
  47. package/dist/destinations/snap-conversions-api/reportConversionEvent/snap-capi-input-fields-v3.js.map +1 -0
  48. package/dist/destinations/snap-conversions-api/reportConversionEvent/snap-capi-v3.d.ts +1 -5
  49. package/dist/destinations/snap-conversions-api/reportConversionEvent/snap-capi-v3.js +594 -121
  50. package/dist/destinations/snap-conversions-api/reportConversionEvent/snap-capi-v3.js.map +1 -1
  51. package/dist/destinations/snap-conversions-api/reportConversionEvent/utils.d.ts +3 -6
  52. package/dist/destinations/snap-conversions-api/reportConversionEvent/utils.js +7 -11
  53. package/dist/destinations/snap-conversions-api/reportConversionEvent/utils.js.map +1 -1
  54. package/package.json +1 -1
  55. package/dist/destinations/display-video-360/listManagement.d.ts +0 -9
  56. package/dist/destinations/display-video-360/listManagement.js +0 -16
  57. package/dist/destinations/display-video-360/listManagement.js.map +0 -1
  58. package/dist/destinations/engage/sendgrid/Profile.d.ts +0 -6
  59. package/dist/destinations/engage/sendgrid/Profile.js.map +0 -1
  60. package/dist/destinations/engage/sendgrid/previewApiLookup/api-lookups.d.ts +0 -21
  61. package/dist/destinations/engage/sendgrid/previewApiLookup/api-lookups.js +0 -174
  62. package/dist/destinations/engage/sendgrid/previewApiLookup/api-lookups.js.map +0 -1
  63. package/dist/destinations/movable-ink/categoryView/generated-types.d.ts +0 -22
  64. package/dist/destinations/movable-ink/categoryView/generated-types.js.map +0 -1
  65. package/dist/destinations/movable-ink/categoryView/index.js +0 -43
  66. package/dist/destinations/movable-ink/categoryView/index.js.map +0 -1
  67. package/dist/destinations/movable-ink/conversion/generated-types.d.ts +0 -20
  68. package/dist/destinations/movable-ink/conversion/generated-types.js.map +0 -1
  69. package/dist/destinations/movable-ink/conversion/index.js +0 -45
  70. package/dist/destinations/movable-ink/conversion/index.js.map +0 -1
  71. package/dist/destinations/movable-ink/fields.d.ts +0 -21
  72. package/dist/destinations/movable-ink/fields.js +0 -236
  73. package/dist/destinations/movable-ink/fields.js.map +0 -1
  74. package/dist/destinations/movable-ink/identify/generated-types.d.ts +0 -7
  75. package/dist/destinations/movable-ink/identify/generated-types.js.map +0 -1
  76. package/dist/destinations/movable-ink/identify/index.js +0 -32
  77. package/dist/destinations/movable-ink/identify/index.js.map +0 -1
  78. package/dist/destinations/movable-ink/productAdded/generated-types.d.ts +0 -22
  79. package/dist/destinations/movable-ink/productAdded/generated-types.js.map +0 -1
  80. package/dist/destinations/movable-ink/productAdded/index.js +0 -43
  81. package/dist/destinations/movable-ink/productAdded/index.js.map +0 -1
  82. package/dist/destinations/movable-ink/productViewed/generated-types.d.ts +0 -21
  83. package/dist/destinations/movable-ink/productViewed/generated-types.js.map +0 -1
  84. package/dist/destinations/movable-ink/productViewed/index.d.ts +0 -5
  85. package/dist/destinations/movable-ink/productViewed/index.js +0 -43
  86. package/dist/destinations/movable-ink/productViewed/index.js.map +0 -1
  87. package/dist/destinations/movable-ink/search/generated-types.d.ts +0 -12
  88. package/dist/destinations/movable-ink/search/generated-types.js +0 -3
  89. package/dist/destinations/movable-ink/search/generated-types.js.map +0 -1
  90. package/dist/destinations/movable-ink/search/index.d.ts +0 -5
  91. package/dist/destinations/movable-ink/search/index.js +0 -43
  92. package/dist/destinations/movable-ink/search/index.js.map +0 -1
  93. package/dist/destinations/movable-ink/sendCustomEvent/generated-types.d.ts +0 -25
  94. package/dist/destinations/movable-ink/sendCustomEvent/generated-types.js +0 -3
  95. package/dist/destinations/movable-ink/sendCustomEvent/generated-types.js.map +0 -1
  96. package/dist/destinations/movable-ink/sendCustomEvent/index.d.ts +0 -5
  97. package/dist/destinations/movable-ink/sendCustomEvent/index.js +0 -48
  98. package/dist/destinations/movable-ink/sendCustomEvent/index.js.map +0 -1
  99. package/dist/destinations/responsys/asyncMergePetRecords/generated-types.d.ts +0 -14
  100. package/dist/destinations/responsys/asyncMergePetRecords/generated-types.js +0 -3
  101. package/dist/destinations/responsys/asyncMergePetRecords/generated-types.js.map +0 -1
  102. package/dist/destinations/responsys/asyncMergePetRecords/index.d.ts +0 -5
  103. package/dist/destinations/responsys/asyncMergePetRecords/index.js +0 -113
  104. package/dist/destinations/responsys/asyncMergePetRecords/index.js.map +0 -1
  105. package/dist/destinations/responsys/asyncMergeProfileListMembers/generated-types.d.ts +0 -20
  106. package/dist/destinations/responsys/asyncMergeProfileListMembers/generated-types.js +0 -3
  107. package/dist/destinations/responsys/asyncMergeProfileListMembers/generated-types.js.map +0 -1
  108. package/dist/destinations/responsys/asyncMergeProfileListMembers/index.d.ts +0 -5
  109. package/dist/destinations/responsys/asyncMergeProfileListMembers/index.js +0 -174
  110. package/dist/destinations/responsys/asyncMergeProfileListMembers/index.js.map +0 -1
  111. package/dist/destinations/responsys/rsp-operations.d.ts +0 -14
  112. package/dist/destinations/responsys/rsp-operations.js +0 -33
  113. package/dist/destinations/responsys/rsp-operations.js.map +0 -1
  114. package/dist/destinations/responsys/rsp-properties.js.map +0 -1
  115. package/dist/destinations/tiktok-offline-conversions/reportOfflineEvent/formatter.d.ts +0 -3
  116. package/dist/destinations/tiktok-offline-conversions/reportOfflineEvent/formatter.js +0 -43
  117. package/dist/destinations/tiktok-offline-conversions/reportOfflineEvent/formatter.js.map +0 -1
  118. package/dist/destinations/trackey/group.types.d.ts +0 -11
  119. package/dist/destinations/trackey/group.types.js +0 -3
  120. package/dist/destinations/trackey/group.types.js.map +0 -1
  121. package/dist/destinations/trackey/identify.types.d.ts +0 -11
  122. package/dist/destinations/trackey/identify.types.js +0 -3
  123. package/dist/destinations/trackey/identify.types.js.map +0 -1
  124. package/dist/destinations/trackey/track.types.d.ts +0 -12
  125. package/dist/destinations/trackey/track.types.js +0 -3
  126. package/dist/destinations/trackey/track.types.js.map +0 -1
  127. /package/dist/destinations/{movable-ink/categoryView → responsys-cloud}/generated-types.js +0 -0
  128. /package/dist/destinations/{movable-ink/conversion → responsys-cloud/sendAudience}/generated-types.js +0 -0
  129. /package/dist/destinations/{movable-ink/categoryView → responsys-cloud/sendAudience}/index.d.ts +0 -0
  130. /package/dist/destinations/{movable-ink/identify → responsys-cloud/sendCustomTraits}/generated-types.js +0 -0
  131. /package/dist/destinations/{movable-ink/conversion → responsys-cloud/sendCustomTraits}/index.d.ts +0 -0
  132. /package/dist/destinations/{movable-ink/productAdded → responsys-cloud/upsertListMember}/generated-types.js +0 -0
  133. /package/dist/destinations/{movable-ink/identify → responsys-cloud/upsertListMember}/index.d.ts +0 -0
  134. /package/dist/destinations/{movable-ink/productViewed → segment-profiles/sendTrack}/generated-types.js +0 -0
@@ -9,7 +9,7 @@ export declare const dateStringToFuzzyDate: (dateString: string | number) => fal
9
9
  y: string;
10
10
  };
11
11
  export declare const augmentFieldsWithConstituentFields: (fields: Record<string, InputField>) => Record<string, InputField>;
12
- export declare const splitConstituentPayload: (payload: CreateOrUpdateIndividualConstituentPayload) => (Partial<Phone> | Partial<Constituent> | Partial<Address> | Partial<OnlinePresence>)[];
12
+ export declare const splitConstituentPayload: (payload: CreateOrUpdateIndividualConstituentPayload) => (Partial<Constituent> | Partial<Address> | Partial<OnlinePresence> | Partial<Phone>)[];
13
13
  export declare const buildConstituentPayloadFromPayload: (payload: StringIndexedObject) => Partial<CreateOrUpdateIndividualConstituentPayload>;
14
14
  export declare const buildGiftDataFromPayload: (constituentId: string, payload: CreateGiftPayload) => Partial<Gift>;
15
15
  export declare const buildConstituentActionDataFromPayload: (constituentId: string, payload: CreateConstituentAction) => Partial<ConstituentAction>;
@@ -1,6 +1,6 @@
1
1
  export declare const trackApiEndpoint: ({ accountRegion }: {
2
2
  accountRegion?: string | undefined;
3
- }) => "https://track.customer.io" | "https://track-eu.customer.io";
3
+ }) => "https://track-eu.customer.io" | "https://track.customer.io";
4
4
  export declare enum AccountRegion {
5
5
  US = "US \uD83C\uDDFA\uD83C\uDDF8",
6
6
  EU = "EU \uD83C\uDDEA\uD83C\uDDFA"
@@ -1,10 +1,10 @@
1
1
  import { ContextFromDecorator } from './operationTracking';
2
2
  export declare const track: ((decoratorArgs?: ({
3
3
  onError?: ((ctx: import("./operationTracking").OperationErrorHandlerContext<import("./operationTracking").TryCatchFinallyContext<(this: any, ...args: any[]) => any>>) => void) | undefined;
4
- } & {
4
+ } & import("./operationTracking").OperationLoggerDecoratorArgs & {
5
5
  onTry?: ((ctx: import("./operationTracking").TryCatchFinallyContext<(this: any, ...args: any[]) => any>) => void) | undefined;
6
6
  onFinally?: ((ctx: import("./operationTracking").TryCatchFinallyContext<(this: any, ...args: any[]) => any>) => void) | undefined;
7
- } & import("./operationTracking").OperationLoggerDecoratorArgs & {
7
+ } & {
8
8
  shouldStats?: ((args: import("./operationTracking").OperationStatsEventArgs) => boolean | void) | undefined;
9
9
  } & {
10
10
  wrapIntegrationError?: ((ctx: import("./operationTracking").TryCatchFinallyContext<(this: any, ...args: any[]) => any>) => import("@segment/actions-core/*").IntegrationError | [message: string, code: string, status: number]) | undefined;
@@ -15,6 +15,9 @@ export declare const track: ((decoratorArgs?: ({
15
15
  }) | undefined;
16
16
  } & {
17
17
  _contextType: import("./operationTracking").TryCatchFinallyContext<(this: any, ...args: any[]) => any> & {
18
+ start?: number | undefined;
19
+ duration?: number | undefined;
20
+ } & {
18
21
  decoratorArgs?: {
19
22
  onError?: ((ctx: import("./operationTracking").OperationErrorHandlerContext<import("./operationTracking").TryCatchFinallyContext<(this: any, ...args: any[]) => any>>) => void) | undefined;
20
23
  } | undefined;
@@ -22,19 +25,16 @@ export declare const track: ((decoratorArgs?: ({
22
25
  parent?: (import("./operationTracking").TryCatchFinallyContext<(this: any, ...args: any[]) => any> & any) | undefined;
23
26
  sharedContext: {};
24
27
  } & {
25
- start?: number | undefined;
26
- duration?: number | undefined;
28
+ logs: string[];
29
+ logMetadata?: Record<string, unknown> | undefined;
30
+ decoratorArgs?: import("./operationTracking").OperationLoggerDecoratorArgs | undefined;
31
+ sharedContext: import("./operationTracking").OperationLoggerSharedContext;
27
32
  } & {
28
33
  onFinally: (() => void)[];
29
34
  decoratorArgs?: {
30
35
  onTry?: ((ctx: import("./operationTracking").TryCatchFinallyContext<(this: any, ...args: any[]) => any>) => void) | undefined;
31
36
  onFinally?: ((ctx: import("./operationTracking").TryCatchFinallyContext<(this: any, ...args: any[]) => any>) => void) | undefined;
32
37
  } | undefined;
33
- } & {
34
- logs: string[];
35
- logMetadata?: Record<string, unknown> | undefined;
36
- decoratorArgs?: import("./operationTracking").OperationLoggerDecoratorArgs | undefined;
37
- sharedContext: import("./operationTracking").OperationLoggerSharedContext;
38
38
  } & {
39
39
  tags: string[];
40
40
  sharedContext: {
@@ -0,0 +1,20 @@
1
+ export interface Settings {
2
+ segmentWriteKey?: string;
3
+ segmentWriteKeyRegion?: string;
4
+ username: string;
5
+ userPassword: string;
6
+ baseUrl: string;
7
+ profileListName: string;
8
+ profileExtensionTable?: string;
9
+ insertOnNoMatch: boolean;
10
+ matchColumnName1: string;
11
+ matchColumnName2?: string;
12
+ updateOnMatch: string;
13
+ textValue?: string;
14
+ matchOperator?: string;
15
+ optoutValue?: string;
16
+ rejectRecordIfChannelEmpty?: string;
17
+ defaultPermissionStatus: string;
18
+ htmlValue?: string;
19
+ optinValue?: string;
20
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generated-types.js","sourceRoot":"","sources":["../../../src/destinations/responsys-cloud/generated-types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import { 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,207 @@
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 sendCustomTraits_1 = __importDefault(require("./sendCustomTraits"));
8
+ const sendAudience_1 = __importDefault(require("./sendAudience"));
9
+ const upsertListMember_1 = __importDefault(require("./upsertListMember"));
10
+ const destination = {
11
+ name: 'Responsys Cloud (Actions)',
12
+ slug: 'actions-responsys-cloud',
13
+ mode: 'cloud',
14
+ description: 'Send Profile List Member and Profile Extension Table data to Responsys.',
15
+ authentication: {
16
+ scheme: 'oauth2',
17
+ fields: {
18
+ segmentWriteKey: {
19
+ label: 'Segment Source WriteKey',
20
+ description: "Optionally forward Responses from Segment's requests to Responsys to a Segment Source.",
21
+ type: 'string',
22
+ required: false
23
+ },
24
+ segmentWriteKeyRegion: {
25
+ label: 'Segment WriteKey Region',
26
+ description: 'Segment Region to forward responses from Responsys to. Segment Source WriteKey must also be populated',
27
+ type: 'string',
28
+ choices: [
29
+ { label: 'US', value: 'US' },
30
+ { label: 'EU', value: 'EU' }
31
+ ],
32
+ required: false,
33
+ default: 'US'
34
+ },
35
+ username: {
36
+ label: 'Username',
37
+ description: 'Responsys username',
38
+ type: 'string',
39
+ required: true
40
+ },
41
+ userPassword: {
42
+ label: 'Password',
43
+ description: 'Responsys password',
44
+ type: 'string',
45
+ required: true
46
+ },
47
+ baseUrl: {
48
+ label: 'Responsys endpoint URL',
49
+ description: "Responsys endpoint URL. Refer to Responsys documentation for more details. Must start with 'HTTPS://'. See [Responsys docs](https://docs.oracle.com/en/cloud/saas/marketing/responsys-develop/API/GetStarted/Authentication/auth-endpoints-rest.htm).",
50
+ type: 'string',
51
+ format: 'uri',
52
+ required: true
53
+ },
54
+ profileListName: {
55
+ label: 'List Name',
56
+ description: "Name of the Profile Extension Table's Contact List.",
57
+ type: 'string',
58
+ required: true
59
+ },
60
+ profileExtensionTable: {
61
+ label: 'PET Name',
62
+ description: 'Profile Extension Table (PET) Name. Required if using the "Send Custom Traits" Action.',
63
+ type: 'string',
64
+ required: false
65
+ },
66
+ insertOnNoMatch: {
67
+ label: 'Insert On No Match',
68
+ description: 'Indicates what should be done for records where a match is not found.',
69
+ type: 'boolean',
70
+ default: true,
71
+ required: true
72
+ },
73
+ matchColumnName1: {
74
+ label: 'First Column Match',
75
+ description: 'First match column for determining whether an insert or update should occur.',
76
+ type: 'string',
77
+ choices: [
78
+ { label: 'RIID', value: 'RIID' },
79
+ { label: 'CUSTOMER_ID', value: 'CUSTOMER_ID' },
80
+ { label: 'EMAIL_ADDRESS', value: 'EMAIL_ADDRESS' },
81
+ { label: 'MOBILE_NUMBER', value: 'MOBILE_NUMBER' },
82
+ { label: 'EMAIL_MD5_HASH', value: 'EMAIL_MD5_HASH' },
83
+ { label: 'EMAIL_SHA256_HASH', value: 'EMAIL_SHA256_HASH' }
84
+ ],
85
+ default: 'EMAIL_ADDRESS',
86
+ required: true
87
+ },
88
+ matchColumnName2: {
89
+ label: 'Second Column Match',
90
+ description: 'Second match column for determining whether an insert or update should occur.',
91
+ type: 'string',
92
+ choices: [
93
+ { label: 'RIID', value: 'RIID' },
94
+ { label: 'CUSTOMER_ID', value: 'CUSTOMER_ID' },
95
+ { label: 'EMAIL_ADDRESS', value: 'EMAIL_ADDRESS' },
96
+ { label: 'MOBILE_NUMBER', value: 'MOBILE_NUMBER' },
97
+ { label: 'EMAIL_MD5_HASH', value: 'EMAIL_MD5_HASH' },
98
+ { label: 'EMAIL_SHA256_HASH', value: 'EMAIL_SHA256_HASH' }
99
+ ]
100
+ },
101
+ updateOnMatch: {
102
+ label: 'Update On Match',
103
+ description: 'Controls how the existing record should be updated. Defaults to Replace All.',
104
+ type: 'string',
105
+ required: true,
106
+ choices: [
107
+ { label: 'Replace All', value: 'REPLACE_ALL' },
108
+ { label: 'No Update', value: 'NO_UPDATE' }
109
+ ],
110
+ default: 'REPLACE_ALL'
111
+ },
112
+ textValue: {
113
+ label: 'Text Value',
114
+ description: "Value of incoming preferred email format data. For example, 'T' may represent a preference for Text formatted email.",
115
+ type: 'string'
116
+ },
117
+ matchOperator: {
118
+ label: 'Match Operator',
119
+ description: 'Operator to join match column names.',
120
+ type: 'string',
121
+ choices: [
122
+ { label: 'None', value: 'NONE' },
123
+ { label: 'And', value: 'AND' }
124
+ ],
125
+ default: 'AND'
126
+ },
127
+ optoutValue: {
128
+ label: 'Optout Value',
129
+ description: "Value of incoming opt-out status data that represents an optout status. For example, 'O' may represent an opt-out status.",
130
+ type: 'string'
131
+ },
132
+ rejectRecordIfChannelEmpty: {
133
+ label: 'Reject Record If Channel Empty',
134
+ description: 'String containing comma-separated channel codes that if specified will result in record rejection when the channel address field is null. See [Responsys API docs](https://docs.oracle.com/en/cloud/saas/marketing/responsys-rest-api/op-rest-api-v1.3-lists-listname-members-post.html)',
135
+ type: 'string'
136
+ },
137
+ defaultPermissionStatus: {
138
+ label: 'Default Permission Status',
139
+ description: 'This value must be specified as either OPTIN or OPTOUT. defaults to OPTOUT.',
140
+ type: 'string',
141
+ required: true,
142
+ choices: [
143
+ { label: 'Opt In', value: 'OPTIN' },
144
+ { label: 'Opt Out', value: 'OPTOUT' }
145
+ ],
146
+ default: 'OPTOUT'
147
+ },
148
+ htmlValue: {
149
+ label: 'Preferred Email Format',
150
+ description: "Value of incoming preferred email format data. For example, 'H' may represent a preference for HTML formatted email.",
151
+ type: 'string'
152
+ },
153
+ optinValue: {
154
+ label: 'Optin Value',
155
+ description: "Value of incoming opt-in status data that represents an opt-in status. For example, 'I' may represent an opt-in status.",
156
+ type: 'string'
157
+ }
158
+ },
159
+ testAuthentication: (_, { settings }) => {
160
+ if (settings.profileListName.toUpperCase() !== settings.profileListName) {
161
+ throw new actions_core_1.IntegrationError('List Name field must be in Uppercase', 'INVALID_PROFILE_LIST_NAME', 400);
162
+ }
163
+ if (settings.profileExtensionTable) {
164
+ if (settings.profileExtensionTable.toUpperCase() !== settings.profileExtensionTable) {
165
+ throw new actions_core_1.IntegrationError('PET Name field must be in Uppercase', 'INVALID_PET_NAME', 400);
166
+ }
167
+ const regex = /^[A-Z0-9_]+$/;
168
+ if (!regex.test(settings.profileExtensionTable)) {
169
+ throw new actions_core_1.IntegrationError('The PET Name field must be capitalized and may only contain letters from A to Z, numbers from 0 to 9, and underscore characters.', 'INVALID_PET_NAME', 400);
170
+ }
171
+ }
172
+ if (settings.baseUrl.startsWith('https://'.toLowerCase())) {
173
+ return Promise.resolve('Success');
174
+ }
175
+ else {
176
+ throw new actions_core_1.IntegrationError('Responsys endpoint URL must start with https://', 'INVALID_URL', 400);
177
+ }
178
+ },
179
+ refreshAccessToken: async (request, { settings }) => {
180
+ const baseUrl = settings.baseUrl?.replace(/\/$/, '');
181
+ const endpoint = `${baseUrl}/rest/api/v1.3/auth/token`;
182
+ const res = await request(endpoint, {
183
+ method: 'POST',
184
+ headers: {
185
+ 'Content-Type': 'application/x-www-form-urlencoded'
186
+ },
187
+ body: `user_name=${encodeURIComponent(settings.username)}&password=${encodeURIComponent(settings.userPassword)}&auth_type=password`
188
+ });
189
+ return { accessToken: res.data.authToken };
190
+ }
191
+ },
192
+ extendRequest({ auth }) {
193
+ return {
194
+ headers: {
195
+ 'Content-Type': 'application/json',
196
+ authorization: `${auth?.accessToken}`
197
+ }
198
+ };
199
+ },
200
+ actions: {
201
+ sendAudience: sendAudience_1.default,
202
+ sendCustomTraits: sendCustomTraits_1.default,
203
+ upsertListMember: upsertListMember_1.default
204
+ }
205
+ };
206
+ exports.default = destination;
207
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destinations/responsys-cloud/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ export interface Payload {
2
+ userData: {
3
+ EMAIL_ADDRESS_?: string;
4
+ CUSTOMER_ID_?: string;
5
+ [k: string]: unknown;
6
+ };
7
+ computation_key: string;
8
+ traits_or_props: {
9
+ [k: string]: unknown;
10
+ };
11
+ computation_class: string;
12
+ enable_batching?: boolean;
13
+ batch_size?: number;
14
+ stringify: boolean;
15
+ timestamp: string | number;
16
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generated-types.js","sourceRoot":"","sources":["../../../../src/destinations/responsys-cloud/sendAudience/generated-types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,109 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const shared_properties_1 = require("../shared_properties");
4
+ const utils_1 = require("../utils");
5
+ const action = {
6
+ title: 'Send Audience',
7
+ description: 'Send Engage Audience to a Profile Extension Table in Responsys',
8
+ defaultSubscription: 'type = "identify" or type = "track"',
9
+ fields: {
10
+ userData: {
11
+ label: 'Recipient Data',
12
+ description: 'Record data that represents field names and corresponding values for each profile.',
13
+ type: 'object',
14
+ defaultObjectUI: 'keyvalue',
15
+ required: true,
16
+ additionalProperties: true,
17
+ properties: {
18
+ EMAIL_ADDRESS_: {
19
+ label: 'Email address',
20
+ description: "The user's email address",
21
+ type: 'string',
22
+ format: 'email',
23
+ required: false
24
+ },
25
+ CUSTOMER_ID_: {
26
+ label: 'Customer ID',
27
+ description: 'Responsys Customer ID.',
28
+ type: 'string',
29
+ required: false
30
+ }
31
+ },
32
+ default: {
33
+ EMAIL_ADDRESS_: {
34
+ '@if': {
35
+ exists: { '@path': '$.traits.email' },
36
+ then: { '@path': '$.traits.email' },
37
+ else: { '@path': '$.context.traits.email' }
38
+ }
39
+ },
40
+ CUSTOMER_ID_: { '@path': '$.userId' }
41
+ }
42
+ },
43
+ computation_key: {
44
+ label: 'Segment Audience Key',
45
+ description: 'A unique identifier assigned to a specific audience in Segment.',
46
+ type: 'string',
47
+ required: true,
48
+ unsafe_hidden: true,
49
+ default: { '@path': '$.context.personas.computation_key' }
50
+ },
51
+ traits_or_props: {
52
+ label: 'Traits or Properties',
53
+ description: 'Hidden field used to access traits or properties objects from Engage payloads.',
54
+ type: 'object',
55
+ required: true,
56
+ unsafe_hidden: true,
57
+ default: {
58
+ '@if': {
59
+ exists: { '@path': '$.traits' },
60
+ then: { '@path': '$.traits' },
61
+ else: { '@path': '$.properties' }
62
+ }
63
+ }
64
+ },
65
+ computation_class: {
66
+ label: 'Segment Audience Computation Class',
67
+ description: "Hidden field used to verify that the payload is generated by an Audience. Payloads not containing computation_class = 'audience' will be dropped before the perform() fuction call.",
68
+ type: 'string',
69
+ required: true,
70
+ unsafe_hidden: true,
71
+ default: { '@path': '$.context.personas.computation_class' },
72
+ choices: [{ label: 'Audience', value: 'audience' }]
73
+ },
74
+ enable_batching: shared_properties_1.enable_batching,
75
+ batch_size: shared_properties_1.batch_size,
76
+ stringify: {
77
+ label: 'Stringify Recipient Data',
78
+ description: 'If true, all Recipient data will be converted to strings before being sent to Responsys.',
79
+ type: 'boolean',
80
+ required: true,
81
+ default: false
82
+ },
83
+ timestamp: {
84
+ label: 'Timestamp',
85
+ description: 'The timestamp of when the event occurred.',
86
+ type: 'datetime',
87
+ required: true,
88
+ unsafe_hidden: true,
89
+ default: {
90
+ '@path': '$.timestamp'
91
+ }
92
+ }
93
+ },
94
+ perform: async (request, data) => {
95
+ const { payload, settings, statsContext } = data;
96
+ const userDataFieldNames = utils_1.getUserDataFieldNames(data);
97
+ utils_1.validateCustomTraits({ profileExtensionTable: settings.profileExtensionTable, timestamp: payload.timestamp, statsContext: statsContext });
98
+ utils_1.validateListMemberPayload(payload.userData);
99
+ return utils_1.sendCustomTraits(request, [payload], data.settings, userDataFieldNames, true);
100
+ },
101
+ performBatch: async (request, data) => {
102
+ const { payload, settings, statsContext } = data;
103
+ const userDataFieldNames = utils_1.getUserDataFieldNames(data);
104
+ utils_1.validateCustomTraits({ profileExtensionTable: settings.profileExtensionTable, timestamp: payload[0].timestamp, statsContext: statsContext });
105
+ return utils_1.sendCustomTraits(request, data.payload, data.settings, userDataFieldNames, true);
106
+ }
107
+ };
108
+ exports.default = action;
109
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/responsys-cloud/sendAudience/index.ts"],"names":[],"mappings":";;AAGA,4DAAkE;AAClE,oCAAmH;AAGnH,MAAM,MAAM,GAAwC;IAClD,KAAK,EAAE,eAAe;IACtB,WAAW,EAAE,gEAAgE;IAC7E,mBAAmB,EAAE,qCAAqC;IAC1D,MAAM,EAAE;QACN,QAAQ,EAAE;YACR,KAAK,EAAE,gBAAgB;YACvB,WAAW,EAAE,oFAAoF;YACjG,IAAI,EAAE,QAAQ;YACd,eAAe,EAAE,UAAU;YAC3B,QAAQ,EAAE,IAAI;YACd,oBAAoB,EAAE,IAAI;YAC1B,UAAU,EAAE;gBACV,cAAc,EAAE;oBACd,KAAK,EAAE,eAAe;oBACtB,WAAW,EAAE,0BAA0B;oBACvC,IAAI,EAAE,QAAQ;oBACd,MAAM,EAAE,OAAO;oBACf,QAAQ,EAAE,KAAK;iBAChB;gBACD,YAAY,EAAE;oBACZ,KAAK,EAAE,aAAa;oBACpB,WAAW,EAAE,wBAAwB;oBACrC,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,KAAK;iBAChB;aACF;YACD,OAAO,EAAE;gBACP,cAAc,EAAE;oBACd,KAAK,EAAE;wBACL,MAAM,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE;wBACrC,IAAI,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE;wBACnC,IAAI,EAAE,EAAE,OAAO,EAAE,wBAAwB,EAAE;qBAC5C;iBACF;gBACD,YAAY,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;aACtC;SACF;QACD,eAAe,EAAE;YACf,KAAK,EAAE,sBAAsB;YAC7B,WAAW,EAAE,iEAAiE;YAC9E,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,aAAa,EAAE,IAAI;YACnB,OAAO,EAAE,EAAE,OAAO,EAAE,oCAAoC,EAAE;SAC3D;QACD,eAAe,EAAE;YACf,KAAK,EAAE,sBAAsB;YAC7B,WAAW,EAAE,gFAAgF;YAC7F,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,aAAa,EAAE,IAAI;YACnB,OAAO,EAAE;gBACP,KAAK,EAAE;oBACL,MAAM,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;oBAC/B,IAAI,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;oBAC7B,IAAI,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE;iBAClC;aACF;SACF;QACD,iBAAiB,EAAE;YACjB,KAAK,EAAE,oCAAoC;YAC3C,WAAW,EACT,qLAAqL;YACvL,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,aAAa,EAAE,IAAI;YACnB,OAAO,EAAE,EAAE,OAAO,EAAE,sCAAsC,EAAE;YAC5D,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;SACpD;QACD,eAAe,EAAE,mCAAe;QAChC,UAAU,EAAE,8BAAU;QACtB,SAAS,EAAE;YACT,KAAK,EAAE,0BAA0B;YACjC,WAAW,EAAE,0FAA0F;YACvG,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,KAAK;SACf;QACD,SAAS,EAAE;YACT,KAAK,EAAE,WAAW;YAClB,WAAW,EAAE,2CAA2C;YACxD,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,IAAI;YACd,aAAa,EAAE,IAAI;YACnB,OAAO,EAAE;gBACP,OAAO,EAAE,aAAa;aACvB;SACF;KACF;IAED,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QAC/B,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,IAAI,CAAA;QAEhD,MAAM,kBAAkB,GAAa,6BAAqB,CAAC,IAAuB,CAAC,CAAA;QACnF,4BAAoB,CAAC,EAAE,qBAAqB,EAAE,QAAQ,CAAC,qBAAqB,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC,CAAA;QACzI,iCAAyB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QAE3C,OAAO,wBAAgB,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,kBAAkB,EAAE,IAAI,CAAC,CAAA;IACtF,CAAC;IAED,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QACpC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,IAAI,CAAA;QAEhD,MAAM,kBAAkB,GAAG,6BAAqB,CAAC,IAAuB,CAAC,CAAA;QACzE,4BAAoB,CAAC,EAAE,qBAAqB,EAAE,QAAQ,CAAC,qBAAqB,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC,CAAA;QAE5I,OAAO,wBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,kBAAkB,EAAE,IAAI,CAAC,CAAA;IACzF,CAAC;CACF,CAAA;AAED,kBAAe,MAAM,CAAA"}
@@ -0,0 +1,11 @@
1
+ export interface Payload {
2
+ userData: {
3
+ EMAIL_ADDRESS_?: string;
4
+ CUSTOMER_ID_?: string;
5
+ [k: string]: unknown;
6
+ };
7
+ enable_batching?: boolean;
8
+ batch_size?: number;
9
+ stringify: boolean;
10
+ timestamp: string | number;
11
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generated-types.js","sourceRoot":"","sources":["../../../../src/destinations/responsys-cloud/sendCustomTraits/generated-types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const shared_properties_1 = require("../shared_properties");
4
+ const utils_1 = require("../utils");
5
+ const action = {
6
+ title: 'Send Custom Traits',
7
+ description: 'Send Custom Traits to a Profile Extension Table in Responsys',
8
+ defaultSubscription: 'type = "identify"',
9
+ fields: {
10
+ userData: {
11
+ label: 'Recipient Data',
12
+ description: 'Record data that represents field names and corresponding values for each profile.',
13
+ type: 'object',
14
+ defaultObjectUI: 'keyvalue',
15
+ required: true,
16
+ additionalProperties: true,
17
+ properties: {
18
+ EMAIL_ADDRESS_: {
19
+ label: 'Email address',
20
+ description: "The user's email address",
21
+ type: 'string',
22
+ format: 'email',
23
+ required: false
24
+ },
25
+ CUSTOMER_ID_: {
26
+ label: 'Customer ID',
27
+ description: 'Responsys Customer ID.',
28
+ type: 'string',
29
+ required: false
30
+ }
31
+ },
32
+ default: {
33
+ EMAIL_ADDRESS_: { '@path': '$.traits.email' },
34
+ CUSTOMER_ID_: { '@path': '$.userId' }
35
+ }
36
+ },
37
+ enable_batching: shared_properties_1.enable_batching,
38
+ batch_size: shared_properties_1.batch_size,
39
+ stringify: {
40
+ label: 'Stringify Recipient Data',
41
+ description: 'If true, all Recipient data will be converted to strings before being sent to Responsys.',
42
+ type: 'boolean',
43
+ required: true,
44
+ default: false
45
+ },
46
+ timestamp: {
47
+ label: 'Timestamp',
48
+ description: 'The timestamp of when the event occurred.',
49
+ type: 'datetime',
50
+ required: true,
51
+ unsafe_hidden: true,
52
+ default: {
53
+ '@path': '$.timestamp'
54
+ }
55
+ }
56
+ },
57
+ perform: async (request, data) => {
58
+ const { payload, settings, statsContext } = data;
59
+ const userDataFieldNames = utils_1.getUserDataFieldNames(data);
60
+ utils_1.validateCustomTraits({ profileExtensionTable: settings.profileExtensionTable, timestamp: payload.timestamp, statsContext: statsContext });
61
+ utils_1.validateListMemberPayload(payload.userData);
62
+ return utils_1.sendCustomTraits(request, [payload], settings, userDataFieldNames);
63
+ },
64
+ performBatch: async (request, data) => {
65
+ const { payload, settings, statsContext } = data;
66
+ const userDataFieldNames = utils_1.getUserDataFieldNames(data);
67
+ utils_1.validateCustomTraits({ profileExtensionTable: settings.profileExtensionTable, timestamp: payload[0].timestamp, statsContext: statsContext });
68
+ return utils_1.sendCustomTraits(request, data.payload, data.settings, userDataFieldNames);
69
+ }
70
+ };
71
+ exports.default = action;
72
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/responsys-cloud/sendCustomTraits/index.ts"],"names":[],"mappings":";;AAGA,4DAAkE;AAClE,oCAAmH;AAGnH,MAAM,MAAM,GAAwC;IAClD,KAAK,EAAE,oBAAoB;IAC3B,WAAW,EAAE,8DAA8D;IAC3E,mBAAmB,EAAE,mBAAmB;IACxC,MAAM,EAAE;QACN,QAAQ,EAAE;YACR,KAAK,EAAE,gBAAgB;YACvB,WAAW,EAAE,oFAAoF;YACjG,IAAI,EAAE,QAAQ;YACd,eAAe,EAAE,UAAU;YAC3B,QAAQ,EAAE,IAAI;YACd,oBAAoB,EAAE,IAAI;YAC1B,UAAU,EAAE;gBACV,cAAc,EAAE;oBACd,KAAK,EAAE,eAAe;oBACtB,WAAW,EAAE,0BAA0B;oBACvC,IAAI,EAAE,QAAQ;oBACd,MAAM,EAAE,OAAO;oBACf,QAAQ,EAAE,KAAK;iBAChB;gBACD,YAAY,EAAE;oBACZ,KAAK,EAAE,aAAa;oBACpB,WAAW,EAAE,wBAAwB;oBACrC,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,KAAK;iBAChB;aACF;YACD,OAAO,EAAE;gBACP,cAAc,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE;gBAC7C,YAAY,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;aACtC;SACF;QACD,eAAe,EAAE,mCAAe;QAChC,UAAU,EAAE,8BAAU;QACtB,SAAS,EAAE;YACT,KAAK,EAAE,0BAA0B;YACjC,WAAW,EAAE,0FAA0F;YACvG,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,KAAK;SACf;QACD,SAAS,EAAE;YACT,KAAK,EAAE,WAAW;YAClB,WAAW,EAAE,2CAA2C;YACxD,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,IAAI;YACd,aAAa,EAAE,IAAI;YACnB,OAAO,EAAE;gBACP,OAAO,EAAE,aAAa;aACvB;SACF;KACF;IAED,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QAC/B,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,IAAI,CAAA;QAEhD,MAAM,kBAAkB,GAAG,6BAAqB,CAAC,IAAuB,CAAC,CAAA;QAEzE,4BAAoB,CAAC,EAAE,qBAAqB,EAAE,QAAQ,CAAC,qBAAqB,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC,CAAA;QAEzI,iCAAyB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QAE3C,OAAO,wBAAgB,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,kBAAkB,CAAC,CAAA;IAC3E,CAAC;IAED,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QACpC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,IAAI,CAAA;QAEhD,MAAM,kBAAkB,GAAG,6BAAqB,CAAC,IAAuB,CAAC,CAAA;QAEzE,4BAAoB,CAAC,EAAE,qBAAqB,EAAE,QAAQ,CAAC,qBAAqB,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC,CAAA;QAE5I,OAAO,wBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAA;IACnF,CAAC;CACF,CAAA;AAED,kBAAe,MAAM,CAAA"}
@@ -1,4 +1,3 @@
1
1
  import { InputField } from '@segment/actions-core/destination-kit/types';
2
- export declare const userData: InputField;
3
2
  export declare const enable_batching: InputField;
4
3
  export declare const batch_size: InputField;
@@ -1,14 +1,6 @@
1
1
  "use strict";
2
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
- };
3
+ exports.batch_size = exports.enable_batching = void 0;
12
4
  exports.enable_batching = {
13
5
  label: 'Use Responsys Async API',
14
6
  description: 'Once enabled, Segment will collect events into batches of 200 before sending to Responsys.',
@@ -24,4 +16,4 @@ exports.batch_size = {
24
16
  unsafe_hidden: true,
25
17
  default: 200
26
18
  };
27
- //# sourceMappingURL=rsp-properties.js.map
19
+ //# sourceMappingURL=shared_properties.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared_properties.js","sourceRoot":"","sources":["../../../src/destinations/responsys-cloud/shared_properties.ts"],"names":[],"mappings":";;;AAEa,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"}
@@ -0,0 +1,38 @@
1
+ export interface Data {
2
+ rawMapping: {
3
+ userData: {
4
+ [k: string]: unknown;
5
+ };
6
+ };
7
+ }
8
+ export declare type MergeRule = {
9
+ htmlValue?: string;
10
+ optinValue?: string;
11
+ textValue?: string;
12
+ insertOnNoMatch?: boolean;
13
+ updateOnMatch?: string;
14
+ matchColumnName1?: string;
15
+ matchColumnName2?: string;
16
+ matchOperator?: string;
17
+ optoutValue?: string;
18
+ rejectRecordIfChannelEmpty?: string;
19
+ defaultPermissionStatus?: string;
20
+ };
21
+ export declare type RecordData = {
22
+ fieldNames: string[];
23
+ records: unknown[][];
24
+ mapTemplateName: string;
25
+ };
26
+ export declare type ListMemberRequestBody = {
27
+ recordData: RecordData;
28
+ } & {
29
+ mergeRule: MergeRule;
30
+ };
31
+ export declare type CustomTraitsRequestBody = {
32
+ recordData: RecordData;
33
+ } & {
34
+ insertOnNoMatch?: boolean;
35
+ updateOnMatch?: string;
36
+ matchColumnName1?: string;
37
+ matchColumnName2?: string;
38
+ };
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=Profile.js.map
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/destinations/responsys-cloud/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,14 @@
1
+ export interface Payload {
2
+ userData: {
3
+ EMAIL_ADDRESS_?: string;
4
+ EMAIL_MD5_HASH_?: string;
5
+ EMAIL_SHA256_HASH_?: string;
6
+ RIID_?: string;
7
+ CUSTOMER_ID_?: string;
8
+ MOBILE_NUMBER_?: string;
9
+ [k: string]: unknown;
10
+ };
11
+ stringify: boolean;
12
+ enable_batching?: boolean;
13
+ batch_size?: number;
14
+ }