@segment/action-destinations 3.86.1-alpha.8 → 3.88.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 (99) hide show
  1. package/dist/destinations/cordial/addProductToCart/index.js +1 -1
  2. package/dist/destinations/cordial/addProductToCart/index.js.map +1 -1
  3. package/dist/destinations/cordial/index.js +1 -1
  4. package/dist/destinations/cordial/index.js.map +1 -1
  5. package/dist/destinations/cordial/removeProductFromCart/index.js.map +1 -1
  6. package/dist/destinations/cordial/upsertOrder/index.js +8 -8
  7. package/dist/destinations/cordial/upsertOrder/index.js.map +1 -1
  8. package/dist/destinations/customerio/trackEvent/generated-types.d.ts +1 -0
  9. package/dist/destinations/customerio/trackEvent/index.js +11 -0
  10. package/dist/destinations/customerio/trackEvent/index.js.map +1 -1
  11. package/dist/destinations/fullstory/identifyUser/index.js.map +1 -1
  12. package/dist/destinations/fullstory/request-params.js +4 -2
  13. package/dist/destinations/fullstory/request-params.js.map +1 -1
  14. package/dist/destinations/fullstory/trackEvent/index.js.map +1 -1
  15. package/dist/destinations/google-enhanced-conversions/postConversion/index.js +2 -3
  16. package/dist/destinations/google-enhanced-conversions/postConversion/index.js.map +1 -1
  17. package/dist/destinations/heap/constants.d.ts +1 -0
  18. package/dist/destinations/heap/constants.js +5 -0
  19. package/dist/destinations/heap/constants.js.map +1 -0
  20. package/dist/destinations/heap/flat.d.ts +9 -0
  21. package/dist/destinations/heap/flat.js +18 -0
  22. package/dist/destinations/heap/flat.js.map +1 -0
  23. package/dist/destinations/{intercom → heap}/generated-types.d.ts +1 -0
  24. package/dist/destinations/{intercom → heap}/generated-types.js +0 -0
  25. package/dist/destinations/heap/generated-types.js.map +1 -0
  26. package/dist/destinations/heap/identifyUser/generated-types.d.ts +7 -0
  27. package/dist/destinations/{intercom/groupIdentifyContact → heap/identifyUser}/generated-types.js +0 -0
  28. package/dist/destinations/heap/identifyUser/generated-types.js.map +1 -0
  29. package/dist/destinations/{intercom/groupIdentifyContact → heap/identifyUser}/index.d.ts +1 -1
  30. package/dist/destinations/heap/identifyUser/index.js +72 -0
  31. package/dist/destinations/heap/identifyUser/index.js.map +1 -0
  32. package/dist/destinations/{intercom → heap}/index.d.ts +0 -0
  33. package/dist/destinations/heap/index.js +45 -0
  34. package/dist/destinations/heap/index.js.map +1 -0
  35. package/dist/destinations/heap/trackEvent/generated-types.d.ts +11 -0
  36. package/dist/destinations/{intercom/identifyContact → heap/trackEvent}/generated-types.js +0 -0
  37. package/dist/destinations/heap/trackEvent/generated-types.js.map +1 -0
  38. package/dist/destinations/{intercom/identifyContact → heap/trackEvent}/index.d.ts +1 -1
  39. package/dist/destinations/heap/trackEvent/index.js +110 -0
  40. package/dist/destinations/heap/trackEvent/index.js.map +1 -0
  41. package/dist/destinations/heap/userIdHash.d.ts +1 -0
  42. package/dist/destinations/heap/userIdHash.js +38 -0
  43. package/dist/destinations/heap/userIdHash.js.map +1 -0
  44. package/dist/destinations/index.js +2 -2
  45. package/dist/destinations/index.js.map +1 -1
  46. package/dist/destinations/personas-messaging-sendgrid/sendEmail/index.js +3 -24
  47. package/dist/destinations/personas-messaging-sendgrid/sendEmail/index.js.map +1 -1
  48. package/dist/destinations/personas-messaging-twilio/sendSms/index.js +21 -10
  49. package/dist/destinations/personas-messaging-twilio/sendSms/index.js.map +1 -1
  50. package/dist/destinations/qualtrics/addContactToXmd/generated-types.d.ts +13 -0
  51. package/dist/destinations/{pardot → qualtrics/addContactToXmd}/generated-types.js +0 -0
  52. package/dist/destinations/qualtrics/addContactToXmd/generated-types.js.map +1 -0
  53. package/dist/destinations/{pardot/prospects → qualtrics/addContactToXmd}/index.d.ts +1 -1
  54. package/dist/destinations/qualtrics/addContactToXmd/index.js +106 -0
  55. package/dist/destinations/qualtrics/addContactToXmd/index.js.map +1 -0
  56. package/dist/destinations/qualtrics/generated-types.d.ts +4 -0
  57. package/dist/destinations/{pardot/prospects → qualtrics}/generated-types.js +0 -0
  58. package/dist/destinations/qualtrics/generated-types.js.map +1 -0
  59. package/dist/destinations/{pardot → qualtrics}/index.d.ts +0 -0
  60. package/dist/destinations/qualtrics/index.js +40 -0
  61. package/dist/destinations/qualtrics/index.js.map +1 -0
  62. package/dist/destinations/qualtrics/qualtricsApiClient.d.ts +72 -0
  63. package/dist/destinations/qualtrics/qualtricsApiClient.js +42 -0
  64. package/dist/destinations/qualtrics/qualtricsApiClient.js.map +1 -0
  65. package/dist/destinations/qualtrics/triggerXflowWorkflow/generated-types.d.ts +6 -0
  66. package/dist/destinations/qualtrics/triggerXflowWorkflow/generated-types.js +3 -0
  67. package/dist/destinations/qualtrics/triggerXflowWorkflow/generated-types.js.map +1 -0
  68. package/dist/destinations/qualtrics/triggerXflowWorkflow/index.d.ts +5 -0
  69. package/dist/destinations/qualtrics/triggerXflowWorkflow/index.js +53 -0
  70. package/dist/destinations/qualtrics/triggerXflowWorkflow/index.js.map +1 -0
  71. package/package.json +4 -4
  72. package/dist/destinations/intercom/generated-types.js.map +0 -1
  73. package/dist/destinations/intercom/groupIdentifyContact/generated-types.d.ts +0 -14
  74. package/dist/destinations/intercom/groupIdentifyContact/generated-types.js.map +0 -1
  75. package/dist/destinations/intercom/groupIdentifyContact/index.js +0 -122
  76. package/dist/destinations/intercom/groupIdentifyContact/index.js.map +0 -1
  77. package/dist/destinations/intercom/identifyContact/generated-types.d.ts +0 -15
  78. package/dist/destinations/intercom/identifyContact/generated-types.js.map +0 -1
  79. package/dist/destinations/intercom/identifyContact/index.js +0 -153
  80. package/dist/destinations/intercom/identifyContact/index.js.map +0 -1
  81. package/dist/destinations/intercom/index.js +0 -37
  82. package/dist/destinations/intercom/index.js.map +0 -1
  83. package/dist/destinations/pardot/generated-types.d.ts +0 -5
  84. package/dist/destinations/pardot/generated-types.js.map +0 -1
  85. package/dist/destinations/pardot/index.js +0 -62
  86. package/dist/destinations/pardot/index.js.map +0 -1
  87. package/dist/destinations/pardot/pa-operations.d.ts +0 -17
  88. package/dist/destinations/pardot/pa-operations.js +0 -51
  89. package/dist/destinations/pardot/pa-operations.js.map +0 -1
  90. package/dist/destinations/pardot/pa-properties.d.ts +0 -2
  91. package/dist/destinations/pardot/pa-properties.js +0 -13
  92. package/dist/destinations/pardot/pa-properties.js.map +0 -1
  93. package/dist/destinations/pardot/pa-type.d.ts +0 -15
  94. package/dist/destinations/pardot/pa-type.js +0 -3
  95. package/dist/destinations/pardot/pa-type.js.map +0 -1
  96. package/dist/destinations/pardot/prospects/generated-types.d.ts +0 -19
  97. package/dist/destinations/pardot/prospects/generated-types.js.map +0 -1
  98. package/dist/destinations/pardot/prospects/index.js +0 -200
  99. package/dist/destinations/pardot/prospects/index.js.map +0 -1
