@segment/action-destinations 3.113.1-alpha.9 → 3.114.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/dist/destinations/google-enhanced-conversions/uploadConversionAdjustment/generated-types.d.ts +1 -1
  2. package/dist/destinations/google-enhanced-conversions/uploadConversionAdjustment/index.js +5 -3
  3. package/dist/destinations/google-enhanced-conversions/uploadConversionAdjustment/index.js.map +1 -1
  4. package/dist/destinations/index.js +1 -0
  5. package/dist/destinations/index.js.map +1 -1
  6. package/dist/destinations/linkedin-audiences/api/index.js +2 -2
  7. package/dist/destinations/linkedin-audiences/api/index.js.map +1 -1
  8. package/dist/destinations/linkedin-audiences/constants.d.ts +1 -0
  9. package/dist/destinations/linkedin-audiences/constants.js +2 -1
  10. package/dist/destinations/linkedin-audiences/constants.js.map +1 -1
  11. package/dist/destinations/linkedin-audiences/index.js +1 -1
  12. package/dist/destinations/linkedin-audiences/index.js.map +1 -1
  13. package/dist/destinations/linkedin-audiences/updateAudience/index.js +4 -4
  14. package/dist/destinations/linkedin-audiences/updateAudience/index.js.map +1 -1
  15. package/dist/destinations/loops/createOrUpdateContact/generated-types.d.ts +8 -0
  16. package/dist/destinations/loops/{createContact → createOrUpdateContact}/generated-types.js +0 -0
  17. package/dist/destinations/loops/createOrUpdateContact/generated-types.js.map +1 -0
  18. package/dist/destinations/loops/{createContact → createOrUpdateContact}/index.d.ts +0 -0
  19. package/dist/destinations/loops/createOrUpdateContact/index.js +82 -0
  20. package/dist/destinations/loops/createOrUpdateContact/index.js.map +1 -0
  21. package/dist/destinations/loops/index.js +2 -2
  22. package/dist/destinations/loops/index.js.map +1 -1
  23. package/dist/destinations/salesforce-marketing-cloud/_tests_/apiEvent.test.d.ts +1 -0
  24. package/dist/destinations/salesforce-marketing-cloud/_tests_/apiEvent.test.js +84 -0
  25. package/dist/destinations/salesforce-marketing-cloud/_tests_/apiEvent.test.js.map +1 -0
  26. package/dist/destinations/salesforce-marketing-cloud/_tests_/contact.test.d.ts +1 -0
  27. package/dist/destinations/salesforce-marketing-cloud/_tests_/contact.test.js +59 -0
  28. package/dist/destinations/salesforce-marketing-cloud/_tests_/contact.test.js.map +1 -0
  29. package/dist/destinations/salesforce-marketing-cloud/_tests_/contactDataExtension.test.d.ts +1 -0
  30. package/dist/destinations/salesforce-marketing-cloud/_tests_/contactDataExtension.test.js +77 -0
  31. package/dist/destinations/salesforce-marketing-cloud/_tests_/contactDataExtension.test.js.map +1 -0
  32. package/dist/destinations/salesforce-marketing-cloud/_tests_/dataExtension.test.d.ts +1 -0
  33. package/dist/destinations/salesforce-marketing-cloud/_tests_/dataExtension.test.js +61 -0
  34. package/dist/destinations/salesforce-marketing-cloud/_tests_/dataExtension.test.js.map +1 -0
  35. package/dist/destinations/salesforce-marketing-cloud/apiEvent/generated-types.d.ts +7 -0
  36. package/dist/destinations/salesforce-marketing-cloud/apiEvent/generated-types.js +3 -0
  37. package/dist/destinations/salesforce-marketing-cloud/apiEvent/generated-types.js.map +1 -0
  38. package/dist/destinations/salesforce-marketing-cloud/apiEvent/index.d.ts +5 -0
  39. package/dist/destinations/salesforce-marketing-cloud/apiEvent/index.js +20 -0
  40. package/dist/destinations/salesforce-marketing-cloud/apiEvent/index.js.map +1 -0
  41. package/dist/destinations/{loops/createContact → salesforce-marketing-cloud/contact}/generated-types.d.ts +1 -1
  42. package/dist/destinations/salesforce-marketing-cloud/contact/generated-types.js +3 -0
  43. package/dist/destinations/salesforce-marketing-cloud/contact/generated-types.js.map +1 -0
  44. package/dist/destinations/salesforce-marketing-cloud/contact/index.d.ts +5 -0
  45. package/dist/destinations/salesforce-marketing-cloud/contact/index.js +22 -0
  46. package/dist/destinations/salesforce-marketing-cloud/contact/index.js.map +1 -0
  47. package/dist/destinations/salesforce-marketing-cloud/contactDataExtension/generated-types.d.ts +12 -0
  48. package/dist/destinations/salesforce-marketing-cloud/contactDataExtension/generated-types.js +3 -0
  49. package/dist/destinations/salesforce-marketing-cloud/contactDataExtension/generated-types.js.map +1 -0
  50. package/dist/destinations/salesforce-marketing-cloud/contactDataExtension/index.d.ts +5 -0
  51. package/dist/destinations/salesforce-marketing-cloud/contactDataExtension/index.js +37 -0
  52. package/dist/destinations/salesforce-marketing-cloud/contactDataExtension/index.js.map +1 -0
  53. package/dist/destinations/salesforce-marketing-cloud/dataExtension/generated-types.d.ts +11 -0
  54. package/dist/destinations/salesforce-marketing-cloud/dataExtension/generated-types.js +3 -0
  55. package/dist/destinations/salesforce-marketing-cloud/dataExtension/generated-types.js.map +1 -0
  56. package/dist/destinations/salesforce-marketing-cloud/dataExtension/index.d.ts +5 -0
  57. package/dist/destinations/salesforce-marketing-cloud/dataExtension/index.js +23 -0
  58. package/dist/destinations/salesforce-marketing-cloud/dataExtension/index.js.map +1 -0
  59. package/dist/destinations/salesforce-marketing-cloud/generated-types.d.ts +6 -0
  60. package/dist/destinations/salesforce-marketing-cloud/generated-types.js +3 -0
  61. package/dist/destinations/salesforce-marketing-cloud/generated-types.js.map +1 -0
  62. package/dist/destinations/salesforce-marketing-cloud/index.d.ts +4 -0
  63. package/dist/destinations/salesforce-marketing-cloud/index.js +71 -0
  64. package/dist/destinations/salesforce-marketing-cloud/index.js.map +1 -0
  65. package/dist/destinations/salesforce-marketing-cloud/sfmc-operations.d.ts +4 -0
  66. package/dist/destinations/salesforce-marketing-cloud/sfmc-operations.js +31 -0
  67. package/dist/destinations/salesforce-marketing-cloud/sfmc-operations.js.map +1 -0
  68. package/dist/destinations/salesforce-marketing-cloud/sfmc-properties.d.ts +10 -0
  69. package/dist/destinations/salesforce-marketing-cloud/sfmc-properties.js +59 -0
  70. package/dist/destinations/salesforce-marketing-cloud/sfmc-properties.js.map +1 -0
  71. package/dist/destinations/snap-conversions-api/reportConversionEvent/generated-types.d.ts +3 -0
  72. package/dist/destinations/snap-conversions-api/reportConversionEvent/index.js +4 -1
  73. package/dist/destinations/snap-conversions-api/reportConversionEvent/index.js.map +1 -1
  74. package/dist/destinations/snap-conversions-api/snap-capi-properties.d.ts +3 -0
  75. package/dist/destinations/snap-conversions-api/snap-capi-properties.js +21 -3
  76. package/dist/destinations/snap-conversions-api/snap-capi-properties.js.map +1 -1
  77. package/package.json +4 -4
  78. package/dist/destinations/loops/createContact/generated-types.js.map +0 -1
  79. package/dist/destinations/loops/createContact/index.js +0 -33
  80. package/dist/destinations/loops/createContact/index.js.map +0 -1
