@segment/action-destinations 3.366.1-staging-dd68967de.0 → 3.366.1-staging-73ccee21f.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/destinations/salesforce-marketing-cloud/_tests_/dataExtension.test.js +50 -0
- package/dist/destinations/salesforce-marketing-cloud/_tests_/dataExtension.test.js.map +1 -1
- package/dist/destinations/salesforce-marketing-cloud/contactDataExtension/generated-types.d.ts +21 -0
- package/dist/destinations/salesforce-marketing-cloud/contactDataExtension/index.js +54 -4
- package/dist/destinations/salesforce-marketing-cloud/contactDataExtension/index.js.map +1 -1
- package/dist/destinations/salesforce-marketing-cloud/dataExtension/generated-types.d.ts +21 -0
- package/dist/destinations/salesforce-marketing-cloud/dataExtension/index.js +54 -4
- package/dist/destinations/salesforce-marketing-cloud/dataExtension/index.js.map +1 -1
- package/dist/destinations/salesforce-marketing-cloud/sfmc-operations.d.ts +11 -3
- package/dist/destinations/salesforce-marketing-cloud/sfmc-operations.js +247 -9
- package/dist/destinations/salesforce-marketing-cloud/sfmc-operations.js.map +1 -1
- package/dist/destinations/salesforce-marketing-cloud/sfmc-properties.d.ts +46 -1
- package/dist/destinations/salesforce-marketing-cloud/sfmc-properties.js +109 -8
- package/dist/destinations/salesforce-marketing-cloud/sfmc-properties.js.map +1 -1
- package/package.json +2 -2
|
@@ -56,6 +56,56 @@ describe('Salesforce Marketing Cloud', () => {
|
|
|
56
56
|
}
|
|
57
57
|
})).rejects.toThrowError(`In order to send an event to a data extension either Data Extension ID or Data Extension Key must be defined.`);
|
|
58
58
|
});
|
|
59
|
+
it.only('should prioritize using the data extension ID created or selected from the hook', async () => {
|
|
60
|
+
const expectedUrl = `https://${settings.subdomain}.rest.marketingcloudapis.com/hub/v1/dataevents/hook_output123/rowset`;
|
|
61
|
+
(0, nock_1.default)(expectedUrl).post('').reply(200, {});
|
|
62
|
+
const responses = await testDestination.testAction('dataExtension', {
|
|
63
|
+
event,
|
|
64
|
+
settings,
|
|
65
|
+
mapping: {
|
|
66
|
+
keys: { '@path': '$.properties.keys' },
|
|
67
|
+
values: { '@path': '$.properties.values' },
|
|
68
|
+
onMappingSave: {
|
|
69
|
+
inputs: {},
|
|
70
|
+
outputs: {
|
|
71
|
+
id: 'hook_output123'
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
expect(responses[0].status).toBe(200);
|
|
77
|
+
expect(responses[0].options.body).toMatchInlineSnapshot(`"[{\\"keys\\":{\\"id\\":\\"HS1\\"},\\"values\\":{\\"name\\":\\"Harry Styles\\"}}]"`);
|
|
78
|
+
});
|
|
79
|
+
it('should fallback to using an existing deprecated data extension ID if no hook ID exists', async () => {
|
|
80
|
+
const expectedUrl = `https://${settings.subdomain}.rest.marketingcloudapis.com/hub/v1/dataevents/deprecated_123/rowset`;
|
|
81
|
+
(0, nock_1.default)(expectedUrl).post('').reply(200, {});
|
|
82
|
+
const responses = await testDestination.testAction('dataExtension', {
|
|
83
|
+
event,
|
|
84
|
+
settings,
|
|
85
|
+
mapping: {
|
|
86
|
+
keys: { '@path': '$.properties.keys' },
|
|
87
|
+
values: { '@path': '$.properties.values' },
|
|
88
|
+
id: 'deprecated_123'
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
expect(responses[0].status).toBe(200);
|
|
92
|
+
expect(responses[0].options.body).toMatchInlineSnapshot(`"[{\\"keys\\":{\\"id\\":\\"HS1\\"},\\"values\\":{\\"name\\":\\"Harry Styles\\"}}]"`);
|
|
93
|
+
});
|
|
94
|
+
it('should fallback to using an existing deprecated data extension key if no hook ID exists and no deprecated ID exists', async () => {
|
|
95
|
+
const expectedUrl = `https://${settings.subdomain}.rest.marketingcloudapis.com/hub/v1/dataevents/key:deprecated_123/rowset`;
|
|
96
|
+
(0, nock_1.default)(expectedUrl).post('').reply(200, {});
|
|
97
|
+
const responses = await testDestination.testAction('dataExtension', {
|
|
98
|
+
event,
|
|
99
|
+
settings,
|
|
100
|
+
mapping: {
|
|
101
|
+
keys: { '@path': '$.properties.keys' },
|
|
102
|
+
values: { '@path': '$.properties.values' },
|
|
103
|
+
key: 'deprecated_123'
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
expect(responses[0].status).toBe(200);
|
|
107
|
+
expect(responses[0].options.body).toMatchInlineSnapshot(`"[{\\"keys\\":{\\"id\\":\\"HS1\\"},\\"values\\":{\\"name\\":\\"Harry Styles\\"}}]"`);
|
|
108
|
+
});
|
|
59
109
|
});
|
|
60
110
|
});
|
|
61
111
|
//# sourceMappingURL=dataExtension.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataExtension.test.js","sourceRoot":"","sources":["../../../../src/destinations/salesforce-marketing-cloud/_tests_/dataExtension.test.ts"],"names":[],"mappings":";;;;;AAAA,gDAAuB;AACvB,wDAA8E;AAC9E,qDAAiC;AAGjC,MAAM,eAAe,GAAG,IAAA,oCAAqB,EAAC,eAAU,CAAC,CAAA;AACzD,MAAM,SAAS,GAAG,0BAA0B,CAAA;AAC5C,MAAM,QAAQ,GAAa;IACzB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,aAAa,EAAE,SAAS;IACxB,UAAU,EAAE,SAAS;CACtB,CAAA;AAED,MAAM,KAAK,GAAG,IAAA,8BAAe,EAAC;IAC5B,SAAS,EAAE,SAAS;IACpB,IAAI,EAAE,OAAO;IACb,MAAM,EAAE,SAAS;IACjB,UAAU,EAAE;QACV,EAAE,EAAE,YAAY;QAChB,IAAI,EAAE;YACJ,EAAE,EAAE,KAAK;SACV;QACD,MAAM,EAAE;YACN,IAAI,EAAE,cAAc;SACrB;KACF;CACF,CAAC,CAAA;AAEF,MAAM,UAAU,GAAG,WAAW,QAAQ,CAAC,SAAS,kEAAkE,CAAA;AAClH,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;IAC1C,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;QACrC,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;YAC3C,IAAA,cAAI,EAAC,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;YACxC,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,UAAU,CAAC,eAAe,EAAE;gBAClE,KAAK;gBACL,QAAQ;gBACR,OAAO,EAAE;oBACP,EAAE,EAAE,EAAE,OAAO,EAAE,iBAAiB,EAAE;oBAClC,IAAI,EAAE,EAAE,OAAO,EAAE,mBAAmB,EAAE;oBACtC,MAAM,EAAE,EAAE,OAAO,EAAE,qBAAqB,EAAE;iBAC3C;aACF,CAAC,CAAA;YACF,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YACrC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,qBAAqB,CACrD,oFAAoF,CACrF,CAAA;QACH,CAAC,CAAC,CAAA;QACF,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;YAC7E,IAAA,cAAI,EAAC,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;YACxC,MAAM,MAAM,CACV,eAAe,CAAC,UAAU,CAAC,eAAe,EAAE;gBAC1C,KAAK;gBACL,QAAQ;gBACR,OAAO,EAAE;oBACP,IAAI,EAAE,EAAE,OAAO,EAAE,mBAAmB,EAAE;oBACtC,MAAM,EAAE,EAAE,OAAO,EAAE,qBAAqB,EAAE;iBAC3C;aACF,CAAC,CACH,CAAC,OAAO,CAAC,YAAY,CACpB,+GAA+G,CAChH,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"dataExtension.test.js","sourceRoot":"","sources":["../../../../src/destinations/salesforce-marketing-cloud/_tests_/dataExtension.test.ts"],"names":[],"mappings":"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"}
|
package/dist/destinations/salesforce-marketing-cloud/contactDataExtension/generated-types.d.ts
CHANGED
|
@@ -11,3 +11,24 @@ export interface Payload {
|
|
|
11
11
|
enable_batching?: boolean;
|
|
12
12
|
batch_size?: number;
|
|
13
13
|
}
|
|
14
|
+
export interface OnMappingSaveInputs {
|
|
15
|
+
operation: string;
|
|
16
|
+
dataExtensionKey?: string;
|
|
17
|
+
dataExtensionId?: string;
|
|
18
|
+
categoryId?: string;
|
|
19
|
+
name?: string;
|
|
20
|
+
description?: string;
|
|
21
|
+
columns?: {
|
|
22
|
+
name: string;
|
|
23
|
+
type: string;
|
|
24
|
+
isNullable: boolean;
|
|
25
|
+
isPrimaryKey: boolean;
|
|
26
|
+
length: number;
|
|
27
|
+
description?: string;
|
|
28
|
+
[k: string]: unknown;
|
|
29
|
+
}[];
|
|
30
|
+
}
|
|
31
|
+
export interface OnMappingSaveOutputs {
|
|
32
|
+
id: string;
|
|
33
|
+
name: string;
|
|
34
|
+
}
|
|
@@ -27,11 +27,61 @@ const action = {
|
|
|
27
27
|
enable_batching: sfmc_properties_1.enable_batching,
|
|
28
28
|
batch_size: sfmc_properties_1.batch_size
|
|
29
29
|
},
|
|
30
|
-
|
|
31
|
-
|
|
30
|
+
dynamicFields: {
|
|
31
|
+
keys: {
|
|
32
|
+
__keys__: async (request, { settings, hookOutputs, payload }) => {
|
|
33
|
+
const dataExtensionId = hookOutputs?.onMappingSave?.outputs.id || payload.id || '';
|
|
34
|
+
return await (0, sfmc_operations_1.getDataExtensionFields)(request, settings.subdomain, settings, dataExtensionId);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
hooks: {
|
|
39
|
+
onMappingSave: {
|
|
40
|
+
label: 'Create Data Extension',
|
|
41
|
+
description: 'Create a new data extension in Salesforce Marketing Cloud.',
|
|
42
|
+
inputFields: {
|
|
43
|
+
operation: sfmc_properties_1.operation,
|
|
44
|
+
dataExtensionKey: sfmc_properties_1.dataExtensionKey,
|
|
45
|
+
dataExtensionId: {
|
|
46
|
+
...sfmc_properties_1.dataExtensionId,
|
|
47
|
+
dynamic: async (request, { dynamicFieldContext, settings }) => {
|
|
48
|
+
const query = dynamicFieldContext?.query;
|
|
49
|
+
return await (0, sfmc_operations_1.getDataExtensions)(request, settings.subdomain, settings, query);
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
categoryId: sfmc_properties_1.categoryId,
|
|
53
|
+
name: sfmc_properties_1.name,
|
|
54
|
+
description: sfmc_properties_1.description,
|
|
55
|
+
columns: sfmc_properties_1.columns
|
|
56
|
+
},
|
|
57
|
+
outputTypes: {
|
|
58
|
+
id: {
|
|
59
|
+
label: 'Data Extension ID',
|
|
60
|
+
description: 'The identifier for the data extension.',
|
|
61
|
+
type: 'string',
|
|
62
|
+
required: true
|
|
63
|
+
},
|
|
64
|
+
name: {
|
|
65
|
+
label: 'Data Extension Name',
|
|
66
|
+
description: 'The name of the data extension.',
|
|
67
|
+
type: 'string',
|
|
68
|
+
required: true
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
performHook: async (request, { settings, hookInputs }) => {
|
|
72
|
+
return await (0, sfmc_operations_1.selectOrCreateDataExtension)(request, settings.subdomain, hookInputs, settings);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
perform: async (request, { settings, payload, hookOutputs }) => {
|
|
77
|
+
const dataExtensionId = hookOutputs?.onMappingSave?.outputs.id || payload.id;
|
|
78
|
+
const deprecated_dataExtensionKey = payload.key;
|
|
79
|
+
return (0, sfmc_operations_1.upsertRows)(request, settings.subdomain, [payload], dataExtensionId, deprecated_dataExtensionKey);
|
|
32
80
|
},
|
|
33
|
-
performBatch: async (request, { settings, payload }) => {
|
|
34
|
-
|
|
81
|
+
performBatch: async (request, { settings, payload, hookOutputs }) => {
|
|
82
|
+
const dataExtensionId = hookOutputs?.onMappingSave?.outputs.id || payload[0].id;
|
|
83
|
+
const deprecated_dataExtensionKey = payload[0].key;
|
|
84
|
+
return (0, sfmc_operations_1.executeUpsertWithMultiStatus)(request, settings.subdomain, payload, dataExtensionId, deprecated_dataExtensionKey);
|
|
35
85
|
}
|
|
36
86
|
};
|
|
37
87
|
exports.default = action;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/salesforce-marketing-cloud/contactDataExtension/index.ts"],"names":[],"mappings":";;AAGA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/salesforce-marketing-cloud/contactDataExtension/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,3 +10,24 @@ export interface Payload {
|
|
|
10
10
|
enable_batching?: boolean;
|
|
11
11
|
batch_size?: number;
|
|
12
12
|
}
|
|
13
|
+
export interface OnMappingSaveInputs {
|
|
14
|
+
operation: string;
|
|
15
|
+
dataExtensionKey?: string;
|
|
16
|
+
dataExtensionId?: string;
|
|
17
|
+
categoryId?: string;
|
|
18
|
+
name?: string;
|
|
19
|
+
description?: string;
|
|
20
|
+
columns?: {
|
|
21
|
+
name: string;
|
|
22
|
+
type: string;
|
|
23
|
+
isNullable: boolean;
|
|
24
|
+
isPrimaryKey: boolean;
|
|
25
|
+
length: number;
|
|
26
|
+
description?: string;
|
|
27
|
+
[k: string]: unknown;
|
|
28
|
+
}[];
|
|
29
|
+
}
|
|
30
|
+
export interface OnMappingSaveOutputs {
|
|
31
|
+
id: string;
|
|
32
|
+
name: string;
|
|
33
|
+
}
|
|
@@ -13,11 +13,61 @@ const action = {
|
|
|
13
13
|
enable_batching: sfmc_properties_1.enable_batching,
|
|
14
14
|
batch_size: sfmc_properties_1.batch_size
|
|
15
15
|
},
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
dynamicFields: {
|
|
17
|
+
keys: {
|
|
18
|
+
__keys__: async (request, { settings, hookOutputs, payload }) => {
|
|
19
|
+
const dataExtensionId = hookOutputs?.onMappingSave?.outputs.id || payload.id || '';
|
|
20
|
+
return await (0, sfmc_operations_1.getDataExtensionFields)(request, settings.subdomain, settings, dataExtensionId);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
18
23
|
},
|
|
19
|
-
|
|
20
|
-
|
|
24
|
+
hooks: {
|
|
25
|
+
onMappingSave: {
|
|
26
|
+
label: 'Create Data Extension',
|
|
27
|
+
description: 'Create a new data extension in Salesforce Marketing Cloud.',
|
|
28
|
+
inputFields: {
|
|
29
|
+
operation: sfmc_properties_1.operation,
|
|
30
|
+
dataExtensionKey: sfmc_properties_1.dataExtensionKey,
|
|
31
|
+
dataExtensionId: {
|
|
32
|
+
...sfmc_properties_1.dataExtensionId,
|
|
33
|
+
dynamic: async (request, { dynamicFieldContext, settings }) => {
|
|
34
|
+
const query = dynamicFieldContext?.query;
|
|
35
|
+
return await (0, sfmc_operations_1.getDataExtensions)(request, settings.subdomain, settings, query);
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
categoryId: sfmc_properties_1.categoryId,
|
|
39
|
+
name: sfmc_properties_1.name,
|
|
40
|
+
description: sfmc_properties_1.description,
|
|
41
|
+
columns: sfmc_properties_1.columns
|
|
42
|
+
},
|
|
43
|
+
outputTypes: {
|
|
44
|
+
id: {
|
|
45
|
+
label: 'Data Extension ID',
|
|
46
|
+
description: 'The identifier for the data extension.',
|
|
47
|
+
type: 'string',
|
|
48
|
+
required: true
|
|
49
|
+
},
|
|
50
|
+
name: {
|
|
51
|
+
label: 'Data Extension Name',
|
|
52
|
+
description: 'The name of the data extension.',
|
|
53
|
+
type: 'string',
|
|
54
|
+
required: true
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
performHook: async (request, { settings, hookInputs }) => {
|
|
58
|
+
return await (0, sfmc_operations_1.selectOrCreateDataExtension)(request, settings.subdomain, hookInputs, settings);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
perform: async (request, { settings, payload, hookOutputs }) => {
|
|
63
|
+
const dataExtensionId = hookOutputs?.onMappingSave?.outputs.id || payload.id;
|
|
64
|
+
const deprecated_dataExtensionKey = payload.key;
|
|
65
|
+
return (0, sfmc_operations_1.upsertRows)(request, settings.subdomain, [payload], dataExtensionId, deprecated_dataExtensionKey);
|
|
66
|
+
},
|
|
67
|
+
performBatch: async (request, { settings, payload, hookOutputs }) => {
|
|
68
|
+
const dataExtensionId = hookOutputs?.onMappingSave?.outputs.id || payload[0].id;
|
|
69
|
+
const deprecated_dataExtensionKey = payload[0].key;
|
|
70
|
+
return (0, sfmc_operations_1.executeUpsertWithMultiStatus)(request, settings.subdomain, payload, dataExtensionId, deprecated_dataExtensionKey);
|
|
21
71
|
}
|
|
22
72
|
};
|
|
23
73
|
exports.default = action;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/salesforce-marketing-cloud/dataExtension/index.ts"],"names":[],"mappings":";;AAGA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/salesforce-marketing-cloud/dataExtension/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,13 @@
|
|
|
1
|
-
import { RequestClient, MultiStatusResponse, ModifiedResponse } from '@segment/actions-core';
|
|
1
|
+
import { RequestClient, MultiStatusResponse, ModifiedResponse, ActionHookResponse, DynamicFieldResponse } from '@segment/actions-core';
|
|
2
2
|
import { Payload as payload_dataExtension } from './dataExtension/generated-types';
|
|
3
3
|
import { Payload as payload_contactDataExtension } from './contactDataExtension/generated-types';
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
import { OnMappingSaveInputs } from './dataExtension/generated-types';
|
|
5
|
+
import { Settings } from './generated-types';
|
|
6
|
+
export declare function upsertRows(request: RequestClient, subdomain: String, payloads: payload_dataExtension[] | payload_contactDataExtension[], dataExtensionId?: string, dataExtensionKey?: string): Promise<ModifiedResponse<unknown>>;
|
|
7
|
+
export declare function executeUpsertWithMultiStatus(request: RequestClient, subdomain: String, payloads: payload_dataExtension[] | payload_contactDataExtension[], dataExtensionId?: string, dataExtensionKey?: string): Promise<MultiStatusResponse>;
|
|
8
|
+
export declare const selectOrCreateDataExtension: (request: RequestClient, subdomain: string, hookInputs: OnMappingSaveInputs, settings: Settings) => Promise<ActionHookResponse<{
|
|
9
|
+
id: string;
|
|
10
|
+
name: string;
|
|
11
|
+
}>>;
|
|
12
|
+
export declare const getDataExtensions: (request: RequestClient, subdomain: string, settings: Settings, query?: string) => Promise<DynamicFieldResponse>;
|
|
13
|
+
export declare const getDataExtensionFields: (request: RequestClient, subdomain: string, settings: Settings, dataExtensionID: string) => Promise<DynamicFieldResponse>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.executeUpsertWithMultiStatus = exports.upsertRows = void 0;
|
|
3
|
+
exports.getDataExtensionFields = exports.getDataExtensions = exports.selectOrCreateDataExtension = exports.executeUpsertWithMultiStatus = exports.upsertRows = void 0;
|
|
4
4
|
const actions_core_1 = require("@segment/actions-core");
|
|
5
5
|
function generateRows(payloads) {
|
|
6
6
|
const rows = [];
|
|
@@ -12,32 +12,31 @@ function generateRows(payloads) {
|
|
|
12
12
|
});
|
|
13
13
|
return rows;
|
|
14
14
|
}
|
|
15
|
-
function upsertRows(request, subdomain, payloads) {
|
|
16
|
-
|
|
17
|
-
if (!key && !id) {
|
|
15
|
+
function upsertRows(request, subdomain, payloads, dataExtensionId, dataExtensionKey) {
|
|
16
|
+
if (!dataExtensionKey && !dataExtensionId) {
|
|
18
17
|
throw new actions_core_1.IntegrationError(`In order to send an event to a data extension either Data Extension ID or Data Extension Key must be defined.`, 'Misconfigured required field', 400);
|
|
19
18
|
}
|
|
20
19
|
const rows = generateRows(payloads);
|
|
21
|
-
if (
|
|
22
|
-
return request(`https://${subdomain}.rest.marketingcloudapis.com/hub/v1/dataevents/key:${
|
|
20
|
+
if (dataExtensionKey) {
|
|
21
|
+
return request(`https://${subdomain}.rest.marketingcloudapis.com/hub/v1/dataevents/key:${dataExtensionKey}/rowset`, {
|
|
23
22
|
method: 'POST',
|
|
24
23
|
json: rows
|
|
25
24
|
});
|
|
26
25
|
}
|
|
27
26
|
else {
|
|
28
|
-
return request(`https://${subdomain}.rest.marketingcloudapis.com/hub/v1/dataevents/${
|
|
27
|
+
return request(`https://${subdomain}.rest.marketingcloudapis.com/hub/v1/dataevents/${dataExtensionId}/rowset`, {
|
|
29
28
|
method: 'POST',
|
|
30
29
|
json: rows
|
|
31
30
|
});
|
|
32
31
|
}
|
|
33
32
|
}
|
|
34
33
|
exports.upsertRows = upsertRows;
|
|
35
|
-
async function executeUpsertWithMultiStatus(request, subdomain, payloads) {
|
|
34
|
+
async function executeUpsertWithMultiStatus(request, subdomain, payloads, dataExtensionId, dataExtensionKey) {
|
|
36
35
|
const multiStatusResponse = new actions_core_1.MultiStatusResponse();
|
|
37
36
|
let response;
|
|
38
37
|
const rows = generateRows(payloads);
|
|
39
38
|
try {
|
|
40
|
-
response = await upsertRows(request, subdomain, payloads);
|
|
39
|
+
response = await upsertRows(request, subdomain, payloads, dataExtensionId, dataExtensionKey);
|
|
41
40
|
if (response) {
|
|
42
41
|
const responseData = response.data;
|
|
43
42
|
payloads.forEach((_, index) => {
|
|
@@ -80,4 +79,243 @@ async function executeUpsertWithMultiStatus(request, subdomain, payloads) {
|
|
|
80
79
|
return multiStatusResponse;
|
|
81
80
|
}
|
|
82
81
|
exports.executeUpsertWithMultiStatus = executeUpsertWithMultiStatus;
|
|
82
|
+
const getAccessToken = async (request, settings) => {
|
|
83
|
+
const baseUrl = `https://${settings.subdomain}.auth.marketingcloudapis.com/v2/token`;
|
|
84
|
+
const res = await request(`${baseUrl}`, {
|
|
85
|
+
method: 'POST',
|
|
86
|
+
body: new URLSearchParams({
|
|
87
|
+
account_id: settings.account_id,
|
|
88
|
+
client_id: settings.client_id,
|
|
89
|
+
client_secret: settings.client_secret,
|
|
90
|
+
grant_type: 'client_credentials'
|
|
91
|
+
})
|
|
92
|
+
});
|
|
93
|
+
return res.data.access_token;
|
|
94
|
+
};
|
|
95
|
+
const dataExtensionRequest = async (request, hookInputs, auth) => {
|
|
96
|
+
if (!hookInputs) {
|
|
97
|
+
return { id: '', key: '', error: 'No inputs provided' };
|
|
98
|
+
}
|
|
99
|
+
if (!hookInputs.columns) {
|
|
100
|
+
return { id: '', key: '', error: 'No columns provided' };
|
|
101
|
+
}
|
|
102
|
+
const fields = hookInputs.columns.map((column, i) => {
|
|
103
|
+
return {
|
|
104
|
+
name: column.name,
|
|
105
|
+
type: column.type,
|
|
106
|
+
isNullable: column.isNullable,
|
|
107
|
+
isPrimaryKey: column.isPrimaryKey,
|
|
108
|
+
length: column.length,
|
|
109
|
+
description: column.description || '',
|
|
110
|
+
ordinal: i,
|
|
111
|
+
isTemplateField: false,
|
|
112
|
+
isHidden: false,
|
|
113
|
+
isReadOnly: false,
|
|
114
|
+
isInheritable: false,
|
|
115
|
+
isOverridable: false,
|
|
116
|
+
mustOverride: false
|
|
117
|
+
};
|
|
118
|
+
});
|
|
119
|
+
try {
|
|
120
|
+
const response = await request(`https://${auth.subdomain}.rest.marketingcloudapis.com/data/v1/customobjects`, {
|
|
121
|
+
method: 'POST',
|
|
122
|
+
json: {
|
|
123
|
+
name: hookInputs.name,
|
|
124
|
+
description: hookInputs.description,
|
|
125
|
+
categoryId: hookInputs.categoryId,
|
|
126
|
+
fields
|
|
127
|
+
},
|
|
128
|
+
headers: {
|
|
129
|
+
authorization: `Bearer ${auth.accessToken}`
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
if (response.status !== 201) {
|
|
133
|
+
return { id: '', key: '', error: `Failed to create Data Extension` };
|
|
134
|
+
}
|
|
135
|
+
return {
|
|
136
|
+
id: response.data.id,
|
|
137
|
+
key: response.data.key
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
catch (error) {
|
|
141
|
+
return { id: '', key: '', error: error.response.data.message };
|
|
142
|
+
}
|
|
143
|
+
};
|
|
144
|
+
async function createDataExtension(request, subdomain, hookInputs, settings) {
|
|
145
|
+
if (!hookInputs) {
|
|
146
|
+
return {
|
|
147
|
+
error: { message: 'No inputs provided', code: 'ERROR' }
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
const accessToken = await getAccessToken(request, settings);
|
|
151
|
+
const { id, key, error } = await dataExtensionRequest(request, hookInputs, { subdomain, accessToken });
|
|
152
|
+
if (error || !id || !key) {
|
|
153
|
+
return {
|
|
154
|
+
error: { message: error || 'Unknown Error', code: 'ERROR' }
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
return {
|
|
158
|
+
successMessage: `Data Extension ${hookInputs.name} created successfully with External Key ${key}`,
|
|
159
|
+
savedData: {
|
|
160
|
+
id,
|
|
161
|
+
name: hookInputs.name
|
|
162
|
+
}
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
const selectDataExtensionRequest = async (request, hookInputs, auth) => {
|
|
166
|
+
if (!hookInputs) {
|
|
167
|
+
return { id: '', key: '', name: '', error: 'No inputs provided' };
|
|
168
|
+
}
|
|
169
|
+
if (!hookInputs.dataExtensionKey && !hookInputs.dataExtensionId) {
|
|
170
|
+
return { id: '', key: '', name: '', error: 'No Data Extension Key or Data Extension Id provided' };
|
|
171
|
+
}
|
|
172
|
+
try {
|
|
173
|
+
const response = await request(`https://${auth.subdomain}.rest.marketingcloudapis.com/data/v1/customobjects/${hookInputs.dataExtensionId}`, {
|
|
174
|
+
method: 'GET',
|
|
175
|
+
headers: {
|
|
176
|
+
authorization: `Bearer ${auth.accessToken}`
|
|
177
|
+
}
|
|
178
|
+
});
|
|
179
|
+
console.log('res', response);
|
|
180
|
+
if (response.status !== 200) {
|
|
181
|
+
return { id: '', key: '', name: '', error: `Failed to select Data Extension` };
|
|
182
|
+
}
|
|
183
|
+
return {
|
|
184
|
+
id: response.data.id,
|
|
185
|
+
key: response.data.key,
|
|
186
|
+
name: response.data.name
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
catch (err) {
|
|
190
|
+
return { id: '', key: '', name: '', error: err.response.data.message };
|
|
191
|
+
}
|
|
192
|
+
};
|
|
193
|
+
async function selectDataExtension(request, subdomain, hookInputs, settings) {
|
|
194
|
+
if (!hookInputs) {
|
|
195
|
+
return {
|
|
196
|
+
error: { message: 'No inputs provided', code: 'ERROR' }
|
|
197
|
+
};
|
|
198
|
+
}
|
|
199
|
+
const accessToken = await getAccessToken(request, settings);
|
|
200
|
+
const { id, key, name, error } = await selectDataExtensionRequest(request, hookInputs, { subdomain, accessToken });
|
|
201
|
+
if (error || !id || !key) {
|
|
202
|
+
return {
|
|
203
|
+
error: { message: error || 'Unknown Error', code: 'ERROR' }
|
|
204
|
+
};
|
|
205
|
+
}
|
|
206
|
+
return {
|
|
207
|
+
successMessage: `Data Extension ${name} selected successfully with External Key ${key}`,
|
|
208
|
+
savedData: {
|
|
209
|
+
id,
|
|
210
|
+
name: name
|
|
211
|
+
}
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
const selectOrCreateDataExtension = async (request, subdomain, hookInputs, settings) => {
|
|
215
|
+
if (hookInputs.operation === 'create') {
|
|
216
|
+
return await createDataExtension(request, subdomain, hookInputs, settings);
|
|
217
|
+
}
|
|
218
|
+
else if (hookInputs.operation === 'select') {
|
|
219
|
+
return await selectDataExtension(request, subdomain, hookInputs, settings);
|
|
220
|
+
}
|
|
221
|
+
return {
|
|
222
|
+
error: { message: 'Invalid operation', code: 'ERROR' }
|
|
223
|
+
};
|
|
224
|
+
};
|
|
225
|
+
exports.selectOrCreateDataExtension = selectOrCreateDataExtension;
|
|
226
|
+
const getDataExtensionsRequest = async (request, searchQuery, auth) => {
|
|
227
|
+
try {
|
|
228
|
+
const response = await request(`https://${auth.subdomain}.rest.marketingcloudapis.com/data/v1/customobjects`, {
|
|
229
|
+
method: 'get',
|
|
230
|
+
searchParams: {
|
|
231
|
+
$search: searchQuery
|
|
232
|
+
},
|
|
233
|
+
headers: {
|
|
234
|
+
authorization: `Bearer ${auth.accessToken}`
|
|
235
|
+
}
|
|
236
|
+
});
|
|
237
|
+
if (response.status !== 200) {
|
|
238
|
+
return { error: { message: 'Failed to fetch Data Extensions', code: 'BAD_REQUEST' } };
|
|
239
|
+
}
|
|
240
|
+
const choices = response.data.items;
|
|
241
|
+
return {
|
|
242
|
+
results: choices.map((choice) => {
|
|
243
|
+
return {
|
|
244
|
+
value: choice.id,
|
|
245
|
+
label: choice.name
|
|
246
|
+
};
|
|
247
|
+
})
|
|
248
|
+
};
|
|
249
|
+
}
|
|
250
|
+
catch (err) {
|
|
251
|
+
return { error: { message: err.response.data.message, code: 'BAD_REQUEST' } };
|
|
252
|
+
}
|
|
253
|
+
};
|
|
254
|
+
const getDataExtensions = async (request, subdomain, settings, query) => {
|
|
255
|
+
let searchQuery = '_';
|
|
256
|
+
if (query && query !== '') {
|
|
257
|
+
searchQuery = query;
|
|
258
|
+
}
|
|
259
|
+
const accessToken = await getAccessToken(request, settings);
|
|
260
|
+
const { results, error } = await getDataExtensionsRequest(request, searchQuery, { subdomain, accessToken });
|
|
261
|
+
if (error) {
|
|
262
|
+
return {
|
|
263
|
+
choices: [],
|
|
264
|
+
error: error
|
|
265
|
+
};
|
|
266
|
+
}
|
|
267
|
+
if (!results || (Array.isArray(results) && results.length === 0)) {
|
|
268
|
+
return {
|
|
269
|
+
choices: [],
|
|
270
|
+
error: { message: 'No Data Extensions found', code: 'NOT_FOUND' }
|
|
271
|
+
};
|
|
272
|
+
}
|
|
273
|
+
return {
|
|
274
|
+
choices: results
|
|
275
|
+
};
|
|
276
|
+
};
|
|
277
|
+
exports.getDataExtensions = getDataExtensions;
|
|
278
|
+
const getDataExtensionFieldsRequest = async (request, dataExtensionId, auth) => {
|
|
279
|
+
try {
|
|
280
|
+
const response = await request(`https://${auth.subdomain}.rest.marketingcloudapis.com/data/v1/customobjects/${dataExtensionId}/fields`, {
|
|
281
|
+
method: 'GET',
|
|
282
|
+
headers: {
|
|
283
|
+
authorization: `Bearer ${auth.accessToken}`
|
|
284
|
+
}
|
|
285
|
+
});
|
|
286
|
+
if (response.status !== 200) {
|
|
287
|
+
return { error: { message: 'Failed to fetch Data Extension fields', code: 'BAD_REQUEST' } };
|
|
288
|
+
}
|
|
289
|
+
const choices = response.data.fields.map((field) => {
|
|
290
|
+
return { value: field.name, label: field.name };
|
|
291
|
+
});
|
|
292
|
+
return { results: choices };
|
|
293
|
+
}
|
|
294
|
+
catch (err) {
|
|
295
|
+
return { error: { message: err.response.data.message, code: 'BAD_REQUEST' } };
|
|
296
|
+
}
|
|
297
|
+
};
|
|
298
|
+
const getDataExtensionFields = async (request, subdomain, settings, dataExtensionID) => {
|
|
299
|
+
if (!dataExtensionID) {
|
|
300
|
+
return { choices: [], error: { message: 'No Data Extension ID provided', code: 'BAD_REQUEST' } };
|
|
301
|
+
}
|
|
302
|
+
const accessToken = await getAccessToken(request, settings);
|
|
303
|
+
const { results, error } = await getDataExtensionFieldsRequest(request, dataExtensionID, { subdomain, accessToken });
|
|
304
|
+
if (error) {
|
|
305
|
+
return {
|
|
306
|
+
choices: [],
|
|
307
|
+
error: error
|
|
308
|
+
};
|
|
309
|
+
}
|
|
310
|
+
if (!results || (Array.isArray(results) && results.length === 0)) {
|
|
311
|
+
return {
|
|
312
|
+
choices: [],
|
|
313
|
+
error: { message: 'No Data Extension fields found', code: 'NOT_FOUND' }
|
|
314
|
+
};
|
|
315
|
+
}
|
|
316
|
+
return {
|
|
317
|
+
choices: results
|
|
318
|
+
};
|
|
319
|
+
};
|
|
320
|
+
exports.getDataExtensionFields = getDataExtensionFields;
|
|
83
321
|
//# sourceMappingURL=sfmc-operations.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sfmc-operations.js","sourceRoot":"","sources":["../../../src/destinations/salesforce-marketing-cloud/sfmc-operations.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sfmc-operations.js","sourceRoot":"","sources":["../../../src/destinations/salesforce-marketing-cloud/sfmc-operations.ts"],"names":[],"mappings":";;;AAAA,wDAU8B;AAO9B,SAAS,YAAY,CAAC,QAAkE;IACtF,MAAM,IAAI,GAA0B,EAAE,CAAA;IACtC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAA6D,EAAE,EAAE;QACjF,IAAI,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IACF,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAgB,UAAU,CACxB,OAAsB,EACtB,SAAiB,EACjB,QAAkE,EAClE,eAAwB,EACxB,gBAAyB;IAEzB,IAAI,CAAC,gBAAgB,IAAI,CAAC,eAAe,EAAE;QACzC,MAAM,IAAI,+BAAgB,CACxB,+GAA+G,EAC/G,8BAA8B,EAC9B,GAAG,CACJ,CAAA;KACF;IACD,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAA;IACnC,IAAI,gBAAgB,EAAE;QACpB,OAAO,OAAO,CACZ,WAAW,SAAS,sDAAsD,gBAAgB,SAAS,EACnG;YACE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI;SACX,CACF,CAAA;KACF;SAAM;QACL,OAAO,OAAO,CAAC,WAAW,SAAS,kDAAkD,eAAe,SAAS,EAAE;YAC7G,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI;SACX,CAAC,CAAA;KACH;AACH,CAAC;AA7BD,gCA6BC;AAEM,KAAK,UAAU,4BAA4B,CAChD,OAAsB,EACtB,SAAiB,EACjB,QAAkE,EAClE,eAAwB,EACxB,gBAAyB;IAEzB,MAAM,mBAAmB,GAAG,IAAI,kCAAmB,EAAE,CAAA;IACrD,IAAI,QAAsC,CAAA;IAC1C,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAA;IACnC,IAAI;QACF,QAAQ,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,gBAAgB,CAAC,CAAA;QAC5F,IAAI,QAAQ,EAAE;YACZ,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAwB,CAAA;YACtD,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;gBAC5B,mBAAmB,CAAC,yBAAyB,CAAC,KAAK,EAAE;oBACnD,MAAM,EAAE,GAAG;oBACX,IAAI,EAAE,IAAI,CAAC,KAAK,CAA6B;oBAC7C,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAE,YAAY,CAAC,KAAK,CAA8B,CAAC,CAAC,CAAC,EAAE;iBACnF,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;SACH;KACF;IAAC,OAAO,KAAK,EAAE;QACd,IAAI,KAAK,YAAY,+BAAgB,IAAI,KAAK,CAAC,IAAI,KAAK,8BAA8B,EAAE;YACtF,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;gBAC5B,mBAAmB,CAAC,uBAAuB,CAAC,KAAK,EAAE;oBACjD,MAAM,EAAE,GAAG;oBACX,SAAS,EAAE,2BAA2B;oBACtC,YAAY,EAAE,+GAA+G;iBAC9H,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;YACF,OAAO,mBAAmB,CAAA;SAC3B;QACD,MAAM,GAAG,GAAG,KAAsB,CAAA;QAClC,IAAI,GAAG,EAAE,QAAQ,EAAE,MAAM,KAAK,GAAG,EAAE;YACjC,MAAM,KAAK,CAAA;SACZ;QAED,MAAM,OAAO,GAAG,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAA;QACnC,MAAM,eAAe,GACnB,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,gBAAgB;YACrC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC;YAC7C,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAA;QAEpC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;YAC5B,mBAAmB,CAAC,uBAAuB,CAAC,KAAK,EAAE;gBACjD,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG;gBACpC,YAAY,EAAE,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE;gBACnF,IAAI,EAAE,IAAI,CAAC,KAAK,CAA6B;gBAe7C,IAAI,EAAE,eAAe,CAAC,CAAC,CAAE,eAA4C,CAAC,CAAC,CAAE,OAAoC;aAC9G,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;KACH;IACD,OAAO,mBAAmB,CAAA;AAC5B,CAAC;AApED,oEAoEC;AA4CD,MAAM,cAAc,GAAG,KAAK,EAAE,OAAsB,EAAE,QAAkB,EAAmB,EAAE;IAC3F,MAAM,OAAO,GAAG,WAAW,QAAQ,CAAC,SAAS,uCAAuC,CAAA;IACpF,MAAM,GAAG,GAAG,MAAM,OAAO,CAAuB,GAAG,OAAO,EAAE,EAAE;QAC5D,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,IAAI,eAAe,CAAC;YACxB,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,aAAa,EAAE,QAAQ,CAAC,aAAa;YACrC,UAAU,EAAE,oBAAoB;SACjC,CAAC;KACH,CAAC,CAAA;IAEF,OAAO,GAAG,CAAC,IAAI,CAAC,YAAY,CAAA;AAC9B,CAAC,CAAA;AAED,MAAM,oBAAoB,GAAG,KAAK,EAChC,OAAsB,EACtB,UAA+B,EAC/B,IAAgD,EACQ,EAAE;IAC1D,IAAI,CAAC,UAAU,EAAE;QACf,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAA;KACxD;IAED,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;QACvB,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,qBAAqB,EAAE,CAAA;KACzD;IAED,MAAM,MAAM,GAAyB,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACxE,OAAO;YACL,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,EAAE;YAErC,OAAO,EAAE,CAAC;YACV,eAAe,EAAE,KAAK;YACtB,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE,KAAK;YACjB,aAAa,EAAE,KAAK;YACpB,aAAa,EAAE,KAAK;YACpB,YAAY,EAAE,KAAK;SACpB,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,IAAI;QACF,MAAM,QAAQ,GAAG,MAAM,OAAO,CAC5B,WAAW,IAAI,CAAC,SAAS,oDAAoD,EAC7E;YACE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE;gBACJ,IAAI,EAAE,UAAU,CAAC,IAAI;gBACrB,WAAW,EAAE,UAAU,CAAC,WAAW;gBACnC,UAAU,EAAE,UAAU,CAAC,UAAU;gBACjC,MAAM;aACP;YACD,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,IAAI,CAAC,WAAW,EAAE;aAC5C;SACF,CACF,CAAA;QAED,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE;YAC3B,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,iCAAiC,EAAE,CAAA;SACrE;QAED,OAAO;YACL,EAAE,EAAG,QAA0C,CAAC,IAAI,CAAC,EAAE;YACvD,GAAG,EAAG,QAA0C,CAAC,IAAI,CAAC,GAAG;SAC1D,CAAA;KACF;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAA;KAC/D;AACH,CAAC,CAAA;AAED,KAAK,UAAU,mBAAmB,CAChC,OAAsB,EACtB,SAAiB,EACjB,UAA+B,EAC/B,QAAkB;IAElB,IAAI,CAAC,UAAU,EAAE;QACf,OAAO;YACL,KAAK,EAAE,EAAE,OAAO,EAAE,oBAAoB,EAAE,IAAI,EAAE,OAAO,EAAE;SACxD,CAAA;KACF;IAED,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;IAE3D,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,MAAM,oBAAoB,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAA;IAEtG,IAAI,KAAK,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE;QACxB,OAAO;YACL,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,IAAI,eAAe,EAAE,IAAI,EAAE,OAAO,EAAE;SAC5D,CAAA;KACF;IAED,OAAO;QACL,cAAc,EAAE,kBAAkB,UAAU,CAAC,IAAI,2CAA2C,GAAG,EAAE;QACjG,SAAS,EAAE;YACT,EAAE;YACF,IAAI,EAAE,UAAU,CAAC,IAAK;SACvB;KACF,CAAA;AACH,CAAC;AAED,MAAM,0BAA0B,GAAG,KAAK,EACtC,OAAsB,EACtB,UAA+B,EAC/B,IAAgD,EACuB,EAAE;IACzE,IAAI,CAAC,UAAU,EAAE;QACf,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAA;KAClE;IAED,IAAI,CAAC,UAAU,CAAC,gBAAgB,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE;QAC/D,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,qDAAqD,EAAE,CAAA;KACnG;IAED,IAAI;QACF,MAAM,QAAQ,GAAG,MAAM,OAAO,CAC5B,WAAW,IAAI,CAAC,SAAS,sDAAsD,UAAU,CAAC,eAAe,EAAE,EAC3G;YACE,MAAM,EAAE,KAAK;YACb,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,IAAI,CAAC,WAAW,EAAE;aAC5C;SACF,CACF,CAAA;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;QAC5B,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE;YAC3B,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,iCAAiC,EAAE,CAAA;SAC/E;QAED,OAAO;YACL,EAAE,EAAG,QAA2C,CAAC,IAAI,CAAC,EAAE;YACxD,GAAG,EAAG,QAA2C,CAAC,IAAI,CAAC,GAAG;YAC1D,IAAI,EAAG,QAA2C,CAAC,IAAI,CAAC,IAAI;SAC7D,CAAA;KACF;IAAC,OAAO,GAAG,EAAE;QACZ,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAA;KACvE;AACH,CAAC,CAAA;AAED,KAAK,UAAU,mBAAmB,CAChC,OAAsB,EACtB,SAAiB,EACjB,UAA+B,EAC/B,QAAkB;IAElB,IAAI,CAAC,UAAU,EAAE;QACf,OAAO;YACL,KAAK,EAAE,EAAE,OAAO,EAAE,oBAAoB,EAAE,IAAI,EAAE,OAAO,EAAE;SACxD,CAAA;KACF;IAED,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;IAE3D,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,0BAA0B,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAA;IAElH,IAAI,KAAK,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE;QACxB,OAAO;YACL,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,IAAI,eAAe,EAAE,IAAI,EAAE,OAAO,EAAE;SAC5D,CAAA;KACF;IAED,OAAO;QACL,cAAc,EAAE,kBAAkB,IAAI,4CAA4C,GAAG,EAAE;QACvF,SAAS,EAAE;YACT,EAAE;YACF,IAAI,EAAE,IAAK;SACZ;KACF,CAAA;AACH,CAAC;AAEM,MAAM,2BAA2B,GAAG,KAAK,EAC9C,OAAsB,EACtB,SAAiB,EACjB,UAA+B,EAC/B,QAAkB,EACyC,EAAE;IAC7D,IAAI,UAAU,CAAC,SAAS,KAAK,QAAQ,EAAE;QACrC,OAAO,MAAM,mBAAmB,CAAC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAA;KAC3E;SAAM,IAAI,UAAU,CAAC,SAAS,KAAK,QAAQ,EAAE;QAC5C,OAAO,MAAM,mBAAmB,CAAC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAA;KAC3E;IAED,OAAO;QACL,KAAK,EAAE,EAAE,OAAO,EAAE,mBAAmB,EAAE,IAAI,EAAE,OAAO,EAAE;KACvD,CAAA;AACH,CAAC,CAAA;AAfY,QAAA,2BAA2B,+BAevC;AAED,MAAM,wBAAwB,GAAG,KAAK,EACpC,OAAsB,EACtB,WAAmB,EACnB,IAAgD,EACsB,EAAE;IACxE,IAAI;QACF,MAAM,QAAQ,GAAG,MAAM,OAAO,CAC5B,WAAW,IAAI,CAAC,SAAS,oDAAoD,EAC7E;YACE,MAAM,EAAE,KAAK;YACb,YAAY,EAAE;gBACZ,OAAO,EAAE,WAAW;aACrB;YACD,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,IAAI,CAAC,WAAW,EAAE;aAC5C;SACF,CACF,CAAA;QAED,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE;YAC3B,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,iCAAiC,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,CAAA;SACtF;QAED,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAA;QAEnC,OAAO;YACL,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;gBAC9B,OAAO;oBACL,KAAK,EAAE,MAAM,CAAC,EAAE;oBAChB,KAAK,EAAE,MAAM,CAAC,IAAI;iBACnB,CAAA;YACH,CAAC,CAAC;SACH,CAAA;KACF;IAAC,OAAO,GAAG,EAAE;QACZ,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,CAAA;KAC9E;AACH,CAAC,CAAA;AAEM,MAAM,iBAAiB,GAAG,KAAK,EACpC,OAAsB,EACtB,SAAiB,EACjB,QAAkB,EAClB,KAAc,EACiB,EAAE;IACjC,IAAI,WAAW,GAAG,GAAG,CAAA;IACrB,IAAI,KAAK,IAAI,KAAK,KAAK,EAAE,EAAE;QACzB,WAAW,GAAG,KAAK,CAAA;KACpB;IAED,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;IAE3D,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,MAAM,wBAAwB,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAA;IAE3G,IAAI,KAAK,EAAE;QACT,OAAO;YACL,OAAO,EAAE,EAAE;YACX,KAAK,EAAE,KAAK;SACb,CAAA;KACF;IAED,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE;QAChE,OAAO;YACL,OAAO,EAAE,EAAE;YACX,KAAK,EAAE,EAAE,OAAO,EAAE,0BAA0B,EAAE,IAAI,EAAE,WAAW,EAAE;SAClE,CAAA;KACF;IAED,OAAO;QACL,OAAO,EAAE,OAAO;KACjB,CAAA;AACH,CAAC,CAAA;AAhCY,QAAA,iBAAiB,qBAgC7B;AAED,MAAM,6BAA6B,GAAG,KAAK,EACzC,OAAsB,EACtB,eAAuB,EACvB,IAAgD,EACsB,EAAE;IACxE,IAAI;QACF,MAAM,QAAQ,GAAG,MAAM,OAAO,CAC5B,WAAW,IAAI,CAAC,SAAS,sDAAsD,eAAe,SAAS,EACvG;YACE,MAAM,EAAE,KAAK;YACb,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,IAAI,CAAC,WAAW,EAAE;aAC5C;SACF,CACF,CAAA;QAED,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE;YAC3B,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,uCAAuC,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,CAAA;SAC5F;QAED,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACjD,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAA;QACjD,CAAC,CAAC,CAAA;QAEF,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAA;KAC5B;IAAC,OAAO,GAAG,EAAE;QACZ,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,CAAA;KAC9E;AACH,CAAC,CAAA;AAEM,MAAM,sBAAsB,GAAG,KAAK,EACzC,OAAsB,EACtB,SAAiB,EACjB,QAAkB,EAClB,eAAuB,EACQ,EAAE;IACjC,IAAI,CAAC,eAAe,EAAE;QACpB,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,+BAA+B,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,CAAA;KACjG;IACD,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;IAE3D,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,MAAM,6BAA6B,CAAC,OAAO,EAAE,eAAe,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAA;IAEpH,IAAI,KAAK,EAAE;QACT,OAAO;YACL,OAAO,EAAE,EAAE;YACX,KAAK,EAAE,KAAK;SACb,CAAA;KACF;IAED,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE;QAChE,OAAO;YACL,OAAO,EAAE,EAAE;YACX,KAAK,EAAE,EAAE,OAAO,EAAE,gCAAgC,EAAE,IAAI,EAAE,WAAW,EAAE;SACxE,CAAA;KACF;IAED,OAAO;QACL,OAAO,EAAE,OAAO;KACjB,CAAA;AACH,CAAC,CAAA;AA9BY,QAAA,sBAAsB,0BA8BlC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { InputField } from '@segment/actions-core/destination-kit/types';
|
|
1
|
+
import { InputField, FieldTypeName, DependsOnConditions } from '@segment/actions-core/destination-kit/types';
|
|
2
2
|
export declare const contactKey: InputField;
|
|
3
3
|
export declare const contactKeyAPIEvent: InputField;
|
|
4
4
|
export declare const key: InputField;
|
|
@@ -10,3 +10,48 @@ export declare const eventDefinitionKey: InputField;
|
|
|
10
10
|
export declare const eventData: InputField;
|
|
11
11
|
export declare const enable_batching: InputField;
|
|
12
12
|
export declare const batch_size: InputField;
|
|
13
|
+
export declare const categoryId: {
|
|
14
|
+
label: string;
|
|
15
|
+
description: string;
|
|
16
|
+
type: FieldTypeName;
|
|
17
|
+
required: DependsOnConditions;
|
|
18
|
+
depends_on: DependsOnConditions;
|
|
19
|
+
};
|
|
20
|
+
export declare const operation: {
|
|
21
|
+
label: string;
|
|
22
|
+
description: string;
|
|
23
|
+
type: FieldTypeName;
|
|
24
|
+
choices: {
|
|
25
|
+
label: string;
|
|
26
|
+
value: string;
|
|
27
|
+
}[];
|
|
28
|
+
required: boolean;
|
|
29
|
+
};
|
|
30
|
+
export declare const dataExtensionKey: {
|
|
31
|
+
label: string;
|
|
32
|
+
description: string;
|
|
33
|
+
type: FieldTypeName;
|
|
34
|
+
depends_on: DependsOnConditions;
|
|
35
|
+
};
|
|
36
|
+
export declare const dataExtensionId: {
|
|
37
|
+
label: string;
|
|
38
|
+
description: string;
|
|
39
|
+
type: FieldTypeName;
|
|
40
|
+
depends_on: DependsOnConditions;
|
|
41
|
+
};
|
|
42
|
+
export declare const name: {
|
|
43
|
+
label: string;
|
|
44
|
+
description: string;
|
|
45
|
+
type: FieldTypeName;
|
|
46
|
+
required: DependsOnConditions;
|
|
47
|
+
depends_on: DependsOnConditions;
|
|
48
|
+
};
|
|
49
|
+
export declare const description: {
|
|
50
|
+
label: string;
|
|
51
|
+
description: string;
|
|
52
|
+
type: FieldTypeName;
|
|
53
|
+
depends_on: DependsOnConditions;
|
|
54
|
+
};
|
|
55
|
+
export declare const columns: Omit<InputField, 'dynamic'> & {
|
|
56
|
+
dynamic?: undefined;
|
|
57
|
+
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.batch_size = exports.enable_batching = exports.eventData = exports.eventDefinitionKey = exports.values_dataExtensionFields = exports.values_contactFields = exports.keys = exports.id = exports.key = exports.contactKeyAPIEvent = exports.contactKey = void 0;
|
|
3
|
+
exports.columns = exports.description = exports.name = exports.dataExtensionId = exports.dataExtensionKey = exports.operation = exports.categoryId = exports.batch_size = exports.enable_batching = exports.eventData = exports.eventDefinitionKey = exports.values_dataExtensionFields = exports.values_contactFields = exports.keys = exports.id = exports.key = exports.contactKeyAPIEvent = exports.contactKey = void 0;
|
|
4
4
|
exports.contactKey = {
|
|
5
5
|
label: 'Contact Key',
|
|
6
6
|
description: 'The unique identifier that you assign to a contact. This will be used to create a contact if one does not already exist with this Contact Key.',
|
|
@@ -15,14 +15,16 @@ exports.contactKeyAPIEvent = {
|
|
|
15
15
|
required: true
|
|
16
16
|
};
|
|
17
17
|
exports.key = {
|
|
18
|
-
label: 'Data Extension Key',
|
|
19
|
-
description: 'The external key of the data extension that you want to store information in. The data extension must be predefined in SFMC. The external key is required if a Data Extension ID is not provided.',
|
|
20
|
-
type: 'string'
|
|
18
|
+
label: 'DEPRECATED: Data Extension Key',
|
|
19
|
+
description: 'Note: This field should be considered deprecated in favor of the hook input field "Data Extension ID". For backwards compatibility the field will not be deleted, and is instead hidden. The external key of the data extension that you want to store information in. The data extension must be predefined in SFMC. The external key is required if a Data Extension ID is not provided.',
|
|
20
|
+
type: 'string',
|
|
21
|
+
unsafe_hidden: true
|
|
21
22
|
};
|
|
22
23
|
exports.id = {
|
|
23
|
-
label: 'Data Extension ID',
|
|
24
|
-
description: 'The ID of the data extension that you want to store information in. The data extension must be predefined in SFMC. The ID is required if a Data Extension Key is not provided.',
|
|
25
|
-
type: 'string'
|
|
24
|
+
label: 'DEPRECATED: Data Extension ID',
|
|
25
|
+
description: 'Note: This field should be considered deprecated in favor of the hook input field "Data Extension ID". For backwards compatibility the field will not be deleted, and is instead hidden. The ID of the data extension that you want to store information in. The data extension must be predefined in SFMC. The ID is required if a Data Extension Key is not provided.',
|
|
26
|
+
type: 'string',
|
|
27
|
+
unsafe_hidden: true
|
|
26
28
|
};
|
|
27
29
|
exports.keys = {
|
|
28
30
|
label: 'Data Extension Primary Keys',
|
|
@@ -30,7 +32,8 @@ exports.keys = {
|
|
|
30
32
|
type: 'object',
|
|
31
33
|
required: true,
|
|
32
34
|
defaultObjectUI: 'keyvalue:only',
|
|
33
|
-
additionalProperties: true
|
|
35
|
+
additionalProperties: true,
|
|
36
|
+
dynamic: true
|
|
34
37
|
};
|
|
35
38
|
exports.values_contactFields = {
|
|
36
39
|
label: 'Contact Fields',
|
|
@@ -72,4 +75,102 @@ exports.batch_size = {
|
|
|
72
75
|
unsafe_hidden: true,
|
|
73
76
|
default: 10
|
|
74
77
|
};
|
|
78
|
+
const CREATE_OPERATION = {
|
|
79
|
+
match: 'all',
|
|
80
|
+
conditions: [{ fieldKey: 'operation', operator: 'is', value: 'create' }]
|
|
81
|
+
};
|
|
82
|
+
const SELECT_OPERATION = {
|
|
83
|
+
match: 'all',
|
|
84
|
+
conditions: [{ fieldKey: 'operation', operator: 'is', value: 'select' }]
|
|
85
|
+
};
|
|
86
|
+
exports.categoryId = {
|
|
87
|
+
label: 'Category ID (Folder ID)',
|
|
88
|
+
description: 'The identifier for the folder that contains the data extension.',
|
|
89
|
+
type: 'string',
|
|
90
|
+
required: CREATE_OPERATION,
|
|
91
|
+
depends_on: CREATE_OPERATION
|
|
92
|
+
};
|
|
93
|
+
exports.operation = {
|
|
94
|
+
label: 'Operation',
|
|
95
|
+
description: 'Whether to create a new data extension or select an existing one for data delivery.',
|
|
96
|
+
type: 'string',
|
|
97
|
+
choices: [
|
|
98
|
+
{ label: 'Create a new Data Extension', value: 'create' },
|
|
99
|
+
{ label: 'Select an existing Data Extension', value: 'select' }
|
|
100
|
+
],
|
|
101
|
+
required: true
|
|
102
|
+
};
|
|
103
|
+
exports.dataExtensionKey = {
|
|
104
|
+
label: 'Data Extension Key',
|
|
105
|
+
description: 'The external key of the data extension.',
|
|
106
|
+
type: 'string',
|
|
107
|
+
depends_on: SELECT_OPERATION
|
|
108
|
+
};
|
|
109
|
+
exports.dataExtensionId = {
|
|
110
|
+
label: 'Data Extension ID',
|
|
111
|
+
description: 'The identifier for the data extension.',
|
|
112
|
+
type: 'string',
|
|
113
|
+
depends_on: SELECT_OPERATION
|
|
114
|
+
};
|
|
115
|
+
exports.name = {
|
|
116
|
+
label: 'Data Extension Name',
|
|
117
|
+
description: 'The name of the data extension.',
|
|
118
|
+
type: 'string',
|
|
119
|
+
required: CREATE_OPERATION,
|
|
120
|
+
depends_on: CREATE_OPERATION
|
|
121
|
+
};
|
|
122
|
+
exports.description = {
|
|
123
|
+
label: 'Data Extension Description',
|
|
124
|
+
description: 'The description of the data extension.',
|
|
125
|
+
type: 'string',
|
|
126
|
+
depends_on: CREATE_OPERATION
|
|
127
|
+
};
|
|
128
|
+
exports.columns = {
|
|
129
|
+
label: 'Data Extension Fields',
|
|
130
|
+
description: 'A list of fields to create in the data extension.',
|
|
131
|
+
type: 'object',
|
|
132
|
+
multiple: true,
|
|
133
|
+
defaultObjectUI: 'arrayeditor',
|
|
134
|
+
additionalProperties: true,
|
|
135
|
+
required: CREATE_OPERATION,
|
|
136
|
+
depends_on: CREATE_OPERATION,
|
|
137
|
+
properties: {
|
|
138
|
+
name: {
|
|
139
|
+
label: 'Field Name',
|
|
140
|
+
description: 'The name of the field.',
|
|
141
|
+
type: 'string',
|
|
142
|
+
required: true
|
|
143
|
+
},
|
|
144
|
+
type: {
|
|
145
|
+
label: 'Field Type',
|
|
146
|
+
description: 'The data type of the field.',
|
|
147
|
+
type: 'string',
|
|
148
|
+
required: true,
|
|
149
|
+
choices: ['Text', 'Number', 'Date', 'Boolean', 'Email', 'Phone', 'Decimal', 'Locale']
|
|
150
|
+
},
|
|
151
|
+
isNullable: {
|
|
152
|
+
label: 'Is Nullable',
|
|
153
|
+
description: 'Whether the field can be null.',
|
|
154
|
+
type: 'boolean',
|
|
155
|
+
required: true
|
|
156
|
+
},
|
|
157
|
+
isPrimaryKey: {
|
|
158
|
+
label: 'Is Primary Key',
|
|
159
|
+
description: 'Whether the field is a primary key.',
|
|
160
|
+
type: 'boolean',
|
|
161
|
+
required: true
|
|
162
|
+
},
|
|
163
|
+
length: {
|
|
164
|
+
label: 'Field Length',
|
|
165
|
+
description: 'The length of the field.',
|
|
166
|
+
type: 'integer',
|
|
167
|
+
required: true
|
|
168
|
+
},
|
|
169
|
+
description: {
|
|
170
|
+
label: 'Field Description',
|
|
171
|
+
description: 'The description of the field.',
|
|
172
|
+
type: 'string'
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
};
|
|
75
176
|
//# sourceMappingURL=sfmc-properties.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sfmc-properties.js","sourceRoot":"","sources":["../../../src/destinations/salesforce-marketing-cloud/sfmc-properties.ts"],"names":[],"mappings":";;;AAEa,QAAA,UAAU,GAAe;IACpC,KAAK,EAAE,aAAa;IACpB,WAAW,EACT,gJAAgJ;IAClJ,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;CACjC,CAAA;AAEY,QAAA,kBAAkB,GAAe;IAC5C,KAAK,EAAE,aAAa;IACpB,WAAW,EAAE,kEAAkE;IAC/E,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;IAChC,QAAQ,EAAE,IAAI;CACf,CAAA;AAEY,QAAA,GAAG,GAAe;IAC7B,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"sfmc-properties.js","sourceRoot":"","sources":["../../../src/destinations/salesforce-marketing-cloud/sfmc-properties.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@segment/action-destinations",
|
|
3
3
|
"description": "Destination Actions engine and definitions.",
|
|
4
|
-
"version": "3.366.1-staging-
|
|
4
|
+
"version": "3.366.1-staging-73ccee21f.0",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "https://github.com/segmentio/action-destinations",
|
|
@@ -88,5 +88,5 @@
|
|
|
88
88
|
"__tests__/__helpers__/"
|
|
89
89
|
]
|
|
90
90
|
},
|
|
91
|
-
"gitHead": "
|
|
91
|
+
"gitHead": "30712c14dafcf40d0ccdef6589e3134703f21862"
|
|
92
92
|
}
|