GoHighLevel Integration with SmythOS
Want to connect all your marketing, sales, and CRM operations? Connect GoHighLevel to SmythOS and empower your agents to automatically create contacts, manage opportunities, and assign tasks.
Securely link your GoHighLevel account to SmythOS using a Location or Agency API key. Then, use our suite of components to automate your entire client lifecycle, from capturing new leads to managing tasks and sales pipelines.
List of GoHighLevel Components
Quickly compare GoHighLevel components by what they do and their key I/O. Click any component name to jump directly to its detailed guide.
Component | Action | What it Does | Inputs | Key Outputs | Use Case |
---|
Create Contact | Write | Creates a new contact in a specific location. | required email optional firstName , phone | id , locationId | Adding a new lead from a website form. |
Update Contact | Write | Updates the fields of an existing contact. | required contactId , Body | id , email | Updating a contact's details from a CRM. |
Get Contacts | Read | Retrieves a list of all contacts in a location. | required trigger optional limit | contacts | Syncing your contacts to an external system. |
Get Contact | Read | Retrieves a contact by its unique ID. | required contactId | id , email | Fetching contact details for personalization. |
Search Contact By Email | Search | Finds contacts by their email address. | required email_query | contacts | Checking if a lead already exists before creating it. |
Search Contact By Phone | Search | Finds contacts by their phone number. | required phone_query | contacts | Finding a contact record from a caller ID. |
Delete Contact | Write | Permanently deletes a contact by their ID. | required contactId | Response | Handling data removal requests. |
Add Contact Tags | Write | Adds one or more tags to a contact. | required contactId , tags | tags | Segmenting contacts based on their actions. |
Delete Contact Campaigns | Write | Removes a contact from all campaigns. | required contactId | Response | Opting a user out of all marketing. |
Create Task | Write | Creates a new task and assigns it to a contact. | required contactId , title , dueDate | id | Automatically creating a "Follow Up" task. |
Get Contact Tasks | Read | Retrieves all tasks associated with a specific contact. | required contactId | tasks | Reviewing all open items for a client before a call. |
Update Task Status | Write | Updates the status of a task to complete or incomplete. | required contactId , taskId , status | id , isCompleted | Marking a task as done from another system. |
Create Opportunity | Write | Creates a new opportunity (deal) in a pipeline. | required pipelineId , title , stageId , contactId | id , name | Starting a new sales process for a qualified lead. |
Get Opportunities | Read | Retrieves all opportunities from a specific pipeline. | required pipelineId | opportunities | Generating a sales pipeline report. |
Update Opportunity | Write | Updates the properties of an existing opportunity. | required opportunityId , Body | id , name | Moving a deal to the next stage in the pipeline. |
Create Note | Write | Adds a note to a specific contact's record. | required contactId , body | id | Logging a summary of a phone call. |
Get Contact Notes | Read | Retrieves all notes for a specific contact. | required contactId | notes | Getting historical context on a customer. |
Create Tag | Write | Creates a new tag that can be used on contacts. | required name | id | Setting up a new "Q4-Promo" tag. |
Get All Tags | Read | Retrieves all tags available in a location. | required trigger | tags | Finding the correct tag to apply to a contact. |
Why Integrate GoHighLevel with Your Agent?
GoHighLevel is an all-in-one platform for marketing and sales. Integrating it with SmythOS allows you to build powerful, end-to-end automations that connect every part of your business.
- Automate Lead Capture and Nurturing: Create agents that capture leads from any source (web forms, social media, ads) and instantly create a
Contact
in GoHighLevel, add them to a Workflow
, and create a sales Opportunity
.
- Streamline Sales Operations: Build an agent that, when a deal is moved to a new stage in your pipeline, automatically creates and assigns a
Task
to the sales rep, such as "Send follow-up email."
- Data Synchronization: Keep your GoHighLevel CRM perfectly in sync with your other business tools. An agent can update contact information in GoHighLevel whenever it changes in your accounting software or e-commerce platform.
- Centralized Task Management: Use agents to create tasks in GoHighLevel based on events from other applications, ensuring all your team's to-dos are in one place.
Prerequisites
Before you begin, please ensure you have the following:
- An active SmythOS account. (Sign up here).
- A GoHighLevel account.
- A GoHighLevel API Key (either for a specific Location or for your entire Agency).
Getting Started With GoHighLevel
The connection between SmythOS and GoHighLevel is configured using a secure API Key.
Step 1: Get Your GoHighLevel API Key
GoHighLevel has two types of keys. Choose the one that fits your needs:
- Location API Key: For accessing data within a single sub-account.
- Log in to your GoHighLevel dashboard and switch to the desired sub-account.
- Go to Settings > API Keys (under the "Business Info" section in some views).
- Click to generate or copy your Location API Key.
- Agency API Key: For agency-level access across multiple sub-accounts.
- From your main Agency dashboard, go to Settings > API Keys.
- Here you can find your Agency API Key.
Step 2: Store Your API Key in SmythOS Vault
Your API Key is a sensitive credential. Use the SmythOS Vault
to store it securely.
- In your SmythOS dashboard, navigate to the Vault.
- Create a new secret and paste your GoHighLevel API Key as the value. Give it a memorable name, like
gohighlevel_location_key
or gohighlevel_agency_key
.
- For more details, see the Vault Documentation.
- In your SmythOS agent graph, drag and drop any GoHighLevel component.
- Click the component to open its Settings panel.
- In the API Key field, select the secret you saved in the Vault.
- Your connection is now configured for that component.
You must add the API Key from the Vault to each GoHighLevel component you use. This ensures all your API calls are properly authenticated.
Which GoHighLevel Component Should I Use?
If you need to… | Target | Use this Component | Why this one? |
---|
Add a new lead to your CRM | An email, name, and other details | Create Contact | The standard method for creating a new contact record in a location. |
Find a contact before updating them | An email or phone number | Search Contact | The best way to check for duplicates and get a contactId . |
Create a new task for a team member | A contactId and a title | Create Task | The primary method for adding to-do items related to a contact. |
Start a new sales opportunity | A pipelineId and contactId | Create Opportunity | Adds a new deal to your sales pipeline for tracking. |
Tag a contact after they take an action | A contactId and tags | Add Contact Tags | Allows you to segment your contacts for targeted marketing. |
Get a list of all your sales pipelines | Your entire location | Get Pipelines | Necessary to find the correct pipelineId to create opportunities in. |
Component Details
This section provides detailed information for each GoHighLevel component.
Creates a new contact record within a specific GoHighLevel location.
This component requires a Location API Key
for authentication.
Field | Type | Required | Notes |
---|
email | string | Yes | The email address of the new contact. |
firstName | string | Optional | The contact's first name. |
lastName | string | Optional | The contact's last name. |
phone | string | Optional | The contact's phone number. |
companyName | string | Optional | The contact's company. |
tags | array | Optional | An array of strings to tag the contact with. |
customField | object | Optional | A key-value object for custom fields. |
Outputs
Field | Type | Description |
---|
id | string | The unique ID of the newly created contact. |
locationId | string | The ID of the location where the contact was created. |
Response | object | The full, raw JSON response from the GoHighLevel API. |
An agent captures lead information from a Facebook Lead Ad and uses this component to automatically create a new contact in GoHighLevel, tagging them as "FB-Lead".
Retrieves a paginated list of all contacts within a location.
This component requires a Location API Key
for authentication.
Field | Type | Required | Notes |
---|
trigger | any | Yes | Any input value to trigger the component's execution. |
limit | integer | Optional | The number of contacts to retrieve per page. Default: 20 . |
Outputs
Field | Type | Description |
---|
contacts | array | An array of contact objects. |
Response | object | The raw JSON response from the API, which includes pagination metadata. |
A data-sync agent runs nightly, uses this component to fetch all contacts, and updates a master customer list in an external database.
Finds contacts by their email address.
This component requires a Location API Key
for authentication.
Field | Type | Required | Notes |
---|
email_query | string | Yes | The email address to search for. |
Outputs
Field | Type | Description |
---|
contacts | array | A list of contact objects matching the query. |
Response | object | The raw JSON response from the API. |
Before creating a new contact, an agent uses this component with the lead's email to check if they already exist, preventing duplicate records.
Finds contacts by their phone number.
This component requires a Location API Key
for authentication.
Field | Type | Required | Notes |
---|
phone_query | string | Yes | The phone number to search for. |
Outputs
Field | Type | Description |
---|
contacts | array | A list of contact objects matching the query. |
Response | object | The raw JSON response from the API. |
When receiving an inbound call, an agent can use the caller's number to search for their contact record and provide the support team with their history.
Retrieves a contact by their unique ID.
This component requires a Location API Key
for authentication.
Field | Type | Required | Notes |
---|
contactId | string | Yes | The ID of the contact to retrieve. |
Outputs
Field | Type | Description |
---|
id | string | The ID of the retrieved contact. |
email | string | The email of the retrieved contact. |
Response | object | The raw JSON response from the API. |
After finding a contact via search, an agent uses their ID with this component to get all their detailed properties.
Updates the fields of an existing contact by their ID.
This component requires a Location API Key
for authentication.
Component-Specific Settings
- Body: A JSON editor where you define the key-value pairs for the fields you want to update (e.g.,
{"phone": "555-987-6543"}
).
Field | Type | Required | Notes |
---|
contactId | string | Yes | The ID of the contact to update. |
email | string | Optional | If provided, will update the contact's email. |
Outputs
Field | Type | Description |
---|
id | string | The ID of the updated contact. |
email | string | The updated email of the contact. |
Response | object | The raw JSON response from the API. |
An agent detects that a customer has updated their company name in your billing system. The agent then uses this component to update the companyName
field on their GoHighLevel contact record.
Permanently deletes a contact by their ID.
This component requires a Location API Key
for authentication.
Field | Type | Required | Notes |
---|
contactId | string | Yes | The ID of the contact to delete. |
Outputs
Field | Type | Description |
---|
Response | object | The raw JSON response from the API, confirming the deletion. |
When a user requests their data be deleted under GDPR, an agent is triggered to remove their record from all systems, including using this component to delete their GoHighLevel contact.
This action permanently deletes the contact and cannot be undone. Use with care.
Get Note
Retrieve a specific note for a contact by ID.
This component requires a Location API Key
for authentication.
Field | Type | Required | Notes |
---|
contactId | string | Yes | The ID of the contact whose note you want to retrieve. |
noteId | string | Yes | The ID of the specific note to retrieve. |
Outputs
Field | Type | Description |
---|
id | string | The ID of the retrieved note. |
body | string | The content of the retrieved note. |
createdAt | string | The creation date of the retrieved note. |
Response | object | The raw JSON response from the API. |
To verify a note's content before taking an action, an agent fetches the specific note using its ID.
Delete Note
Delete a note for a contact by ID.
This component requires a Location API Key
for authentication.
Field | Type | Required | Notes |
---|
contactId | string | Yes | The ID of the contact whose note you want to delete. |
noteId | string | Yes | The ID of the specific note to delete. |
Outputs
Field | Type | Description |
---|
Response | object | A successful deletion returns an empty object. |
Headers | object | HTTP headers detailing the API request-response process. |
A cleanup agent removes temporary or outdated notes from contact records to keep them tidy.
Update Note
Update a contact's note.
This component requires a Location API Key
for authentication.
Field | Type | Required | Notes |
---|
contactId | string | Yes | The ID of the contact whose note you want to update. |
noteId | string | Yes | The ID of the specific note to update. |
body | string | Yes | The updated content of the note. |
Outputs
Field | Type | Description |
---|
id | string | The ID of the updated note. |
body | string | The content of the updated note. |
createdAt | string | The date the note was updated. |
Response | object | The raw JSON response from the API. |
An agent corrects a typo or adds additional information to a previously logged note on a contact's file.
Create Tag
Create a new tag in your location.
This component requires a Location API Key
for authentication.
Field | Type | Required | Notes |
---|
name | string | Yes | The name of the new tag to create. |
Outputs
Field | Type | Description |
---|
id | string | The ID of the newly created tag. |
Response | object | The raw JSON response from the API. |
Before launching a new marketing campaign, an agent creates a new tag (e.g., "Q4-Holiday-Promo") to be applied to all leads from that campaign.
Retrieve all tags available in a location.
This component requires a Location API Key
for authentication.
Field | Type | Required | Notes |
---|
trigger | any | Yes | Any value to trigger execution. |
Outputs
Field | Type | Description |
---|
tags | array | The list of all retrieved tags. |
Response | object | The raw JSON response from the API. |
An agent needs to apply a tag to a contact but only knows the tag's name. It uses this component to get all tags, finds the correct one, and gets its ID for use in the "Add Contact Tags" component.
Get Tag
Retrieve a specific tag by its ID.
This component requires a Location API Key
for authentication.
Field | Type | Required | Notes |
---|
tagId | string | Yes | The ID of the tag to retrieve. |
Outputs
Field | Type | Description |
---|
id | string | The ID of the retrieved tag. |
name | string | The name of the retrieved tag. |
Response | object | The raw JSON response from the API. |
To verify a tag exists before using it in a workflow, an agent fetches its details by its ID.
Update Tag
Update a tag's name by its ID.
This component requires a Location API Key
for authentication.
Field | Type | Required | Notes |
---|
tagId | string | Yes | The ID of the tag to update. |
name | string | Yes | The new name for the tag. |
Outputs
Field | Type | Description |
---|
id | string | The ID of the updated tag. |
name | string | The updated name of the tag. |
Response | object | The raw JSON response from the API. |
An agent renames the "Newsletter-2024" tag to "Newsletter-Archive-2024" as part of an end-of-year cleanup process.
Delete Tag
Delete a tag by its ID.
This component requires a Location API Key
for authentication.
Field | Type | Required | Notes |
---|
tagId | string | Yes | The ID of the tag to delete. |
Outputs
Field | Type | Description |
---|
Response | object | A successful deletion returns an empty response. |
Headers | object | The HTTP headers from the API response. |
An agent removes an old, unused tag from the system to keep the list of available tags clean and relevant.
Get Pipelines
Retrieve all sales pipelines in a location.
This component requires a Location API Key
for authentication.
Field | Type | Required | Notes |
---|
trigger | any | Yes | Any value to trigger execution. |
Outputs
Field | Type | Description |
---|
pipelines | array | The list of pipelines retrieved. |
Response | object | The raw JSON response from the API. |
This is a critical first step for opportunity management. An agent uses this component to find the ID of the "Enterprise Sales" pipeline before creating a new opportunity in it.
Get Opportunity
Retrieve a specific opportunity by its ID.
This component requires a Location API Key
for authentication.
Field | Type | Required | Notes |
---|
pipelineId | string | Yes | The ID of the pipeline containing the opportunity. |
opportunityId | string | Yes | The ID of the specific opportunity to retrieve. |
Outputs
Field | Type | Description |
---|
id | string | The ID of the retrieved opportunity. |
name | string | The name of the retrieved opportunity. |
status | string | The current status of the opportunity (open , won , lost ). |
Response | object | The raw JSON response from the API. |
Before taking an action, an agent fetches an opportunity's details to check its current status and monetary value.
Delete Opportunity
Delete an opportunity by its ID.
This component requires a Location API Key
for authentication.
Field | Type | Required | Notes |
---|
pipelineId | string | Yes | The ID of the pipeline associated with the opportunity. |
opportunityId | string | Yes | The ID of the opportunity to delete. |
Outputs
Field | Type | Description |
---|
Response | object | The raw JSON response from the API. |
A cleanup agent deletes duplicate or erroneously created opportunities from the sales pipeline.
Update Opportunity Status and Stage
Updates an opportunity's status and stage within a pipeline.
This component requires a Location API Key
for authentication.
Field | Type | Required | Notes |
---|
pipelineId | string | Yes | The ID of the pipeline associated with the opportunity. |
opportunityId | string | Yes | The ID of the opportunity to update. |
status | string | Yes | The new status (open , won , or lost ). |
stageId | string | Yes | The ID of the new stage within the pipeline. |
Outputs
Field | Type | Description |
---|
Response | object | The raw JSON response from the API. |
When a contract is signed, an agent is triggered to update the corresponding opportunity's status to "won".
Get Task
Retrieves a specific task for a contact by its ID.
This component requires a Location API Key
for authentication.
Field | Type | Required | Notes |
---|
contactId | string | Yes | The ID of the contact the task belongs to. |
taskId | string | Yes | The ID of the task to retrieve. |
Outputs
Field | Type | Description |
---|
id | string | The ID of the retrieved task. |
title | string | The title of the task. |
isCompleted | boolean | The completion status of the task. |
Response | object | The raw JSON response from the API. |
An agent checks if a follow-up task is already completed before sending a reminder notification.
Update Task
Updates the title, description, and due date of a task.
This component requires a Location API Key
for authentication.
Field | Type | Required | Notes |
---|
contactId | string | Yes | The ID of the contact the task belongs to. |
taskId | string | Yes | The ID of the task to update. |
title | string | Yes | The new title for the task. |
dueDate | string | Yes | The new due date for the task. |
description | string | Optional | The new description for the task. |
Outputs
Field | Type | Description |
---|
id | string | The ID of the updated task. |
title | string | The updated title of the task. |
Response | object | The raw JSON response from the API. |
If a meeting is rescheduled, an agent finds the related task and updates its dueDate
to match the new meeting time.
Update Task Status
Updates a task's status to either completed
or incompleted
.
This component requires a Location API Key
for authentication.
Field | Type | Required | Notes |
---|
contactId | string | Yes | The ID of the contact the task belongs to. |
taskId | string | Yes | The ID of the task to update. |
status | string | Yes | The new status: completed or incompleted . |
Outputs
Field | Type | Description |
---|
id | string | The ID of the updated task. |
isCompleted | boolean | The new completion status of the task. |
Response | object | The raw JSON response from the API. |
When a user replies to a follow-up email, an agent marks the corresponding "Send follow-up" task as completed
.
Delete Task
Deletes a task for a contact.
This component requires a Location API Key
for authentication.
Field | Type | Required | Notes |
---|
contactId | string | Yes | The ID of the contact the task belongs to. |
taskId | string | Yes | The ID of the task to delete. |
Outputs
Field | Type | Description |
---|
Response | object | The raw JSON response from the API. |
An agent deletes an automatically created reminder task once the main action has been completed.
Get Campaigns
Retrieves all marketing campaigns in a location.
This component requires a Location API Key
for authentication.
Field | Type | Required | Notes |
---|
trigger | any | Yes | Any value to trigger execution. |
Outputs
Field | Type | Description |
---|
campaigns | array | A parsed list of campaigns. |
Response | object | The raw JSON response from the API. |
A marketing agent retrieves all campaigns to analyze their statuses and performance metrics.
Find User by Email
Finds a user by their email address. This component requires an Agency-level API Key.
This component requires an Agency API Key
for authentication.
Field | Type | Required | Notes |
---|
email | string | Yes | The email address of the user to find. |
Outputs
Field | Type | Description |
---|
id | string | The ID of the user found. |
Response | object | The raw JSON response from the API. |
An admin agent needs to get a team member's user ID to add them to a new sub-account.
Get All Agency Users
Retrieves all users in an agency. This component requires an Agency-level API Key.
This component requires an Agency API Key
for authentication.
Field | Type | Required | Notes |
---|
trigger | any | Yes | Any value to trigger execution. |
Outputs
Field | Type | Description |
---|
users | array | A list of all user objects in the agency. |
Response | object | The raw JSON response from the API. |
A security agent runs monthly to get a list of all agency users for an access audit.
Get Agency User
Retrieves a specific agency user by their ID. This component requires an Agency-level API Key.
This component requires an Agency API Key
for authentication.
Field | Type | Required | Notes |
---|
userId | string | Yes | The ID of the user to retrieve. |
Outputs
Field | Type | Description |
---|
id | string | The ID of the user. |
firstName | string | The first name of the user. |
lastName | string | The last name of the user. |
Response | object | The raw JSON response from the API. |
An agent gets a user's name and role for a permissions report.
Get Location Users
Retrieves all users assigned to a specific location (sub-account).
This component requires a Location API Key
for authentication.
Field | Type | Required | Notes |
---|
trigger | any | Yes | Any value to trigger execution. |
Outputs
Field | Type | Description |
---|
users | array | A list of user objects in the location. |
Response | object | The raw JSON response from the API. |
To assign a task, an agent first gets all users in the specific location to find the correct assignee ID.
Retrieves all appointments for a specific contact.
This component requires a Location API Key
for authentication.
Field | Type | Required | Notes |
---|
contactId | string | Yes | The ID of the contact whose appointments you want to retrieve. |
Outputs
Field | Type | Description |
---|
Response | object | The raw JSON response containing a list of appointment objects. |
Before scheduling a new call, an agent checks the contact's existing appointments to avoid double-booking.
Removes a contact from all campaigns.
This component requires a Location API Key
for authentication.
Field | Type | Required | Notes |
---|
contactId | string | Yes | The ID of the contact to remove from all campaigns. |
Outputs
Field | Type | Description |
---|
Response | object | The raw JSON response from the API. |
When a contact replies "STOP" to a marketing message, an agent is triggered to remove them from all future campaigns to honor their request.
Get Note
Retrieve a specific note for a contact by ID.
This component requires a Location API Key
for authentication.
Field | Type | Required | Notes |
---|
contactId | string | Yes | The ID of the contact whose note you want to retrieve. |
noteId | string | Yes | The ID of the specific note to retrieve. |
Outputs
Field | Type | Description |
---|
id | string | The ID of the retrieved note. |
body | string | The content of the retrieved note. |
createdAt | string | The creation date of the retrieved note. |
Response | object | The raw JSON response from the API. |
To verify a note's content before taking an action, an agent fetches the specific note using its ID.
Delete Note
Deletes a note for a contact by its ID.
This component requires a Location API Key
for authentication.
Field | Type | Required | Notes |
---|
contactId | string | Yes | The ID of the contact whose note you want to delete. |
noteId | string | Yes | The ID of the specific note to delete. |
Outputs
Field | Type | Description |
---|
Response | object | A successful deletion returns an empty object. |
Headers | object | HTTP headers detailing the API request-response process. |
A cleanup agent removes temporary or outdated notes from contact records to keep them tidy.
Update Note
Updates the content of a contact's note.
This component requires a Location API Key
for authentication.
Field | Type | Required | Notes |
---|
contactId | string | Yes | The ID of the contact whose note you want to update. |
noteId | string | Yes | The ID of the specific note to update. |
body | string | Yes | The updated content of the note. |
Outputs
Field | Type | Description |
---|
id | string | The ID of the updated note. |
body | string | The content of the updated note. |
createdAt | string | The date the note was updated. |
Response | object | The raw JSON response from the API. |
An agent corrects a typo or adds additional information to a previously logged note on a contact's file.
Create Tag
Creates a new tag in your location.
This component requires a Location API Key
for authentication.
Field | Type | Required | Notes |
---|
name | string | Yes | The name of the new tag to create. |
Outputs
Field | Type | Description |
---|
id | string | The ID of the newly created tag. |
Response | object | The raw JSON response from the API. |
Before launching a new marketing campaign, an agent creates a new tag (e.g., "Q4-Holiday-Promo") to be applied to all leads from that campaign.
Retrieves all tags available in a location.
This component requires a Location API Key
for authentication.
Field | Type | Required | Notes |
---|
trigger | any | Yes | Any value to trigger execution. |
Outputs
Field | Type | Description |
---|
tags | array | The list of all retrieved tags. |
Response | object | The raw JSON response from the API. |
An agent needs to apply a tag to a contact but only knows the tag's name. It uses this component to get all tags, finds the correct one, and gets its ID for use in the "Add Contact Tags" component.
Get Tag
Retrieves a specific tag by its ID.
This component requires a Location API Key
for authentication.
Field | Type | Required | Notes |
---|
tagId | string | Yes | The ID of the tag to retrieve. |
Outputs
Field | Type | Description |
---|
id | string | The ID of the retrieved tag. |
name | string | The name of the retrieved tag. |
Response | object | The raw JSON response from the API. |
To verify a tag exists before using it in a workflow, an agent fetches its details by its ID.
Update Tag
Updates a tag's name by its ID.
This component requires a Location API Key
for authentication.
Field | Type | Required | Notes |
---|
tagId | string | Yes | The ID of the tag to update. |
name | string | Yes | The new name for the tag. |
Outputs
Field | Type | Description |
---|
id | string | The ID of the updated tag. |
name | string | The updated name of the tag. |
Response | object | The raw JSON response from the API. |
An agent renames the "Newsletter-2024" tag to "Newsletter-Archive-2024" as part of an end-of-year cleanup process.
Delete Tag
Deletes a tag by its ID.
This component requires a Location API Key
for authentication.
Field | Type | Required | Notes |
---|
tagId | string | Yes | The ID of the tag to delete. |
Outputs
Field | Type | Description |
---|
Response | object | A successful deletion returns an empty response. |
Headers | object | The HTTP headers from the API response. |
An agent removes an old, unused tag from the system to keep the list of available tags clean and relevant.
Get Pipelines
Retrieves all sales pipelines in a location.
This component requires a Location API Key
for authentication.
Field | Type | Required | Notes |
---|
trigger | any | Yes | Any value to trigger execution. |
Outputs
Field | Type | Description |
---|
pipelines | array | The list of retrieved pipelines. |
Response | object | The raw JSON response from the API. |
This is a critical first step for opportunity management. An agent uses this component to find the ID of the "Enterprise Sales" pipeline before creating a new opportunity in it.
Get Opportunity
Retrieves a specific opportunity by its ID.
This component requires a Location API Key
for authentication.
Field | Type | Required | Notes |
---|
pipelineId | string | Yes | The ID of the pipeline containing the opportunity. |
opportunityId | string | Yes | The ID of the specific opportunity to retrieve. |
Outputs
| Field | Type | Description |
|-------|------|----------|-------------|
| id
| string | The ID of the retrieved opportunity. |
| name
| string | The name of the retrieved opportunity. |
| status
| string | The current status of the opportunity (open
, won
, lost
). |
| Response
| object | The raw JSON response from the API. |
Before taking an action, an agent fetches an opportunity's details to check its current status and monetary value.
Delete Opportunity
Deletes an opportunity by its ID.
This component requires a Location API Key
for authentication.
Field | Type | Required | Notes |
---|
pipelineId | string | Yes | The ID of the pipeline associated with the opportunity. |
opportunityId | string | Yes | The ID of the opportunity to delete. |
Outputs
Field | Type | Description |
---|
Response | object | The raw JSON response from the API. |
A cleanup agent deletes duplicate or erroneously created opportunities from the sales pipeline.
Update Opportunity Status and Stage
Updates an opportunity's status and stage within a pipeline.
This component requires a Location API Key
for authentication.
Field | Type | Required | Notes |
---|
pipelineId | string | Yes | The ID of the pipeline associated with the opportunity. |
opportunityId | string | Yes | The ID of the opportunity to update. |
status | string | Yes | The new status (open , won , or lost ). |
stageId | string | Yes | The ID of the new stage within the pipeline. |
Outputs
Field | Type | Description |
---|
Response | object | The raw JSON response from the API. |
When a contract is signed, an agent is triggered to update the corresponding opportunity's status to "won".
Get Task
Retrieves a specific task for a contact by its ID.
This component requires a Location API Key
for authentication.
Field | Type | Required | Notes |
---|
contactId | string | Yes | The ID of the contact the task belongs to. |
taskId | string | Yes | The ID of the task to retrieve. |
Outputs
Field | Type | Description |
---|
id | string | The ID of the retrieved task. |
title | string | The title of the task. |
isCompleted | boolean | The completion status of the task. |
Response | object | The raw JSON response from the API. |
An agent checks if a follow-up task is already completed before sending a reminder notification.
Update Task
Updates the title, description, and due date of a task.
This component requires a Location API Key
for authentication.
Field | Type | Required | Notes |
---|
contactId | string | Yes | The ID of the contact the task belongs to. |
taskId | string | Yes | The ID of the task to update. |
title | string | Yes | The new title for the task. |
dueDate | string | Yes | The new due date for the task. |
description | string | Optional | The new description for the task. |
Outputs
Field | Type | Description |
---|
id | string | The ID of the updated task. |
title | string | The updated title of the task. |
Response | object | The raw JSON response from the API. |
If a meeting is rescheduled, an agent finds the related task and updates its dueDate
to match the new meeting time.
Update Task Status
Updates a task's status to either completed
or incompleted
.
This component requires a Location API Key
for authentication.
Field | Type | Required | Notes |
---|
contactId | string | Yes | The ID of the contact the task belongs to. |
taskId | string | Yes | The ID of the task to update. |
status | string | Yes | The new status: completed or incompleted . |
Outputs
Field | Type | Description |
---|
id | string | The ID of the updated task. |
isCompleted | boolean | The new completion status of the task. |
Response | object | The raw JSON response from the API. |
When a user replies to a follow-up email, an agent marks the corresponding "Send follow-up" task as completed
.
Delete Task
Deletes a task for a contact.
This component requires a Location API Key
for authentication.
Field | Type | Required | Notes |
---|
contactId | string | Yes | The ID of the contact the task belongs to. |
taskId | string | Yes | The ID of the task to delete. |
Outputs
Field | Type | Description |
---|
Response | object | The raw JSON response from the API. |
An agent deletes an automatically created reminder task once the main action has been completed.
Get Campaigns
Retrieves all marketing campaigns in a location.
This component requires a Location API Key
for authentication.
Field | Type | Required | Notes |
---|
trigger | any | Yes | Any value to trigger execution. |
Outputs
Field | Type | Description |
---|
campaigns | array | A parsed list of campaigns. |
Response | object | The raw JSON response from the API. |
A marketing agent retrieves all campaigns to analyze their statuses and performance metrics.
Find User by Email
Finds a user by their email address. This component requires an Agency-level API Key.
This component requires an Agency API Key
for authentication.
Field | Type | Required | Notes |
---|
email | string | Yes | The email address of the user to find. |
Outputs
Field | Type | Description |
---|
id | string | The ID of the user found. |
Response | object | The raw JSON response from the API. |
An admin agent needs to get a team member's user ID to add them to a new sub-account.
Get All Agency Users
Retrieves all users in an agency. This component requires an Agency-level API Key.
This component requires an Agency API Key
for authentication.
Field | Type | Required | Notes |
---|
trigger | any | Yes | Any value to trigger execution. |
Outputs
Field | Type | Description |
---|
users | array | A list of all user objects in the agency. |
Response | object | The raw JSON response from the API. |
A security agent runs monthly to get a list of all agency users for an access audit.
Get Agency User
Retrieves a specific agency user by their ID. This component requires an Agency-level API Key.
This component requires an Agency API Key
for authentication.
Field | Type | Required | Notes |
---|
userId | string | Yes | The ID of the user to retrieve. |
Outputs
Field | Type | Description |
---|
id | string | The ID of the user. |
firstName | string | The first name of the user. |
lastName | string | The last name of the user. |
Response | object | The raw JSON response from the API. |
An agent gets a user's name and role for a permissions report.
Get Location Users
Retrieves all users assigned to a specific location (sub-account).
This component requires a Location API Key
for authentication.
Field | Type | Required | Notes |
---|
trigger | any | Yes | Any value to trigger execution. |
Outputs
Field | Type | Description |
---|
users | array | A list of user objects in the location. |
Response | object | The raw JSON response from the API. |
To assign a task, an agent first gets all users in the specific location to find the correct assignee ID.
Retrieves all appointments for a specific contact.
This component requires a Location API Key
for authentication.
Field | Type | Required | Notes |
---|
contactId | string | Yes | The ID of the contact whose appointments you want to retrieve. |
Outputs
Field | Type | Description |
---|
Response | object | The raw JSON response containing a list of appointment objects. |
Before scheduling a new call, an agent checks the contact's existing appointments to avoid double-booking.
Removes a contact from all campaigns.
This component requires a Location API Key
for authentication.
Field | Type | Required | Notes |
---|
contactId | string | Yes | The ID of the contact to remove from all campaigns. |
Outputs
Field | Type | Description |
---|
Response | object | The raw JSON response from the API. |
When a contact replies "STOP" to a marketing message, an agent is triggered to remove them from all future campaigns to honor their request.
Create Note
Adds a new note to a specific contact's record.
This component requires a Location API Key
for authentication.
Field | Type | Required | Notes |
---|
contactId | string | Yes | The ID of the contact to which the note will be added. |
body | string | Yes | The text content of the note. |
Outputs
Field | Type | Description |
---|
id | string | The unique ID of the created note. |
body | string | The content of the created note. |
createdAt | string | The timestamp indicating when the note was created. |
Response | object | The raw JSON response from the API. |
After a sales call, an agent takes the call summary and uses this component to log it as a new note on the customer's contact record for future reference.
Retrieves all tasks associated with a specific contact.
This component requires a Location API Key
for authentication.
Field | Type | Required | Notes |
---|
contactId | string | Yes | The ID of the contact whose tasks you want to retrieve. |
Outputs
Field | Type | Description |
---|
tasks | array | A parsed list of task objects associated with the contact. |
Response | object | The raw JSON response from the API. |
A customer success agent, before a check-in call, uses this component to retrieve all open tasks for a contact to get a full picture of ongoing activities.
Get Opportunity
Retrieves a specific opportunity by its ID.
This component requires a Location API Key
for authentication.
Field | Type | Required | Notes |
---|
pipelineId | string | Yes | The ID of the pipeline containing the opportunity. |
opportunityId | string | Yes | The ID of the specific opportunity to retrieve. |
Outputs
Field | Type | Description |
---|
id | string | The ID of the retrieved opportunity. |
name | string | The name of the retrieved opportunity. |
status | string | The current status of the opportunity (open , won , lost ). |
Response | object | The raw JSON response from the API. |
Before taking an action, an agent fetches an opportunity's details to check its current status and monetary value.
Delete Opportunity
Deletes an opportunity by its ID.
This component requires a Location API Key
for authentication.
Field | Type | Required | Notes |
---|
pipelineId | string | Yes | The ID of the pipeline associated with the opportunity. |
opportunityId | string | Yes | The ID of the opportunity to delete. |
Outputs
Field | Type | Description |
---|
Response | object | The raw JSON response from the API. |
Headers | object | HTTP headers detailing the API request-response process. |
A cleanup agent deletes duplicate or erroneously created opportunities from the sales pipeline.
Create Opportunity
Creates a new opportunity (deal) in a pipeline.
This component requires a Location API Key
for authentication.
Field | Type | Required | Notes |
---|
pipelineId | string | Yes | The ID of the pipeline where the opportunity will be created. |
title | string | Yes | The title or name of the opportunity. |
status | string | Yes | The initial status (open , won , or lost ). Default is open . |
stageId | string | Yes | The ID of the pipeline stage for the new opportunity. |
contactId | string | Yes | The ID of the contact to associate with the opportunity. |
monetaryValue | float | Optional | The monetary value of the opportunity. |
source | string | Optional | The source of the opportunity lead. |
Outputs
Field | Type | Description |
---|
id | string | The ID of the created opportunity. |
name | string | The name of the created opportunity. |
pipelineId | string | The ID of the pipeline the opportunity belongs to. |
pipelineStageId | string | The ID of the stage the opportunity is in. |
Response | object | The raw JSON response from the API. |
After a contact books a demo, an agent automatically creates a new opportunity for them in the "New Leads" pipeline stage.
Update Opportunity
Updates an existing opportunity's properties.
This component requires a Location API Key
for authentication.
Field | Type | Required | Notes |
---|
pipelineId | string | Yes | The ID of the pipeline associated with the opportunity. |
opportunityId | string | Yes | The ID of the opportunity to update. |
title | string | Yes | The new title for the opportunity. |
status | string | Yes | The new status (open , won , or lost ). |
stageId | string | Yes | The new stage ID for the opportunity. |
Outputs
Field | Type | Description |
---|
id | string | The ID of the updated opportunity. |
pipelineId | string | The associated pipeline ID. |
status | string | The current status of the updated opportunity. |
Response | object | The raw JSON response from the API. |
When a contract is sent, an agent updates the associated opportunity's stage to "Contract Sent".
Best Practices & Advanced Tips
- Secure Your API Keys: Always store your GoHighLevel API Keys in the SmythOS
Vault
. Remember that Location keys and Agency keys have different levels of access.
- Understand the GHL Hierarchy: GoHighLevel is structured into Agencies, which contain Locations (sub-accounts). Most day-to-day operations (like managing contacts and opportunities) happen at the Location level and require a Location API Key.
- Use Search Before Create: To avoid creating duplicate contacts, it's a best practice to use the
Search Contact By Email
component first. If no contact is found, then proceed to Create Contact
.
- Dynamic Workflows: Use the "Get" components (like
Get Pipelines
or Get All Tags
) to programmatically find the IDs you need for "Create" or "Update" actions, making your agents more robust and less reliant on hardcoded IDs.
Troubleshooting Common Issues
What's Next?
You are now ready to build powerful sales and marketing automations with the SmythOS GoHighLevel Integration!
Consider these ideas: