What Is the Difference Between a Contact and an Opportunity in GoHighLevel?
Quick answer
A contact is a person record: name, phone, email, tags, custom fields and DND status. An opportunity is one potential deal for that person, with a pipeline, a stage, a status and a value. One contact can carry several opportunities when Allow Multiple Opportunities per Contact is on. A Smart List is a saved filter over contacts, not a separate list.
Part of the guide: GoHighLevel setup guide
Key takeaways
- HighLevel's chain is Contact > Opportunity > Pipeline > Stage. The contact is the person, the opportunity is one potential deal, the pipeline is the sales process and the stage is the step the deal is in.
- An opportunity has one of four default statuses: Open, Won, Lost or Abandoned. A contact has no deal status of its own.
- One contact can have many opportunities. In the same pipeline that needs Sub-Account Settings > Objects > Opportunities > Allow Multiple Opportunities per Contact switched on.
- A Smart List is a dynamic filter over contacts. Contacts join and leave it automatically as they match or stop matching, and you cannot add contacts to it by hand.
- Contact-level things (tags, custom fields, DND, Smart Lists) belong to the person. Deal-level things (value, stage, status, owner) belong to the opportunity.
In GoHighLevel, a contact is the person and an opportunity is one potential deal with that person. The contact holds who they are and how you may reach them. The opportunity holds where a specific sale stands: pipeline, stage, status, value and owner. One person can have many opportunities. This page lays out the data model, shows a worked example, and explains Smart Lists and pipelines, so you can decide which record a piece of data belongs on.
Checked on October 15, 2026 against HighLevel’s help articles on opportunities, pipelines, multiple opportunities per contact, Smart Lists, Advanced Filters and contact deduplication. Most carry no date. HighLevel changes screens often, so confirm menu names in your account.
What is the difference between a contact and an opportunity in GoHighLevel?
HighLevel’s pipeline setup guide gives the structure in one line: Contact > Opportunity > Pipeline > Stage. Its example: a contact named John Smith might have an opportunity in your Sales Pipeline currently sitting in the Booked Call stage.
| Contact | Opportunity | |
|---|---|---|
| What it is | A person (or lead, customer) | One potential sale or deal |
| Lives in | Contacts | Opportunities, inside a pipeline |
| Holds | Name, email, phone, tags, custom fields, conversations, DND status | Pipeline, stage, status, deal value, owner, source, notes, tasks |
| Has a deal status? | No, the deal status lives on the opportunity | Yes: Open, Won, Lost or Abandoned |
| How many per person | One (duplicates are controlled by a setting) | One or many, depending on a setting |
| Typical filter | Smart Lists | Pipeline and Advanced Filters in Opportunities |
| Workflow triggers | Contact Created, Contact Tag, DND changes | Opportunity Created, stage change, status change |
Sources: HighLevel Support articles on opportunities, pipelines and contacts, checked October 15, 2026.
What is an opportunity in GoHighLevel?
HighLevel’s opportunities article defines opportunities as “records that represent a potential sale or deal at any point in your pipeline, from a brand-new lead to a signed contract.” Each one stores the prospect’s contact information, the deal value and historical notes. It moves through stages inside a pipeline. A contact becomes an opportunity “when there’s a prospect of a sale or deal associated with that contact and it is added to a sales pipeline.”
The four default statuses:
- Open: still being pursued.
- Won: converted into a sale or contract.
- Lost: the lead went elsewhere or declined.
- Abandoned: neglected, with no follow-up planned.
Opportunities can fire workflows when created, when they move stages and when their status changes. You can create them three ways: manually (Opportunities > Add opportunity), by CSV import (Opportunities > Import) or by a workflow with the Create/Update Opportunity action.
What is a pipeline in GoHighLevel?
A pipeline is “the overall sales process you want to track.” Stages are the steps within it, such as New Lead, Booked Call or Closed. To build one, go to Opportunities > Pipelines > Create New Pipeline, fill in the name and stages and save. HighLevel’s suggested example stages are New Lead, Hot Lead, Booked Call, No Show, Delayed, Closed and Non-responsive, and it says your stages should reflect your actual sales steps. Our pipeline and contact setup guide walks through the build order, custom fields, tags and CSV import, so this page does not repeat it.
What is a Smart List in GoHighLevel?
A Smart List is a dynamic contact list. HighLevel’s Smart Lists article says it “updates automatically based on predefined filters and conditions,” unlike a static list that changes only when you edit it. Find it under Contacts > Smart Lists and create one with + Add smart list. Pick filters, click Apply, add more with AND, then click Create.
Four facts people trip over, all from that article:
- You cannot add contacts to a Smart List by hand. A contact joins when it matches the filters. Adding a matching tag is enough.
- Smart Lists are dynamic at send time. An email campaign scheduled to a Smart List uses the list as it stands when it sends, not when you scheduled it.
- Smart Lists are created at the user level. Users can push theirs to the full account to make them visible to everyone.
- The article says no feature moves a Smart List between accounts or into a snapshot.
Smart Lists can filter on opportunity data, such as pipeline and stage, but the list still holds contacts. DND filters are also available, and what DND does is covered on its own page.
Can one contact have many opportunities?
Yes. HighLevel’s multiple opportunities article describes a sub-account setting, Allow Multiple Opportunities per Contact, that allows more than one opportunity per contact in the same pipeline. It suits renewals, add-ons, parallel product lines and multi-location services.
To turn it on: Sub-Account Settings > Objects > Opportunities, toggle Allow Multiple Opportunities per Contact on and click Save changes. Then test by creating two opportunities for one contact in the same pipeline.
What the article says about edge cases:
| Question | Answer from HighLevel |
|---|---|
| Does turning it on change existing cards? | No. Existing opportunity cards stay as they are |
| What if I turn it off later? | Existing cards are not deleted. New duplicate opportunities for the same contact in the same pipeline are restricted. Review automations for create or update errors |
| Different pipelines with the setting off? | The setting governs same-contact duplicates within one pipeline. For cross-pipeline behavior, test your workflow logic |
| Will forecasts double count? | Forecasts and pipeline totals reflect all open opportunities |
| How do workflows hit the right card? | Use the Find Opportunity action (earliest, latest or condition-based) and set entry filters to avoid re-entry |
| Same as Duplicate Opportunity in a workflow step? | No. The workflow option controls that action only. The setting controls whether the CRM allows multiple cards |
Worked example: one contact, two opportunities
This example is illustrative, not a customer record. It shows where each piece of data lives.
Contact: Maria Lopez
Phone, email, tags such as "Customer" and "Consent: web form", a custom field for preferred contact time, SMS DND off. One record, one conversation thread, no deal value.
Opportunity 1: Kitchen remodel
Sales Pipeline, stage Booked Call, status Open, value $18,000 (illustrative), owner: estimator. Notes and tasks about the estimate live here.
Opportunity 2: Annual maintenance plan
Same pipeline, stage New Lead, status Open, value $600 (illustrative). It exists because Allow Multiple Opportunities per Contact is on. Without it, the second card would be restricted.
What this setup gives you: Maria gets one text thread and one set of tags, so, because DND is a setting on the contact and not on the deal, a STOP reply should stop texts for both deals (our reading of how DND works, not a line from HighLevel’s docs, so test it in a sandbox sub-account). Each deal has its own stage, so winning the remodel does not close the maintenance plan. A pipeline report counts both open values, which is correct, but a dashboard that counts people will not match one that counts cards. You find her opportunities on the contact record’s Opportunities tab in the right panel.
If a workflow triggers on a stage change and Maria has two cards, make sure the workflow acts on the right one. Add a Find Opportunity step and filter entry, per HighLevel’s guidance.
Which data goes on the contact and which on the opportunity?
| Data | Put it on | Why |
|---|---|---|
| Name, phone, email, address, time zone | Contact | It describes the person, and messaging reads it |
| Consent source, opt-in date, DND | Contact | Opt-outs apply to the person on a channel, not to one deal |
| Tags that drive Smart Lists | Contact | Smart Lists filter contacts |
| Deal value, close date, lost reason | Opportunity | It differs per deal |
| Pipeline stage, status | Opportunity | A person can be Won on one deal and Open on another |
| Product or service interested in | Opportunity custom field | HighLevel supports custom fields on opportunities, with its own Lost Reason field |
| Business-wide text such as hours or booking link | Custom values, not a record | See our custom values guide |
One more link in the chain: contact deduplication. HighLevel’s duplicate contacts article says that with duplicates off, matching email or phone on a form, Zapier or Facebook and Instagram Messenger submission updates the existing contact instead of creating a new one. That keeps one contact per person, which is what lets several opportunities hang off one record. CSV uploads dedupe by phone or email separately.
What about an opportunity with several contacts?
Opportunities can also have extra people. HighLevel’s Opportunities FAQ says you add them in the Additional Contacts field. Rules from the FAQ: a primary contact cannot also be an additional contact on the same opportunity, you can add a maximum of 10 additional contacts, and lists and workflows keep working only on the primary contact. If the Allow Duplicate Opportunities setting is off, one contact cannot be added to two different opportunities’ primary or additional contact lists.
Want the pipeline built to match your sales process?
Contacts, pipelines and Smart Lists are easy to create and easy to mis-model. Duplicate cards, wrong triggers and unused stages cost more later than a planned build now. aibrevo works with its partner company autoesta, whose team delivers GoHighLevel builds. See our GoHighLevel implementation service.
Sources
- HighLevel Support, Getting Started: Setup Pipelines and Opportunities, undated, checked October 15, 2026: Contact > Opportunity > Pipeline > Stage, pipeline creation, import and workflow creation.
- HighLevel Support, A Guide to Understanding Opportunities in HighLevel, undated, checked October 15, 2026: definition and four statuses.
- HighLevel Support, Allow Multiple Opportunities per Contact, undated, checked October 15, 2026: setting path and FAQ.
- HighLevel Support, Opportunities FAQs, undated, checked October 15, 2026: additional contacts, 60-day audit log, Opportunities tab on the contact record.
- HighLevel Support, How to Create and Manage Smart Lists, undated, checked October 15, 2026: Smart List behavior and steps.
- HighLevel Support, Advanced Filters in Smart Lists, undated, checked October 15, 2026: filter fields, including opportunity and DND data.
- HighLevel Support, Allow Duplicate Contacts (Contact Deduplication Preferences), undated, checked October 15, 2026: duplicate handling by source.