@activepieces/piece-reachinbox 0.0.1

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 (65) hide show
  1. package/README.md +7 -0
  2. package/package.json +35 -0
  3. package/src/index.d.ts +5 -0
  4. package/src/index.js +86 -0
  5. package/src/index.js.map +1 -0
  6. package/src/lib/actions/add-blocklist.d.ts +5 -0
  7. package/src/lib/actions/add-blocklist.js +74 -0
  8. package/src/lib/actions/add-blocklist.js.map +1 -0
  9. package/src/lib/actions/add-email.d.ts +4 -0
  10. package/src/lib/actions/add-email.js +80 -0
  11. package/src/lib/actions/add-email.js.map +1 -0
  12. package/src/lib/actions/add-leads.d.ts +7 -0
  13. package/src/lib/actions/add-leads.js +114 -0
  14. package/src/lib/actions/add-leads.js.map +1 -0
  15. package/src/lib/actions/enable-warmup.d.ts +3 -0
  16. package/src/lib/actions/enable-warmup.js +80 -0
  17. package/src/lib/actions/enable-warmup.js.map +1 -0
  18. package/src/lib/actions/get-campaign-analytics.d.ts +5 -0
  19. package/src/lib/actions/get-campaign-analytics.js +81 -0
  20. package/src/lib/actions/get-campaign-analytics.js.map +1 -0
  21. package/src/lib/actions/get-summary.d.ts +4 -0
  22. package/src/lib/actions/get-summary.js +64 -0
  23. package/src/lib/actions/get-summary.js.map +1 -0
  24. package/src/lib/actions/pause-campaign.d.ts +3 -0
  25. package/src/lib/actions/pause-campaign.js +75 -0
  26. package/src/lib/actions/pause-campaign.js.map +1 -0
  27. package/src/lib/actions/pause-warmup.d.ts +3 -0
  28. package/src/lib/actions/pause-warmup.js +80 -0
  29. package/src/lib/actions/pause-warmup.js.map +1 -0
  30. package/src/lib/actions/remove-email.d.ts +3 -0
  31. package/src/lib/actions/remove-email.js +77 -0
  32. package/src/lib/actions/remove-email.js.map +1 -0
  33. package/src/lib/actions/set-schedule.d.ts +16 -0
  34. package/src/lib/actions/set-schedule.js +158 -0
  35. package/src/lib/actions/set-schedule.js.map +1 -0
  36. package/src/lib/actions/start-campaign.d.ts +3 -0
  37. package/src/lib/actions/start-campaign.js +67 -0
  38. package/src/lib/actions/start-campaign.js.map +1 -0
  39. package/src/lib/actions/update-lead.d.ts +8 -0
  40. package/src/lib/actions/update-lead.js +144 -0
  41. package/src/lib/actions/update-lead.js.map +1 -0
  42. package/src/lib/common/index.d.ts +49 -0
  43. package/src/lib/common/index.js +48 -0
  44. package/src/lib/common/index.js.map +1 -0
  45. package/src/lib/triggers/campaign-completed.d.ts +8 -0
  46. package/src/lib/triggers/campaign-completed.js +71 -0
  47. package/src/lib/triggers/campaign-completed.js.map +1 -0
  48. package/src/lib/triggers/email-bounced.d.ts +8 -0
  49. package/src/lib/triggers/email-bounced.js +72 -0
  50. package/src/lib/triggers/email-bounced.js.map +1 -0
  51. package/src/lib/triggers/email-opened.d.ts +8 -0
  52. package/src/lib/triggers/email-opened.js +71 -0
  53. package/src/lib/triggers/email-opened.js.map +1 -0
  54. package/src/lib/triggers/email-sent.d.ts +8 -0
  55. package/src/lib/triggers/email-sent.js +74 -0
  56. package/src/lib/triggers/email-sent.js.map +1 -0
  57. package/src/lib/triggers/lead-interested.d.ts +8 -0
  58. package/src/lib/triggers/lead-interested.js +75 -0
  59. package/src/lib/triggers/lead-interested.js.map +1 -0
  60. package/src/lib/triggers/lead-not-interested.d.ts +8 -0
  61. package/src/lib/triggers/lead-not-interested.js +72 -0
  62. package/src/lib/triggers/lead-not-interested.js.map +1 -0
  63. package/src/lib/triggers/reply-received.d.ts +8 -0
  64. package/src/lib/triggers/reply-received.js +72 -0
  65. package/src/lib/triggers/reply-received.js.map +1 -0