@@ -0,0 +1,61 @@
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 nock_1 = __importDefault(require("nock"));
7
+ const actions_core_1 = require("@segment/actions-core");
8
+ const index_1 = __importDefault(require("../index"));
9
+ const testDestination = actions_core_1.createTestIntegration(index_1.default);
10
+ const timestamp = '2022-05-12T15:21:15.449Z';
11
+ const settings = {
12
+ subdomain: 'test123',
13
+ client_id: 'test123',
14
+ client_secret: 'test123',
15
+ account_id: 'test123'
16
+ };
17
+ const event = actions_core_1.createTestEvent({
18
+ timestamp: timestamp,
19
+ type: 'track',
20
+ userId: 'harry-1',
21
+ properties: {
22
+ id: '1234567890',
23
+ keys: {
24
+ id: 'HS1'
25
+ },
26
+ values: {
27
+ name: 'Harry Styles'
28
+ }
29
+ }
30
+ });
31
+ const requestUrl = `https://${settings.subdomain}.rest.marketingcloudapis.com/hub/v1/dataevents/1234567890/rowset`;
32
+ describe('Salesforce Marketing Cloud', () => {
33
+ describe('Data Extension Action', () => {
34
+ it('Add Event to Data Extension', async () => {
35
+ nock_1.default(requestUrl).post('').reply(200, {});
36
+ const responses = await testDestination.testAction('dataExtension', {
37
+ event,
38
+ settings,
39
+ mapping: {
40
+ id: { '@path': '$.properties.id' },
41
+ keys: { '@path': '$.properties.keys' },
42
+ values: { '@path': '$.properties.values' }
43
+ }
44
+ });
45
+ expect(responses[0].status).toBe(200);
46
+ expect(responses[0].options.body).toMatchInlineSnapshot(`"[{\\"keys\\":{\\"id\\":\\"HS1\\"},\\"values\\":{\\"name\\":\\"Harry Styles\\"}}]"`);
47
+ });
48
+ it('Fail to add event to data extension due to missing key and id', async () => {
49
+ nock_1.default(requestUrl).post('').reply(400, {});
50
+ await expect(testDestination.testAction('dataExtension', {
51
+ event,
52
+ settings,
53
+ mapping: {
54
+ keys: { '@path': '$.properties.keys' },
55
+ values: { '@path': '$.properties.values' }
56
+ }
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
+ });
59
+ });
60
+ });
61
+ //# sourceMappingURL=dataExtension.test.js.map
@@ -0,0 +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,oCAAqB,CAAC,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,8BAAe,CAAC;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,cAAI,CAAC,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,cAAI,CAAC,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"}
@@ -0,0 +1,7 @@
1
+ export interface Payload {
2
+ eventDefinitionKey: string;
3
+ contactKey: string;
4
+ data?: {
5
+ [k: string]: unknown;
6
+ };
7
+ }
@@ -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/salesforce-marketing-cloud/apiEvent/generated-types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import type { ActionDefinition } from '@segment/actions-core';
2
+ import type { Settings } from '../generated-types';
3
+ import type { Payload } from './generated-types';
4
+ declare const action: ActionDefinition<Settings, Payload>;
5
+ export default action;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const sfmc_properties_1 = require("../sfmc-properties");
4
+ const action = {
5
+ title: 'Send API Event',
6
+ description: 'Send events into an existing Event Definition in Salesforce Marketing Cloud.',
7
+ fields: {
8
+ eventDefinitionKey: sfmc_properties_1.eventDefinitionKey,
9
+ contactKey: sfmc_properties_1.contactKeyAPIEvent,
10
+ data: sfmc_properties_1.eventData
11
+ },
12
+ perform: (request, { settings, payload }) => {
13
+ return request(`https://${settings.subdomain}.rest.marketingcloudapis.com/interaction/v1/events`, {
14
+ method: 'POST',
15
+ json: payload
16
+ });
17
+ }
18
+ };
19
+ exports.default = action;
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/salesforce-marketing-cloud/apiEvent/index.ts"],"names":[],"mappings":";;AAEA,wDAAsF;AAGtF,MAAM,MAAM,GAAwC;IAClD,KAAK,EAAE,gBAAgB;IACvB,WAAW,EAAE,8EAA8E;IAC3F,MAAM,EAAE;QACN,kBAAkB,EAAE,oCAAkB;QACtC,UAAU,EAAE,oCAAkB;QAC9B,IAAI,EAAE,2BAAS;KAChB;IACD,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;QAC1C,OAAO,OAAO,CAAC,WAAW,QAAQ,CAAC,SAAS,oDAAoD,EAAE;YAChG,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,OAAO;SACd,CAAC,CAAA;IACJ,CAAC;CACF,CAAA;AAED,kBAAe,MAAM,CAAA"}
@@ -1,3 +1,3 @@
1
1
  export interface Payload {
2
- email: string;
2
+ contactKey: string;
3
3
  }
@@ -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/salesforce-marketing-cloud/contact/generated-types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import type { ActionDefinition } from '@segment/actions-core';
2
+ import type { Settings } from '../generated-types';
3
+ import type { Payload } from './generated-types';
4
+ declare const action: ActionDefinition<Settings, Payload>;
5
+ export default action;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const sfmc_properties_1 = require("../sfmc-properties");
4
+ const action = {
5
+ title: 'Create Contact',
6
+ description: 'Create contacts in Salesforce Marketing Cloud.',
7
+ defaultSubscription: 'type = "identify"',
8
+ fields: {
9
+ contactKey: { ...sfmc_properties_1.contactKey, required: true }
10
+ },
11
+ perform: (request, { settings, payload }) => {
12
+ return request(`https://${settings.subdomain}.rest.marketingcloudapis.com/contacts/v1/contacts`, {
13
+ method: 'POST',
14
+ json: {
15
+ contactKey: payload.contactKey,
16
+ attributeSets: []
17
+ }
18
+ });
19
+ }
20
+ };
21
+ exports.default = action;
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/salesforce-marketing-cloud/contact/index.ts"],"names":[],"mappings":";;AAEA,wDAA+C;AAG/C,MAAM,MAAM,GAAwC;IAClD,KAAK,EAAE,gBAAgB;IACvB,WAAW,EAAE,gDAAgD;IAC7D,mBAAmB,EAAE,mBAAmB;IACxC,MAAM,EAAE;QACN,UAAU,EAAE,EAAE,GAAG,4BAAU,EAAE,QAAQ,EAAE,IAAI,EAAE;KAC9C;IACD,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;QAC9C,OAAO,OAAO,CAAC,WAAW,QAAQ,CAAC,SAAS,mDAAmD,EAAE;YAC3F,MAAM,EAAE,MAAM;YACd,IAAI,EAAE;gBACJ,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,aAAa,EAAE,EAAE;aAClB;SACF,CAAC,CAAA;IACJ,CAAC;CACF,CAAA;AAED,kBAAe,MAAM,CAAA"}
@@ -0,0 +1,12 @@
1
+ export interface Payload {
2
+ key?: string;
3
+ id?: string;
4
+ keys: {
5
+ contactKey: string;
6
+ [k: string]: unknown;
7
+ };
8
+ values?: {
9
+ [k: string]: unknown;
10
+ };
11
+ enable_batching?: boolean;
12
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=generated-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generated-types.js","sourceRoot":"","sources":["../../../../src/destinations/salesforce-marketing-cloud/contactDataExtension/generated-types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import type { ActionDefinition } from '@segment/actions-core';
2
+ import type { Settings } from '../generated-types';
3
+ import type { Payload } from './generated-types';
4
+ declare const action: ActionDefinition<Settings, Payload>;
5
+ export default action;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const sfmc_properties_1 = require("../sfmc-properties");
4
+ const sfmc_operations_1 = require("../sfmc-operations");
5
+ const action = {
6
+ title: 'Contact Data Extension',
7
+ defaultSubscription: 'type = "identify"',
8
+ description: 'Upsert contact data as rows into an existing data extension in Salesforce Marketing Cloud.',
9
+ fields: {
10
+ key: sfmc_properties_1.key,
11
+ id: sfmc_properties_1.id,
12
+ keys: {
13
+ ...sfmc_properties_1.keys,
14
+ properties: {
15
+ contactKey: {
16
+ label: 'Contact Key',
17
+ description: 'The unique identifier that you assign to a contact. Contact Key must be a Primary Key in the data extension that contains contact information.',
18
+ type: 'string',
19
+ required: true
20
+ }
21
+ },
22
+ default: {
23
+ contactKey: { '@path': '$.userId' }
24
+ }
25
+ },
26
+ values: sfmc_properties_1.values,
27
+ enable_batching: sfmc_properties_1.enable_batching
28
+ },
29
+ perform: async (request, { settings, payload }) => {
30
+ return sfmc_operations_1.upsertRows(request, settings.subdomain, [payload]);
31
+ },
32
+ performBatch: async (request, { settings, payload }) => {
33
+ return sfmc_operations_1.upsertRows(request, settings.subdomain, payload);
34
+ }
35
+ };
36
+ exports.default = action;
37
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/salesforce-marketing-cloud/contactDataExtension/index.ts"],"names":[],"mappings":";;AAGA,wDAA2E;AAC3E,wDAA+C;AAE/C,MAAM,MAAM,GAAwC;IAClD,KAAK,EAAE,wBAAwB;IAC/B,mBAAmB,EAAE,mBAAmB;IACxC,WAAW,EAAE,4FAA4F;IACzG,MAAM,EAAE;QACN,GAAG,EAAE,qBAAG;QACR,EAAE,EAAE,oBAAE;QACN,IAAI,EAAE;YACJ,GAAG,sBAAI;YACP,UAAU,EAAE;gBACV,UAAU,EAAE;oBACV,KAAK,EAAE,aAAa;oBACpB,WAAW,EACT,gJAAgJ;oBAClJ,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,IAAI;iBACf;aACF;YACD,OAAO,EAAE;gBACP,UAAU,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;aACpC;SACF;QACD,MAAM,EAAE,wBAAM;QACd,eAAe,EAAE,iCAAe;KACjC;IACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;QAChD,OAAO,4BAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC,CAAA;IAC3D,CAAC;IACD,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;QACrD,OAAO,4BAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IACzD,CAAC;CACF,CAAA;AAED,kBAAe,MAAM,CAAA"}
@@ -0,0 +1,11 @@
1
+ export interface Payload {
2
+ key?: string;
3
+ id?: string;
4
+ keys: {
5
+ [k: string]: unknown;
6
+ };
7
+ values?: {
8
+ [k: string]: unknown;
9
+ };
10
+ enable_batching?: boolean;
11
+ }
@@ -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/salesforce-marketing-cloud/dataExtension/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,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const sfmc_properties_1 = require("../sfmc-properties");
4
+ const sfmc_operations_1 = require("../sfmc-operations");
5
+ const action = {
6
+ title: 'Send Event to Data Extension',
7
+ description: 'Upsert events as rows into an existing data extension in Salesforce Marketing Cloud.',
8
+ fields: {
9
+ key: sfmc_properties_1.key,
10
+ id: sfmc_properties_1.id,
11
+ keys: { ...sfmc_properties_1.keys, required: true },
12
+ values: sfmc_properties_1.values,
13
+ enable_batching: sfmc_properties_1.enable_batching
14
+ },
15
+ perform: async (request, { settings, payload }) => {
16
+ return sfmc_operations_1.upsertRows(request, settings.subdomain, [payload]);
17
+ },
18
+ performBatch: async (request, { settings, payload }) => {
19
+ return sfmc_operations_1.upsertRows(request, settings.subdomain, payload);
20
+ }
21
+ };
22
+ exports.default = action;
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/salesforce-marketing-cloud/dataExtension/index.ts"],"names":[],"mappings":";;AAGA,wDAA2E;AAC3E,wDAA+C;AAE/C,MAAM,MAAM,GAAwC;IAClD,KAAK,EAAE,8BAA8B;IACrC,WAAW,EAAE,sFAAsF;IACnG,MAAM,EAAE;QACN,GAAG,EAAE,qBAAG;QACR,EAAE,EAAE,oBAAE;QACN,IAAI,EAAE,EAAE,GAAG,sBAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;QACjC,MAAM,EAAE,wBAAM;QACd,eAAe,EAAE,iCAAe;KACjC;IACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;QAChD,OAAO,4BAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC,CAAA;IAC3D,CAAC;IACD,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;QACrD,OAAO,4BAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IACzD,CAAC;CACF,CAAA;AAED,kBAAe,MAAM,CAAA"}
@@ -0,0 +1,6 @@
1
+ export interface Settings {
2
+ subdomain: string;
3
+ account_id: string;
4
+ client_id: string;
5
+ client_secret: string;
6
+ }
@@ -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/salesforce-marketing-cloud/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,71 @@
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 contact_1 = __importDefault(require("./contact"));
7
+ const dataExtension_1 = __importDefault(require("./dataExtension"));
8
+ const contactDataExtension_1 = __importDefault(require("./contactDataExtension"));
9
+ const apiEvent_1 = __importDefault(require("./apiEvent"));
10
+ const destination = {
11
+ name: 'Salesforce Marketing Cloud (Actions)',
12
+ slug: 'actions-salesforce-marketing-cloud',
13
+ mode: 'cloud',
14
+ authentication: {
15
+ scheme: 'oauth2',
16
+ fields: {
17
+ subdomain: {
18
+ label: 'Subdomain',
19
+ description: 'The unique subdomain Salesforce Marketing Cloud assigned to your account. Subdomains are tenant specific and should be a 28-character string starting with the letters "mc". Do not include the .rest.marketingcloudapis.com part of your subdomain URL. See more information on how to find your subdomain [here](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/your-subdomain-tenant-specific-endpoints.html).',
20
+ type: 'string',
21
+ required: true
22
+ },
23
+ account_id: {
24
+ label: 'account id',
25
+ description: 'Your Salesforce Marketing Cloud account identifier (or MID). See more information on how to find your MID [here](https://help.salesforce.com/s/articleView?id=sf.mc_overview_determine_your_marketing_cloud_instance.htm&type=5).',
26
+ type: 'string',
27
+ required: true
28
+ },
29
+ client_id: {
30
+ label: 'client_id',
31
+ description: 'Your Salesforce Marketing Cloud client ID. The client ID is issued when you create an API integration in [Installed Packages](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/install-packages.html).',
32
+ type: 'string',
33
+ required: true
34
+ },
35
+ client_secret: {
36
+ label: 'client_secret',
37
+ description: 'Your Salesforce Marketing Cloud client secret. The client secret is issued when you create an API integration in Installed Packages.',
38
+ type: 'password',
39
+ required: true
40
+ }
41
+ },
42
+ refreshAccessToken: async (request, { settings }) => {
43
+ const baseUrl = `https://${settings.subdomain}.auth.marketingcloudapis.com/v2/token`;
44
+ const res = await request(`${baseUrl}`, {
45
+ method: 'POST',
46
+ body: new URLSearchParams({
47
+ account_id: settings.account_id,
48
+ client_id: settings.client_id,
49
+ client_secret: settings.client_secret,
50
+ grant_type: 'client_credentials'
51
+ })
52
+ });
53
+ return { accessToken: res.data.access_token };
54
+ }
55
+ },
56
+ extendRequest({ auth }) {
57
+ return {
58
+ headers: {
59
+ authorization: `Bearer ${auth?.accessToken}`
60
+ }
61
+ };
62
+ },
63
+ actions: {
64
+ contact: contact_1.default,
65
+ dataExtension: dataExtension_1.default,
66
+ contactDataExtension: contactDataExtension_1.default,
67
+ apiEvent: apiEvent_1.default
68
+ }
69
+ };
70
+ exports.default = destination;
71
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destinations/salesforce-marketing-cloud/index.ts"],"names":[],"mappings":";;;;;AAEA,wDAA+B;AAC/B,oEAA2C;AAC3C,kFAAyD;AACzD,0DAAiC;AAMjC,MAAM,WAAW,GAAoC;IACnD,IAAI,EAAE,sCAAsC;IAC5C,IAAI,EAAE,oCAAoC;IAC1C,IAAI,EAAE,OAAO;IAEb,cAAc,EAAE;QACd,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE;YACN,SAAS,EAAE;gBACT,KAAK,EAAE,WAAW;gBAClB,WAAW,EACT,0aAA0a;gBAC5a,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI;aACf;YACD,UAAU,EAAE;gBACV,KAAK,EAAE,YAAY;gBACnB,WAAW,EACT,mOAAmO;gBACrO,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI;aACf;YACD,SAAS,EAAE;gBACT,KAAK,EAAE,WAAW;gBAClB,WAAW,EACT,6NAA6N;gBAC/N,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI;aACf;YACD,aAAa,EAAE;gBACb,KAAK,EAAE,eAAe;gBACtB,WAAW,EACT,sIAAsI;gBACxI,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,IAAI;aACf;SACF;QACD,kBAAkB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;YAClD,MAAM,OAAO,GAAG,WAAW,QAAQ,CAAC,SAAS,uCAAuC,CAAA;YACpF,MAAM,GAAG,GAAG,MAAM,OAAO,CAAuB,GAAG,OAAO,EAAE,EAAE;gBAC5D,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,IAAI,eAAe,CAAC;oBACxB,UAAU,EAAE,QAAQ,CAAC,UAAU;oBAC/B,SAAS,EAAE,QAAQ,CAAC,SAAS;oBAC7B,aAAa,EAAE,QAAQ,CAAC,aAAa;oBACrC,UAAU,EAAE,oBAAoB;iBACjC,CAAC;aACH,CAAC,CAAA;YACF,OAAO,EAAE,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,CAAA;QAC/C,CAAC;KACF;IACD,aAAa,CAAC,EAAE,IAAI,EAAE;QACpB,OAAO;YACL,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,IAAI,EAAE,WAAW,EAAE;aAC7C;SACF,CAAA;IACH,CAAC;IACD,OAAO,EAAE;QACP,OAAO,EAAP,iBAAO;QACP,aAAa,EAAb,uBAAa;QACb,oBAAoB,EAApB,8BAAoB;QACpB,QAAQ,EAAR,kBAAQ;KACT;CACF,CAAA;AAED,kBAAe,WAAW,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { RequestClient } from '@segment/actions-core';
2
+ import { Payload as payload_dataExtension } from './dataExtension/generated-types';
3
+ import { Payload as payload_contactDataExtension } from './contactDataExtension/generated-types';
4
+ export declare function upsertRows(request: RequestClient, subdomain: String, payloads: payload_dataExtension[] | payload_contactDataExtension[]): Promise<import("@segment/actions-core").ModifiedResponse<unknown>>;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.upsertRows = void 0;
4
+ const actions_core_1 = require("@segment/actions-core");
5
+ function upsertRows(request, subdomain, payloads) {
6
+ const { key, id } = payloads[0];
7
+ if (!key && !id) {
8
+ 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);
9
+ }
10
+ const rows = [];
11
+ payloads.forEach((payload) => {
12
+ rows.push({
13
+ keys: payload.keys,
14
+ values: payload.values
15
+ });
16
+ });
17
+ if (key) {
18
+ return request(`https://${subdomain}.rest.marketingcloudapis.com/hub/v1/dataevents/key:${key}/rowset`, {
19
+ method: 'POST',
20
+ json: rows
21
+ });
22
+ }
23
+ else {
24
+ return request(`https://${subdomain}.rest.marketingcloudapis.com/hub/v1/dataevents/${id}/rowset`, {
25
+ method: 'POST',
26
+ json: rows
27
+ });
28
+ }
29
+ }
30
+ exports.upsertRows = upsertRows;
31
+ //# sourceMappingURL=sfmc-operations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sfmc-operations.js","sourceRoot":"","sources":["../../../src/destinations/salesforce-marketing-cloud/sfmc-operations.ts"],"names":[],"mappings":";;;AAAA,wDAAuE;AAIvE,SAAgB,UAAU,CACxB,OAAsB,EACtB,SAAiB,EACjB,QAAkE;IAElE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;IAC/B,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE;QACf,MAAM,IAAI,+BAAgB,CACxB,+GAA+G,EAC/G,8BAA8B,EAC9B,GAAG,CACJ,CAAA;KACF;IACD,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,IAAI,GAAG,EAAE;QACP,OAAO,OAAO,CAAC,WAAW,SAAS,sDAAsD,GAAG,SAAS,EAAE;YACrG,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI;SACX,CAAC,CAAA;KACH;SAAM;QACL,OAAO,OAAO,CAAC,WAAW,SAAS,kDAAkD,EAAE,SAAS,EAAE;YAChG,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI;SACX,CAAC,CAAA;KACH;AACH,CAAC;AA/BD,gCA+BC"}
@@ -0,0 +1,10 @@
1
+ import { InputField } from '@segment/actions-core/src/destination-kit/types';
2
+ export declare const contactKey: InputField;
3
+ export declare const contactKeyAPIEvent: InputField;
4
+ export declare const key: InputField;
5
+ export declare const id: InputField;
6
+ export declare const keys: InputField;
7
+ export declare const values: InputField;
8
+ export declare const eventDefinitionKey: InputField;
9
+ export declare const eventData: InputField;
10
+ export declare const enable_batching: InputField;
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.enable_batching = exports.eventData = exports.eventDefinitionKey = exports.values = exports.keys = exports.id = exports.key = exports.contactKeyAPIEvent = exports.contactKey = void 0;
4
+ exports.contactKey = {
5
+ label: 'Contact Key',
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.',
7
+ type: 'string',
8
+ default: { '@path': '$.userId' }
9
+ };
10
+ exports.contactKeyAPIEvent = {
11
+ label: 'Contact Key',
12
+ description: 'The unique identifier that identifies a subscriber or a contact.',
13
+ type: 'string',
14
+ default: { '@path': '$.userId' },
15
+ required: true
16
+ };
17
+ exports.key = {
18
+ label: 'Data Extension Key',
19
+ description: 'The key of the data extension that you want to store contact information in. The data extension must be predefined in SFMC. Segment recommends storing all contact information in a single data extension. The key is required if a Data Extension ID is not provided.',
20
+ type: 'string'
21
+ };
22
+ exports.id = {
23
+ label: 'Data Extension ID',
24
+ description: 'The ID of the data extension that you want to store contact information in. The data extension must be predefined in SFMC. Segment recommends storing all contact information in a single data extension. The ID is required if a Data Extension Key is not provided.',
25
+ type: 'string'
26
+ };
27
+ exports.keys = {
28
+ label: 'Data Extension Primary Keys',
29
+ description: 'The primary key(s) that uniquely identify a contact in the data extension. At a minimum, Contact Key must exist in your data extension as a Primary Key. On the left-hand side, input the SFMC key name. On the right-hand side, map the Segment field that contains the corresponding value. When multiple primary keys are provided, SFMC will update an existing row if all primary keys match, otherwise a new row will be created.',
30
+ type: 'object',
31
+ required: true,
32
+ defaultObjectUI: 'keyvalue:only',
33
+ additionalProperties: true
34
+ };
35
+ exports.values = {
36
+ label: 'Contact Fields',
37
+ description: 'The fields in the data extension that contain data about a contact, such as Email, Last Name, etc. Fields must be created in the data extension before sending data for it. On the left-hand side, input the SFMC field name exactly how it appears in the data extension. On the right-hand side, map the Segment field that contains the corresponding value.',
38
+ type: 'object',
39
+ defaultObjectUI: 'keyvalue:only'
40
+ };
41
+ exports.eventDefinitionKey = {
42
+ label: 'Event Definition Key',
43
+ description: 'The unique key for an event definition in Salesforce Marketing Cloud. The event defintion must be predefined in SFMC. ',
44
+ type: 'string',
45
+ required: true
46
+ };
47
+ exports.eventData = {
48
+ label: 'Event Data',
49
+ description: 'The properties of the event. Fields must be created in the event definition schema before sending data for it. On the left-hand side, input the SFMC field name exactly how it appears in the event definition schema. On the right-hand side, map the Segment field that contains the corresponding value.',
50
+ type: 'object',
51
+ defaultObjectUI: 'keyvalue:only'
52
+ };
53
+ exports.enable_batching = {
54
+ label: 'Batch data to SFMC',
55
+ description: 'If true, data is batched before sending to the SFMC Data Extension.',
56
+ type: 'boolean',
57
+ default: false
58
+ };
59
+ //# sourceMappingURL=sfmc-properties.js.map
@@ -0,0 +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,oBAAoB;IAC3B,WAAW,EACT,wQAAwQ;IAC1Q,IAAI,EAAE,QAAQ;CACf,CAAA;AAEY,QAAA,EAAE,GAAe;IAC5B,KAAK,EAAE,mBAAmB;IAC1B,WAAW,EACT,uQAAuQ;IACzQ,IAAI,EAAE,QAAQ;CACf,CAAA;AAEY,QAAA,IAAI,GAAe;IAC9B,KAAK,EAAE,6BAA6B;IACpC,WAAW,EACT,yaAAya;IAC3a,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,IAAI;IACd,eAAe,EAAE,eAAe;IAChC,oBAAoB,EAAE,IAAI;CAC3B,CAAA;AAEY,QAAA,MAAM,GAAe;IAChC,KAAK,EAAE,gBAAgB;IACvB,WAAW,EACT,iWAAiW;IACnW,IAAI,EAAE,QAAQ;IACd,eAAe,EAAE,eAAe;CACjC,CAAA;AAEY,QAAA,kBAAkB,GAAe;IAC5C,KAAK,EAAE,sBAAsB;IAC7B,WAAW,EACT,wHAAwH;IAC1H,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,IAAI;CACf,CAAA;AAEY,QAAA,SAAS,GAAe;IACnC,KAAK,EAAE,YAAY;IACnB,WAAW,EACT,6SAA6S;IAC/S,IAAI,EAAE,QAAQ;IACd,eAAe,EAAE,eAAe;CACjC,CAAA;AAEY,QAAA,eAAe,GAAe;IACzC,KAAK,EAAE,oBAAoB;IAC3B,WAAW,EAAE,qEAAqE;IAClF,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,KAAK;CACf,CAAA"}
@@ -22,4 +22,7 @@ export interface Payload {
22
22
  search_string?: string;
23
23
  page_url?: string;
24
24
  sign_up_method?: string;
25
+ os_version?: string;
26
+ device_model?: string;
27
+ click_id?: string;
25
28
  }
@@ -29,7 +29,10 @@ const action = {
29
29
  client_dedup_id: snap_capi_properties_1.client_dedup_id,
30
30
  search_string: snap_capi_properties_1.search_string,
31
31
  page_url: snap_capi_properties_1.page_url,
32
- sign_up_method: snap_capi_properties_1.sign_up_method
32
+ sign_up_method: snap_capi_properties_1.sign_up_method,
33
+ os_version: snap_capi_properties_1.os_version,
34
+ device_model: snap_capi_properties_1.device_model,
35
+ click_id: snap_capi_properties_1.click_id
33
36
  },
34
37
  perform: (request, data) => {
35
38
  const payload = snap_capi_properties_1.formatPayload(data.payload);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/snap-conversions-api/reportConversionEvent/index.ts"],"names":[],"mappings":";;AAAA,wDAA0E;AAG1E,kEA2BgC;AAEhC,MAAM,oBAAoB,GAAG,uCAAuC,CAAA;AAEpE,MAAM,MAAM,GAAwC;IAClD,KAAK,EAAE,yBAAyB;IAChC,WAAW,EACT,2JAA2J;IAC7J,MAAM,EAAE;QACN,UAAU,EAAE,EAAE,GAAG,iCAAU,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC7C,qBAAqB,EAAE,EAAE,GAAG,4CAAqB,EAAE,QAAQ,EAAE,IAAI,EAAE;QACnE,SAAS,EAAE,gCAAS;QACpB,SAAS,EAAE,EAAE,GAAG,gCAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC3C,KAAK,EAAE,4BAAK;QACZ,YAAY,EAAE,mCAAY;QAC1B,OAAO,EAAE,8BAAO;QAChB,IAAI,EAAE,2BAAI;QACV,YAAY,EAAE,mCAAY;QAC1B,UAAU,EAAE,iCAAU;QACtB,UAAU,EAAE,iCAAU;QACtB,aAAa,EAAE,oCAAa;QAC5B,QAAQ,EAAE,+BAAQ;QAClB,WAAW,EAAE,kCAAW;QACxB,YAAY,EAAE,mCAAY;QAC1B,KAAK,EAAE,4BAAK;QACZ,QAAQ,EAAE,+BAAQ;QAClB,cAAc,EAAE,qCAAc;QAC9B,KAAK,EAAE,4BAAK;QACZ,eAAe,EAAE,sCAAe;QAChC,aAAa,EAAE,oCAAa;QAC5B,QAAQ,EAAE,+BAAQ;QAClB,cAAc,EAAE,qCAAc;KAC/B;IACD,OAAO,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;QACzB,MAAM,OAAO,GAAW,oCAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACnD,MAAM,QAAQ,GAAa,qCAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAA;QAE5F,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,8CAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE;YAC9F,MAAM,IAAI,+BAAgB,CACxB,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,gCAAgC,EACxD,8BAA8B,EAC9B,GAAG,CACJ,CAAA;SACF;QAGD,OAAO,OAAO,CAAC,oBAAoB,EAAE;YACnC,MAAM,EAAE,MAAM;YACd,IAAI,EAAE;gBACJ,WAAW,EAAE,SAAS;gBACtB,GAAG,OAAO;gBACV,GAAG,QAAQ;aACZ;SACF,CAAC,CAAA;IACJ,CAAC;CACF,CAAA;AAED,kBAAe,MAAM,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/snap-conversions-api/reportConversionEvent/index.ts"],"names":[],"mappings":";;AAAA,wDAA0E;AAG1E,kEA8BgC;AAEhC,MAAM,oBAAoB,GAAG,uCAAuC,CAAA;AAEpE,MAAM,MAAM,GAAwC;IAClD,KAAK,EAAE,yBAAyB;IAChC,WAAW,EACT,2JAA2J;IAC7J,MAAM,EAAE;QACN,UAAU,EAAE,EAAE,GAAG,iCAAU,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC7C,qBAAqB,EAAE,EAAE,GAAG,4CAAqB,EAAE,QAAQ,EAAE,IAAI,EAAE;QACnE,SAAS,EAAE,gCAAS;QACpB,SAAS,EAAE,EAAE,GAAG,gCAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC3C,KAAK,EAAE,4BAAK;QACZ,YAAY,EAAE,mCAAY;QAC1B,OAAO,EAAE,8BAAO;QAChB,IAAI,EAAE,2BAAI;QACV,YAAY,EAAE,mCAAY;QAC1B,UAAU,EAAE,iCAAU;QACtB,UAAU,EAAE,iCAAU;QACtB,aAAa,EAAE,oCAAa;QAC5B,QAAQ,EAAE,+BAAQ;QAClB,WAAW,EAAE,kCAAW;QACxB,YAAY,EAAE,mCAAY;QAC1B,KAAK,EAAE,4BAAK;QACZ,QAAQ,EAAE,+BAAQ;QAClB,cAAc,EAAE,qCAAc;QAC9B,KAAK,EAAE,4BAAK;QACZ,eAAe,EAAE,sCAAe;QAChC,aAAa,EAAE,oCAAa;QAC5B,QAAQ,EAAE,+BAAQ;QAClB,cAAc,EAAE,qCAAc;QAC9B,UAAU,EAAE,iCAAU;QACtB,YAAY,EAAE,mCAAY;QAC1B,QAAQ,EAAE,+BAAQ;KACnB;IACD,OAAO,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;QACzB,MAAM,OAAO,GAAW,oCAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACnD,MAAM,QAAQ,GAAa,qCAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAA;QAE5F,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,8CAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE;YAC9F,MAAM,IAAI,+BAAgB,CACxB,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,gCAAgC,EACxD,8BAA8B,EAC9B,GAAG,CACJ,CAAA;SACF;QAGD,OAAO,OAAO,CAAC,oBAAoB,EAAE;YACnC,MAAM,EAAE,MAAM;YACd,IAAI,EAAE;gBACJ,WAAW,EAAE,SAAS;gBACtB,GAAG,OAAO;gBACV,GAAG,QAAQ;aACZ;SACF,CAAC,CAAA;IACJ,CAAC;CACF,CAAA;AAED,kBAAe,MAAM,CAAA"}
@@ -25,6 +25,9 @@ export declare const client_dedup_id: InputField;
25
25
  export declare const search_string: InputField;
26
26
  export declare const page_url: InputField;
27
27
  export declare const sign_up_method: InputField;
28
+ export declare const device_model: InputField;
29
+ export declare const os_version: InputField;
30
+ export declare const click_id: InputField;
28
31
  export declare const conversionType: (settings: Settings, event_conversion_type: String) => Settings;
29
32
  export declare const hash: (value: string | undefined) => string | undefined;
30
33
  export declare const formatPayload: (payload: Payload) => Object;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.formatPayload = exports.hash = exports.conversionType = exports.sign_up_method = exports.page_url = exports.search_string = exports.client_dedup_id = exports.level = exports.transaction_id = exports.currency = exports.price = exports.number_items = exports.description = exports.item_ids = exports.item_category = exports.ip_address = exports.user_agent = exports.phone_number = exports.idfv = exports.uuid_c1 = exports.mobile_ad_id = exports.email = exports.timestamp = exports.event_tag = exports.event_conversion_type = exports.event_type = exports.CURRENCY_ISO_4217_CODES = void 0;
3
+ exports.formatPayload = exports.hash = exports.conversionType = exports.click_id = exports.os_version = exports.device_model = exports.sign_up_method = exports.page_url = exports.search_string = exports.client_dedup_id = exports.level = exports.transaction_id = exports.currency = exports.price = exports.number_items = exports.description = exports.item_ids = exports.item_category = exports.ip_address = exports.user_agent = exports.phone_number = exports.idfv = exports.uuid_c1 = exports.mobile_ad_id = exports.email = exports.timestamp = exports.event_tag = exports.event_conversion_type = exports.event_type = exports.CURRENCY_ISO_4217_CODES = void 0;
4
4
  const actions_core_1 = require("@segment/actions-core");
5
5
  const crypto_1 = require("crypto");
6
6
  exports.CURRENCY_ISO_4217_CODES = new Set([
@@ -205,7 +205,7 @@ exports.currency = {
205
205
  };
206
206
  exports.transaction_id = {
207
207
  label: 'Transaction ID',
208
- description: 'Transaction ID or order ID tied to the conversion event. Please refer to the [Snapchat Marketing API docs](https://marketingapi.snapchat.com/docs/conversion.html#deduplication) for information on how this field is used for deduplication against Snap Pixel SDK and App Adds Kit events.',
208
+ description: 'Transaction ID or order ID tied to the conversion event. Please refer to the [Snapchat Marketing API docs](https://marketingapi.snapchat.com/docs/conversion.html#deduplication) for information on how this field is used for deduplication against Snap Pixel SDK and App Ads Kit events.',
209
209
  type: 'string',
210
210
  default: {
211
211
  '@path': '$.properties.order_id'
@@ -242,6 +242,21 @@ exports.sign_up_method = {
242
242
  description: 'A string indicating the sign up method.',
243
243
  type: 'string'
244
244
  };
245
+ exports.device_model = {
246
+ label: 'Device Model',
247
+ description: 'The user’s device model.',
248
+ type: 'string'
249
+ };
250
+ exports.os_version = {
251
+ label: 'OS Version',
252
+ description: 'The user’s OS version.',
253
+ type: 'string'
254
+ };
255
+ exports.click_id = {
256
+ label: 'Click ID',
257
+ description: "The ID value stored in the landing page URL's `&ScCid=` query parameter. Using this ID improves ad measurement performance. We also encourage advertisers who are using `click_id` to pass the full url in the `page_url` field. For more details, please refer to [Sending a Click ID](#sending-a-click-id)",
258
+ type: 'string'
259
+ };
245
260
  const conversionType = (settings, event_conversion_type) => {
246
261
  if (event_conversion_type === 'MOBILE_APP') {
247
262
  if (!settings?.snap_app_id || !settings?.app_id) {
@@ -300,7 +315,10 @@ const formatPayload = (payload) => {
300
315
  client_dedup_id: payload?.client_dedup_id,
301
316
  search_string: payload?.search_string,
302
317
  page_url: payload?.page_url,
303
- sign_up_method: payload?.sign_up_method
318
+ sign_up_method: payload?.sign_up_method,
319
+ device_model: payload?.device_model,
320
+ os_version: payload?.os_version,
321
+ click_id: payload?.click_id
304
322
  };
305
323
  };
306
324
  exports.formatPayload = formatPayload;