n8n-nodes-highlevelv2
Version:
n8n community node for HighLevel v2 API integration - comprehensive CRM, marketing automation, and business management platform
338 lines • 13.7 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.HighLevelV2 = void 0;
const BlogDescription_1 = require("./description/BlogDescription");
const BusinessDescription_1 = require("./description/BusinessDescription");
const CalendarDescription_1 = require("./description/CalendarDescription");
const CalendarEventDescription_1 = require("./description/CalendarEventDescription");
const CalendarGroupDescription_1 = require("./description/CalendarGroupDescription");
const ContactDescription_1 = require("./description/ContactDescription");
const ConversationDescription_1 = require("./description/ConversationDescription");
const CouponDescription_1 = require("./description/CouponDescription");
const CustomFieldDescription_1 = require("./description/CustomFieldDescription");
const CustomObjectsDescription_1 = require("./description/CustomObjectsDescription");
const CustomValuesDescription_1 = require("./description/CustomValuesDescription");
const ObjectAssociationsDescription_1 = require("./description/ObjectAssociationsDescription");
const ProductDescription_1 = require("./description/ProductDescription");
const EmailDescription_1 = require("./description/EmailDescription");
const FormDescription_1 = require("./description/FormDescription");
const FunnelDescription_1 = require("./description/FunnelDescription");
const MediaDescription_1 = require("./description/MediaDescription");
const NotesDescription_1 = require("./description/NotesDescription");
const AppointmentNotesDescription_1 = require("./description/AppointmentNotesDescription");
const CalendarResourceDescription_1 = require("./description/CalendarResourceDescription");
const OpportunityDescription_1 = require("./description/OpportunityDescription");
const RedirectDescription_1 = require("./description/RedirectDescription");
const TagsDescription_1 = require("./description/TagsDescription");
const SaaSDescription_1 = require("./description/SaaSDescription");
const SocialPlannerDescription_1 = require("./description/SocialPlannerDescription");
const SubAccountDescription_1 = require("./description/SubAccountDescription");
const SurveyDescription_1 = require("./description/SurveyDescription");
const TaskDescription_1 = require("./description/TaskDescription");
const UserDescription_1 = require("./description/UserDescription");
const AuthDescription_1 = require("./description/AuthDescription");
const GenericFunctions_1 = require("./GenericFunctions");
const resources = [
{
displayName: 'Resource',
name: 'resource',
type: 'options',
noDataExpression: true,
options: [
{
name: 'Auth',
value: 'auth',
},
{
name: 'Blog',
value: 'blog',
},
{
name: 'Business',
value: 'business',
},
{
name: 'Calendar Event',
value: 'calendarEvent',
},
{
name: 'Calendar Group',
value: 'calendarGroup',
},
{
name: 'Calendar Resource',
value: 'calendarResource',
},
{
name: 'Contact',
value: 'contact',
},
{
name: 'Conversation',
value: 'conversation',
},
{
name: 'Coupon',
value: 'coupon',
},
{
name: 'Custom Field',
value: 'customField',
},
{
name: 'Custom Object',
value: 'customObjects',
},
{
name: 'Custom Value',
value: 'customValues',
},
{
name: 'Email',
value: 'email',
},
{
name: 'Form',
value: 'form',
},
{
name: 'Funnel',
value: 'funnel',
},
{
name: 'Media',
value: 'media',
},
{
name: 'Note',
value: 'notes',
},
{
name: 'Appointment Note',
value: 'appointmentNotes',
},
{
name: 'Object Association',
value: 'objectAssociations',
},
{
name: 'Opportunity',
value: 'opportunity',
},
{
name: 'Product',
value: 'product',
},
{
name: 'Redirect',
value: 'redirect',
},
{
name: 'SaaS',
value: 'saas',
},
{
name: 'Task',
value: 'task',
},
{
name: 'Calendar',
value: 'calendar',
},
{
name: 'Social Planner',
value: 'socialPlanner',
},
{
name: 'Sub-Account',
value: 'subAccount',
},
{
name: 'Survey',
value: 'survey',
},
{
name: 'Tag',
value: 'tags',
},
{
name: 'User',
value: 'user',
},
],
default: 'contact',
required: true,
},
];
const versionDescription = {
displayName: 'HighLevel v2',
name: 'highLevelv2',
icon: 'file:highLevel.svg',
group: ['transform'],
version: 2,
description: 'Comprehensive HighLevel v2 API integration for CRM, marketing automation, and business management. Created by Mario Aldayuz. Submit issues at: https://github.com/marioaldayuz/n8n-highlevel/issues',
subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}',
defaults: {
name: 'HighLevel v2',
},
usableAsTool: true,
inputs: ["main"],
outputs: ["main"],
credentials: [
{
name: 'highLevelOAuth2Api',
required: true,
},
],
requestDefaults: {
baseURL: 'https://services.leadconnectorhq.com',
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
Version: '2021-07-28',
},
},
requestOperations: {
pagination: GenericFunctions_1.highLevelApiPagination,
},
properties: [
...resources,
...AuthDescription_1.authOperations,
...AuthDescription_1.authFields,
...BlogDescription_1.blogOperations,
...BlogDescription_1.blogFields,
...BusinessDescription_1.businessOperations,
...BusinessDescription_1.businessFields,
...CalendarEventDescription_1.calendarEventOperations,
...CalendarEventDescription_1.calendarEventFields,
...CalendarGroupDescription_1.calendarGroupOperations,
...CalendarGroupDescription_1.calendarGroupFields,
...CalendarResourceDescription_1.calendarResourceOperations,
...CalendarResourceDescription_1.calendarResourceFields,
...ContactDescription_1.contactOperations,
...ContactDescription_1.contactNotes,
...ContactDescription_1.contactFields,
...ConversationDescription_1.conversationOperations,
...ConversationDescription_1.conversationFields,
...CouponDescription_1.couponOperations,
...CouponDescription_1.couponFields,
...CustomFieldDescription_1.customFieldOperations,
...CustomFieldDescription_1.customFieldFields,
...CustomObjectsDescription_1.customObjectsOperations,
...CustomObjectsDescription_1.customObjectsFields,
...CustomValuesDescription_1.customValuesOperations,
...CustomValuesDescription_1.customValuesFields,
...EmailDescription_1.emailOperations,
...EmailDescription_1.emailFields,
...FormDescription_1.formOperations,
...FormDescription_1.formFields,
...FunnelDescription_1.funnelOperations,
...FunnelDescription_1.funnelFields,
...MediaDescription_1.mediaOperations,
...MediaDescription_1.mediaFields,
...NotesDescription_1.notesOperations,
...NotesDescription_1.notesFields,
...AppointmentNotesDescription_1.appointmentNotesOperations,
...AppointmentNotesDescription_1.appointmentNotesFields,
...ObjectAssociationsDescription_1.objectAssociationsOperations,
...ObjectAssociationsDescription_1.objectAssociationsFields,
...OpportunityDescription_1.opportunityOperations,
...OpportunityDescription_1.opportunityFields,
...ProductDescription_1.productOperations,
...ProductDescription_1.productFields,
...RedirectDescription_1.redirectOperations,
...RedirectDescription_1.redirectFields,
...SaaSDescription_1.saasOperations,
...SaaSDescription_1.saasFields,
...TaskDescription_1.taskOperations,
...TaskDescription_1.taskFields,
...CalendarDescription_1.calendarOperations,
...CalendarDescription_1.calendarFields,
...SocialPlannerDescription_1.socialPlannerOperations,
...SocialPlannerDescription_1.socialPlannerFields,
...SubAccountDescription_1.subAccountOperations,
...SubAccountDescription_1.subAccountFields,
...SurveyDescription_1.surveyOperations,
...SurveyDescription_1.surveyFields,
...TagsDescription_1.tagsOperations,
...TagsDescription_1.tagsFields,
...UserDescription_1.userOperations,
...UserDescription_1.userFields,
],
};
class HighLevelV2 {
constructor(baseDescription) {
this.methods = {
loadOptions: {
getPipelines: GenericFunctions_1.getPipelines,
getContacts: GenericFunctions_1.getContacts,
getPipelineStages: GenericFunctions_1.getPipelineStages,
getSocialAccounts: GenericFunctions_1.getSocialAccounts,
getSubAccounts: GenericFunctions_1.getSubAccounts,
getUsers: GenericFunctions_1.getUsers,
},
listSearch: {
async searchCustomFields(filter) {
var _a, _b;
const { locationId } = (_b = (_a = (await this.getCredentials('highLevelOAuth2Api'))) === null || _a === void 0 ? void 0 : _a.oauthTokenData) !== null && _b !== void 0 ? _b : {};
const responseData = (await this.helpers.httpRequestWithAuthentication.call(this, 'highLevelOAuth2Api', {
url: `https://services.leadconnectorhq.com/locations/${locationId}/customFields?model=contact`,
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
Version: '2021-07-28',
},
}));
const customFields = responseData.customFields;
const results = customFields
.map((a) => ({
name: a.name,
value: a.id,
}))
.filter((a) => !filter || a.name.toLowerCase().includes(filter.toLowerCase()))
.sort((a, b) => {
if (a.name.toLowerCase() < b.name.toLowerCase())
return -1;
if (a.name.toLowerCase() > b.name.toLowerCase())
return 1;
return 0;
});
return { results };
},
async searchTimezones(filter) {
var _a, _b;
const { locationId } = (_b = (_a = (await this.getCredentials('highLevelOAuth2Api'))) === null || _a === void 0 ? void 0 : _a.oauthTokenData) !== null && _b !== void 0 ? _b : {};
const responseData = (await this.helpers.httpRequestWithAuthentication.call(this, 'highLevelOAuth2Api', {
url: `https://services.leadconnectorhq.com/locations/${locationId}/timezones`,
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
Version: '2021-07-28',
},
}));
const timezones = responseData.timeZones;
const results = timezones
.map((zone) => ({
name: zone.trim(),
value: zone.trim(),
}))
.filter((zone) => !filter || zone.name.toLowerCase().includes(filter.toLowerCase()))
.sort((a, b) => {
if (a.name.toLowerCase() < b.name.toLowerCase())
return -1;
if (a.name.toLowerCase() > b.name.toLowerCase())
return 1;
return 0;
});
return { results };
},
},
};
this.description = {
...baseDescription,
...versionDescription,
};
}
}
exports.HighLevelV2 = HighLevelV2;
//# sourceMappingURL=HighLevelV2.node.js.map