package/README.md ADDED
@@ -0,0 +1,7 @@
1
+ # pieces-reachinbox
2
+
3
+ This library was generated with [Nx](https://nx.dev).
4
+
5
+ ## Building
6
+
7
+ Run `nx build pieces-reachinbox` to build the library.
package/package.json ADDED
@@ -0,0 +1,35 @@
1
+ {
2
+ "name": "@activepieces/piece-reachinbox",
3
+ "version": "0.0.1",
4
+ "dependencies": {
5
+ "@anthropic-ai/sdk": "0.27.3",
6
+ "@sinclair/typebox": "0.32.35",
7
+ "axios": "1.7.7",
8
+ "axios-retry": "4.4.1",
9
+ "dayjs": "1.11.9",
10
+ "deepmerge": "4.3.1",
11
+ "mime-types": "2.1.35",
12
+ "nanoid": "3.3.6",
13
+ "openai": "4.67.1",
14
+ "replicate": "0.34.1",
15
+ "semver": "7.6.0",
16
+ "@activepieces/pieces-common": "0.2.25",
17
+ "@activepieces/pieces-framework": "0.7.37",
18
+ "@activepieces/shared": "0.10.120",
19
+ "tslib": "2.6.2"
20
+ },
21
+ "overrides": {
22
+ "@tryfabric/martian": {
23
+ "@notionhq/client": "$@notionhq/client"
24
+ },
25
+ "vite": {
26
+ "rollup": "npm:@rollup/wasm-node"
27
+ }
28
+ },
29
+ "resolutions": {
30
+ "rollup": "npm:@rollup/wasm-node"
31
+ },
32
+ "main": "./src/index.js",
33
+ "type": "commonjs",
34
+ "types": "./src/index.d.ts"
35
+ }
package/src/index.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Define the API Key authentication using PieceAuth.SecretText
3
+ */
4
+ export declare const ReachinboxAuth: import("@activepieces/pieces-framework").SecretTextProperty<true>;
5
+ export declare const reachinbox: import("@activepieces/pieces-framework").Piece<import("@activepieces/pieces-framework").SecretTextProperty<true>>;
package/src/index.js ADDED
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.reachinbox = exports.ReachinboxAuth = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const pieces_framework_1 = require("@activepieces/pieces-framework");
6
+ const add_leads_1 = require("./lib/actions/add-leads");
7
+ const pieces_common_1 = require("@activepieces/pieces-common");
8
+ const campaign_completed_1 = require("./lib/triggers/campaign-completed");
9
+ const email_bounced_1 = require("./lib/triggers/email-bounced");
10
+ const email_opened_1 = require("./lib/triggers/email-opened");
11
+ const email_sent_1 = require("./lib/triggers/email-sent");
12
+ const lead_interested_1 = require("./lib/triggers/lead-interested");
13
+ const lead_not_interested_1 = require("./lib/triggers/lead-not-interested");
14
+ const reply_received_1 = require("./lib/triggers/reply-received");
15
+ const add_blocklist_1 = require("./lib/actions/add-blocklist");
16
+ const add_email_1 = require("./lib/actions/add-email");
17
+ const enable_warmup_1 = require("./lib/actions/enable-warmup");
18
+ const get_campaign_analytics_1 = require("./lib/actions/get-campaign-analytics");
19
+ const get_summary_1 = require("./lib/actions/get-summary");
20
+ const pause_campaign_1 = require("./lib/actions/pause-campaign");
21
+ const pause_warmup_1 = require("./lib/actions/pause-warmup");
22
+ const remove_email_1 = require("./lib/actions/remove-email");
23
+ const set_schedule_1 = require("./lib/actions/set-schedule");
24
+ const start_campaign_1 = require("./lib/actions/start-campaign");
25
+ const update_lead_1 = require("./lib/actions/update-lead");
26
+ const shared_1 = require("@activepieces/shared");
27
+ /**
28
+ * Define the API Key authentication using PieceAuth.SecretText
29
+ */
30
+ exports.ReachinboxAuth = pieces_framework_1.PieceAuth.SecretText({
31
+ displayName: 'API Key',
32
+ description: 'Enter your ReachInbox API key',
33
+ required: true,
34
+ validate: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth }) {
35
+ // Validate the API key format (UUID pattern: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX)
36
+ const uuidRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
37
+ if (uuidRegex.test(auth)) {
38
+ return { valid: true };
39
+ }
40
+ return {
41
+ valid: false,
42
+ error: 'Invalid API Key. It should follow the UUID format (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).',
43
+ };
44
+ }),
45
+ });
46
+ exports.reachinbox = (0, pieces_framework_1.createPiece)({
47
+ displayName: 'Reachinbox',
48
+ auth: exports.ReachinboxAuth,
49
+ minimumSupportedRelease: '0.20.0',
50
+ logoUrl: 'https://cdn.activepieces.com/pieces/reachinbox.png',
51
+ categories: [shared_1.PieceCategory.MARKETING],
52
+ authors: ['support@reachinbox.ai', 'ManojKumard', 'Mitrajit'],
53
+ actions: [
54
+ add_leads_1.addLeads,
55
+ add_blocklist_1.addBlocklist,
56
+ add_email_1.addEmail,
57
+ enable_warmup_1.enableWarmup,
58
+ get_campaign_analytics_1.getCampaignAnalytics,
59
+ get_summary_1.getSummary,
60
+ pause_campaign_1.pauseCampaign,
61
+ pause_warmup_1.pauseWarmup,
62
+ remove_email_1.removeEmail,
63
+ set_schedule_1.setSchedule,
64
+ start_campaign_1.startCampaign,
65
+ update_lead_1.updateLead,
66
+ (0, pieces_common_1.createCustomApiCallAction)({
67
+ baseUrl: () => 'https://api.reachinbox.ai/api/v1/',
68
+ auth: exports.ReachinboxAuth,
69
+ authMapping: (auth) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
70
+ return ({
71
+ Authorization: `Bearer ${auth}`,
72
+ });
73
+ }),
74
+ }),
75
+ ],
76
+ triggers: [
77
+ campaign_completed_1.campaignCompleted,
78
+ email_bounced_1.emailBounced,
79
+ email_opened_1.emailOpened,
80
+ email_sent_1.emailSent,
81
+ lead_interested_1.leadInterested,
82
+ lead_not_interested_1.leadNotInterested,
83
+ reply_received_1.replyReceived,
84
+ ],
85
+ });
86
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/pieces/community/reachinbox/src/index.ts"],"names":[],"mappings":";;;;AAAA,qEAAwE;AACxE,uDAAmD;AACnD,+DAAwE;AACxE,0EAAsE;AACtE,gEAA4D;AAC5D,8DAA0D;AAC1D,0DAAsD;AACtD,oEAAgE;AAChE,4EAAuE;AACvE,kEAA8D;AAC9D,+DAA2D;AAC3D,uDAAmD;AACnD,+DAA2D;AAC3D,iFAA4E;AAC5E,2DAAuD;AACvD,iEAA6D;AAC7D,6DAAyD;AACzD,6DAAyD;AACzD,6DAAyD;AACzD,iEAA6D;AAC7D,2DAAuD;AACvD,iDAAqD;AAErD;;GAEG;AAEU,QAAA,cAAc,GAAG,4BAAS,CAAC,UAAU,CAAC;IACjD,WAAW,EAAE,SAAS;IACtB,WAAW,EAAE,+BAA+B;IAC5C,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,KAAiB,EAAE,oDAAZ,EAAE,IAAI,EAAE;QACvB,mFAAmF;QACnF,MAAM,SAAS,GACb,iEAAiE,CAAC;QACpE,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACzB,CAAC;QACD,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,KAAK,EACH,2FAA2F;SAC9F,CAAC;IACJ,CAAC,CAAA;CACF,CAAC,CAAC;AAEU,QAAA,UAAU,GAAG,IAAA,8BAAW,EAAC;IACpC,WAAW,EAAE,YAAY;IACzB,IAAI,EAAE,sBAAc;IACpB,uBAAuB,EAAE,QAAQ;IACjC,OAAO,EAAE,oDAAoD;IAC7D,UAAU,EAAE,CAAC,sBAAa,CAAC,SAAS,CAAC;IACrC,OAAO,EAAE,CAAC,uBAAuB,EAAE,aAAa,EAAE,UAAU,CAAC;IAC7D,OAAO,EAAE;QACP,oBAAQ;QACR,4BAAY;QACZ,oBAAQ;QACR,4BAAY;QACZ,6CAAoB;QACpB,wBAAU;QACV,8BAAa;QACb,0BAAW;QACX,0BAAW;QACX,0BAAW;QACX,8BAAa;QACb,wBAAU;QACV,IAAA,yCAAyB,EAAC;YACxB,OAAO,EAAE,GAAG,EAAE,CAAC,mCAAmC;YAClD,IAAI,EAAE,sBAAc;YACpB,WAAW,EAAE,CAAO,IAAI,EAAE,EAAE;gBAAC,OAAA,CAAC;oBAC5B,aAAa,EAAE,UAAU,IAAI,EAAE;iBAChC,CAAC,CAAA;cAAA;SACH,CAAC;KACH;IACD,QAAQ,EAAE;QACR,sCAAiB;QACjB,4BAAY;QACZ,0BAAW;QACX,sBAAS;QACT,gCAAc;QACd,uCAAiB;QACjB,8BAAa;KACd;CACF,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare const addBlocklist: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").SecretTextProperty<true>, {
2
+ emails: import("@activepieces/pieces-framework").ArrayProperty<false>;
3
+ domains: import("@activepieces/pieces-framework").ArrayProperty<false>;
4
+ keywords: import("@activepieces/pieces-framework").ArrayProperty<false>;
5
+ }>;
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.addBlocklist = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const pieces_framework_1 = require("@activepieces/pieces-framework");
6
+ const pieces_common_1 = require("@activepieces/pieces-common");
7
+ const __1 = require("../.."); // Ensure proper authentication setup
8
+ const common_1 = require("../common");
9
+ exports.addBlocklist = (0, pieces_framework_1.createAction)({
10
+ auth: __1.ReachinboxAuth,
11
+ name: 'addBlocklist',
12
+ displayName: 'Add Blocklist',
13
+ description: 'Add email addresses, domains, and keywords to the blocklist.',
14
+ props: {
15
+ emails: pieces_framework_1.Property.Array({
16
+ displayName: 'Email Addresses',
17
+ description: 'Enter the email addresses to block (e.g., ["abc@gmail.com"])',
18
+ required: false,
19
+ }),
20
+ domains: pieces_framework_1.Property.Array({
21
+ displayName: 'Domains',
22
+ description: 'Enter the domains to block (e.g., ["example.com"])',
23
+ required: false,
24
+ }),
25
+ keywords: pieces_framework_1.Property.Array({
26
+ displayName: 'Keywords',
27
+ description: 'Enter keywords to block (e.g., ["spam", "blacklist"])',
28
+ required: false,
29
+ }),
30
+ },
31
+ run(context) {
32
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
33
+ const { emails, domains, keywords } = context.propsValue;
34
+ // Ensure at least one of emails, domains, or keywords is provided
35
+ if (!(emails === null || emails === void 0 ? void 0 : emails.length) && !(domains === null || domains === void 0 ? void 0 : domains.length) && !(keywords === null || keywords === void 0 ? void 0 : keywords.length)) {
36
+ throw new Error('Please provide at least one email, domain, or keyword to block.');
37
+ }
38
+ const body = {
39
+ emails: emails || [],
40
+ domains: domains || [],
41
+ keywords: keywords || [],
42
+ };
43
+ try {
44
+ const response = yield pieces_common_1.httpClient.sendRequest({
45
+ method: pieces_common_1.HttpMethod.POST,
46
+ url: `${common_1.reachinboxCommon.baseUrl}blocklist/add`,
47
+ headers: {
48
+ Authorization: `Bearer ${context.auth}`,
49
+ 'Content-Type': 'application/json',
50
+ },
51
+ body,
52
+ });
53
+ if (response.status === 200) {
54
+ return {
55
+ success: true,
56
+ message: response.body.message || 'Blocklist updated successfully.',
57
+ };
58
+ }
59
+ else {
60
+ throw new Error(`Failed to update blocklist: ${response.body.message}`);
61
+ }
62
+ }
63
+ catch (error) {
64
+ if (error instanceof Error) {
65
+ throw new Error(`Error updating blocklist: ${error.message}`);
66
+ }
67
+ else {
68
+ throw new Error('Unknown error occurred while updating the blocklist.');
69
+ }
70
+ }
71
+ });
72
+ },
73
+ });
74
+ //# sourceMappingURL=add-blocklist.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add-blocklist.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/reachinbox/src/lib/actions/add-blocklist.ts"],"names":[],"mappings":";;;;AAAA,qEAAwE;AACxE,+DAAqE;AACrE,6BAAuC,CAAC,qCAAqC;AAC7E,sCAA6C;AAEhC,QAAA,YAAY,GAAG,IAAA,+BAAY,EAAC;IACvC,IAAI,EAAE,kBAAc;IACpB,IAAI,EAAE,cAAc;IACpB,WAAW,EAAE,eAAe;IAC5B,WAAW,EAAE,8DAA8D;IAC3E,KAAK,EAAE;QACL,MAAM,EAAE,2BAAQ,CAAC,KAAK,CAAC;YACrB,WAAW,EAAE,iBAAiB;YAC9B,WAAW,EACT,8DAA8D;YAChE,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,OAAO,EAAE,2BAAQ,CAAC,KAAK,CAAC;YACtB,WAAW,EAAE,SAAS;YACtB,WAAW,EAAE,oDAAoD;YACjE,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,QAAQ,EAAE,2BAAQ,CAAC,KAAK,CAAC;YACvB,WAAW,EAAE,UAAU;YACvB,WAAW,EAAE,uDAAuD;YACpE,QAAQ,EAAE,KAAK;SAChB,CAAC;KACH;IACK,GAAG,CAAC,OAAO;;YACf,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC;YAEzD,kEAAkE;YAClE,IAAI,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,CAAA,IAAI,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,CAAA,IAAI,CAAC,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,CAAA,EAAE,CAAC;gBAC7D,MAAM,IAAI,KAAK,CACb,iEAAiE,CAClE,CAAC;YACJ,CAAC;YAED,MAAM,IAAI,GAAG;gBACX,MAAM,EAAE,MAAM,IAAI,EAAE;gBACpB,OAAO,EAAE,OAAO,IAAI,EAAE;gBACtB,QAAQ,EAAE,QAAQ,IAAI,EAAE;aACzB,CAAC;YAEF,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,0BAAU,CAAC,WAAW,CAAC;oBAC5C,MAAM,EAAE,0BAAU,CAAC,IAAI;oBACvB,GAAG,EAAE,GAAG,yBAAgB,CAAC,OAAO,eAAe;oBAC/C,OAAO,EAAE;wBACP,aAAa,EAAE,UAAU,OAAO,CAAC,IAAI,EAAE;wBACvC,cAAc,EAAE,kBAAkB;qBACnC;oBACD,IAAI;iBACL,CAAC,CAAC;gBAEH,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;oBAC5B,OAAO;wBACL,OAAO,EAAE,IAAI;wBACb,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,IAAI,iCAAiC;qBACpE,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,KAAK,CAAC,+BAA+B,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC1E,CAAC;YACH,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACxB,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;oBAC3B,MAAM,IAAI,KAAK,CAAC,6BAA6B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;gBAChE,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;gBAC1E,CAAC;YACH,CAAC;QACH,CAAC;KAAA;CACF,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare const addEmail: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").SecretTextProperty<true>, {
2
+ campaignId: import("@activepieces/pieces-framework").DropdownProperty<number, true>;
3
+ email: import("@activepieces/pieces-framework").ShortTextProperty<true>;
4
+ }>;
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.addEmail = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const pieces_framework_1 = require("@activepieces/pieces-framework");
6
+ const index_1 = require("../common/index");
7
+ const __1 = require("../..");
8
+ const pieces_common_1 = require("@activepieces/pieces-common");
9
+ exports.addEmail = (0, pieces_framework_1.createAction)({
10
+ auth: __1.ReachinboxAuth,
11
+ name: 'addEmail',
12
+ displayName: 'Add Email',
13
+ description: 'Add an email to a specific account.',
14
+ props: {
15
+ campaignId: pieces_framework_1.Property.Dropdown({
16
+ displayName: 'Select Campaign',
17
+ description: 'Choose a campaign from the list or enter the campaign ID manually.',
18
+ required: true,
19
+ refreshers: ['auth'],
20
+ options: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth }) {
21
+ const campaigns = yield (0, index_1.fetchCampaigns)(auth);
22
+ return {
23
+ options: campaigns.map((campaign) => ({
24
+ label: campaign.name,
25
+ value: campaign.id,
26
+ })),
27
+ disabled: campaigns.length === 0,
28
+ };
29
+ }),
30
+ }),
31
+ email: pieces_framework_1.Property.ShortText({
32
+ displayName: 'Email',
33
+ description: 'Enter the email address to add to the campaign.',
34
+ required: true,
35
+ }),
36
+ },
37
+ run(context) {
38
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
39
+ const { campaignId, email } = context.propsValue;
40
+ if (!campaignId || !email) {
41
+ throw new Error('Campaign ID and Email are required.');
42
+ }
43
+ const url = `${index_1.reachinboxCommon.baseUrl}campaigns/add-email`;
44
+ try {
45
+ const response = yield pieces_common_1.httpClient.sendRequest({
46
+ method: pieces_common_1.HttpMethod.POST,
47
+ url: url,
48
+ headers: {
49
+ Authorization: `Bearer ${context.auth}`,
50
+ 'Content-Type': 'application/json',
51
+ },
52
+ body: {
53
+ campaignId: campaignId,
54
+ email: email,
55
+ },
56
+ });
57
+ if (response.status === 200) {
58
+ return {
59
+ success: true,
60
+ message: response.body.message || 'Email added successfully.',
61
+ };
62
+ }
63
+ else if (response.status === 404) {
64
+ return {
65
+ success: false,
66
+ message: response.body.message ||
67
+ 'Campaign not found or no emails were added to the campaign.',
68
+ };
69
+ }
70
+ else {
71
+ throw new Error(`Failed to add email: ${response.body.message}`);
72
+ }
73
+ }
74
+ catch (error) {
75
+ throw new Error(`Failed to add email: ${error.message}`);
76
+ }
77
+ });
78
+ },
79
+ });
80
+ //# sourceMappingURL=add-email.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add-email.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/reachinbox/src/lib/actions/add-email.ts"],"names":[],"mappings":";;;;AAAA,qEAAwE;AACxE,2CAAmE;AACnE,6BAAuC;AACvC,+DAAqE;AAExD,QAAA,QAAQ,GAAG,IAAA,+BAAY,EAAC;IACnC,IAAI,EAAE,kBAAc;IACpB,IAAI,EAAE,UAAU;IAChB,WAAW,EAAE,WAAW;IACxB,WAAW,EAAE,qCAAqC;IAClD,KAAK,EAAE;QACL,UAAU,EAAE,2BAAQ,CAAC,QAAQ,CAAC;YAC5B,WAAW,EAAE,iBAAiB;YAC9B,WAAW,EACT,oEAAoE;YACtE,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,CAAC,MAAM,CAAC;YACpB,OAAO,EAAE,KAAiB,EAAE,oDAAZ,EAAE,IAAI,EAAE;gBACtB,MAAM,SAAS,GAAG,MAAM,IAAA,sBAAc,EAAC,IAAc,CAAC,CAAC;gBAEvD,OAAO;oBACL,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;wBACpC,KAAK,EAAE,QAAQ,CAAC,IAAI;wBACpB,KAAK,EAAE,QAAQ,CAAC,EAAE;qBACnB,CAAC,CAAC;oBACH,QAAQ,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC;iBACjC,CAAC;YACJ,CAAC,CAAA;SACF,CAAC;QACF,KAAK,EAAE,2BAAQ,CAAC,SAAS,CAAC;YACxB,WAAW,EAAE,OAAO;YACpB,WAAW,EAAE,iDAAiD;YAC9D,QAAQ,EAAE,IAAI;SACf,CAAC;KACH;IACK,GAAG,CAAC,OAAO;;YACf,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC;YAEjD,IAAI,CAAC,UAAU,IAAI,CAAC,KAAK,EAAE,CAAC;gBAC1B,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;YACzD,CAAC;YAED,MAAM,GAAG,GAAG,GAAG,wBAAgB,CAAC,OAAO,qBAAqB,CAAC;YAE7D,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,0BAAU,CAAC,WAAW,CAAC;oBAC5C,MAAM,EAAE,0BAAU,CAAC,IAAI;oBACvB,GAAG,EAAE,GAAG;oBACR,OAAO,EAAE;wBACP,aAAa,EAAE,UAAU,OAAO,CAAC,IAAc,EAAE;wBACjD,cAAc,EAAE,kBAAkB;qBACnC;oBACD,IAAI,EAAE;wBACJ,UAAU,EAAE,UAAU;wBACtB,KAAK,EAAE,KAAK;qBACb;iBACF,CAAC,CAAC;gBAEH,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;oBAC5B,OAAO;wBACL,OAAO,EAAE,IAAI;wBACb,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,IAAI,2BAA2B;qBAC9D,CAAC;gBACJ,CAAC;qBAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;oBACnC,OAAO;wBACL,OAAO,EAAE,KAAK;wBACd,OAAO,EACL,QAAQ,CAAC,IAAI,CAAC,OAAO;4BACrB,6DAA6D;qBAChE,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,KAAK,CAAC,wBAAwB,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;gBACnE,CAAC;YACH,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CAAC,wBAAwB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;KAAA;CACF,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ export declare const addLeads: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").SecretTextProperty<true>, {
2
+ campaignId: import("@activepieces/pieces-framework").DropdownProperty<string, true>;
3
+ email: import("@activepieces/pieces-framework").ShortTextProperty<true>;
4
+ firstName: import("@activepieces/pieces-framework").ShortTextProperty<true>;
5
+ lastName: import("@activepieces/pieces-framework").ShortTextProperty<false>;
6
+ customVariables: import("@activepieces/pieces-framework").ArrayProperty<true> | import("@activepieces/pieces-framework").ArrayProperty<false>;
7
+ }>;
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.addLeads = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const pieces_framework_1 = require("@activepieces/pieces-framework");
6
+ const index_1 = require("../common/index");
7
+ const __1 = require("../..");
8
+ const pieces_common_1 = require("@activepieces/pieces-common");
9
+ exports.addLeads = (0, pieces_framework_1.createAction)({
10
+ auth: __1.ReachinboxAuth,
11
+ name: 'addLeads',
12
+ displayName: 'Add Leads',
13
+ description: 'Add leads to campaigns dynamically by selecting a campaign, entering lead details, and including custom variables.',
14
+ props: {
15
+ campaignId: pieces_framework_1.Property.Dropdown({
16
+ displayName: 'Select Campaign',
17
+ description: 'Choose a campaign from the list.',
18
+ required: true,
19
+ refreshers: ['auth'],
20
+ options: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth }) {
21
+ const campaigns = yield (0, index_1.fetchCampaigns)(auth);
22
+ return {
23
+ options: campaigns.map((campaign) => ({
24
+ label: campaign.name,
25
+ value: campaign.id.toString(),
26
+ })),
27
+ disabled: campaigns.length === 0,
28
+ };
29
+ }),
30
+ }),
31
+ email: pieces_framework_1.Property.ShortText({
32
+ displayName: 'Email Address',
33
+ description: 'Enter the email address for the lead',
34
+ required: true,
35
+ }),
36
+ firstName: pieces_framework_1.Property.ShortText({
37
+ displayName: 'First Name',
38
+ description: 'Enter the first name for the lead',
39
+ required: true,
40
+ }),
41
+ lastName: pieces_framework_1.Property.ShortText({
42
+ displayName: 'Last Name',
43
+ description: 'Enter the last name for the lead',
44
+ required: false,
45
+ }),
46
+ customVariables: pieces_framework_1.Property.Array({
47
+ displayName: 'Custom Variables',
48
+ description: 'Add custom variables as key-value pairs for the lead.',
49
+ properties: {
50
+ key: pieces_framework_1.Property.ShortText({
51
+ displayName: 'Key',
52
+ description: 'Enter the key for the custom variable',
53
+ required: true,
54
+ }),
55
+ value: pieces_framework_1.Property.ShortText({
56
+ displayName: 'Value',
57
+ description: 'Enter the value for the custom variable',
58
+ required: true,
59
+ }),
60
+ },
61
+ required: false,
62
+ defaultValue: [],
63
+ }),
64
+ },
65
+ run(context) {
66
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
67
+ const { campaignId, email, firstName, lastName } = context.propsValue;
68
+ // Safely cast customVariables to CustomVariable[], default to an empty array if undefined
69
+ const customVariables = (context.propsValue
70
+ .customVariables || []);
71
+ // Process the custom variables into a key-value object for each lead
72
+ const customVariablesObject = {};
73
+ customVariables.forEach((variable) => {
74
+ customVariablesObject[variable.key] = variable.value;
75
+ });
76
+ // Include the custom variables in the lead data
77
+ const body = {
78
+ campaignId,
79
+ leads: [Object.assign({ email, firstName, lastName }, customVariablesObject)],
80
+ newCoreVariables: [
81
+ 'firstName',
82
+ ...customVariables.map((varObj) => varObj.key),
83
+ ],
84
+ duplicates: [],
85
+ };
86
+ try {
87
+ const response = yield pieces_common_1.httpClient.sendRequest({
88
+ method: pieces_common_1.HttpMethod.POST,
89
+ url: `${index_1.reachinboxCommon.baseUrl}leads/add`,
90
+ headers: {
91
+ Authorization: `Bearer ${context.auth}`,
92
+ 'Content-Type': 'application/json',
93
+ },
94
+ body,
95
+ });
96
+ if (response.status === 200) {
97
+ return {
98
+ success: true,
99
+ message: response.body.message || 'Leads added successfully.',
100
+ leadCount: response.body.leadCount,
101
+ };
102
+ }
103
+ else {
104
+ throw new Error(`Failed to add leads: ${response.body.message}`);
105
+ }
106
+ }
107
+ catch (error) {
108
+ console.error('Error adding leads:', error);
109
+ throw new Error('Failed to add leads to the campaign.');
110
+ }
111
+ });
112
+ },
113
+ });
114
+ //# sourceMappingURL=add-leads.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add-leads.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/reachinbox/src/lib/actions/add-leads.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare const enableWarmup: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").SecretTextProperty<true>, {
2
+ accountId: import("@activepieces/pieces-framework").DropdownProperty<string, true>;
3
+ }>;
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.enableWarmup = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const pieces_framework_1 = require("@activepieces/pieces-framework");
6
+ const pieces_common_1 = require("@activepieces/pieces-common");
7
+ const __1 = require("../..");
8
+ const common_1 = require("../common");
9
+ exports.enableWarmup = (0, pieces_framework_1.createAction)({
10
+ auth: __1.ReachinboxAuth,
11
+ name: 'enableWarmup',
12
+ displayName: 'Enable Warmup',
13
+ description: 'Enable warmup for specific email accounts where it is currently disabled.',
14
+ props: {
15
+ accountId: pieces_framework_1.Property.Dropdown({
16
+ displayName: 'Select Email Accounts to Enable Warmup',
17
+ description: 'Choose email accounts that have warmup disabled.',
18
+ required: true,
19
+ refreshers: ['auth'],
20
+ options: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth }) {
21
+ var _b, _c;
22
+ try {
23
+ // Fetch email accounts
24
+ const response = yield pieces_common_1.httpClient.sendRequest({
25
+ method: pieces_common_1.HttpMethod.GET,
26
+ url: `${common_1.reachinboxCommon.baseUrl}account/all`,
27
+ headers: {
28
+ Authorization: `Bearer ${auth}`,
29
+ },
30
+ });
31
+ const accounts = ((_c = (_b = response.body) === null || _b === void 0 ? void 0 : _b.data) === null || _c === void 0 ? void 0 : _c.emailsConnected) || [];
32
+ // Filter accounts where warmup is not enabled and isDisconnected is false
33
+ const accountsToEnableWarmup = accounts.filter((account) => !account.warmupEnabled && !account.isDisconnected);
34
+ // Map the filtered accounts to dropdown options
35
+ const options = accountsToEnableWarmup.map((account) => ({
36
+ label: `${account.email} (ID: ${account.id})`,
37
+ value: account.id.toString(),
38
+ }));
39
+ return {
40
+ options,
41
+ disabled: options.length === 0,
42
+ };
43
+ }
44
+ catch (error) {
45
+ console.error('Error fetching email accounts:', error);
46
+ return { options: [], disabled: true };
47
+ }
48
+ }),
49
+ }),
50
+ },
51
+ run(context) {
52
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
53
+ const { accountId } = context.propsValue;
54
+ // Prepare the body for enabling warmup
55
+ const body = {
56
+ ids: [accountId],
57
+ };
58
+ try {
59
+ const response = yield pieces_common_1.httpClient.sendRequest({
60
+ method: pieces_common_1.HttpMethod.POST,
61
+ url: `${common_1.reachinboxCommon.baseUrl}account/warmup/enable`,
62
+ headers: {
63
+ Authorization: `Bearer ${context.auth}`,
64
+ 'Content-Type': 'application/json',
65
+ },
66
+ body,
67
+ });
68
+ return {
69
+ success: true,
70
+ message: `Warmup enabled for account ID: ${accountId}`,
71
+ };
72
+ }
73
+ catch (error) {
74
+ console.error('Error enabling warmup:', error);
75
+ throw new Error(`Failed to enable warmup for account ID: ${accountId}`);
76
+ }
77
+ });
78
+ },
79
+ });
80
+ //# sourceMappingURL=enable-warmup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enable-warmup.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/reachinbox/src/lib/actions/enable-warmup.ts"],"names":[],"mappings":";;;;AAAA,qEAAwE;AACxE,+DAAqE;AACrE,6BAAuC;AACvC,sCAA6C;AAUhC,QAAA,YAAY,GAAG,IAAA,+BAAY,EAAC;IACvC,IAAI,EAAE,kBAAc;IACpB,IAAI,EAAE,cAAc;IACpB,WAAW,EAAE,eAAe;IAC5B,WAAW,EACT,2EAA2E;IAC7E,KAAK,EAAE;QACL,SAAS,EAAE,2BAAQ,CAAC,QAAQ,CAAC;YAC3B,WAAW,EAAE,wCAAwC;YACrD,WAAW,EAAE,kDAAkD;YAC/D,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,CAAC,MAAM,CAAC;YACpB,OAAO,EAAE,KAAiB,EAAE,oDAAZ,EAAE,IAAI,EAAE;;gBACtB,IAAI,CAAC;oBACH,uBAAuB;oBACvB,MAAM,QAAQ,GAAG,MAAM,0BAAU,CAAC,WAAW,CAAC;wBAC5C,MAAM,EAAE,0BAAU,CAAC,GAAG;wBACtB,GAAG,EAAE,GAAG,yBAAgB,CAAC,OAAO,aAAa;wBAC7C,OAAO,EAAE;4BACP,aAAa,EAAE,UAAU,IAAI,EAAE;yBAChC;qBACF,CAAC,CAAC;oBAEH,MAAM,QAAQ,GACZ,CAAA,MAAA,MAAA,QAAQ,CAAC,IAAI,0CAAE,IAAI,0CAAE,eAAe,KAAI,EAAE,CAAC;oBAE7C,0EAA0E;oBAC1E,MAAM,sBAAsB,GAAG,QAAQ,CAAC,MAAM,CAC5C,CAAC,OAAqB,EAAE,EAAE,CACxB,CAAC,OAAO,CAAC,aAAa,IAAI,CAAC,OAAO,CAAC,cAAc,CACpD,CAAC;oBAEF,gDAAgD;oBAChD,MAAM,OAAO,GAAG,sBAAsB,CAAC,GAAG,CACxC,CAAC,OAAqB,EAAE,EAAE,CAAC,CAAC;wBAC1B,KAAK,EAAE,GAAG,OAAO,CAAC,KAAK,SAAS,OAAO,CAAC,EAAE,GAAG;wBAC7C,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE;qBAC7B,CAAC,CACH,CAAC;oBAEF,OAAO;wBACL,OAAO;wBACP,QAAQ,EAAE,OAAO,CAAC,MAAM,KAAK,CAAC;qBAC/B,CAAC;gBACJ,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;oBACvD,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;gBACzC,CAAC;YACH,CAAC,CAAA;SACF,CAAC;KACH;IACK,GAAG,CAAC,OAAO;;YACf,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC;YAEzC,uCAAuC;YACvC,MAAM,IAAI,GAAG;gBACX,GAAG,EAAE,CAAC,SAAS,CAAC;aACjB,CAAC;YAEF,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,0BAAU,CAAC,WAAW,CAAC;oBAC5C,MAAM,EAAE,0BAAU,CAAC,IAAI;oBACvB,GAAG,EAAE,GAAG,yBAAgB,CAAC,OAAO,uBAAuB;oBACvD,OAAO,EAAE;wBACP,aAAa,EAAE,UAAU,OAAO,CAAC,IAAI,EAAE;wBACvC,cAAc,EAAE,kBAAkB;qBACnC;oBACD,IAAI;iBACL,CAAC,CAAC;gBAEH,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,kCAAkC,SAAS,EAAE;iBACvD,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;gBAC/C,MAAM,IAAI,KAAK,CAAC,2CAA2C,SAAS,EAAE,CAAC,CAAC;YAC1E,CAAC;QACH,CAAC;KAAA;CACF,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare const getCampaignAnalytics: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").SecretTextProperty<true>, {
2
+ campaignId: import("@activepieces/pieces-framework").DropdownProperty<string, true>;
3
+ startDate: import("@activepieces/pieces-framework").ShortTextProperty<true>;
4
+ endDate: import("@activepieces/pieces-framework").ShortTextProperty<true>;
5
+ }>;
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getCampaignAnalytics = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const pieces_framework_1 = require("@activepieces/pieces-framework");
6
+ const index_1 = require("../common/index");
7
+ const __1 = require("../..");
8
+ const pieces_common_1 = require("@activepieces/pieces-common");
9
+ exports.getCampaignAnalytics = (0, pieces_framework_1.createAction)({
10
+ auth: __1.ReachinboxAuth,
11
+ name: 'getCampaignAnalytics',
12
+ displayName: 'Get Campaign Analytics',
13
+ description: 'Fetch analytics data for a selected campaign based on a date range.',
14
+ props: {
15
+ campaignId: pieces_framework_1.Property.Dropdown({
16
+ displayName: 'Select Campaign',
17
+ description: 'Choose a campaign from the list or enter the campaign ID manually.',
18
+ required: true,
19
+ refreshers: ['auth'],
20
+ options: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth }) {
21
+ const campaigns = yield (0, index_1.fetchCampaigns)(auth);
22
+ return {
23
+ options: campaigns.map((campaign) => ({
24
+ label: campaign.name,
25
+ value: campaign.id.toString(),
26
+ })),
27
+ disabled: campaigns.length === 0,
28
+ };
29
+ }),
30
+ }),
31
+ startDate: pieces_framework_1.Property.ShortText({
32
+ displayName: 'Start Date',
33
+ description: 'Enter the start date (YYYY-MM-DD). E.g. 2023-10-11',
34
+ required: true, // Made mandatory again
35
+ }),
36
+ endDate: pieces_framework_1.Property.ShortText({
37
+ displayName: 'End Date',
38
+ description: 'Enter the end date (YYYY-MM-DD). E.g. 2023-10-20',
39
+ required: true, // Made mandatory again
40
+ }),
41
+ },
42
+ run(context) {
43
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
44
+ var _a;
45
+ const { campaignId, startDate, endDate } = context.propsValue;
46
+ // Validate date format if needed
47
+ const url = `${index_1.reachinboxCommon.baseUrl}campaign/analytics?campaignId=${campaignId}&startDate=${startDate}&endDate=${endDate}`;
48
+ try {
49
+ const response = yield pieces_common_1.httpClient.sendRequest({
50
+ method: pieces_common_1.HttpMethod.GET,
51
+ url: url,
52
+ headers: {
53
+ Authorization: `Bearer ${context.auth}`,
54
+ },
55
+ });
56
+ if (response.body.status === 200) {
57
+ return {
58
+ success: true,
59
+ message: response.body.message,
60
+ data: response.body.data,
61
+ };
62
+ }
63
+ else {
64
+ throw new Error(`Failed to fetch analytics: ${response.body.message}`);
65
+ }
66
+ }
67
+ catch (error) {
68
+ if (((_a = error.response) === null || _a === void 0 ? void 0 : _a.status) === 404) {
69
+ return {
70
+ success: false,
71
+ message: 'Campaign not found or analytics data unavailable for the provided date range.',
72
+ };
73
+ }
74
+ else {
75
+ throw new Error(`Failed to fetch analytics: ${error.message}`);
76
+ }
77
+ }
78
+ });
79
+ },
80
+ });
81
+ //# sourceMappingURL=get-campaign-analytics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-campaign-analytics.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/reachinbox/src/lib/actions/get-campaign-analytics.ts"],"names":[],"mappings":";;;;AAAA,qEAAwE;AACxE,2CAAmE;AACnE,6BAAuC;AACvC,+DAAqE;AAoDxD,QAAA,oBAAoB,GAAG,IAAA,+BAAY,EAAC;IAC/C,IAAI,EAAE,kBAAc;IACpB,IAAI,EAAE,sBAAsB;IAC5B,WAAW,EAAE,wBAAwB;IACrC,WAAW,EACT,qEAAqE;IACvE,KAAK,EAAE;QACL,UAAU,EAAE,2BAAQ,CAAC,QAAQ,CAAC;YAC5B,WAAW,EAAE,iBAAiB;YAC9B,WAAW,EACT,oEAAoE;YACtE,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,CAAC,MAAM,CAAC;YACpB,OAAO,EAAE,KAAiB,EAAE,oDAAZ,EAAE,IAAI,EAAE;gBACtB,MAAM,SAAS,GAAG,MAAM,IAAA,sBAAc,EAAC,IAAc,CAAC,CAAC;gBAEvD,OAAO;oBACL,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;wBACpC,KAAK,EAAE,QAAQ,CAAC,IAAI;wBACpB,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE;qBAC9B,CAAC,CAAC;oBACH,QAAQ,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC;iBACjC,CAAC;YACJ,CAAC,CAAA;SACF,CAAC;QACF,SAAS,EAAE,2BAAQ,CAAC,SAAS,CAAC;YAC5B,WAAW,EAAE,YAAY;YACzB,WAAW,EAAE,oDAAoD;YACjE,QAAQ,EAAE,IAAI,EAAE,uBAAuB;SACxC,CAAC;QACF,OAAO,EAAE,2BAAQ,CAAC,SAAS,CAAC;YAC1B,WAAW,EAAE,UAAU;YACvB,WAAW,EAAE,kDAAkD;YAC/D,QAAQ,EAAE,IAAI,EAAE,uBAAuB;SACxC,CAAC;KACH;IACK,GAAG,CAAC,OAAO;;;YACf,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC;YAE9D,iCAAiC;YAEjC,MAAM,GAAG,GAAG,GAAG,wBAAgB,CAAC,OAAO,iCAAiC,UAAU,cAAc,SAAS,YAAY,OAAO,EAAE,CAAC;YAE/H,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,0BAAU,CAAC,WAAW,CAA4B;oBACvE,MAAM,EAAE,0BAAU,CAAC,GAAG;oBACtB,GAAG,EAAE,GAAG;oBACR,OAAO,EAAE;wBACP,aAAa,EAAE,UAAU,OAAO,CAAC,IAAc,EAAE;qBAClD;iBACF,CAAC,CAAC;gBAEH,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;oBACjC,OAAO;wBACL,OAAO,EAAE,IAAI;wBACb,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO;wBAC9B,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI;qBACzB,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,KAAK,CAAC,8BAA8B,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;gBACzE,CAAC;YACH,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACpB,IAAI,CAAA,MAAA,KAAK,CAAC,QAAQ,0CAAE,MAAM,MAAK,GAAG,EAAE,CAAC;oBACnC,OAAO;wBACL,OAAO,EAAE,KAAK;wBACd,OAAO,EACL,+EAA+E;qBAClF,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,KAAK,CAAC,8BAA8B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;gBACjE,CAAC;YACH,CAAC;QACH,CAAC;KAAA;CACF,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare const getSummary: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").SecretTextProperty<true>, {
2
+ startDate: import("@activepieces/pieces-framework").ShortTextProperty<true>;
3
+ endDate: import("@activepieces/pieces-framework").ShortTextProperty<true>;
4
+ }>;