@automate.ax/catalog 0.145.2 → 0.146.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.
package/dist/catalog.d.ts CHANGED
@@ -632,6 +632,35 @@ export declare const hubspotService: {
632
632
  readonly name: "HubSpot";
633
633
  readonly preferredConnectionMethodId: "oauth";
634
634
  };
635
+ export declare const highLevelService: {
636
+ readonly connectionMethods: readonly [{
637
+ readonly id: "oauth";
638
+ readonly name: "OAuth";
639
+ readonly type: "redirect";
640
+ }, {
641
+ readonly credentialUrl: "https://marketplace.gohighlevel.com/docs/Authorization/PrivateIntegrationsToken/index.html";
642
+ readonly fields: readonly [{
643
+ readonly input: "password";
644
+ readonly label: "Private Integration Token";
645
+ readonly name: "accessToken";
646
+ readonly placeholder: "Paste the sub-account token";
647
+ readonly required: true;
648
+ }, {
649
+ readonly input: "text";
650
+ readonly label: "Location ID";
651
+ readonly name: "locationId";
652
+ readonly placeholder: "HighLevel sub-account location ID";
653
+ readonly required: true;
654
+ }];
655
+ readonly id: "private-integration-token";
656
+ readonly name: "Private Integration Token";
657
+ readonly type: "form";
658
+ }];
659
+ readonly description: "Connect a HighLevel sub-account with OAuth or a Private Integration Token.";
660
+ readonly id: "highlevel";
661
+ readonly name: "HighLevel";
662
+ readonly preferredConnectionMethodId: "oauth";
663
+ };
635
664
  export declare const linearService: {
636
665
  readonly connectionMethods: readonly [{
637
666
  readonly id: "oauth";
@@ -1744,6 +1773,34 @@ export declare const integrationCatalog: readonly [{
1744
1773
  readonly id: "hubspot";
1745
1774
  readonly name: "HubSpot";
1746
1775
  readonly preferredConnectionMethodId: "oauth";
1776
+ }, {
1777
+ readonly connectionMethods: readonly [{
1778
+ readonly id: "oauth";
1779
+ readonly name: "OAuth";
1780
+ readonly type: "redirect";
1781
+ }, {
1782
+ readonly credentialUrl: "https://marketplace.gohighlevel.com/docs/Authorization/PrivateIntegrationsToken/index.html";
1783
+ readonly fields: readonly [{
1784
+ readonly input: "password";
1785
+ readonly label: "Private Integration Token";
1786
+ readonly name: "accessToken";
1787
+ readonly placeholder: "Paste the sub-account token";
1788
+ readonly required: true;
1789
+ }, {
1790
+ readonly input: "text";
1791
+ readonly label: "Location ID";
1792
+ readonly name: "locationId";
1793
+ readonly placeholder: "HighLevel sub-account location ID";
1794
+ readonly required: true;
1795
+ }];
1796
+ readonly id: "private-integration-token";
1797
+ readonly name: "Private Integration Token";
1798
+ readonly type: "form";
1799
+ }];
1800
+ readonly description: "Connect a HighLevel sub-account with OAuth or a Private Integration Token.";
1801
+ readonly id: "highlevel";
1802
+ readonly name: "HighLevel";
1803
+ readonly preferredConnectionMethodId: "oauth";
1747
1804
  }, {
1748
1805
  readonly id: "jobnimbus";
1749
1806
  readonly name: string;
package/dist/catalog.js CHANGED
@@ -477,6 +477,37 @@ export const hubspotService = defineIntegrationService({
477
477
  name: "HubSpot",
478
478
  preferredConnectionMethodId: "oauth",
479
479
  });
480
+ export const highLevelService = defineIntegrationService({
481
+ connectionMethods: [
482
+ { id: "oauth", name: "OAuth", type: "redirect" },
483
+ {
484
+ credentialUrl: "https://marketplace.gohighlevel.com/docs/Authorization/PrivateIntegrationsToken/index.html",
485
+ fields: [
486
+ {
487
+ input: "password",
488
+ label: "Private Integration Token",
489
+ name: "accessToken",
490
+ placeholder: "Paste the sub-account token",
491
+ required: true,
492
+ },
493
+ {
494
+ input: "text",
495
+ label: "Location ID",
496
+ name: "locationId",
497
+ placeholder: "HighLevel sub-account location ID",
498
+ required: true,
499
+ },
500
+ ],
501
+ id: "private-integration-token",
502
+ name: "Private Integration Token",
503
+ type: "form",
504
+ },
505
+ ],
506
+ description: "Connect a HighLevel sub-account with OAuth or a Private Integration Token.",
507
+ id: "highlevel",
508
+ name: "HighLevel",
509
+ preferredConnectionMethodId: "oauth",
510
+ });
480
511
  export const linearService = defineIntegrationService({
481
512
  connectionMethods: [
482
513
  { id: "oauth", name: "OAuth", type: "redirect" },
@@ -842,6 +873,7 @@ export const integrationCatalog = defineIntegrationCatalog([
842
873
  groqService,
843
874
  huggingfaceService,
844
875
  hubspotService,
876
+ highLevelService,
845
877
  jobNimbusService,
846
878
  linearService,
847
879
  microsoftService,
package/dist/index.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- export { airtableService, anthropicService, apolloService, apifyService, asanaService, calendlyService, automateService, axiomService, brevoService, calcomService, browserbaseService, cerebrasService, chatgptService, cloudflareService, metaAdsService, closeService, closeBotService, clickUpService, codexService, cohereService, convexService, discordService, deepinfraService, deepseekService, firecrawlService, fireworksService, getIntegrationService, githubService, googleGenaiService, googleService, groqService, huggingfaceService, hubspotService, integrationCatalog, jobNimbusService, linearService, microsoftService, millionverifierService, mistralService, notionService, openaiService, onePasswordService, openrouterService, perplexityService, postgresService, redditService, resendService, scrapflyService, slackService, stripeService, tidycalService, togetheraiService, trelloService, vercelAiGatewayService, vercelService, webflowService, whatsappService, xaiService, type IntegrationServiceId, } from "./catalog.js";
1
+ export { airtableService, anthropicService, apolloService, apifyService, asanaService, calendlyService, automateService, axiomService, brevoService, calcomService, browserbaseService, cerebrasService, chatgptService, cloudflareService, metaAdsService, closeService, closeBotService, clickUpService, codexService, cohereService, convexService, discordService, deepinfraService, deepseekService, firecrawlService, fireworksService, getIntegrationService, githubService, googleGenaiService, googleService, groqService, huggingfaceService, hubspotService, highLevelService, integrationCatalog, jobNimbusService, linearService, microsoftService, millionverifierService, mistralService, notionService, openaiService, onePasswordService, openrouterService, perplexityService, postgresService, redditService, resendService, scrapflyService, slackService, stripeService, tidycalService, togetheraiService, trelloService, vercelAiGatewayService, vercelService, webflowService, whatsappService, xaiService, type IntegrationServiceId, } from "./catalog.js";
2
2
  export { defineIntegrationCatalog, defineIntegrationService, integrationScope, type IntegrationAccountConnectionOption, type IntegrationAccountRequirement, type IntegrationConnectionDefinition, type IntegrationConnectionNotice, type IntegrationFormField, type IntegrationScopeRequirement, type IntegrationServiceDefinition, type ScopeRequirementGroup, type TriggerAccountRequirement, type TriggerDefinition, type TriggerPresentation, type TriggerPresentationContext, type TriggerPresentationDetail, type TriggerScopePresentation, type TriggerPresentationValue, } from "./types.js";
3
3
  export { getDashboardRunEndpoint, getDashboardRunEndpointKey, getHttpTriggerEndpoint, getHttpTriggerEndpointKey, getMailhookAddress, getMailhookAddressKey, DASHBOARD_RUN_CONFIG_SCHEMA, DASHBOARD_RUN_FIELDS_SCHEMA, getDashboardRunFieldDefaultValue, isDashboardRunFieldValueValid, getTriggerDefinition, getTriggerName, getTriggerPresentation, isTriggerVisible, PLATFORM_EMAIL_DOMAIN, triggerCatalog, triggerDefinitions, type DashboardRunConfig, type DashboardRunEndpointOptions, type DashboardRunField, type DashboardRunFieldValue, type HttpTriggerEndpointOptions, type HttpTriggerScope, type MailhookAddressOptions, type MailhookScope, type TriggerType, } from "./triggers/index.js";
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
- export { airtableService, anthropicService, apolloService, apifyService, asanaService, calendlyService, automateService, axiomService, brevoService, calcomService, browserbaseService, cerebrasService, chatgptService, cloudflareService, metaAdsService, closeService, closeBotService, clickUpService, codexService, cohereService, convexService, discordService, deepinfraService, deepseekService, firecrawlService, fireworksService, getIntegrationService, githubService, googleGenaiService, googleService, groqService, huggingfaceService, hubspotService, integrationCatalog, jobNimbusService, linearService, microsoftService, millionverifierService, mistralService, notionService, openaiService, onePasswordService, openrouterService, perplexityService, postgresService, redditService, resendService, scrapflyService, slackService, stripeService, tidycalService, togetheraiService, trelloService, vercelAiGatewayService, vercelService, webflowService, whatsappService, xaiService, } from "./catalog.js";
1
+ export { airtableService, anthropicService, apolloService, apifyService, asanaService, calendlyService, automateService, axiomService, brevoService, calcomService, browserbaseService, cerebrasService, chatgptService, cloudflareService, metaAdsService, closeService, closeBotService, clickUpService, codexService, cohereService, convexService, discordService, deepinfraService, deepseekService, firecrawlService, fireworksService, getIntegrationService, githubService, googleGenaiService, googleService, groqService, huggingfaceService, hubspotService, highLevelService, integrationCatalog, jobNimbusService, linearService, microsoftService, millionverifierService, mistralService, notionService, openaiService, onePasswordService, openrouterService, perplexityService, postgresService, redditService, resendService, scrapflyService, slackService, stripeService, tidycalService, togetheraiService, trelloService, vercelAiGatewayService, vercelService, webflowService, whatsappService, xaiService, } from "./catalog.js";
2
2
  export { defineIntegrationCatalog, defineIntegrationService, integrationScope, } from "./types.js";
3
3
  export { getDashboardRunEndpoint, getDashboardRunEndpointKey, getHttpTriggerEndpoint, getHttpTriggerEndpointKey, getMailhookAddress, getMailhookAddressKey, DASHBOARD_RUN_CONFIG_SCHEMA, DASHBOARD_RUN_FIELDS_SCHEMA, getDashboardRunFieldDefaultValue, isDashboardRunFieldValueValid, getTriggerDefinition, getTriggerName, getTriggerPresentation, isTriggerVisible, PLATFORM_EMAIL_DOMAIN, triggerCatalog, triggerDefinitions, } from "./triggers/index.js";
@@ -0,0 +1,127 @@
1
+ import type { IntegrationAccountRequirement } from "../types.js";
2
+ export declare const highLevelTriggerDefinitions: {
3
+ readonly highLevelAppointmentCreated: {
4
+ account: IntegrationAccountRequirement<"highlevel">;
5
+ type: "highlevel.appointment.created";
6
+ };
7
+ readonly highLevelAppointmentDeleted: {
8
+ account: IntegrationAccountRequirement<"highlevel">;
9
+ type: "highlevel.appointment.deleted";
10
+ };
11
+ readonly highLevelAppointmentUpdated: {
12
+ account: IntegrationAccountRequirement<"highlevel">;
13
+ type: "highlevel.appointment.updated";
14
+ };
15
+ readonly highLevelCampaignStatusUpdated: {
16
+ account: IntegrationAccountRequirement<"highlevel">;
17
+ type: "highlevel.campaign.statusUpdated";
18
+ };
19
+ readonly highLevelContactCreated: {
20
+ account: IntegrationAccountRequirement<"highlevel">;
21
+ type: "highlevel.contact.created";
22
+ };
23
+ readonly highLevelContactDeleted: {
24
+ account: IntegrationAccountRequirement<"highlevel">;
25
+ type: "highlevel.contact.deleted";
26
+ };
27
+ readonly highLevelContactDndUpdated: {
28
+ account: IntegrationAccountRequirement<"highlevel">;
29
+ type: "highlevel.contact.dndUpdated";
30
+ };
31
+ readonly highLevelContactTagsUpdated: {
32
+ account: IntegrationAccountRequirement<"highlevel">;
33
+ type: "highlevel.contact.tagsUpdated";
34
+ };
35
+ readonly highLevelContactUpdated: {
36
+ account: IntegrationAccountRequirement<"highlevel">;
37
+ type: "highlevel.contact.updated";
38
+ };
39
+ readonly highLevelConversationUnreadUpdated: {
40
+ account: IntegrationAccountRequirement<"highlevel">;
41
+ type: "highlevel.conversation.unreadUpdated";
42
+ };
43
+ readonly highLevelConversationUpdated: {
44
+ account: IntegrationAccountRequirement<"highlevel">;
45
+ type: "highlevel.conversation.updated";
46
+ };
47
+ readonly highLevelEvent: {
48
+ account: IntegrationAccountRequirement<"highlevel">;
49
+ type: "highlevel.event";
50
+ };
51
+ readonly highLevelLocationUpdated: {
52
+ account: IntegrationAccountRequirement<"highlevel">;
53
+ type: "highlevel.location.updated";
54
+ };
55
+ readonly highLevelMessageReceived: {
56
+ account: IntegrationAccountRequirement<"highlevel">;
57
+ type: "highlevel.message.received";
58
+ };
59
+ readonly highLevelMessageSent: {
60
+ account: IntegrationAccountRequirement<"highlevel">;
61
+ type: "highlevel.message.sent";
62
+ };
63
+ readonly highLevelNoteCreated: {
64
+ account: IntegrationAccountRequirement<"highlevel">;
65
+ type: "highlevel.note.created";
66
+ };
67
+ readonly highLevelNoteDeleted: {
68
+ account: IntegrationAccountRequirement<"highlevel">;
69
+ type: "highlevel.note.deleted";
70
+ };
71
+ readonly highLevelNoteUpdated: {
72
+ account: IntegrationAccountRequirement<"highlevel">;
73
+ type: "highlevel.note.updated";
74
+ };
75
+ readonly highLevelOpportunityAssigneeUpdated: {
76
+ account: IntegrationAccountRequirement<"highlevel">;
77
+ type: "highlevel.opportunity.assigneeUpdated";
78
+ };
79
+ readonly highLevelOpportunityCreated: {
80
+ account: IntegrationAccountRequirement<"highlevel">;
81
+ type: "highlevel.opportunity.created";
82
+ };
83
+ readonly highLevelOpportunityDeleted: {
84
+ account: IntegrationAccountRequirement<"highlevel">;
85
+ type: "highlevel.opportunity.deleted";
86
+ };
87
+ readonly highLevelOpportunityStageUpdated: {
88
+ account: IntegrationAccountRequirement<"highlevel">;
89
+ type: "highlevel.opportunity.stageUpdated";
90
+ };
91
+ readonly highLevelOpportunityStatusUpdated: {
92
+ account: IntegrationAccountRequirement<"highlevel">;
93
+ type: "highlevel.opportunity.statusUpdated";
94
+ };
95
+ readonly highLevelOpportunityUpdated: {
96
+ account: IntegrationAccountRequirement<"highlevel">;
97
+ type: "highlevel.opportunity.updated";
98
+ };
99
+ readonly highLevelOpportunityValueUpdated: {
100
+ account: IntegrationAccountRequirement<"highlevel">;
101
+ type: "highlevel.opportunity.valueUpdated";
102
+ };
103
+ readonly highLevelTaskCompleted: {
104
+ account: IntegrationAccountRequirement<"highlevel">;
105
+ type: "highlevel.task.completed";
106
+ };
107
+ readonly highLevelTaskCreated: {
108
+ account: IntegrationAccountRequirement<"highlevel">;
109
+ type: "highlevel.task.created";
110
+ };
111
+ readonly highLevelTaskDeleted: {
112
+ account: IntegrationAccountRequirement<"highlevel">;
113
+ type: "highlevel.task.deleted";
114
+ };
115
+ readonly highLevelUserCreated: {
116
+ account: IntegrationAccountRequirement<"highlevel">;
117
+ type: "highlevel.user.created";
118
+ };
119
+ readonly highLevelUserDeleted: {
120
+ account: IntegrationAccountRequirement<"highlevel">;
121
+ type: "highlevel.user.deleted";
122
+ };
123
+ readonly highLevelUserUpdated: {
124
+ account: IntegrationAccountRequirement<"highlevel">;
125
+ type: "highlevel.user.updated";
126
+ };
127
+ };
@@ -0,0 +1,73 @@
1
+ const APPOINTMENT_ACCOUNT = highLevelOAuthAccount(["calendars/events.readonly"]);
2
+ const CAMPAIGN_ACCOUNT = highLevelOAuthAccount(["campaigns.readonly"]);
3
+ const CONTACT_ACCOUNT = highLevelOAuthAccount(["contacts.readonly"]);
4
+ const CONVERSATION_ACCOUNT = highLevelOAuthAccount(["conversations.readonly"]);
5
+ const MESSAGE_ACCOUNT = highLevelOAuthAccount([
6
+ "conversations/message.readonly",
7
+ ]);
8
+ const OPPORTUNITY_ACCOUNT = highLevelOAuthAccount(["opportunities.readonly"]);
9
+ const LOCATION_ACCOUNT = highLevelOAuthAccount(["locations.readonly"]);
10
+ const USER_ACCOUNT = highLevelOAuthAccount(["users.write"]);
11
+ export const highLevelTriggerDefinitions = {
12
+ highLevelAppointmentCreated: definition(APPOINTMENT_ACCOUNT, "highlevel.appointment.created"),
13
+ highLevelAppointmentDeleted: definition(APPOINTMENT_ACCOUNT, "highlevel.appointment.deleted"),
14
+ highLevelAppointmentUpdated: definition(APPOINTMENT_ACCOUNT, "highlevel.appointment.updated"),
15
+ highLevelCampaignStatusUpdated: definition(CAMPAIGN_ACCOUNT, "highlevel.campaign.statusUpdated"),
16
+ highLevelContactCreated: definition(CONTACT_ACCOUNT, "highlevel.contact.created"),
17
+ highLevelContactDeleted: definition(CONTACT_ACCOUNT, "highlevel.contact.deleted"),
18
+ highLevelContactDndUpdated: definition(CONTACT_ACCOUNT, "highlevel.contact.dndUpdated"),
19
+ highLevelContactTagsUpdated: definition(CONTACT_ACCOUNT, "highlevel.contact.tagsUpdated"),
20
+ highLevelContactUpdated: definition(CONTACT_ACCOUNT, "highlevel.contact.updated"),
21
+ highLevelConversationUnreadUpdated: definition(CONVERSATION_ACCOUNT, "highlevel.conversation.unreadUpdated"),
22
+ highLevelConversationUpdated: definition(CONVERSATION_ACCOUNT, "highlevel.conversation.updated"),
23
+ highLevelEvent: definition(highLevelOAuthAccount([
24
+ "calendars/events.readonly",
25
+ "campaigns.readonly",
26
+ "contacts.readonly",
27
+ "conversations.readonly",
28
+ "conversations/message.readonly",
29
+ "locations.readonly",
30
+ "opportunities.readonly",
31
+ "users.readonly",
32
+ "users.write",
33
+ ]), "highlevel.event"),
34
+ highLevelLocationUpdated: definition(LOCATION_ACCOUNT, "highlevel.location.updated"),
35
+ highLevelMessageReceived: definition(MESSAGE_ACCOUNT, "highlevel.message.received"),
36
+ highLevelMessageSent: definition(MESSAGE_ACCOUNT, "highlevel.message.sent"),
37
+ highLevelNoteCreated: definition(CONTACT_ACCOUNT, "highlevel.note.created"),
38
+ highLevelNoteDeleted: definition(CONTACT_ACCOUNT, "highlevel.note.deleted"),
39
+ highLevelNoteUpdated: definition(CONTACT_ACCOUNT, "highlevel.note.updated"),
40
+ highLevelOpportunityAssigneeUpdated: definition(OPPORTUNITY_ACCOUNT, "highlevel.opportunity.assigneeUpdated"),
41
+ highLevelOpportunityCreated: definition(OPPORTUNITY_ACCOUNT, "highlevel.opportunity.created"),
42
+ highLevelOpportunityDeleted: definition(OPPORTUNITY_ACCOUNT, "highlevel.opportunity.deleted"),
43
+ highLevelOpportunityStageUpdated: definition(OPPORTUNITY_ACCOUNT, "highlevel.opportunity.stageUpdated"),
44
+ highLevelOpportunityStatusUpdated: definition(OPPORTUNITY_ACCOUNT, "highlevel.opportunity.statusUpdated"),
45
+ highLevelOpportunityUpdated: definition(OPPORTUNITY_ACCOUNT, "highlevel.opportunity.updated"),
46
+ highLevelOpportunityValueUpdated: definition(OPPORTUNITY_ACCOUNT, "highlevel.opportunity.valueUpdated"),
47
+ highLevelTaskCompleted: definition(CONTACT_ACCOUNT, "highlevel.task.completed"),
48
+ highLevelTaskCreated: definition(CONTACT_ACCOUNT, "highlevel.task.created"),
49
+ highLevelTaskDeleted: definition(CONTACT_ACCOUNT, "highlevel.task.deleted"),
50
+ highLevelUserCreated: definition(USER_ACCOUNT, "highlevel.user.created"),
51
+ highLevelUserDeleted: definition(USER_ACCOUNT, "highlevel.user.deleted"),
52
+ highLevelUserUpdated: definition(USER_ACCOUNT, "highlevel.user.updated"),
53
+ };
54
+ /**
55
+ * Defines one HighLevel trigger.
56
+ *
57
+ * @param account - OAuth account requirement.
58
+ * @param type - Internal event type.
59
+ */
60
+ function definition(account, type) {
61
+ return { account, type };
62
+ }
63
+ /**
64
+ * Builds a HighLevel OAuth trigger requirement.
65
+ *
66
+ * @param requiredScopes - Provider scopes required by the webhook family.
67
+ */
68
+ function highLevelOAuthAccount(requiredScopes) {
69
+ return {
70
+ connectionOptions: [{ connectionMethodId: "oauth", requiredScopes }],
71
+ serviceId: "highlevel",
72
+ };
73
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@automate.ax/catalog",
3
- "version": "0.145.2",
3
+ "version": "0.146.1",
4
4
  "description": "Shared integration service and trigger definitions for Automate.ax.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -43,6 +43,7 @@
43
43
  "./triggers/google": "./src/triggers/google.ts",
44
44
  "./triggers/google-ads": "./src/triggers/google-ads.ts",
45
45
  "./triggers/hubspot": "./src/triggers/hubspot.ts",
46
+ "./triggers/highlevel": "./src/triggers/highlevel.ts",
46
47
  "./triggers/linear": "./src/triggers/linear.ts",
47
48
  "./triggers/millionverifier": "./src/triggers/millionverifier.ts",
48
49
  "./triggers/microsoft": "./src/triggers/microsoft.ts",
@@ -220,6 +221,11 @@
220
221
  "types": "./dist/triggers/hubspot.d.ts",
221
222
  "default": "./dist/triggers/hubspot.js"
222
223
  },
224
+ "./triggers/highlevel": {
225
+ "bun": "./src/triggers/highlevel.ts",
226
+ "types": "./dist/triggers/highlevel.d.ts",
227
+ "default": "./dist/triggers/highlevel.js"
228
+ },
223
229
  "./triggers/linear": {
224
230
  "bun": "./src/triggers/linear.ts",
225
231
  "types": "./dist/triggers/linear.d.ts",
package/src/catalog.ts CHANGED
@@ -526,6 +526,40 @@ export const hubspotService = defineIntegrationService({
526
526
  preferredConnectionMethodId: "oauth",
527
527
  })
528
528
 
529
+ export const highLevelService = defineIntegrationService({
530
+ connectionMethods: [
531
+ { id: "oauth", name: "OAuth", type: "redirect" },
532
+ {
533
+ credentialUrl:
534
+ "https://marketplace.gohighlevel.com/docs/Authorization/PrivateIntegrationsToken/index.html",
535
+ fields: [
536
+ {
537
+ input: "password",
538
+ label: "Private Integration Token",
539
+ name: "accessToken",
540
+ placeholder: "Paste the sub-account token",
541
+ required: true,
542
+ },
543
+ {
544
+ input: "text",
545
+ label: "Location ID",
546
+ name: "locationId",
547
+ placeholder: "HighLevel sub-account location ID",
548
+ required: true,
549
+ },
550
+ ],
551
+ id: "private-integration-token",
552
+ name: "Private Integration Token",
553
+ type: "form",
554
+ },
555
+ ],
556
+ description:
557
+ "Connect a HighLevel sub-account with OAuth or a Private Integration Token.",
558
+ id: "highlevel",
559
+ name: "HighLevel",
560
+ preferredConnectionMethodId: "oauth",
561
+ })
562
+
529
563
  export const linearService = defineIntegrationService({
530
564
  connectionMethods: [
531
565
  { id: "oauth", name: "OAuth", type: "redirect" },
@@ -926,6 +960,7 @@ export const integrationCatalog = defineIntegrationCatalog([
926
960
  groqService,
927
961
  huggingfaceService,
928
962
  hubspotService,
963
+ highLevelService,
929
964
  jobNimbusService,
930
965
  linearService,
931
966
  microsoftService,
package/src/index.ts CHANGED
@@ -32,6 +32,7 @@ export {
32
32
  groqService,
33
33
  huggingfaceService,
34
34
  hubspotService,
35
+ highLevelService,
35
36
  integrationCatalog,
36
37
  jobNimbusService,
37
38
  linearService,
@@ -0,0 +1,149 @@
1
+ import type { IntegrationAccountRequirement, TriggerDefinition } from "../types"
2
+
3
+ const APPOINTMENT_ACCOUNT = highLevelOAuthAccount(["calendars/events.readonly"])
4
+ const CAMPAIGN_ACCOUNT = highLevelOAuthAccount(["campaigns.readonly"])
5
+ const CONTACT_ACCOUNT = highLevelOAuthAccount(["contacts.readonly"])
6
+ const CONVERSATION_ACCOUNT = highLevelOAuthAccount(["conversations.readonly"])
7
+ const MESSAGE_ACCOUNT = highLevelOAuthAccount([
8
+ "conversations/message.readonly",
9
+ ])
10
+ const OPPORTUNITY_ACCOUNT = highLevelOAuthAccount(["opportunities.readonly"])
11
+ const LOCATION_ACCOUNT = highLevelOAuthAccount(["locations.readonly"])
12
+ const USER_ACCOUNT = highLevelOAuthAccount(["users.write"])
13
+
14
+ export const highLevelTriggerDefinitions = {
15
+ highLevelAppointmentCreated: definition(
16
+ APPOINTMENT_ACCOUNT,
17
+ "highlevel.appointment.created",
18
+ ),
19
+ highLevelAppointmentDeleted: definition(
20
+ APPOINTMENT_ACCOUNT,
21
+ "highlevel.appointment.deleted",
22
+ ),
23
+ highLevelAppointmentUpdated: definition(
24
+ APPOINTMENT_ACCOUNT,
25
+ "highlevel.appointment.updated",
26
+ ),
27
+ highLevelCampaignStatusUpdated: definition(
28
+ CAMPAIGN_ACCOUNT,
29
+ "highlevel.campaign.statusUpdated",
30
+ ),
31
+ highLevelContactCreated: definition(
32
+ CONTACT_ACCOUNT,
33
+ "highlevel.contact.created",
34
+ ),
35
+ highLevelContactDeleted: definition(
36
+ CONTACT_ACCOUNT,
37
+ "highlevel.contact.deleted",
38
+ ),
39
+ highLevelContactDndUpdated: definition(
40
+ CONTACT_ACCOUNT,
41
+ "highlevel.contact.dndUpdated",
42
+ ),
43
+ highLevelContactTagsUpdated: definition(
44
+ CONTACT_ACCOUNT,
45
+ "highlevel.contact.tagsUpdated",
46
+ ),
47
+ highLevelContactUpdated: definition(
48
+ CONTACT_ACCOUNT,
49
+ "highlevel.contact.updated",
50
+ ),
51
+ highLevelConversationUnreadUpdated: definition(
52
+ CONVERSATION_ACCOUNT,
53
+ "highlevel.conversation.unreadUpdated",
54
+ ),
55
+ highLevelConversationUpdated: definition(
56
+ CONVERSATION_ACCOUNT,
57
+ "highlevel.conversation.updated",
58
+ ),
59
+ highLevelEvent: definition(
60
+ highLevelOAuthAccount([
61
+ "calendars/events.readonly",
62
+ "campaigns.readonly",
63
+ "contacts.readonly",
64
+ "conversations.readonly",
65
+ "conversations/message.readonly",
66
+ "locations.readonly",
67
+ "opportunities.readonly",
68
+ "users.readonly",
69
+ "users.write",
70
+ ]),
71
+ "highlevel.event",
72
+ ),
73
+ highLevelLocationUpdated: definition(
74
+ LOCATION_ACCOUNT,
75
+ "highlevel.location.updated",
76
+ ),
77
+ highLevelMessageReceived: definition(
78
+ MESSAGE_ACCOUNT,
79
+ "highlevel.message.received",
80
+ ),
81
+ highLevelMessageSent: definition(MESSAGE_ACCOUNT, "highlevel.message.sent"),
82
+ highLevelNoteCreated: definition(CONTACT_ACCOUNT, "highlevel.note.created"),
83
+ highLevelNoteDeleted: definition(CONTACT_ACCOUNT, "highlevel.note.deleted"),
84
+ highLevelNoteUpdated: definition(CONTACT_ACCOUNT, "highlevel.note.updated"),
85
+ highLevelOpportunityAssigneeUpdated: definition(
86
+ OPPORTUNITY_ACCOUNT,
87
+ "highlevel.opportunity.assigneeUpdated",
88
+ ),
89
+ highLevelOpportunityCreated: definition(
90
+ OPPORTUNITY_ACCOUNT,
91
+ "highlevel.opportunity.created",
92
+ ),
93
+ highLevelOpportunityDeleted: definition(
94
+ OPPORTUNITY_ACCOUNT,
95
+ "highlevel.opportunity.deleted",
96
+ ),
97
+ highLevelOpportunityStageUpdated: definition(
98
+ OPPORTUNITY_ACCOUNT,
99
+ "highlevel.opportunity.stageUpdated",
100
+ ),
101
+ highLevelOpportunityStatusUpdated: definition(
102
+ OPPORTUNITY_ACCOUNT,
103
+ "highlevel.opportunity.statusUpdated",
104
+ ),
105
+ highLevelOpportunityUpdated: definition(
106
+ OPPORTUNITY_ACCOUNT,
107
+ "highlevel.opportunity.updated",
108
+ ),
109
+ highLevelOpportunityValueUpdated: definition(
110
+ OPPORTUNITY_ACCOUNT,
111
+ "highlevel.opportunity.valueUpdated",
112
+ ),
113
+ highLevelTaskCompleted: definition(
114
+ CONTACT_ACCOUNT,
115
+ "highlevel.task.completed",
116
+ ),
117
+ highLevelTaskCreated: definition(CONTACT_ACCOUNT, "highlevel.task.created"),
118
+ highLevelTaskDeleted: definition(CONTACT_ACCOUNT, "highlevel.task.deleted"),
119
+ highLevelUserCreated: definition(USER_ACCOUNT, "highlevel.user.created"),
120
+ highLevelUserDeleted: definition(USER_ACCOUNT, "highlevel.user.deleted"),
121
+ highLevelUserUpdated: definition(USER_ACCOUNT, "highlevel.user.updated"),
122
+ } as const satisfies Record<string, TriggerDefinition>
123
+
124
+ /**
125
+ * Defines one HighLevel trigger.
126
+ *
127
+ * @param account - OAuth account requirement.
128
+ * @param type - Internal event type.
129
+ */
130
+ function definition<const TType extends `highlevel.${string}`>(
131
+ account: IntegrationAccountRequirement<"highlevel">,
132
+ type: TType,
133
+ ) {
134
+ return { account, type }
135
+ }
136
+
137
+ /**
138
+ * Builds a HighLevel OAuth trigger requirement.
139
+ *
140
+ * @param requiredScopes - Provider scopes required by the webhook family.
141
+ */
142
+ function highLevelOAuthAccount(
143
+ requiredScopes: readonly string[],
144
+ ): IntegrationAccountRequirement<"highlevel"> {
145
+ return {
146
+ connectionOptions: [{ connectionMethodId: "oauth", requiredScopes }],
147
+ serviceId: "highlevel",
148
+ }
149
+ }