@@ -0,0 +1,72 @@
1
+ import { ModifiedResponse } from '@segment/actions-core';
2
+ import { RequestClient } from '@segment/actions-core';
3
+ export declare type SupportedMethods = 'get' | 'post';
4
+ export declare type QualtricsApiResponse = {
5
+ result?: Record<string, unknown>;
6
+ meta: {
7
+ httpStatusCode: string;
8
+ requestId: string;
9
+ };
10
+ };
11
+ export declare type QualtricsApiErrorResponse = {
12
+ meta: {
13
+ httpStatusCode: string;
14
+ requestId: string;
15
+ error?: {
16
+ errorMessage: string;
17
+ errorCode: string;
18
+ };
19
+ };
20
+ };
21
+ export declare type WhoAmiResponse = {
22
+ brandId: string;
23
+ userId: string;
24
+ userName: string;
25
+ accountType: string;
26
+ firstName: string;
27
+ lastName: string;
28
+ email: string;
29
+ datacenter: string;
30
+ };
31
+ export declare type Directory = {
32
+ directoryId: string;
33
+ name: string;
34
+ contactCount: number;
35
+ isDefault: boolean;
36
+ deduplicationCriteria: {
37
+ email: boolean;
38
+ firstName: boolean;
39
+ lastName: boolean;
40
+ externalDataReference: boolean;
41
+ phone: boolean;
42
+ };
43
+ };
44
+ export declare type ListDirectoriesResponse = {
45
+ elements: Directory[];
46
+ };
47
+ export declare type CreateDirectoryContactRequest = {
48
+ firstName: string | undefined;
49
+ lastName: string | undefined;
50
+ email: string | undefined;
51
+ phone: string | undefined;
52
+ extRef: string | undefined;
53
+ embeddedData: {
54
+ [k: string]: unknown;
55
+ } | undefined;
56
+ language: string | undefined;
57
+ unsubscribed: boolean | undefined;
58
+ };
59
+ export declare type CreateDirectoryContactResponse = {
60
+ id: string;
61
+ };
62
+ export default class QualtricsApiClient {
63
+ private baseUrl;
64
+ private apiToken;
65
+ private request;
66
+ constructor(dc: string, apiToken: string, request: RequestClient);
67
+ whoaAmI(): Promise<WhoAmiResponse>;
68
+ createDirectoryContact(directoryId: string, body: CreateDirectoryContactRequest): Promise<ModifiedResponse>;
69
+ private makeRequest;
70
+ private buildUrl;
71
+ private buildRequestParams;
72
+ }
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ class QualtricsApiClient {
4
+ constructor(dc, apiToken, request) {
5
+ this.baseUrl = `https://${dc || 'iad1'}.qualtrics.com`;
6
+ this.apiToken = apiToken;
7
+ this.request = request;
8
+ }
9
+ async whoaAmI() {
10
+ const endpoint = `/API/v3/whoami`;
11
+ return (await this.makeRequest(endpoint, 'get')).json()
12
+ .result;
13
+ }
14
+ async createDirectoryContact(directoryId, body) {
15
+ const endpoint = `/API/v3/directories/${directoryId}/contacts`;
16
+ return await this.makeRequest(endpoint, 'post', body);
17
+ }
18
+ async makeRequest(endpoint, method, body) {
19
+ return await this.request(this.buildUrl(endpoint), {
20
+ ...this.buildRequestParams(method),
21
+ json: body
22
+ });
23
+ }
24
+ buildUrl(endpoint) {
25
+ let parsedEndpoint = endpoint;
26
+ if (parsedEndpoint.startsWith('/')) {
27
+ parsedEndpoint = parsedEndpoint.substring(1);
28
+ }
29
+ return `${this.baseUrl}/${parsedEndpoint}`;
30
+ }
31
+ buildRequestParams(method) {
32
+ return {
33
+ method,
34
+ headers: {
35
+ 'Content-type': 'application/json',
36
+ 'X-API-TOKEN': this.apiToken
37
+ }
38
+ };
39
+ }
40
+ }
41
+ exports.default = QualtricsApiClient;
42
+ //# sourceMappingURL=qualtricsApiClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"qualtricsApiClient.js","sourceRoot":"","sources":["../../../src/destinations/qualtrics/qualtricsApiClient.ts"],"names":[],"mappings":";;AAyEA,MAAqB,kBAAkB;IAKrC,YAAY,EAAU,EAAE,QAAgB,EAAE,OAAsB;QAC9D,IAAI,CAAC,OAAO,GAAG,WAAW,EAAE,IAAI,MAAM,gBAAgB,CAAA;QACtD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAEM,KAAK,CAAC,OAAO;QAClB,MAAM,QAAQ,GAAG,gBAAgB,CAAA;QACjC,OAAQ,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,EAAsC;aACzF,MAAwB,CAAA;IAC7B,CAAC;IAEM,KAAK,CAAC,sBAAsB,CACjC,WAAmB,EACnB,IAAmC;QAEnC,MAAM,QAAQ,GAAG,uBAAuB,WAAW,WAAW,CAAA;QAC9D,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;IACvD,CAAC;IAEO,KAAK,CAAC,WAAW,CACvB,QAAgB,EAChB,MAAwB,EACxB,IAAsC;QAEtC,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;YACjD,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC;YAClC,IAAI,EAAE,IAAI;SACX,CAAC,CAAA;IACJ,CAAC;IAEO,QAAQ,CAAC,QAAgB;QAC/B,IAAI,cAAc,GAAG,QAAQ,CAAA;QAC7B,IAAI,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;YAClC,cAAc,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;SAC7C;QACD,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,cAAc,EAAE,CAAA;IAC5C,CAAC;IAEO,kBAAkB,CAAC,MAAwB;QACjD,OAAO;YACL,MAAM;YACN,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,IAAI,CAAC,QAAQ;aAC7B;SACF,CAAA;IACH,CAAC;CACF;AArDD,qCAqDC"}
@@ -0,0 +1,6 @@
1
+ export interface Payload {
2
+ workflowUrl: string;
3
+ eventPayload?: {
4
+ [k: string]: unknown;
5
+ };
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/qualtrics/triggerXflowWorkflow/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,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const action = {
4
+ title: 'Trigger workflow in xflow',
5
+ description: 'This action triggers a workflow in Qualtrics xflow',
6
+ fields: {
7
+ workflowUrl: {
8
+ label: 'Workflow URL',
9
+ type: 'string',
10
+ format: 'uri',
11
+ description: 'Enter the full URL as you see in your Xflow trigger. See more details on setting up an xflow trigger and getting the URL here.',
12
+ required: true
13
+ },
14
+ eventPayload: {
15
+ label: 'Event payload',
16
+ type: 'object',
17
+ description: 'A mapping of key values to send to Qualtrics xflow.',
18
+ defaultObjectUI: 'keyvalue',
19
+ default: {
20
+ event: {
21
+ '@path': '$.event'
22
+ },
23
+ type: {
24
+ '@path': '$.type'
25
+ },
26
+ userId: {
27
+ '@path': '$.userId'
28
+ },
29
+ properties: {
30
+ '@path': '$.properties'
31
+ },
32
+ traits: {
33
+ '@path': '$.traits'
34
+ },
35
+ context: {
36
+ '@path': '$.context'
37
+ }
38
+ }
39
+ }
40
+ },
41
+ perform: (request, data) => {
42
+ return request(data.payload.workflowUrl, {
43
+ method: 'POST',
44
+ json: data.payload.eventPayload,
45
+ headers: {
46
+ 'X-API-TOKEN': data.settings.apiToken,
47
+ 'content-type': 'application/json'
48
+ }
49
+ });
50
+ }
51
+ };
52
+ exports.default = action;
53
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/qualtrics/triggerXflowWorkflow/index.ts"],"names":[],"mappings":";;AAIA,MAAM,MAAM,GAAwC;IAClD,KAAK,EAAE,2BAA2B;IAClC,WAAW,EAAE,oDAAoD;IACjE,MAAM,EAAE;QACN,WAAW,EAAE;YACX,KAAK,EAAE,cAAc;YACrB,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,KAAK;YACb,WAAW,EACT,gIAAgI;YAClI,QAAQ,EAAE,IAAI;SACf;QACD,YAAY,EAAE;YACZ,KAAK,EAAE,eAAe;YACtB,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,qDAAqD;YAClE,eAAe,EAAE,UAAU;YAC3B,OAAO,EAAE;gBACP,KAAK,EAAE;oBACL,OAAO,EAAE,SAAS;iBACnB;gBACD,IAAI,EAAE;oBACJ,OAAO,EAAE,QAAQ;iBAClB;gBACD,MAAM,EAAE;oBACN,OAAO,EAAE,UAAU;iBACpB;gBACD,UAAU,EAAE;oBACV,OAAO,EAAE,cAAc;iBACxB;gBACD,MAAM,EAAE;oBACN,OAAO,EAAE,UAAU;iBACpB;gBACD,OAAO,EAAE;oBACP,OAAO,EAAE,WAAW;iBACrB;aACF;SACF;KACF;IACD,OAAO,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;QACzB,OAAO,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;YACvC,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY;YAC/B,OAAO,EAAE;gBACP,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ;gBACrC,cAAc,EAAE,kBAAkB;aACnC;SACF,CAAC,CAAA;IACJ,CAAC;CACF,CAAA;AAED,kBAAe,MAAM,CAAA"}
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.86.1-alpha.8",
4
+ "version": "3.88.0",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/segmentio/action-destinations",
@@ -38,8 +38,8 @@
38
38
  "dependencies": {
39
39
  "@amplitude/ua-parser-js": "^0.7.25",
40
40
  "@segment/a1-notation": "^2.1.4",
41
- "@segment/actions-core": "^3.30.1-alpha.10",
42
- "@segment/actions-shared": "^1.13.1-alpha.8",
41
+ "@segment/actions-core": "^3.31.0",
42
+ "@segment/actions-shared": "^1.14.0",
43
43
  "cheerio": "^1.0.0-rc.10",
44
44
  "dayjs": "^1.10.7",
45
45
  "escape-goat": "^3",
@@ -65,5 +65,5 @@
65
65
  "lcov"
66
66
  ]
67
67
  },
