n8n-nodes-gohighlevel
Version:
n8n node for GoHighLevel API v2
260 lines (259 loc) • 9.52 kB
TypeScript
/// <reference types="node" />
/// <reference types="node" />
/// <reference types="node" />
/// <reference types="node" />
import { IExecuteFunctions, IHookFunctions, ILoadOptionsFunctions, IDataObject, IHttpRequestMethods, GenericValue, IN8nHttpResponse } from 'n8n-workflow';
import { ICompany, ICustomField, IOpportunity } from '../resources';
import { IContact } from '../resources/contact/contact.types';
import { THttpFullResponse } from '../types/httpRequest';
interface ContactSearchParams {
locationId: string;
page: number;
pageLimit: number;
searchAfter?: Array<string | number>;
filters?: Array<{
group?: 'AND' | 'OR';
filters?: Array<{
field: string;
operator: string;
value: any;
}>;
field?: string;
operator?: string;
value?: any;
}>;
sort?: Array<{
field: string;
direction: 'asc' | 'desc';
}>;
}
declare type TBody = FormData | GenericValue | GenericValue[] | Buffer | URLSearchParams;
declare type TQueryString = IDataObject;
interface OpportunitySearchParams {
assigned_to?: string;
campaignId?: string;
contact_id?: string;
country?: string;
date?: string;
endDate?: string;
getCalendarEvents?: boolean;
getNotes?: boolean;
getTasks?: boolean;
id?: string;
limit?: number;
order?: string;
page?: number;
pipeline_id?: string;
pipeline_stage_id?: string;
q?: string;
startAfter?: string;
startAfterId?: string;
status?: 'open' | 'won' | 'lost' | 'abandoned' | 'all';
location_id?: string;
}
export declare class GoHighLevelManager {
#private;
static instance: GoHighLevelManager;
private baseURL;
private n8n;
private locationId;
constructor(n8n: IExecuteFunctions | ILoadOptionsFunctions | IHookFunctions, locationId: string);
static getInstance(n8n: IExecuteFunctions | ILoadOptionsFunctions | IHookFunctions): Promise<GoHighLevelManager>;
request<T extends IN8nHttpResponse>({ method, path, body, params }: {
method: IHttpRequestMethods;
path: string;
body?: TBody;
params?: TQueryString;
}): Promise<T>;
httpRequestWithAuthentication<T extends IN8nHttpResponse>({ method, path, body, params, verbose }: {
method: IHttpRequestMethods;
path: string;
body?: TBody;
params?: TQueryString;
verbose?: boolean;
}): Promise<THttpFullResponse<T>>;
get<T extends IN8nHttpResponse>(path: string, options?: {
params?: TQueryString;
verbose?: boolean;
}): Promise<T>;
post<T extends IN8nHttpResponse>(path: string, options?: {
body: TBody;
verbose?: boolean;
}): Promise<T>;
put<T extends IN8nHttpResponse>(path: string, options?: {
body: TBody;
verbose?: boolean;
}): Promise<T>;
delete<T extends IN8nHttpResponse>(path: string, options?: {
body: TBody;
verbose?: boolean;
}): Promise<T>;
findContact(params: ContactSearchParams): Promise<IContact>;
findContactByEmail(email: string): Promise<IContact>;
createContact(contact: IContact): Promise<{
customFields: {
id: string;
field_value: string;
name: string | undefined;
}[] | undefined;
id?: string | undefined;
email?: string | undefined;
firstName?: string | undefined;
lastName?: string | undefined;
phone?: string | undefined;
tags?: string[] | undefined;
}>;
getContacts(options?: {
params?: TQueryString;
}): Promise<{
customFields: {
id: string;
field_value: string;
name: string | undefined;
}[] | undefined;
id?: string | undefined;
email?: string | undefined;
firstName?: string | undefined;
lastName?: string | undefined;
phone?: string | undefined;
tags?: string[] | undefined;
}[]>;
getContact(contactId: string): Promise<{
customFields: {
id: string;
field_value: string;
name: string | undefined;
}[] | undefined;
id?: string | undefined;
email?: string | undefined;
firstName?: string | undefined;
lastName?: string | undefined;
phone?: string | undefined;
tags?: string[] | undefined;
}>;
updateContact(contactId: string, contact: IContact): Promise<{
customFields: {
id: string;
field_value: string;
name: string | undefined;
}[] | undefined;
id?: string | undefined;
email?: string | undefined;
firstName?: string | undefined;
lastName?: string | undefined;
phone?: string | undefined;
tags?: string[] | undefined;
}>;
upsertContact(contact: IContact): Promise<{
customFields: {
id: string;
field_value: string;
name: string | undefined;
}[] | undefined;
id?: string | undefined;
email?: string | undefined;
firstName?: string | undefined;
lastName?: string | undefined;
phone?: string | undefined;
tags?: string[] | undefined;
}>;
deleteContact(contactId: string): Promise<IContact>;
addTagToContact(contactId: string, tags: string[]): Promise<IContact>;
removeTagFromContact(contactId: string, tags: string[]): Promise<IContact>;
findDuplicateContacts(contact: IContact): Promise<IContact[]>;
createCompany(company: ICompany): Promise<ICompany>;
getCompany(companyId: string): Promise<ICompany>;
getCompanies(options?: {
params?: TQueryString;
}): Promise<ICompany[]>;
updateCompany(companyId: string, company: ICompany): Promise<ICompany>;
deleteCompany(companyId: string): Promise<ICompany>;
addTagsToCompany(companyId: string, tags: string[]): Promise<ICompany>;
removeTagsFromCompany(companyId: string, tags: string[]): Promise<ICompany>;
findOpportunity(params: OpportunitySearchParams): Promise<{
customFields: {
id: string;
fieldValue: string | object | string[] | object[];
name: string | undefined;
}[] | undefined;
id?: string | undefined;
name: string;
value?: number | undefined;
pipelineId?: string | undefined;
pipelineStageId?: string | undefined;
contactId?: string | undefined;
companyId?: string | undefined;
status?: string | undefined;
}>;
createOpportunity(opportunity: IOpportunity): Promise<{
customFields: {
id: string;
fieldValue: string | object | string[] | object[];
name: string | undefined;
}[] | undefined;
id?: string | undefined;
name: string;
value?: number | undefined;
pipelineId?: string | undefined;
pipelineStageId?: string | undefined;
contactId?: string | undefined;
companyId?: string | undefined;
status?: string | undefined;
}>;
getOpportunity(opportunityId: string): Promise<{
customFields: {
id: string;
fieldValue: string | object | string[] | object[];
name: string | undefined;
}[] | undefined;
id?: string | undefined;
name: string;
value?: number | undefined;
pipelineId?: string | undefined;
pipelineStageId?: string | undefined;
contactId?: string | undefined;
companyId?: string | undefined;
status?: string | undefined;
}>;
getOpportunities(options?: {
params?: TQueryString;
}): Promise<{
customFields: {
id: string;
fieldValue: string | object | string[] | object[];
name: string | undefined;
}[] | undefined;
id?: string | undefined;
name: string;
value?: number | undefined;
pipelineId?: string | undefined;
pipelineStageId?: string | undefined;
contactId?: string | undefined;
companyId?: string | undefined;
status?: string | undefined;
}[]>;
updateOpportunity(opportunityId: string, opportunity: Partial<IOpportunity>): Promise<{
customFields: {
id: string;
fieldValue: string | object | string[] | object[];
name: string | undefined;
}[] | undefined;
id?: string | undefined;
name: string;
value?: number | undefined;
pipelineId?: string | undefined;
pipelineStageId?: string | undefined;
contactId?: string | undefined;
companyId?: string | undefined;
status?: string | undefined;
}>;
deleteOpportunity(opportunityId: string): Promise<IOpportunity>;
updateOpportunityStage(opportunityId: string, stageId: string): Promise<IOpportunity>;
updateOpportunityStatus(opportunityId: string, status: string): Promise<IOpportunity>;
getCustomFields(model?: 'contact' | 'opportunity' | 'all'): Promise<ICustomField[]>;
createCustomField(model: 'contact' | 'opportunity' | 'company', customField: ICustomField): Promise<ICustomField>;
getCustomField(customFieldId: string): Promise<ICustomField>;
updateCustomField(customFieldId: string, customField: Partial<ICustomField>): Promise<ICustomField>;
deleteCustomField(customFieldId: string): Promise<ICustomField>;
}
export {};