Resources · n8n integration

HighLevel n8n integrationAutomate HighLevel with n8n.

Every contact, deal, task and calendar slot in HighLevel becomes a step you can automate. The HighLevel n8n integration exposes 17 operations over 4 resources, authenticated with OAuth2 against the API v2. No trigger node ships with it, so a Schedule or a Webhook starts the run.

Verified Trustpilot reviews · AI, automation & growth agency

Why automate

What does the HighLevel n8n integration actually do?

The HighLevel node ships with n8n and talks to the HighLevel API v2. It exposes 17 operations spread over 4 resources: contacts, opportunities, tasks and calendars. Each one is a step you drop into a workflow, fill in, and wire to whatever comes next.

There is no HighLevel trigger node, so the workflow starts somewhere else: a Schedule Trigger on a fixed interval, an n8n Webhook called by another service, or the trigger of another tool.

Scenario one, no lead sleeps in a spreadsheet overnight. A form posts to an n8n Webhook, which is a URL n8n exposes so another service can push data to it. The workflow runs contact.create, then writes the same row into Google Sheets for the weekly report.

Scenario two, the pipeline matches reality on Monday morning. A Schedule Trigger wakes the workflow up, opportunity.getAll pulls the deals filtered on Status, and the ones still marked open land in a Slack channel before the stand-up.

Scenario three, the follow-up never slips. Once a call is logged, task.create attaches a task to the contact with a Due Date, and Gmail sends the recap in the same execution.

Three things shape what you can build. On the list operations, Return All brings back every matching record by chaining the API pages, while leaving it off means Limit sets the maximum number of items returned. A field marked required stops the node when it is empty, so a missing Contact ID fails the execution rather than guessing. And the node itself flags two rules on opportunities: there can only be one opportunity for each contact, and an opportunity's pipeline ID cannot be updated.

For anything outside these 17 operations, the HTTP Request node calls any HighLevel API endpoint and reuses the same credential through its predefined authentication. That is the normal way to extend a workflow without leaving n8n.

If you are still weighing the platform itself, the n8n review covers hosting and how the pricing works, and the n8n training walks through building a workflow end to end.

Connect

How do you connect HighLevel to n8n?

  1. 01

    Create the HighLevel app

    Start from a HighLevel developer account on the marketplace, then open My Apps and Create App. The setup guide asks for Distribution Type set to Sub-Account. That app is what holds the Client ID and the Client Secret you will paste into n8n later, so name it after the job it does rather than after the person who created it.

  2. 02

    Add the scopes and the redirect URL

    Six scopes go on the app: locations.readonly, contacts.readonly, contacts.write, opportunities.readonly, opportunities.write and users.readonly. Then copy the OAuth Redirect URL that n8n shows on the credential screen and add it as a Redirect URL inside the HighLevel app. Without that round trip, the authorization never comes back.

  3. 03

    Fill the n8n credential

    Copy the Client ID and the Client Secret from HighLevel into the n8n credential, and list the same six scopes there as a space separated string. A credential is created once in the Credentials menu and reused by every workflow, which means the HighLevel node offers it in its dropdown from then on, with nothing to retype.

Actions

What can the HighLevel node do in n8n?

The HighLevel node exposes 17 operations across 4 resources. For each one: the node as you configure it in n8n, the required fields, and our field notes.

Resources × operations matrix
ResourceCreate or UpdateGetGet ManyUpdateDeleteBook AppointmentGet Free Slots
Contact✓✓✓✓✓
Opportunity✓✓✓✓✓
Task✓✓✓✓✓
Calendar✓✓

Contact

5 operations
01

Create or update a contact

contact.create

What you see in n8n

Notes & use cases

One call handles both cases: if the person is already in HighLevel, the record is updated instead of duplicated.

Key parameters

  • Email: the address that identifies the person (name@email.com). Email or Phone is required to create the contact.
  • Phone: same role, in phone form. It has to start with a valid country code led by a plus sign, as in +491234567890.
  • Additional Fields: 14 optional fields, among them First Name, Last Name, Source, Tags as a comma separated list, and Custom Fields.
Use cases
a webinar signup form drops its payload into n8n, and the contact exists in HighLevel before the confirmation email goes out.
02

Delete a contact

contact.delete

What you see in n8n

Notes & use cases

Removes the record from HighLevel. The node wants the identifier, not the name and not the email address.

Key parameters

  • Contact ID: the HighLevel identifier of the record to remove. It usually arrives from an earlier node, picked up with an expression such as {{ $json.field }}, which reads a field of the incoming item.
Use cases
a deletion request lands in a shared inbox, the workflow finds the person with Get Many, then clears the matching record without anyone opening HighLevel.
03

Get a contact

contact.get

What you see in n8n

Notes & use cases

Reads a single contact and hands its data to the next node, which saves a manual lookup in the HighLevel interface.

Key parameters

  • Contact ID: the record to read. Chain it after a list operation when all you have is a name or an email address.
Use cases
before a quote goes out, the workflow pulls the contact so the document is built from what HighLevel actually stores, not from what someone retyped into a form.
04

Get many contacts

