@segment/action-destinations 3.337.2-staging.3 → 3.337.3
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/customerio/createUpdateDevice/generated-types.d.ts +3 -0
- package/dist/destinations/customerio/createUpdateDevice/index.js +29 -17
- package/dist/destinations/customerio/createUpdateDevice/index.js.map +1 -1
- package/dist/destinations/customerio/createUpdateObject/generated-types.d.ts +3 -0
- package/dist/destinations/customerio/createUpdateObject/index.js +80 -39
- package/dist/destinations/customerio/createUpdateObject/index.js.map +1 -1
- package/dist/destinations/customerio/createUpdatePerson/generated-types.d.ts +4 -1
- package/dist/destinations/customerio/createUpdatePerson/index.d.ts +1 -1
- package/dist/destinations/customerio/createUpdatePerson/index.js +51 -41
- package/dist/destinations/customerio/createUpdatePerson/index.js.map +1 -1
- package/dist/destinations/customerio/deleteDevice/index.js +15 -5
- package/dist/destinations/customerio/deleteDevice/index.js.map +1 -1
- package/dist/destinations/customerio/deleteObject/generated-types.d.ts +4 -0
- package/dist/destinations/customerio/deleteObject/generated-types.js +3 -0
- package/dist/destinations/customerio/deleteObject/generated-types.js.map +1 -0
- package/dist/destinations/customerio/deleteObject/index.d.ts +5 -0
- package/dist/destinations/customerio/deleteObject/index.js +48 -0
- package/dist/destinations/customerio/deleteObject/index.js.map +1 -0
- package/dist/destinations/customerio/deletePerson/generated-types.d.ts +3 -0
- package/dist/destinations/customerio/deletePerson/generated-types.js +3 -0
- package/dist/destinations/customerio/deletePerson/generated-types.js.map +1 -0
- package/dist/destinations/customerio/deletePerson/index.d.ts +5 -0
- package/dist/destinations/customerio/deletePerson/index.js +41 -0
- package/dist/destinations/customerio/deletePerson/index.js.map +1 -0
- package/dist/destinations/customerio/deleteRelationship/generated-types.d.ts +6 -0
- package/dist/destinations/customerio/deleteRelationship/generated-types.js +3 -0
- package/dist/destinations/customerio/deleteRelationship/generated-types.js.map +1 -0
- package/dist/destinations/customerio/deleteRelationship/index.d.ts +5 -0
- package/dist/destinations/customerio/deleteRelationship/index.js +82 -0
- package/dist/destinations/customerio/deleteRelationship/index.js.map +1 -0
- package/dist/destinations/customerio/index.js +37 -15
- package/dist/destinations/customerio/index.js.map +1 -1
- package/dist/destinations/customerio/reportDeliveryEvent/generated-types.d.ts +10 -0
- package/dist/destinations/customerio/reportDeliveryEvent/generated-types.js +3 -0
- package/dist/destinations/customerio/reportDeliveryEvent/generated-types.js.map +1 -0
- package/dist/destinations/customerio/reportDeliveryEvent/index.d.ts +5 -0
- package/dist/destinations/customerio/reportDeliveryEvent/index.js +121 -0
- package/dist/destinations/customerio/reportDeliveryEvent/index.js.map +1 -0
- package/dist/destinations/customerio/suppressPerson/generated-types.d.ts +3 -0
- package/dist/destinations/customerio/suppressPerson/generated-types.js +3 -0
- package/dist/destinations/customerio/suppressPerson/generated-types.js.map +1 -0
- package/dist/destinations/customerio/suppressPerson/index.d.ts +5 -0
- package/dist/destinations/customerio/suppressPerson/index.js +41 -0
- package/dist/destinations/customerio/suppressPerson/index.js.map +1 -0
- package/dist/destinations/customerio/test-helper.d.ts +6 -0
- package/dist/destinations/customerio/test-helper.js +84 -0
- package/dist/destinations/customerio/test-helper.js.map +1 -0
- package/dist/destinations/customerio/trackEvent/index.js +26 -32
- package/dist/destinations/customerio/trackEvent/index.js.map +1 -1
- package/dist/destinations/customerio/trackPageView/generated-types.d.ts +1 -0
- package/dist/destinations/customerio/trackPageView/index.js +26 -29
- package/dist/destinations/customerio/trackPageView/index.js.map +1 -1
- package/dist/destinations/customerio/trackScreenView/generated-types.d.ts +1 -0
- package/dist/destinations/customerio/trackScreenView/index.js +25 -29
- package/dist/destinations/customerio/trackScreenView/index.js.map +1 -1
- package/dist/destinations/customerio/unsuppressPerson/generated-types.d.ts +3 -0
- package/dist/destinations/customerio/unsuppressPerson/generated-types.js +3 -0
- package/dist/destinations/customerio/unsuppressPerson/generated-types.js.map +1 -0
- package/dist/destinations/customerio/unsuppressPerson/index.d.ts +5 -0
- package/dist/destinations/customerio/unsuppressPerson/index.js +41 -0
- package/dist/destinations/customerio/unsuppressPerson/index.js.map +1 -0
- package/dist/destinations/customerio/utils.d.ts +44 -2
- package/dist/destinations/customerio/utils.js +88 -13
- package/dist/destinations/customerio/utils.js.map +1 -1
- package/dist/destinations/segment/segment-properties.d.ts +1 -0
- package/dist/destinations/segment/segment-properties.js +7 -1
- package/dist/destinations/segment/segment-properties.js.map +1 -1
- package/dist/destinations/segment/sendGroup/generated-types.d.ts +1 -0
- package/dist/destinations/segment/sendGroup/index.js +2 -1
- package/dist/destinations/segment/sendGroup/index.js.map +1 -1
- package/dist/destinations/segment/sendIdentify/generated-types.d.ts +1 -0
- package/dist/destinations/segment/sendIdentify/index.js +2 -1
- package/dist/destinations/segment/sendIdentify/index.js.map +1 -1
- package/dist/destinations/segment/sendPage/generated-types.d.ts +1 -0
- package/dist/destinations/segment/sendPage/index.js +2 -1
- package/dist/destinations/segment/sendPage/index.js.map +1 -1
- package/dist/destinations/segment/sendScreen/generated-types.d.ts +1 -0
- package/dist/destinations/segment/sendScreen/index.js +2 -1
- package/dist/destinations/segment/sendScreen/index.js.map +1 -1
- package/dist/destinations/segment/sendTrack/generated-types.d.ts +1 -0
- package/dist/destinations/segment/sendTrack/index.js +2 -1
- package/dist/destinations/segment/sendTrack/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/customerio/deletePerson/index.ts"],"names":[],"mappings":";;AAGA,oCAAgD;AAEhD,MAAM,MAAM,GAAwC;IAClD,KAAK,EAAE,eAAe;IACtB,WAAW,EAAE,iCAAiC;IAC9C,mBAAmB,EAAE,wBAAwB;IAC7C,MAAM,EAAE;QACN,SAAS,EAAE;YACT,KAAK,EAAE,WAAW;YAClB,WAAW,EACT,mIAAmI;YACrI,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE;gBACP,KAAK,EAAE;oBACL,MAAM,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;oBAC/B,IAAI,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;oBAC7B,IAAI,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE;iBACpC;aACF;YACD,QAAQ,EAAE,IAAI;SACf;KACF;IAED,YAAY,EAAE,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE;QACzD,OAAO,iBAAS,CACd,OAAO,EACP,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACzB,MAAM,EAAE,QAAQ;YAChB,OAAO;YACP,QAAQ;YACR,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC,CACJ,CAAA;IACH,CAAC;IAED,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC1C,OAAO,kBAAU,CAAC,OAAO,EAAE;YACzB,MAAM,EAAE,QAAQ;YAChB,OAAO;YACP,QAAQ;YACR,IAAI,EAAE,QAAQ;SACf,CAAC,CAAA;IACJ,CAAC;CACF,CAAA;AAED,kBAAe,MAAM,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generated-types.js","sourceRoot":"","sources":["../../../../src/destinations/customerio/deleteRelationship/generated-types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const utils_1 = require("../utils");
|
|
4
|
+
const action = {
|
|
5
|
+
title: 'Delete Relationship',
|
|
6
|
+
description: `Delete a relationship between a person and an object in Customer.io.`,
|
|
7
|
+
defaultSubscription: 'event = "Relationship Deleted"',
|
|
8
|
+
fields: {
|
|
9
|
+
person_id: {
|
|
10
|
+
label: 'Person ID',
|
|
11
|
+
description: 'The ID used to uniquely identify a person in Customer.io. [Learn more](https://customer.io/docs/identifying-people/#identifiers).',
|
|
12
|
+
type: 'string',
|
|
13
|
+
default: {
|
|
14
|
+
'@if': {
|
|
15
|
+
exists: { '@path': '$.userId' },
|
|
16
|
+
then: { '@path': '$.userId' },
|
|
17
|
+
else: { '@path': '$.traits.email' }
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
required: true
|
|
21
|
+
},
|
|
22
|
+
anonymous_id: {
|
|
23
|
+
label: 'Anonymous ID',
|
|
24
|
+
description: 'An optional anonymous ID. This is used to tie anonymous events to this person. [Learn more](https://customer.io/docs/anonymous-events/).',
|
|
25
|
+
type: 'string',
|
|
26
|
+
default: {
|
|
27
|
+
'@path': '$.anonymousId'
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
object_id: {
|
|
31
|
+
label: 'Object ID',
|
|
32
|
+
description: 'An object ID used to identify an object.',
|
|
33
|
+
type: 'string',
|
|
34
|
+
default: {
|
|
35
|
+
'@path': '$.context.groupId'
|
|
36
|
+
},
|
|
37
|
+
required: true
|
|
38
|
+
},
|
|
39
|
+
object_type_id: {
|
|
40
|
+
label: 'Object Type ID',
|
|
41
|
+
description: 'An object ID type used to identify the type of object.',
|
|
42
|
+
type: 'string',
|
|
43
|
+
default: {
|
|
44
|
+
'@if': {
|
|
45
|
+
exists: { '@path': '$.properties.object_type_id' },
|
|
46
|
+
then: { '@path': '$.properties.object_type_id' },
|
|
47
|
+
else: { '@path': '$.properties.objectTypeId' }
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
performBatch: (request, { payload: payloads, settings }) => {
|
|
53
|
+
return utils_1.sendBatch(request, payloads.map((payload) => ({
|
|
54
|
+
action: 'delete_relationships',
|
|
55
|
+
settings,
|
|
56
|
+
...mapPayload(payload)
|
|
57
|
+
})));
|
|
58
|
+
},
|
|
59
|
+
perform: (request, { payload, settings }) => {
|
|
60
|
+
return utils_1.sendSingle(request, {
|
|
61
|
+
action: 'delete_relationships',
|
|
62
|
+
settings,
|
|
63
|
+
...mapPayload(payload)
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
function mapPayload(payload) {
|
|
68
|
+
const { anonymous_id, person_id } = payload;
|
|
69
|
+
return {
|
|
70
|
+
type: 'object',
|
|
71
|
+
payload: {
|
|
72
|
+
...payload,
|
|
73
|
+
cio_relationships: [
|
|
74
|
+
{
|
|
75
|
+
identifiers: utils_1.resolveIdentifiers({ anonymous_id, person_id })
|
|
76
|
+
}
|
|
77
|
+
]
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
exports.default = action;
|
|
82
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/customerio/deleteRelationship/index.ts"],"names":[],"mappings":";;AAGA,oCAAoE;AAEpE,MAAM,MAAM,GAAwC;IAClD,KAAK,EAAE,qBAAqB;IAC5B,WAAW,EAAE,sEAAsE;IACnF,mBAAmB,EAAE,gCAAgC;IACrD,MAAM,EAAE;QACN,SAAS,EAAE;YACT,KAAK,EAAE,WAAW;YAClB,WAAW,EACT,mIAAmI;YACrI,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE;gBACP,KAAK,EAAE;oBACL,MAAM,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;oBAC/B,IAAI,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;oBAC7B,IAAI,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE;iBACpC;aACF;YACD,QAAQ,EAAE,IAAI;SACf;QACD,YAAY,EAAE;YACZ,KAAK,EAAE,cAAc;YACrB,WAAW,EACT,0IAA0I;YAC5I,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE;gBACP,OAAO,EAAE,eAAe;aACzB;SACF;QACD,SAAS,EAAE;YACT,KAAK,EAAE,WAAW;YAClB,WAAW,EAAE,0CAA0C;YACvD,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE;gBACP,OAAO,EAAE,mBAAmB;aAC7B;YACD,QAAQ,EAAE,IAAI;SACf;QACD,cAAc,EAAE;YACd,KAAK,EAAE,gBAAgB;YACvB,WAAW,EAAE,wDAAwD;YACrE,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE;gBACP,KAAK,EAAE;oBACL,MAAM,EAAE,EAAE,OAAO,EAAE,6BAA6B,EAAE;oBAClD,IAAI,EAAE,EAAE,OAAO,EAAE,6BAA6B,EAAE;oBAChD,IAAI,EAAE,EAAE,OAAO,EAAE,2BAA2B,EAAE;iBAC/C;aACF;SACF;KACF;IAED,YAAY,EAAE,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE;QACzD,OAAO,iBAAS,CACd,OAAO,EACP,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACzB,MAAM,EAAE,sBAAsB;YAC9B,QAAQ;YACR,GAAG,UAAU,CAAC,OAAO,CAAC;SACvB,CAAC,CAAC,CACJ,CAAA;IACH,CAAC;IAED,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC1C,OAAO,kBAAU,CAAC,OAAO,EAAE;YACzB,MAAM,EAAE,sBAAsB;YAC9B,QAAQ;YACR,GAAG,UAAU,CAAC,OAAO,CAAC;SACvB,CAAC,CAAA;IACJ,CAAC;CACF,CAAA;AAED,SAAS,UAAU,CAAC,OAAgB;IAClC,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,OAAO,CAAA;IAE3C,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE;YACP,GAAG,OAAO;YACV,iBAAiB,EAAE;gBACjB;oBACE,WAAW,EAAE,0BAAkB,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;iBAC7D;aACF;SACF;KACF,CAAA;AACH,CAAC;AAED,kBAAe,MAAM,CAAA"}
|
|
@@ -5,12 +5,18 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const actions_core_1 = require("@segment/actions-core");
|
|
7
7
|
const createUpdateDevice_1 = __importDefault(require("./createUpdateDevice"));
|
|
8
|
-
const
|
|
8
|
+
const createUpdateObject_1 = __importDefault(require("./createUpdateObject"));
|
|
9
9
|
const createUpdatePerson_1 = __importDefault(require("./createUpdatePerson"));
|
|
10
|
+
const deleteDevice_1 = __importDefault(require("./deleteDevice"));
|
|
11
|
+
const deleteRelationship_1 = __importDefault(require("./deleteRelationship"));
|
|
12
|
+
const deleteObject_1 = __importDefault(require("./deleteObject"));
|
|
13
|
+
const deletePerson_1 = __importDefault(require("./deletePerson"));
|
|
14
|
+
const reportDeliveryEvent_1 = __importDefault(require("./reportDeliveryEvent"));
|
|
15
|
+
const suppressPerson_1 = __importDefault(require("./suppressPerson"));
|
|
16
|
+
const unsuppressPerson_1 = __importDefault(require("./unsuppressPerson"));
|
|
10
17
|
const trackEvent_1 = __importDefault(require("./trackEvent"));
|
|
11
18
|
const trackPageView_1 = __importDefault(require("./trackPageView"));
|
|
12
19
|
const trackScreenView_1 = __importDefault(require("./trackScreenView"));
|
|
13
|
-
const createUpdateObject_1 = __importDefault(require("./createUpdateObject"));
|
|
14
20
|
const utils_1 = require("./utils");
|
|
15
21
|
const destination = {
|
|
16
22
|
name: 'Actions Customerio',
|
|
@@ -22,13 +28,13 @@ const destination = {
|
|
|
22
28
|
siteId: {
|
|
23
29
|
description: 'Customer.io site ID. This can be found on your [API Credentials page](https://fly.customer.io/settings/api_credentials).',
|
|
24
30
|
label: 'Site ID',
|
|
25
|
-
type: '
|
|
31
|
+
type: 'password',
|
|
26
32
|
required: true
|
|
27
33
|
},
|
|
28
34
|
apiKey: {
|
|
29
35
|
description: 'Customer.io API key. This can be found on your [API Credentials page](https://fly.customer.io/settings/api_credentials).',
|
|
30
36
|
label: 'API Key',
|
|
31
|
-
type: '
|
|
37
|
+
type: 'password',
|
|
32
38
|
required: true
|
|
33
39
|
},
|
|
34
40
|
accountRegion: {
|
|
@@ -52,11 +58,17 @@ const destination = {
|
|
|
52
58
|
actions: {
|
|
53
59
|
createUpdateDevice: createUpdateDevice_1.default,
|
|
54
60
|
deleteDevice: deleteDevice_1.default,
|
|
61
|
+
deleteRelationship: deleteRelationship_1.default,
|
|
62
|
+
deletePerson: deletePerson_1.default,
|
|
63
|
+
deleteObject: deleteObject_1.default,
|
|
55
64
|
createUpdatePerson: createUpdatePerson_1.default,
|
|
56
65
|
trackEvent: trackEvent_1.default,
|
|
57
66
|
trackPageView: trackPageView_1.default,
|
|
58
67
|
trackScreenView: trackScreenView_1.default,
|
|
59
|
-
createUpdateObject: createUpdateObject_1.default
|
|
68
|
+
createUpdateObject: createUpdateObject_1.default,
|
|
69
|
+
suppressPerson: suppressPerson_1.default,
|
|
70
|
+
unsuppressPerson: unsuppressPerson_1.default,
|
|
71
|
+
reportDeliveryEvent: reportDeliveryEvent_1.default
|
|
60
72
|
},
|
|
61
73
|
presets: [
|
|
62
74
|
{
|
|
@@ -73,16 +85,20 @@ const destination = {
|
|
|
73
85
|
mapping: actions_core_1.defaultValues(createUpdateDevice_1.default.fields),
|
|
74
86
|
type: 'automatic'
|
|
75
87
|
},
|
|
76
|
-
{
|
|
77
|
-
name: 'Delete Device',
|
|
78
|
-
subscribe: 'event = "Application Uninstalled"',
|
|
79
|
-
partnerAction: 'deleteDevice',
|
|
80
|
-
mapping: actions_core_1.defaultValues(deleteDevice_1.default.fields),
|
|
81
|
-
type: 'automatic'
|
|
82
|
-
},
|
|
83
88
|
{
|
|
84
89
|
name: 'Track Event',
|
|
85
|
-
subscribe:
|
|
90
|
+
subscribe: `
|
|
91
|
+
type = "track"
|
|
92
|
+
and event != "Application Installed"
|
|
93
|
+
and event != "Application Opened"
|
|
94
|
+
and event != "Application Uninstalled"
|
|
95
|
+
and event != "Relationship Deleted"
|
|
96
|
+
and event != "User Deleted"
|
|
97
|
+
and event != "User Suppressed"
|
|
98
|
+
and event != "User Unsuppressed"
|
|
99
|
+
and event != "Object Deleted"
|
|
100
|
+
and event != "Report Delivery Event"
|
|
101
|
+
`,
|
|
86
102
|
partnerAction: 'trackEvent',
|
|
87
103
|
mapping: actions_core_1.defaultValues(trackEvent_1.default.fields),
|
|
88
104
|
type: 'automatic'
|
|
@@ -108,6 +124,13 @@ const destination = {
|
|
|
108
124
|
mapping: actions_core_1.defaultValues(createUpdateObject_1.default.fields),
|
|
109
125
|
type: 'automatic'
|
|
110
126
|
},
|
|
127
|
+
{
|
|
128
|
+
name: 'Report Delivery Event',
|
|
129
|
+
subscribe: 'event = "Report Delivery Event"',
|
|
130
|
+
partnerAction: 'reportDeliveryEvent',
|
|
131
|
+
mapping: actions_core_1.defaultValues(reportDeliveryEvent_1.default.fields),
|
|
132
|
+
type: 'automatic'
|
|
133
|
+
},
|
|
111
134
|
{
|
|
112
135
|
name: 'Associated Entity Added',
|
|
113
136
|
partnerAction: 'trackEvent',
|
|
@@ -170,9 +193,8 @@ const destination = {
|
|
|
170
193
|
}
|
|
171
194
|
],
|
|
172
195
|
onDelete(request, { settings, payload }) {
|
|
173
|
-
const { accountRegion } = settings;
|
|
174
196
|
const { userId } = payload;
|
|
175
|
-
const url = `${utils_1.trackApiEndpoint(
|
|
197
|
+
const url = `${utils_1.trackApiEndpoint(settings)}/api/v1/customers/${userId}`;
|
|
176
198
|
return request(url, {
|
|
177
199
|
method: 'DELETE'
|
|
178
200
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destinations/customerio/index.ts"],"names":[],"mappings":";;;;;AAAA,wDAAqD;AACrD,8EAAqD;AACrD,kEAAyC;AACzC,8EAAqD;AACrD,8DAAqC;AACrC,oEAA2C;AAC3C,wEAA+C;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destinations/customerio/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generated-types.js","sourceRoot":"","sources":["../../../../src/destinations/customerio/reportDeliveryEvent/generated-types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const utils_1 = require("../utils");
|
|
4
|
+
const action = {
|
|
5
|
+
title: 'Report Delivery Event',
|
|
6
|
+
description: 'Report delivery metrics for a message sent from the Customer.io Journeys product.',
|
|
7
|
+
defaultSubscription: 'event = "Report Delivery Event"',
|
|
8
|
+
fields: {
|
|
9
|
+
delivery_id: {
|
|
10
|
+
label: 'Delivery ID',
|
|
11
|
+
description: 'The CIO-Delivery-ID from the message that you want to associate the metric with.',
|
|
12
|
+
type: 'string',
|
|
13
|
+
default: {
|
|
14
|
+
'@path': '$.properties.deliveryId'
|
|
15
|
+
},
|
|
16
|
+
required: true
|
|
17
|
+
},
|
|
18
|
+
metric: {
|
|
19
|
+
label: 'Metric',
|
|
20
|
+
description: `The metric you want to report back to Customer.io. Not all metrics are available for all channels. Please refer to the [documentation](https://customer.io/docs/api/track/#operation/metrics) for more information.`,
|
|
21
|
+
type: 'string',
|
|
22
|
+
default: {
|
|
23
|
+
'@path': '$.properties.metric'
|
|
24
|
+
},
|
|
25
|
+
required: true,
|
|
26
|
+
choices: [
|
|
27
|
+
{ label: 'Delivered', value: 'delivered' },
|
|
28
|
+
{ label: 'Opened', value: 'opened' },
|
|
29
|
+
{ label: 'Clicked', value: 'clicked' },
|
|
30
|
+
{ label: 'Converted', value: 'converted' },
|
|
31
|
+
{ label: 'Marked as Spam', value: 'spammed' },
|
|
32
|
+
{ label: 'Bounced', value: 'bounced' },
|
|
33
|
+
{ label: 'Suppressed', value: 'dropped' },
|
|
34
|
+
{ label: 'Deferred', value: 'deferred' }
|
|
35
|
+
]
|
|
36
|
+
},
|
|
37
|
+
recipient: {
|
|
38
|
+
label: 'Recipient',
|
|
39
|
+
description: `Information about who the message was delivered to. For email, SMS and mobile push this is the email address, phone number and device token, respectively.`,
|
|
40
|
+
type: 'string',
|
|
41
|
+
default: {
|
|
42
|
+
'@path': '$.properties.recipient'
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
reason: {
|
|
46
|
+
label: 'Reason',
|
|
47
|
+
description: 'For metrics indicating a failure, this field provides information for the failure.',
|
|
48
|
+
type: 'string',
|
|
49
|
+
default: {
|
|
50
|
+
'@path': '$.properties.reason'
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
href: {
|
|
54
|
+
label: 'Href',
|
|
55
|
+
description: 'For click metrics, this is the link that was clicked.',
|
|
56
|
+
type: 'string',
|
|
57
|
+
default: {
|
|
58
|
+
'@path': '$.properties.href'
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
action_name: {
|
|
62
|
+
label: 'Action Name',
|
|
63
|
+
description: 'For In-App messages, this is the name of the action that was clicked.',
|
|
64
|
+
type: 'string',
|
|
65
|
+
default: {
|
|
66
|
+
'@path': '$.properties.actionName'
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
action_value: {
|
|
70
|
+
label: 'Action Value',
|
|
71
|
+
description: 'For In-App messages, this is the value of the action that was clicked.',
|
|
72
|
+
type: 'string',
|
|
73
|
+
default: {
|
|
74
|
+
'@path': '$.properties.actionValue'
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
timestamp: {
|
|
78
|
+
label: 'Timestamp',
|
|
79
|
+
description: 'A timestamp of when the metric event took place. Default is when the event was triggered.',
|
|
80
|
+
type: 'datetime',
|
|
81
|
+
format: 'date-time',
|
|
82
|
+
default: {
|
|
83
|
+
'@path': '$.timestamp'
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
perform: (request, { payload, settings }) => {
|
|
88
|
+
const metricsRequest = {
|
|
89
|
+
delivery_id: payload.delivery_id,
|
|
90
|
+
metric: payload.metric,
|
|
91
|
+
timestamp: Math.floor(Date.now() / 1000)
|
|
92
|
+
};
|
|
93
|
+
const unix_timestamp = Number(utils_1.convertValidTimestamp(payload.timestamp));
|
|
94
|
+
if (!isNaN(unix_timestamp)) {
|
|
95
|
+
metricsRequest.timestamp = unix_timestamp;
|
|
96
|
+
}
|
|
97
|
+
if (payload.recipient) {
|
|
98
|
+
metricsRequest.recipient = payload.recipient;
|
|
99
|
+
}
|
|
100
|
+
if (payload.reason) {
|
|
101
|
+
metricsRequest.reason = payload.reason;
|
|
102
|
+
}
|
|
103
|
+
if (payload.href) {
|
|
104
|
+
metricsRequest.href = payload.href;
|
|
105
|
+
}
|
|
106
|
+
if (payload.action_name) {
|
|
107
|
+
metricsRequest.metadata = metricsRequest.metadata || {};
|
|
108
|
+
metricsRequest.metadata.action_name = payload.action_name;
|
|
109
|
+
}
|
|
110
|
+
if (payload.action_value) {
|
|
111
|
+
metricsRequest.metadata = metricsRequest.metadata || {};
|
|
112
|
+
metricsRequest.metadata.action_value = payload.action_value;
|
|
113
|
+
}
|
|
114
|
+
return request(utils_1.trackApiEndpoint(settings) + '/api/v1/metrics', {
|
|
115
|
+
json: metricsRequest,
|
|
116
|
+
method: 'post'
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
};
|
|
120
|
+
exports.default = action;
|
|
121
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/customerio/reportDeliveryEvent/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generated-types.js","sourceRoot":"","sources":["../../../../src/destinations/customerio/suppressPerson/generated-types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const utils_1 = require("../utils");
|
|
4
|
+
const action = {
|
|
5
|
+
title: 'Suppress Person',
|
|
6
|
+
description: `Suppress a person in Customer.io. This will prevent the person from receiving any messages.`,
|
|
7
|
+
defaultSubscription: 'event = "User Suppressed"',
|
|
8
|
+
fields: {
|
|
9
|
+
person_id: {
|
|
10
|
+
label: 'Person ID',
|
|
11
|
+
description: 'The ID used to uniquely identify a person in Customer.io. Any valid identifier is supported, such as ID, cio_id, email, etc. Anonymous users cannot be suppressed. [Learn more](https://customer.io/docs/identifying-people/#identifiers).',
|
|
12
|
+
type: 'string',
|
|
13
|
+
default: {
|
|
14
|
+
'@if': {
|
|
15
|
+
exists: { '@path': '$.userId' },
|
|
16
|
+
then: { '@path': '$.userId' },
|
|
17
|
+
else: { '@path': '$.traits.email' }
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
required: true
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
performBatch: (request, { payload: payloads, settings }) => {
|
|
24
|
+
return utils_1.sendBatch(request, payloads.map((payload) => ({
|
|
25
|
+
action: 'suppress',
|
|
26
|
+
payload,
|
|
27
|
+
settings,
|
|
28
|
+
type: 'person'
|
|
29
|
+
})));
|
|
30
|
+
},
|
|
31
|
+
perform: (request, { payload, settings }) => {
|
|
32
|
+
return utils_1.sendSingle(request, {
|
|
33
|
+
action: 'suppress',
|
|
34
|
+
payload,
|
|
35
|
+
settings,
|
|
36
|
+
type: 'person'
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
exports.default = action;
|
|
41
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/customerio/suppressPerson/index.ts"],"names":[],"mappings":";;AAGA,oCAAgD;AAEhD,MAAM,MAAM,GAAwC;IAClD,KAAK,EAAE,iBAAiB;IACxB,WAAW,EAAE,6FAA6F;IAC1G,mBAAmB,EAAE,2BAA2B;IAChD,MAAM,EAAE;QACN,SAAS,EAAE;YACT,KAAK,EAAE,WAAW;YAClB,WAAW,EACT,4OAA4O;YAC9O,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE;gBACP,KAAK,EAAE;oBACL,MAAM,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;oBAC/B,IAAI,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;oBAC7B,IAAI,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE;iBACpC;aACF;YACD,QAAQ,EAAE,IAAI;SACf;KACF;IAED,YAAY,EAAE,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE;QACzD,OAAO,iBAAS,CACd,OAAO,EACP,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACzB,MAAM,EAAE,UAAU;YAClB,OAAO;YACP,QAAQ;YACR,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC,CACJ,CAAA;IACH,CAAC;IAED,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC1C,OAAO,kBAAU,CAAC,OAAO,EAAE;YACzB,MAAM,EAAE,UAAU;YAClB,OAAO;YACP,QAAQ;YACR,IAAI,EAAE,QAAQ;SACf,CAAC,CAAA;IACJ,CAAC;CACF,CAAA;AAED,kBAAe,MAAM,CAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/// <reference types="lodash" />
|
|
2
|
+
import nock from 'nock';
|
|
3
|
+
import { AccountRegion } from './utils';
|
|
4
|
+
export declare const nockTrackInternalEndpoint: (region: AccountRegion) => nock.Scope;
|
|
5
|
+
export declare function getDefaultMappings(action: string): import("lodash").Dictionary<import("@segment/actions-core/src/destination-kit/types").FieldValue | undefined>;
|
|
6
|
+
export declare function testRunner(fn: Function): void;
|
|
@@ -0,0 +1,84 @@
|
|
|
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
|
+
exports.testRunner = exports.getDefaultMappings = exports.nockTrackInternalEndpoint = void 0;
|
|
7
|
+
const nock_1 = __importDefault(require("nock"));
|
|
8
|
+
const mapValues_1 = __importDefault(require("lodash/mapValues"));
|
|
9
|
+
const actions_core_1 = require("@segment/actions-core");
|
|
10
|
+
const index_1 = __importDefault(require("./index"));
|
|
11
|
+
const utils_1 = require("./utils");
|
|
12
|
+
const testDestination = actions_core_1.createTestIntegration(index_1.default);
|
|
13
|
+
var EndpointType;
|
|
14
|
+
(function (EndpointType) {
|
|
15
|
+
EndpointType["BATCH"] = "batch";
|
|
16
|
+
EndpointType["SINGLE"] = "entity";
|
|
17
|
+
})(EndpointType || (EndpointType = {}));
|
|
18
|
+
const endpointByType = {
|
|
19
|
+
[EndpointType.BATCH]: 'batch',
|
|
20
|
+
[EndpointType.SINGLE]: 'entity'
|
|
21
|
+
};
|
|
22
|
+
const trackServiceByRegion = {
|
|
23
|
+
[utils_1.AccountRegion.US]: nock_1.default('https://track.customer.io'),
|
|
24
|
+
[utils_1.AccountRegion.EU]: nock_1.default('https://track-eu.customer.io')
|
|
25
|
+
};
|
|
26
|
+
function wrapFn(fn, type, region) {
|
|
27
|
+
return () => {
|
|
28
|
+
const settings = {
|
|
29
|
+
siteId: '12345',
|
|
30
|
+
apiKey: 'abcde',
|
|
31
|
+
accountRegion: region
|
|
32
|
+
};
|
|
33
|
+
const action = async (name, args) => {
|
|
34
|
+
const actionFn = {
|
|
35
|
+
[EndpointType.BATCH]: testDestination.testBatchAction,
|
|
36
|
+
[EndpointType.SINGLE]: testDestination.testAction
|
|
37
|
+
}[type];
|
|
38
|
+
if (type === EndpointType.BATCH) {
|
|
39
|
+
args.events = [args.event];
|
|
40
|
+
}
|
|
41
|
+
const responses = (await actionFn?.call(testDestination, name, args));
|
|
42
|
+
if (!responses.length) {
|
|
43
|
+
if (type === EndpointType.BATCH) {
|
|
44
|
+
await testDestination.testAction(name, args);
|
|
45
|
+
}
|
|
46
|
+
throw new Error(`No responses received.`);
|
|
47
|
+
}
|
|
48
|
+
expect(responses.length).toBe(1);
|
|
49
|
+
expect(responses[0].status).toBe(200);
|
|
50
|
+
expect(responses[0].headers.toJSON()).toMatchObject({
|
|
51
|
+
'content-type': 'application/json'
|
|
52
|
+
});
|
|
53
|
+
expect(responses[0].data).toMatchObject({});
|
|
54
|
+
if (type === EndpointType.BATCH) {
|
|
55
|
+
return responses[0].options.json.batch[0];
|
|
56
|
+
}
|
|
57
|
+
return responses[0].options.json;
|
|
58
|
+
};
|
|
59
|
+
return fn(settings, action);
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
const nockTrackInternalEndpoint = (region) => trackServiceByRegion[region];
|
|
63
|
+
exports.nockTrackInternalEndpoint = nockTrackInternalEndpoint;
|
|
64
|
+
function getDefaultMappings(action) {
|
|
65
|
+
const fields = testDestination.definition.actions[action].fields;
|
|
66
|
+
const defaultMappings = mapValues_1.default(fields, 'default');
|
|
67
|
+
return defaultMappings;
|
|
68
|
+
}
|
|
69
|
+
exports.getDefaultMappings = getDefaultMappings;
|
|
70
|
+
function testRunner(fn) {
|
|
71
|
+
describe.each(Object.values(endpointByType))(`when using %s requests`, (type) => {
|
|
72
|
+
describe.each(Object.values(utils_1.AccountRegion))(`when using the %s region`, (region) => {
|
|
73
|
+
beforeEach(() => {
|
|
74
|
+
trackServiceByRegion[region].post(`/api/v2/${type}`).reply(200, {});
|
|
75
|
+
});
|
|
76
|
+
afterEach(() => {
|
|
77
|
+
nock_1.default.cleanAll();
|
|
78
|
+
});
|
|
79
|
+
return wrapFn(fn, type, region)();
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
exports.testRunner = testRunner;
|
|
84
|
+
//# sourceMappingURL=test-helper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-helper.js","sourceRoot":"","sources":["../../../src/destinations/customerio/test-helper.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,18 @@ const utils_1 = require("../utils");
|
|
|
4
4
|
const action = {
|
|
5
5
|
title: 'Track Event',
|
|
6
6
|
description: 'Track an event for a known or anonymous person.',
|
|
7
|
-
defaultSubscription:
|
|
7
|
+
defaultSubscription: `
|
|
8
|
+
type = "track"
|
|
9
|
+
and event != "Application Installed"
|
|
10
|
+
and event != "Application Opened"
|
|
11
|
+
and event != "Application Uninstalled"
|
|
12
|
+
and event != "Relationship Deleted"
|
|
13
|
+
and event != "User Deleted"
|
|
14
|
+
and event != "User Suppressed"
|
|
15
|
+
and event != "User Unsuppressed"
|
|
16
|
+
and event != "Group Deleted"
|
|
17
|
+
and event != "Report Delivery Event"
|
|
18
|
+
`,
|
|
8
19
|
fields: {
|
|
9
20
|
id: {
|
|
10
21
|
label: 'Person ID',
|
|
@@ -62,38 +73,21 @@ const action = {
|
|
|
62
73
|
default: true
|
|
63
74
|
}
|
|
64
75
|
},
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
timestamp = utils_1.convertValidTimestamp(timestamp);
|
|
71
|
-
}
|
|
72
|
-
if (data) {
|
|
73
|
-
data = utils_1.convertAttributeTimestamps(data);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
const body = {
|
|
77
|
-
name: payload.name,
|
|
78
|
-
data,
|
|
79
|
-
timestamp
|
|
80
|
-
};
|
|
81
|
-
if (payload.event_id) {
|
|
82
|
-
body.id = payload.event_id;
|
|
83
|
-
}
|
|
84
|
-
let url;
|
|
85
|
-
if (payload.id) {
|
|
86
|
-
url = `${utils_1.trackApiEndpoint(settings.accountRegion)}/api/v1/customers/${payload.id}/events`;
|
|
87
|
-
}
|
|
88
|
-
else {
|
|
89
|
-
url = `${utils_1.trackApiEndpoint(settings.accountRegion)}/api/v1/events`;
|
|
90
|
-
body.anonymous_id = payload.anonymous_id;
|
|
91
|
-
}
|
|
92
|
-
return request(url, {
|
|
93
|
-
method: 'post',
|
|
94
|
-
json: body
|
|
95
|
-
});
|
|
76
|
+
performBatch: (request, { payload: payloads, settings }) => {
|
|
77
|
+
return utils_1.sendBatch(request, payloads.map((payload) => ({ action: 'event', payload: mapPayload(payload), settings, type: 'person' })));
|
|
78
|
+
},
|
|
79
|
+
perform: (request, { payload, settings }) => {
|
|
80
|
+
return utils_1.sendSingle(request, { action: 'event', payload: mapPayload(payload), settings, type: 'person' });
|
|
96
81
|
}
|
|
97
82
|
};
|
|
83
|
+
function mapPayload(payload) {
|
|
84
|
+
const { id, event_id, data, ...rest } = payload;
|
|
85
|
+
return {
|
|
86
|
+
...rest,
|
|
87
|
+
person_id: id,
|
|
88
|
+
id: event_id,
|
|
89
|
+
attributes: data
|
|
90
|
+
};
|
|
91
|
+
}
|
|
98
92
|
exports.default = action;
|
|
99
93
|
//# sourceMappingURL=index.js.map
|