68
- "gitHead": "e8b5ae5151d021db9cd141cd8bc02840acbb6c0a"
68
+ "gitHead": "e448e71ea2cad26e673e1e699ce95b2ba68d6191"
69
69
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"generated-types.js","sourceRoot":"","sources":["../../../src/destinations/intercom/generated-types.ts"],"names":[],"mappings":""}
@@ -1,14 +0,0 @@
1
- export interface Payload {
2
- remote_created_at?: string | number;
3
- company_id: string;
4
- contact_id?: string;
5
- name?: string;
6
- monthly_spend?: number;
7
- plan?: string;
8
- size?: number;
9
- website?: string;
10
- industry?: string;
11
- custom_attributes?: {
12
- [k: string]: unknown;
13
- };
14
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"generated-types.js","sourceRoot":"","sources":["../../../../src/destinations/intercom/groupIdentifyContact/generated-types.ts"],"names":[],"mappings":""}
@@ -1,122 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const actions_core_1 = require("@segment/actions-core");
4
- const action = {
5
- title: 'Group Identify Contact',
6
- description: "Create or Update A Company. Note: Companies will be only visible in Intercom's Dashboard when there is at least one associated contact.",
7
- defaultSubscription: 'type = "group"',
8
- platform: 'web',
9
- fields: {
10
- remote_created_at: {
11
- type: 'datetime',
12
- description: 'The time the company was created by you.',
13
- label: 'Remote Created At',
14
- default: {
15
- '@path': '$.traits.createdAt'
16
- }
17
- },
18
- company_id: {
19
- type: 'string',
20
- description: "The unique identifier of the company. Can't be updated.",
21
- label: 'Company ID',
22
- required: true,
23
- default: {
24
- '@path': '$.groupId'
25
- }
26
- },
27
- contact_id: {
28
- type: 'string',
29
- description: 'Attach this contact to the company. This ID is NOT the external_id or email; it is the Intercom unique identifier.',
30
- label: 'Contact ID',
31
- default: {
32
- '@path': '$.userId'
33
- }
34
- },
35
- name: {
36
- type: 'string',
37
- description: 'The name of the company.',
38
- label: 'Name',
39
- default: {
40
- '@path': '$.traits.name'
41
- }
42
- },
43
- monthly_spend: {
44
- type: 'number',
45
- description: 'The monthly spend of the company.',
46
- label: 'Monthly Spend',
47
- default: {
48
- '@path': '$.traits.plan'
49
- }
50
- },
51
- plan: {
52
- type: 'string',
53
- description: 'The plan of the company.',
54
- label: 'Plan',
55
- default: {
56
- '@path': '$.traits.plan'
57
- }
58
- },
59
- size: {
60
- type: 'number',
61
- description: 'The size of the company.',
62
- label: 'Size',
63
- default: {
64
- '@path': '$.traits.employees'
65
- }
66
- },
67
- website: {
68
- type: 'string',
69
- description: 'The website of the company.',
70
- label: 'Website',
71
- default: {
72
- '@path': '$.traits.website'
73
- }
74
- },
75
- industry: {
76
- type: 'string',
77
- description: 'The industry of the company.',
78
- label: 'Industry',
79
- default: {
80
- '@path': '$.traits.industry'
81
- }
82
- },
83
- custom_attributes: {
84
- type: 'object',
85
- description: 'Passing any traits not mapped to individual fields as Custom Attributes. Note: Will throw an error if you pass an attribute that isn`t explicitly defined.',
86
- label: 'Custom Attributes'
87
- }
88
- },
89
- perform: async (request, { payload }) => {
90
- const contactId = payload.contact_id;
91
- delete payload.contact_id;
92
- const response = await createOrUpdateIntercomCompany(request, payload);
93
- if (contactId) {
94
- try {
95
- const companyId = response.data.id;
96
- return await attachContactToIntercomCompany(request, contactId, companyId);
97
- }
98
- catch (error) {
99
- if (error?.response?.status === 404) {
100
- throw new actions_core_1.RetryableError(`Contact doesn't exist, retrying`);
101
- }
102
- throw error;
103
- }
104
- }
105
- }
106
- };
107
- function createOrUpdateIntercomCompany(request, payload) {
108
- return request(`https://api.intercom.io/companies`, {
109
- method: 'POST',
110
- json: payload
111
- });
112
- }
113
- function attachContactToIntercomCompany(request, contactId, companyId) {
114
- return request(`https://api.intercom.io/contacts/${contactId}/companies`, {
115
- method: 'POST',
116
- json: {
117
- id: companyId
118
- }
119
- });
120
- }
121
- exports.default = action;
122
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/intercom/groupIdentifyContact/index.ts"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- export interface Payload {
2
- role: string;
3
- external_id?: string;
4
- email?: string;
5
- phone?: string;
6
- name?: string;
7
- avatar?: string;
8
- signed_up_at?: string | number;
9
- last_seen_at?: string | number;
10
- owner_id?: number;
11
- unsubscribed_from_emails?: boolean;
12
- custom_attributes?: {
13
- [k: string]: unknown;
14
- };
15
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"generated-types.js","sourceRoot":"","sources":["../../../../src/destinations/intercom/identifyContact/generated-types.ts"],"names":[],"mappings":""}
@@ -1,153 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const actions_core_1 = require("@segment/actions-core");
4
- const action = {
5
- title: 'Identify Contact',
6
- description: 'Create or Update a Contact.',
7
- defaultSubscription: 'type = "identify"',
8
- platform: 'web',
9
- fields: {
10
- role: {
11
- type: 'string',
12
- required: true,
13
- description: 'The role of the contact. Accepted values are `user` or `lead`. Can only be updated if `lead`.',
14
- label: 'Role',
15
- default: 'lead'
16
- },
17
- external_id: {
18
- type: 'string',
19
- description: 'A unique identifier generated outside Intercom. Required if role=user and email is blank.',
20
- label: 'External ID',
21
- default: {
22
- '@path': '$.userId'
23
- }
24
- },
25
- email: {
26
- type: 'string',
27
- description: "The contact's email. Required if role=user and external_id is blank.",
28
- label: 'Email',
29
- format: 'email',
30
- default: {
31
- '@path': '$.traits.email'
32
- }
33
- },
34
- phone: {
35
- label: 'Phone Number',
36
- description: "The contact's phone number.",
37
- type: 'string',
38
- default: {
39
- '@path': '$.traits.phone'
40
- }
41
- },
42
- name: {
43
- type: 'string',
44
- description: "The contact's name.",
45
- label: 'Name',
46
- default: {
47
- '@path': '$.traits.name'
48
- }
49
- },
50
- avatar: {
51
- label: 'Avatar',
52
- description: 'URL of image to be associated with contact profile.',
53
- type: 'string',
54
- format: 'uri',
55
- default: {
56
- '@path': '$.traits.avatar'
57
- }
58
- },
59
- signed_up_at: {
60
- label: 'Signed Up At',
61
- type: 'datetime',
62
- description: 'The timestamp when the contact was created.',
63
- default: {
64
- '@path': '$.createdAt'
65
- }
66
- },
67
- last_seen_at: {
68
- label: 'Timestamp',
69
- type: 'datetime',
70
- description: 'The timestamp the contact was last seen.',
71
- default: {
72
- '@path': '$.timestamp'
73
- }
74
- },
75
- owner_id: {
76
- label: 'Owner Id',
77
- type: 'number',
78
- description: 'The id of an admin that has been assigned account ownership of the contact.'
79
- },
80
- unsubscribed_from_emails: {
81
- label: 'Unsubscribed From Emails',
82
- type: 'boolean',
83
- description: 'Whether the contact is unsubscribed from emails.'
84
- },
85
- custom_attributes: {
86
- label: 'Custom Attributes',
87
- description: 'The custom attributes which are set for the contact. Note: Will throw an error if the object has an attribute that isn`t explicitly defined on Intercom.',
88
- type: 'object',
89
- default: {
90
- '@path': '$.traits.customAttributes'
91
- }
92
- }
93
- },
94
- perform: async (request, { payload }) => {
95
- try {
96
- const contact = await searchIntercomContact(request, payload);
97
- if (contact) {
98
- return updateIntercomContact(request, contact.id, payload);
99
- }
100
- return await createIntercomContact(request, payload);
101
- }
102
- catch (error) {
103
- if (error?.response?.status === 409) {
104
- throw new actions_core_1.RetryableError('Contact was reported duplicated but could not be searched for, probably due to Intercom search cache not being updated');
105
- }
106
- throw error;
107
- }
108
- }
109
- };
110
- async function createIntercomContact(request, payload) {
111
- return request('https://api.intercom.io/contacts', {
112
- method: 'POST',
113
- json: payload
114
- });
115
- }
116
- async function searchIntercomContact(request, payload) {
117
- const searchFields = {
118
- email: payload.email,
119
- external_id: payload.external_id,
120
- role: payload.role
121
- };
122
- const value = [];
123
- for (const [key, fieldValue] of Object.entries(searchFields)) {
124
- if (fieldValue) {
125
- value.push({
126
- field: key,
127
- operator: '=',
128
- value: fieldValue
129
- });
130
- }
131
- }
132
- const query = {
133
- operator: 'AND',
134
- value
135
- };
136
- const response = await request('https://api.intercom.io/contacts/search', {
137
- method: 'POST',
138
- json: { query }
139
- });
140
- if (response.data.total_count === 1) {
141
- return response.data.data[0];
142
- }
143
- }
144
- async function updateIntercomContact(request, contactId, payload) {
145
- return request(`https://api.intercom.io/contacts/${contactId}`, {
146
- method: 'PUT',
147
- json: {
148
- ...payload
149
- }
150
- });
151
- }
152
- exports.default = action;
153
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/intercom/identifyContact/index.ts"],"names":[],"mappings":"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"}
@@ -1,37 +0,0 @@
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 identifyContact_1 = __importDefault(require("./identifyContact"));
7
- const groupIdentifyContact_1 = __importDefault(require("./groupIdentifyContact"));
8
- const destination = {
9
- name: 'Intercom (Actions)',
10
- slug: 'actions-intercom',
11
- mode: 'cloud',
12
- authentication: {
13
- scheme: 'oauth2',
14
- fields: {},
15
- testAuthentication: (request) => {
16
- return request('https://api.intercom.io/admins');
17
- }
18
- },
19
- extendRequest({ auth }) {
20
- return {
21
- headers: {
22
- authorization: `Bearer ${auth?.accessToken}`
23
- }
24
- };
25
- },
26
- onDelete: async (request, { payload }) => {
27
- return request(`https://api.intercom.io/contacts/${payload.userId}`, {
28
- method: 'DELETE'
29
- });
30
- },
31
- actions: {
32
- identifyContact: identifyContact_1.default,
33
- groupIdentifyContact: groupIdentifyContact_1.default
34
- }
35
- };
36
- exports.default = destination;
37
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destinations/intercom/index.ts"],"names":[],"mappings":";;;;;AAEA,wEAA+C;AAC/C,kFAAyD;AAEzD,MAAM,WAAW,GAAoC;IACnD,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,OAAO;IAEb,cAAc,EAAE;QACd,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE,EAAE;QACV,kBAAkB,EAAE,CAAC,OAAO,EAAE,EAAE;YAG9B,OAAO,OAAO,CAAC,gCAAgC,CAAC,CAAA;QAClD,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;IAED,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QACvC,OAAO,OAAO,CAAC,oCAAoC,OAAO,CAAC,MAAM,EAAE,EAAE;YACnE,MAAM,EAAE,QAAQ;SACjB,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,EAAE;QACP,eAAe,EAAf,yBAAe;QACf,oBAAoB,EAApB,8BAAoB;KACrB;CACF,CAAA;AAED,kBAAe,WAAW,CAAA"}
@@ -1,5 +0,0 @@
1
- export interface Settings {
2
- businessUnitID: string;
3
- accountID: string;
4
- isSandbox: boolean;
5
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"generated-types.js","sourceRoot":"","sources":["../../../src/destinations/pardot/generated-types.ts"],"names":[],"mappings":""}