contact.getAll

What you see in n8n

Notes & use cases

Returns a list of contacts, with filters that narrow it before the data reaches the rest of the workflow.

Key parameters

  • Return All: on, n8n chains the API pages until every matching contact is in. Off, Limit sets the maximum number of contacts returned.
  • Query: free text search, run on Name, Phone, Email, Tags and Company Name.
  • Sort By and Order: sort on date_added or date_updated, ascending (asc) or descending (desc).
Use cases
a monthly export sorted on date_added with Return All switched on, straight into a spreadsheet for the board review.
05

Update a contact

contact.update

What you see in n8n

Notes & use cases

Changes only the fields you list on an existing record and leaves the rest as it was.

Key parameters

  • Contact ID: which record gets rewritten.
  • Update Fields: 14 fields to pick from, among them Email, Phone, Tags, Timezone and Do Not Disturb, where true means no outbound message is permitted.
Use cases
someone clicks an unsubscribe link on a landing page, the workflow sets Do Not Disturb to true on the contact, and the record carries that instruction from then on.

Opportunity

5 operations
06

Create an opportunity

opportunity.create

What you see in n8n

Notes & use cases

Opens a deal attached to a contact, with its name, its status and its place in a pipeline.

Key parameters

  • Contact Email or ID: pick from the list or pass an ID with an expression. The node points out that there can only be one opportunity for each contact.
  • Status: one of open, won, lost or abandoned.
  • Pipeline Name or ID: chosen from the list, or given as an ID.
  • Monetary Value: the monetary value of the lead opportunity, inside Additional Fields next to Tags and Assigned To.
Use cases
a signed quote arrives, and the deal opens on open with Monetary Value taken from the quote total.
07

Delete an opportunity

opportunity.delete

What you see in n8n

Notes & use cases

Erases a deal. This is the operation you reach for when records created while testing a workflow have to disappear before anyone reads the numbers.

Key parameters

  • Opportunity ID: the deal to remove, most often carried over from the node that created or listed it.
Use cases
a build session left a handful of test deals behind; a list operation collects them and this one clears them in the same execution.
08

Get an opportunity

opportunity.get

What you see in n8n

Notes & use cases

Pulls one deal and its data, so a later node can branch on what came back instead of assuming.

Key parameters

  • Opportunity ID: the deal to read.
Use cases
before a renewal reminder goes out, the workflow reads the deal and an If node decides whether the message is still worth sending. Cheaper than a rule that fires blind and annoys a client who already signed.
09

Get many opportunities

opportunity.getAll

What you see in n8n

Notes & use cases

Lists deals with 8 filters, which is what you want when a report has to be built without touching the interface.

Key parameters

  • Return All: on, every matching deal comes back page after page; off, Limit caps how many are returned.
  • Pipeline Name or ID and Stage Name or ID: narrow to one pipeline, then to one stage. The node asks for the pipeline first, otherwise the stages do not show up.
  • Start Date and End Date: a date range on the deals.
  • Status: open, won, lost or abandoned.
Use cases
a weekly digest of the deals still on open in one pipeline, split with Assigned To so each rep reads their own list.
10

Update an opportunity

opportunity.update

What you see in n8n

Notes & use cases

Moves a deal along: another stage, another status, another value, or a different owner.

Key parameters

  • Opportunity ID: the deal to change. The node warns that an opportunity's pipeline ID cannot be updated.
  • Update Fields: 6 fields, among them Status, Stage Name or ID, Monetary Value, Assigned To and Name.
Use cases
a signature notification hits the workflow, Status flips to won and the final amount goes into Monetary Value, so the pipeline is right without a manual drag.

Task

5 operations
11

Create a task

task.create

What you see in n8n

Notes & use cases

Attaches a to-do to a contact, with a deadline. Four fields are required here, more than on most operations of this node.

Key parameters

  • Contact Email or ID: the contact the task belongs to, from the list or as an ID.
  • Title: what has to be done.
  • Due Date: the deadline, as a date and time.
  • Completed: a required boolean, so n8n asks for its value even on a task that has just been opened.
  • Body: the detail, inside Additional Fields next to Assigned To.
Use cases
a demo ends, and a task with a Due Date on the next morning is already waiting on the contact.
12

Delete a task

task.delete

What you see in n8n

Notes & use cases

Clears a task that has lost its reason to exist. Two identifiers are needed, because tasks hang off a contact.

Key parameters

  • Contact Email or ID: the contact the task belongs to.
  • Task ID: which task on that contact goes away.
Use cases
a meeting is called off, and the preparation task attached to the contact disappears in the same run that sends the apology message.
13

Get a task

task.get

What you see in n8n

Notes & use cases

Fetches one task from a contact and passes what it finds down the workflow.

Key parameters

  • Contact Email or ID: the contact holding the task.
  • Task ID: the task to read.
Use cases
a daily check reads the tasks the workflow created yesterday and routes each one on what comes back, which keeps the reminder logic inside n8n instead of in someone's head.
14

Get many tasks

task.getAll

What you see in n8n

Notes & use cases

