When building marketing tools or CRM integrations on top of HubSpot, understanding how to work with lists—and how to embed them into dashboards, forms, and external apps—is essential.
We’ll dig into how to embed a list in HubSpot, the nuances of static vs active list HubSpot, leveraging the HubSpot List API, and how to handle real-world use cases such as embedding lists into forms or external dashboards.
In practical terms, “embedding” a list refers to making HubSpot list data available and interactive in an external interface (like a dashboard, website, or app) or internally within a HubSpot portal (like inside custom forms or reports).
Lists in HubSpot are often used to power segmentation logic, email targeting, automation triggers, and reporting slices.
So being able to interact with or display this data opens the door to much richer experiences.
Before diving into embedding, its important to understand the two types of HubSpot lists:
Static Lists
These are snapshot lists. Once contacts are added, they remain until manually removed. Ideal for one-time campaigns or imports.
Active Lists
These are dynamic and rule-based. Contacts enter or exit automatically based on filters (e.g., lifecycle stage, activity, form submission).
Why this matters?
Static lists can be embedded more easily as they don’t change, while active lists require real-time syncing if used in external apps or forms.
If you’re building a custom admin interface, BI dashboard, or internal tool that should reflect list membership:
Use OAuth 2.0 or a Private App Token for API access. HubSpot recent token system is preferred for server-side integrations.
Authorization: Bearer YOUR_PRIVATE_APP_TOKEN
GET /contacts/v1/lists
Host: api.hubapi.com
This will return all static and active lists.
To get the contacts in a list:
GET /contacts/v1/lists/:list_id/contacts/all
You can now parse and display the contact data using frameworks like React, Vue, or even server-side rendered dashboards.
Always cache API responses if you’re working with active lists, as refreshing in real time can lead to API rate limits.
If you’re trying to embed a list in a HubSpot form on a website, you’re likely trying to:
Add contacts to a specific list upon form submission.
Dynamically change form behavior based on list membership.
While you can’t directly map a form to a list, you can create a workflow that triggers from form submissions and adds the contact to a static list.
Trigger: Form Submission → Action: Add to List
Using embedded HubSpot forms with conditional logic based on list properties requires external logic. Example:
Use the List API to determine contact list membership server-side.
Load a custom form version based on the result.
Pass hidden fields to workflows or additional lists.
Note: HubSpot does not support embedding list membership logic directly inside form field conditions. You’ll need to bridge this with external scripts.
If your goal is to embed a list in a HubSpot dashboard, such as showing a specific list performance inside a report:
Navigate to Reports > Dashboards.
Create a Custom Report and filter by List Membership.
Save and add to any HubSpot dashboard module.
This is useful for showing performance (open rate, lifecycle progress) for just a specific campaign cohort.
For programmatic use, HubSpot Analytics API can give you stats by list if you tag emails or campaigns with custom UTM parameters that match list names.
One of the common developer FAQs is: How do you remove a contact from an active list in HubSpot?
You don’t directly remove contacts from active lists. Instead, you update the property that used in the list filter criteria so that the contact no longer qualifies.
For example, if the list is based on “Lifecycle stage is Lead”, and you update it to “Customer”, HubSpot removes them automatically.
Use the Contact Update API:
PATCH /contacts/v1/contact/vid/:vid/profile
{
"lifecyclestage": "customer"
}
Unfortunately, you cannot convert a static list to active directly in HubSpot. The workaround is:
Create a new active list.
Use the same filters you would’ve applied manually to the static list.
Delete or archive the static list if not needed.
Theres no API method to auto-convert a static list into an active one either, so this must be manually configured.
If you’re trying to embed a list in HubSpot import email template, you probably want to send emails only to contacts in a particular list. This is natively supported:
Open your email template.
Under Recipients, choose the list you want to target.
Send or schedule.
However, embedding list data inside the email content (e.g., dynamic personalization based on list) is not directly possible. You can workaround by tagging contacts via custom properties and using smart content blocks.
Here are a few powerful integrations to consider:
n8n / Zapier + HubSpot List API
Add or remove contacts based on external actions (e.g., Stripe payment, webinar registration).
CRM Sync
Automatically sync contacts into static lists from Salesforce or Odoo based on stage or activity.
Slack + HubSpot
Post notifications in Slack when a list size crosses a threshold (e.g., “VIP Users list > 100 contacts”).
HubSpot lists are much more than static segments. With a bit of creativity and API fluency, you can:
Power external dashboards with live campaign segments.
Trigger workflows and sync across apps.
Dynamically adjust forms and contact journeys based on real-time segmentation.
For engineers building advanced CRM flows, embedding a list in HubSpot—whether visually, programmatically, or operationally—offers a versatile tool in the HubSpot developer toolkit.
If you’re interested in implementing custom list integrations or need advice on performance trade-offs between static vs active lists, feel free to reach out. I’m happy to share code samples or workflow patterns.
How do I load a list into HubSpot free?