In the rounds of updates and features that HubSpot is shipping, in late 2024, they added an object library. This library contains four new and optionally activated objects: Appointments, Courses, Listings (property), and Services.
In this article, I want to focus on the course object, which has multiple use cases. The most apparent are internal training courses and employee onboarding. So, let’s get into it.
How to fully set up your HubSpot Courses Object
If you want to use the custom object for courses in HubSpot CRM, you would need several key properties to manage and track course-related information effectively. Here are some essential properties to consider:
Core Course Information
Course Name: This is the primary display property that identifies the course. It's crucial for quick recognition and searching.
Course Code: A unique identifier for each course, useful for internal reference and integration with other systems.
Description: A detailed overview of the course content, objectives, and target audience.
Duration: The length of the course, which could be in hours, days, or weeks.
Scheduling and Logistics
Start Date and End Date: For scheduling purposes and to track course offerings over time.
Location: Whether it's a physical venue or an online platform for virtual courses.
Capacity: The maximum number of participants allowed crucial for managing registrations.
Instructor(s): The name(s) of the course instructor(s), which can be linked to a separate instructor object if needed.
Financial Information
Price: The cost of the course, which may vary based on different factors.
Discounts: Any applicable discounts or promotional offers.
Course Details
Prerequisites: Any required prior knowledge or courses that participants should have.
Syllabus: A breakdown of the course content into modules or sessions.
Learning Objectives: Specific goals that participants should achieve by the end of the course.
Course Type: Whether instructor-led, self-paced, online, or in-person.
Administrative Properties
Status: Whether the course is active, archived, or in development.
Created Date: When the course was added to the system.
Last Modified Date: When the course information was last updated.
Association Properties
Related Materials: Links to course materials, presentations, or resources.
Associated Certifications: Any certifications that this course contributes towards.
By including these properties, you create a comprehensive course object that can be easily managed, searched, and integrated with other CRM functions. This structure allows for efficient course scheduling, participant management, and reporting. It also provides a foundation for automating processes like course notifications, registration management, and performance tracking.
Remember, the specific properties you choose may vary based on your organisation's unique needs and the capabilities of your CRM system. Your custom object must support your business processes and integrate seamlessly with other objects in your CRM, such as contacts (for students) and companies (for corporate clients).
But that’s just the easy part. Setting your object up for success is one thing; using it once you have it is another, so let’s dive into that.
Using properties in HubSpot CMS pages
You can leverage HubSpot's dynamic content capabilities to use HubSpot properties in CMS pages. Here's how you can incorporate properties into your CMS pages:
Accessing Properties
1. Use HubL tags to access properties in your templates. For example, to display a contact's first name, you can use:
Personalising Content
You can use properties to personalise content on your pages:
- Create smart content rules based on property values.
- Use if/else statements to display different content based on property values:
Custom Objects
If you're using custom objects, you can query and render them on your CMS pages. This allows you to share data between your business operations, website, and emails.
Dynamic Pages
You can build dynamic pages using CRM objects, including custom objects. For example, if you have a custom object for "Courses", you could create a dynamic page that displays information about each course based on its properties.
Best Practices
1. Always check if a property exists before using it to avoid errors:
2. Use default values for properties that might be empty:
3. Group related properties together for better organisation and easier template management.
4. Remember that some properties may require specific permissions to access, especially when dealing with sensitive information.
Using these techniques, you can create highly personalised and dynamic CMS pages that leverage the full power of HubSpot's CRM data and custom properties.
What are the steps to embed HubSpot properties in a CMS page
To embed HubSpot properties in a CMS page, follow these steps:
1. Create or Select a Page
Create a new page or select an existing one in your HubSpot account by navigating to Content > Website Pages or Content > Landing Pages.
2. Access Page Settings
Click on the name of your page to open it in the editor.
3. Use HubL Tags
Incorporate HubL tags in your page template to access and display properties. For example:
This will display the first name of the contact viewing the page.
4. Personalise Content
Use if/else statements to create personalised content based on property values:
5. Add Dynamic Elements
For more complex scenarios, you can create dynamic pages using CRM objects:
- In the page editor, click the Settings tab.
- Under Page URL, click the "Make this page dynamic" toggle.
- Select the CRM object (e.g., contacts, companies, deals) you want to use for the dynamic content.
6. Insert Property Tokens
Use property tokens in your content to display specific CRM object properties:
7. Preview and Test
Use the preview function to ensure your properties are displaying correctly.
8. Publish the Page
Once you're satisfied with the setup, publish your page to make it live.
Always remember to check if a property exists before using it to avoid errors, and consider using default values for properties that may be empty.
So, you now understand how to use the course custom object and, more importantly, how to utilise it on the HubSpot CMS effectively. Armed with this information, you should be able to build your educational course content for sale, internal use, or free.
FAQs: Setting Up HubSpot’s Course Object for Maximum Results
1. What is a custom object in HubSpot, and why use it for courses?
A custom object allows you to create a bespoke data structure in HubSpot beyond the default (Contacts, Companies, Deals, Tickets). Using a Course object helps you manage structured learning programs, tracking enrollments, completions, and course progress, while integrating seamlessly into your CRM workflows.
2. What properties should a Course object include?
Core properties typically include:
-
Course Name
-
Course Status (Active, Archived, Draft)
-
Course Type (On-demand, Live, Certification, etc.)
-
Duration
-
Enrolment Limit
-
Progress %
-
Completion Date
-
Related Contact/Company/Deal associations
Custom properties depend on your GTM model and how you monetise or nurture course content.
3. How do I associate the Course object with Contacts or Deals?
You must define associations when creating the custom object via API or in your HubSpot portal (if you're using Operations Hub). Best practice:
-
Contacts: to track learners
-
Deals: to link course enrollments to revenue-generating motions
-
Companies: if offering B2B training programs
Use automated workflows to sync status updates between associated records.
4. Can I automate email workflows based on course status or progress?
Yes. Once the object is live, you can use custom object-based workflows to:
-
Send onboarding emails when a Contact is associated with a Course
-
Trigger reminder nudges if completion progress < 50%
-
Notify CSMs when someone finishes a course
-
Push data into Slack, email, or an external LMS via webhook
5. How can I track ROI or engagement on my courses?
You can track:
-
Engagement: by analysing Course > Contact associations and progress metrics
-
Revenue impact: by associating Courses with Deals or calculating the influenced revenue
-
Content performance: by measuring which courses convert best using source tracking + lifecycle stage movement
Use HubSpot custom reports or sync with BI tools for deeper analysis.
6. How do I update or version control Courses in HubSpot?
You can:
-
Use the Course Status property to mark a course as archived or replaced
-
Add a Course Version property
-
Track historical completions via an associated "Course Completion" custom object (if needed for certification compliance)
7. Can I use HubSpot’s Course object to replace a full LMS?
Not entirely. HubSpot isn’t an LMS. But if you want to track training, onboarding, or content consumption (e.g., for product education, customer success, or partner enablement), a well-structured Course object gets you 80% of the way—especially when layered with email, workflows, and custom reporting.
8. How do I report on courses per customer or company?
Use custom reports to slice:
-
Courses by Contact or Company
-
Completion rate by Company
-
Course revenue by Deal association
This unlocks strategic enablement insights like: “Which accounts have completed onboarding?” or “Which customers took the upsell-focused course?”
9. Can I use HubSpot forms to enroll users in courses?
Yes. Embed forms to collect sign-ups and use workflows to create a new Course association with that Contact. You can also send automated confirmation, trigger Slack alerts, or update CRM fields based on enrollment.
10. What are common mistakes when setting up the Course object?
-
Not defining clear associations (Contact, Deal, Company)
-
Using too many or too few properties
-
Forgetting to build reporting from day one
-
Lack of lifecycle tracking or success metrics
-
Assuming it replaces a true LMS without limitations
Thanks for reading. I hope you found this helpful. If you need any help with the CMS or publicising course content on HubSpot, use the form in the footer to get in touch.