The tasks of one contact come back as a list. The contact is required here, so the result is always scoped to a single person.

Key parameters

  • Contact Email or ID: required, the contact whose tasks are returned.
  • Return All: on, every task of that contact comes back; off, Limit sets how many.
Use cases
an account review loops over a handful of contacts and pulls each one's tasks, so the meeting opens on what is genuinely still pending.
15

Update a task

task.update

What you see in n8n

Notes & use cases

Rewrites a task in place: a new deadline, a new owner, or the flag that closes it.

Key parameters

  • Contact Email or ID and Task ID: the pair that points at the task.
  • Update Fields: 5 fields, Completed, Title, Body, Due Date and Assigned To.
Use cases
a call gets logged in another tool, the workflow sets Completed on the matching task and pushes the Due Date of the follow-up one further out.

Calendar

2 operations
16

Book appointment in a calendar

calendar.bookAppointment

What you see in n8n

Notes & use cases

Books a slot in a HighLevel calendar for a contact, without anyone opening a booking page.

Key parameters

  • Calendar ID: which calendar receives the appointment.
  • Location ID: the location identifier the node asks for alongside it.
  • Contact ID: who the appointment is for.
  • Start Time: a string carrying the date, the time and the offset, in the shape 2021-06-23T03:30:00+05:30. End Time follows the same shape inside Additional Fields.
  • Appointment Status: optional, with allowed values new, confirmed, cancelled, showed, noshow and invalid.
Use cases
a prospect picks a time on an external page and the appointment is on the right calendar with its Title before the tab closes.
17

Get free slots of a calendar

calendar.getFreeSlots

What you see in n8n

Notes & use cases

Asks a calendar which slots are still open across a window you define, which is the step that comes before offering times to anyone.

Key parameters

  • Calendar ID: the calendar to inspect.
  • Start Date and End Date: the bounds of the window, as numbers. The node gives 1548898600000 and 1601490599999 as examples.
  • Timezone: the timezone used for the returned slots, America/Chihuahua for instance, inside Additional Fields next to User ID.
Use cases
an inbound lead asks for a call, and the reply leaves with 3 real openings instead of an email thread.
Need help

Need help automating HighLevel with n8n?

A person reads every message.

FAQ

HighLevel and n8n, the questions that come next

01Is the HighLevel n8n integration free?
Yes on the n8n side. The HighLevel node ships with n8n, so there is nothing to install and nothing extra to pay to use it, whether you run n8n Cloud or a self-hosted instance under the Community Edition and its Sustainable Use licence. A workflow behaves the same way in both places, so you can prototype on one and move it to the other without rewriting the HighLevel steps. The 17 operations, the 4 resources and the OAuth2 credential are all part of the standard install. What you pay HighLevel for your own account is a separate matter, settled on their side.
02What credentials and permissions do you need for HighLevel?
OAuth2, in practice. The credential page lists two methods: an API key, which goes with API v1, and OAuth2, which goes with API v2. HighLevel deprecated API v1.0 and no longer maintains it, so new credentials should be set up with OAuth2. That means a developer account on the HighLevel marketplace, an app created through Create App with Distribution Type set to Sub-Account, and six scopes: locations.readonly, contacts.readonly, contacts.write, opportunities.readonly, opportunities.write and users.readonly. Two things then get exchanged: the OAuth Redirect URL from n8n goes into the app, and the Client ID and Client Secret go into the n8n credential, with the same scopes as a space separated list.
03What are the limits of the HighLevel node in n8n?
Three things shape what a workflow can do. Pagination first: on the list operations, Return All brings back every matching record by chaining the API pages, while leaving it off means Limit sets the maximum number of items returned. Required fields second: a field marked required stops the node when it is empty, so a missing Contact ID or Opportunity ID fails the execution instead of guessing. Node level rules third: there can only be one opportunity for each contact, and an opportunity's pipeline ID cannot be updated. For anything outside the 17 catalogued operations, the HTTP Request node calls any HighLevel API endpoint and reuses the same credential through its predefined authentication.
04Can a HighLevel event trigger an n8n workflow in real time?
Not from HighLevel itself. This tool has no trigger node in n8n, so a workflow that touches it starts somewhere else. Three routes cover most cases. A Schedule Trigger runs the workflow at a fixed interval, which fits reporting and clean-up jobs built on the Get Many operations. An n8n Webhook, which is a URL n8n exposes so another service can push data to it, handles the cases where something outside has to kick the run off the moment it happens. Or another tool's trigger opens the workflow, and HighLevel becomes the step that creates the contact, moves the deal or books the slot.
05n8n or Make for HighLevel?
It comes down to four criteria, and neither tool is the wrong answer. Hosting: n8n runs self-hosted with Docker or npm, or on n8n Cloud; Make is hosted only, with no self-hosting option. Data control follows from that, since a self-hosted instance keeps the HighLevel contact data inside infrastructure you own. Cost model: Make bills per operation, which is worth modelling against a workflow that loops over Get Many results one item at a time. Visual logic: both draw the flow on a canvas, and the preference there is mostly habit. Weigh the volume you expect and where the data is allowed to sit, then pick.