Changelog
Follow up on the latest improvements and updates.
RSS
We’ve improved the tag management experience in the Contacts module by introducing double confirmation for adding and removing tags. Previously, selecting or deselecting a tag would instantly apply the change and could unintentionally trigger workflows. With this update, users now have more control and can confidently manage tags without accidental workflow executions.
What’s new?
- Added an Applybutton for tag changes
- Added a Cancelbutton to discard unintended changes
- Introduced double confirmation for both: adding new tags and removing existing tags
- Prevented accidental workflow triggers caused by unintended tag updates
- Improved overall safety and accuracy while managing contact tags
How it works?
- Open the tag dropdown for a contact
- Select/deselect the tag(s) you want to add/remove
- The Applybutton becomes active
- Click Applyto confirm the adding/removal of tag(s)
- Click Cancelif you do not want to proceed
This additional confirmation step ensures that workflows are triggered only after intentional tag updates.

What’s next?
We’re continuing to enhance the tag management experience with upcoming improvements, including:
- Tag categories for better organization
- Tag colors for improved visibility and identification
- Category and color visibility directly inside the tag dropdown
- Selected tag counts displayed for each category
These enhancements will make tag management more intuitive, organized, and scalable for growing businesses.
new
Automations
Hubspot: Workflow Actions & Trigger
Overview
HubSpot is the CRM platform used by sales, marketing, and service teams to track contacts, companies, deals, and tickets. The HubSpot integration brings HubSpot directly into the Workflow Builder so customer-facing automations can react to new contacts and the other way around. One instant trigger and five actions cover the most common contact-centric operations: creating, finding, looking up by ID, searching by email, and associating contacts with companies or deals.
About the Integration
The integration ships with two halves:
- Trigger (HubSpot → Workflows): One instant trigger - New Contact Created.
- Actions (Workflows → HubSpot): Two actions - Create Contact and Find Contact
Trigger and actions are premium features
How to Set Up HubSpot
Before any HubSpot trigger or action can run, the integration has to be connected. The connection allows your workflows to securely read from and write to your HubSpot portal.
Connect via the Workflow Builder (recommended)
- Open Automation → Workflows and pick (or create) a workflow.
- Add a HubSpot trigger or action — search for HubSpot in the Apps tab.
- Select any HubSpot trigger or action.
- On the action card, click Connect Now.
- Sign in to HubSpot via OAuth when prompted; authorize the portal and the scopes the integration requires (Contacts: read/write, Associations).
- Click Save to complete.
Connect via Settings (alternative path)
- Go to Settings → Integrations.
- Locate HubSpot and click Connect.
- Authenticate via OAuth and authorize the portal.
List of Triggers
This release ships with a single trigger. Additional triggers (deal stage, ticket events) are on the roadmap.
- New Contact Created - Fires when a new contact is created in HubSpot. Returns the full contact payload standard and custom properties.
List of Actions
- Create Contact - Creates a new contact in HubSpot. Standard fields: Email, First Name, Last Name, Phone. Custom properties supported.
- Find Contact - Looks up a contact by Record ID, email, or filter. Returns matching contact(s) for downstream branching.

Example: Setting Up a Trigger (New Contact Created)
This walkthrough wires up a workflow that fires every time a new contact is created in HubSpot — and uses the contact payload as the source of all downstream actions.
Step 1: Add the trigger
- Open the workflow and click Add Trigger.
- Switch to the Apps tab and search for HubSpot.
- Select New Contact Created from the HubSpot trigger list.
Step 2: Configure the trigger
- Workflow Trigger Name — give it a meaningful label such as ‘New HubSpot Lead’.
- Filters (optional) — constrain by lifecycle stage, source, or any contact property so unrelated contacts don’t enroll.
Step 3: Test the trigger
- Click Find New Records inside the Test Your Trigger panel.
- The system fetches the most recent matching contacts from HubSpot.
- In the Records — Select Mapping Reference dropdown, pick one of the returned records. This locks the payload schema so downstream steps can map cleanly.
- Click Save Trigger to finish.

Example: Setting Up an Action (Create Contact)
This walkthrough creates a HubSpot contact from a form submission — the most common inbound-flow shape.
Step 1: Add the action
- Inside the workflow, click Add to insert a new step.
- Open the Apps tab and select HubSpot.
- Choose Create Contact from the action list.
Step 2: Connect (first time only)
- If the integration is not yet connected, click Connect Now on the action card.
- Authenticate via HubSpot OAuth and authorize the portal.
Step 3: Configure the action
- Action Name — give the step a meaningful label such as ‘Create HubSpot Contact’.
- Email (required) — use an inline workflow variable, e.g. {{contact.email}}. Email is the canonical dedup key in HubSpot.
- First Name — map from the contact or form payload, e.g. {{contact.first_name}}.
- Last Name — map from the contact or form payload.
- Phone — optional. Map from the contact record or form field.
- Custom properties — any property defined on the HubSpot Contact object can be mapped here. Define it in HubSpot first; unknown property names are silently dropped on submit.
Step 4: Always run Search Contact by Email first
- To prevent duplicates, place a Search Contact by Email step before Create Contact, then branch: if found, use the existing record (or skip); if not, run Create Contact. Email is the canonical dedup key in HubSpot, and this two-step pattern is the single most important hygiene rule for inbound CRM flows.
Step 5: Save and use the output
- Click Save action. The new contact’s ID and full record are exposed as workflow output variables. Chain a Create Association step right after to link the contact to a Company or Deal if account-based context matters.

How to Test the Trigger and Action
Always test before publishing. Testing locks the payload schema and gives downstream steps a real record to map against.
Test the trigger
- Inside the trigger panel, click Find New Records.
- Select a recent contact as the mapping reference.
- Confirm the Trigger Data Response panel shows the fields you plan to use.
Test the action
- Inside the action panel, click Test Action.
- The action runs against the live HubSpot portal using sample values.
- Verify the contact appears in HubSpot at the expected properties.
- If wrong, re-check the field mapping (especially custom property names) and re-test. Once happy, click Save action, then run a full Test Workflow before publishing.
Common Use Cases
Use Case 1: Form-to-Contact with Dedupe
Goal: Capture inbound leads into HubSpot without creating duplicate contacts.
Workflow Setup:
- Trigger: Form Submission
- Action: Search Contact by Email
- Conditional: If found → skip Create; if not found → continue
- Action: Create Contact (with form payload mapped into Email, First Name, etc.)
- Action: (Optional) Create Association to a Company or Deal
Example: A prospect submits a contact form. The workflow checks HubSpot for the email; if a record already exists, it skips the Create step. If not, it creates a new contact, optionally associates them with a known company, and routes them into a welcome sequence.
Use Case 2: CRM → Workflows Two-Way Contact Sync
Goal: Mirror every new HubSpot contact into the platform CRM and keep the records aligned.
Workflow Setup:
- Trigger: New Contact Created (HubSpot)
- Action: Find Contact (platform side, by email)
- Action: Create/Update Contact (platform side) with HubSpot data
Example: Whenever a contact lands in HubSpot — from a HubSpot form, a sales rep’s manual entry, or another integration — it mirrors into the platform CRM with email, name, phone, and lifecycle stage in lockstep.
Frequently Asked Questions
Q: What is HubSpot?
HubSpot is a CRM platform used by sales, marketing, and service teams to track contacts, companies, deals, and tickets. The free CRM tier is broadly available; Marketing and Sales Hub plans add automation, sequences, and more.
Q: Do I need a paid HubSpot plan to use this integration?
No. The integration works on the free HubSpot CRM tier. Certain HubSpot-side features (in-HubSpot workflow automations, certain custom property types) require paid Marketing or Sales Hub plans — those constraints come from HubSpot, not this integration.
Q: Are these actions premium workflow actions?
Yes. All five actions are flagged as premium and consume premium action credits at the standard automation rate.
Q: Is the New Contact Created trigger Instant or polled?
Instant — it is powered by a HubSpot webhook. Workflows enroll within seconds of the contact being created.
Q: How does deduplication work in HubSpot?
Email is the canonical dedup key. Use Search Contact by Email as a guard step before Create Contact to avoid duplicate records. This is the single most important pattern for inbound flows.
Q: Can I create or update custom HubSpot properties via Create Contact?
Yes. Any property defined on the HubSpot Contact object — standard or custom — is mappable. Define the custom property in HubSpot first; unknown property names are silently dropped on submit.
Q: What is the difference between Find Contact, Get Contact by ID, and Search Contact by Email?
Find Contact is the flexible lookup — by ID, email, or other filters. Get Contact by ID is the fastest path when you already have a Record ID. Search Contact by Email is the dedup-focused exact-email lookup. Use Search for inbound forms, Get by ID for refreshing data inside long-running flows, and Find when you need filter flexibility.
Q: Can I use workflow variables in any field?
Yes. All fields support inline variables, including dynamic helpers like {{right_now.minute}} and {{contact.email}}.
Q: What happens if Create Contact fails — for instance, if the email is malformed?
The action surfaces the error to the workflow execution log, and the workflow continues based on its branching. Add a fallback branch if downstream steps depend on the create succeeding.
Q: Will the trigger fire on contacts created by other HubSpot integrations?
Yes. New Contact Created fires for any contact created in HubSpot — by a form, a sales rep, or another integration. Use trigger filters to constrain by source or lifecycle stage if needed.
new
Courses
AskAI for Courses
Building courses is now faster and easier with AskAI.
You can now create, edit, organize, and manage your courses directly through chat — helping you go from idea to published product in minutes.
✨ What AskAI Can Do
- 🧠 Generate complete course outlines with modules and lessons
- 📝 Create rich lesson content in HTML format
- ✅ Build quizzes, assessments, and assignments automatically
- 🔒 Manage course settings like drip schedules, locks, publishing, instructor details, and custom branding
- 💰 Create and configure offers
- 🧭 Guide you step-by-step through the course creation process
- 💬 Assist with comments, assignments, and other course management workflows





🛡️ Built-in Guardrails
- Confirmation prompts for sensitive actions
- Clear risk warnings where applicable
- Delete actions are restricted to prevent accidental content loss
- # 🎉 Why It Matters
AskAI makes course creation:
- ⚡ Faster
- 🎯 Simpler
- 🎨 More creative
- 📈 More scalable
Welcome to a smarter way to build courses with AI. 🚀
With this update, Blogs now supports Image Captions, bulk keyword addition, and enhanced image controls to help you create richer blog experiences with less manual effort. Cleaner layouts. Faster SEO setup. More control inside the editor.
🚀 What’s new
- Image Captions in Blog Editor
You can now add captions directly below images inside your blog posts.
- Editable caption field below images
- Multi-line caption support
- Captions stay attached to images automatically
- Responsive resizing with images

- Smarter Keyword Addition
Add multiple SEO keywords at once while scheduling blog posts.
Example:
seo, marketing, content strategy, growth
The editor automatically converts them into individual keyword chips,no more adding keywords one by one.

- Enhanced Image Actions
Images now support additional interaction options directly from the toolbar:
- Open image full-size in a popup modal
- Link image to a URL
- Do Nothing

👷 How to use this feature
- Open any post in the Blog Editor
- Insert or select an image
- Add captions or configure image behavior from the image toolbar
- While scheduling posts, paste comma-separated keywords into the keyword field
- Save or publish your blog
💡 Why it matters
- Create more visually polished blogs
- Improve storytelling with captions
- Speed up SEO workflows
- Configure image interactions without code
- Reduce dependency on external editors or custom HTML
With Multi-Board Selection for Pinterest, you can now publish a single pin to up to 25 boards per Pinterest account directly from Social Planner. One composer. Multiple boards. Zero repetitive work.
🚀 What’s new
- Multi-Board Selection (Up to 25 Boards)
You can now select multiple Pinterest boards inside a single post.
- Multi-select dropdown with board chips
- Remove boards easily using the × icon
- Works across multiple connected Pinterest accounts
- Selected boards stay pinned at the top for quick access
- Independent Per-Board Publishing
Every selected board creates its own published pin automatically.
This means:
- Each board is tracked independently
- One failed board won’t block others
- Analytics remain separated per board
- Works Across All Publishing Flows
Multi-board publishing is fully supported across:
- Instant publishing
- Scheduled posts
- Approval workflows
- Recurring posts
- Category Queue
- CSV bulk uploads
👷 How to use this feature
- Go to Marketing → Social Planner
- Create a new Pinterest post
- Select your Pinterest account(s)
- Choose up to 25 boards from the Boards selector

- Selected boards appear as chips

- Publish, schedule, or queue the post
Social Planner automatically creates individual pins for each selected board.
💡 Why it matters
- Eliminate repetitive manual duplication
- Publish Pinterest content much faster
- Maintain clean per-board analytics
- Simplify audience segmentation and campaign workflows
- Improve efficiency for agencies managing multiple boards
📝 Notes
- Maximum: 25 boards per Pinterest account
- Each selected board creates a separate published post
- Board-level failures do not impact other selected boards
- Existing Pinterest drafts continue working normally
We’ve released a couple of important fixes to improve SaaS plan management and overall workflow reliability.
✅
What’s Fixed
1. Custom Rebilling Markups Now Save Correctly
If you entered custom markup values while creating or updating SaaS plans, the system now correctly applies and saves those values.
Previously, default markup values could incorrectly override your custom settings.
2. No More Manual Refresh After Switching to Agency Sub-Account
When switching from SaaS Configurator into your agency sub-account to manage payment products or update plans, the SaaS sections now load correctly right away.
No more missing UI sections or needing to refresh the page manually.
💡
Why This Matters
These fixes improve:
- Pricing accuracy
- SaaS workflow reliability
- Overall configuration experience
Everything should now work more smoothly and predictably across both SaaS V1 and SaaS V2 flows.
improved
SaaS Mode
Create SaaS V2 Plans Directly from SaaS Configurator
Managing SaaS V2 plans just became much easier.
You can now create SaaS V2 plans directly inside SaaS Configurator — no need to switch into your agency sub-account.
✅
What’s Improved
- No more redirects during plan creation
- Configure everything in one place
- Access advanced settings like add-ons and Custom Menu Links
💡
Why This Matters
Previously, creating SaaS V2 plans required switching between multiple interfaces, which made setup slower and more confusing.
Now, SaaS Configurator acts as your single hub for SaaS plan management across both V1 and V2 systems — giving you a smoother and more consistent experience.
🔮
Coming Soon
We’ll soon add even more V2 configurations directly into SaaS Configurator, including:
- Setup fees
- Tax settings
Everything you need to build and manage SaaS plans — now in one place.
🛠
Problem Statement
Personalized emails use custom values that depend on contact data such as first names, company names, or appointment details. When this information is missing from a contact record, emails can display blank spaces or incomplete messaging, particularly in subject lines and email body content.
✨
What We Did
We introduced support for default values for custom values directly within the email editor. Users can now configure a fallback value for each custom value instance used in emails, subject lines, and preview text.
For example:
Hi {{contact.first_name}}
Default value: there
This ensures emails continue to display naturally even when the contact field is empty.
Default values can be added, edited, or removed directly from the custom value edit modal within the editor.
💡
Impact
- Prevents blank spaces and broken personalization in emails.
- Keeps subject lines, preview text, and email content polished and professional.
- Improves email readability and engagement even when CRM data is incomplete.
- Gives users more flexibility by allowing different default values for the same custom value in different contexts.
📝
Note
This feature is supported across workflow emails, campaign emails, bulk actions, and email templates. Default values are configured per custom value usage and do not overwrite existing contact data.
Revant Images:





new
improved
Reputation
Multi-Page Reputation Integrations Are Here (52+ Platforms Supported) 🚀
You can now connect multiple pages per platform across all supported reputation integrations—making it easier than ever to manage reviews at scale.
With support for
52 platforms and no limits on page connections
, you get full flexibility and control over your reputation management.🚀 What’s New
🔗 Connect Multiple Pages per Platform
- Easily link multiple business pages under the same platform (e.g., multiple Facebook or Yelp listings).
- Ideal for agencies and multi-location businesses managing several brands or branches.


♾️ Unlimited Page Connections
- No caps, no restrictions. Add as many pages as you need and scale without friction.
🌐 52 Supported Review Platforms
- Manage reviews across a wide range of platforms including:
- Google Business Profile, Facebook, Yelp, TripAdvisor, Trustpilot, Zillow, Zomato, Airbnb, Amazon, Booking.com, Uber Eats, Glassdoor, Indeed, OpenTable, and more.
⚙️ Centralised Integration Management
- View all connected pages in one place
- Monitor connection status (Active / Not Connected)
- Manage or remove connections anytime
- Access sync and page-level details easily
🔍 Page-Level Visibility & Control
- Get full transparency for every connected page:
- Page link/reference
- Connection status
- Review count
- Last sync details
🛠️ How It Works
- Go to Reputation → Settings → Integrations
- Select a platform
- Click Connect Account
- Add one or more page links
- Use Manage to view, monitor, or remove connections anytime
💡 Why It Matters
- Manage multiple locations and clients from one place
- Remove scaling limitations for review management
- Gain deeper visibility into page performance
- Simplify onboarding for agencies
- Centralise reputation management across all platforms
Do drop a feedback in Labs or reach out to us directly at reputation@gohighlevel.com or reshma@gohighlevel.com
new
improved
Conversations
Conversations: Catch Up on Unread Messages Faster
Overview:
Finding unread messages in long conversations just got a lot easier. With new visual indicators, you can instantly locate unread messages without scrolling endlessly, saving time and ensuring nothing gets missed.
What’s New?
- “New” Divider in Conversations:Clearly marks where unread messages begin in the thread
- Auto Scroll to Unread:Opening an unread conversation automatically takes you to the first unread message

How It Works:
- Open any unread conversation
- You’ll be automatically taken to the first unread message, marked by a “New” divider
- The “New” indicator is cleared only when you reply or manually mark the conversation as read. It will persist even if you navigate away or refresh the page
Why it Matters:
Unread messages can easily get buried between campaign logs, activities, or long message threads. This update removes the guesswork by guiding you directly to what needs attention, helping you respond faster and manage conversations more efficiently.
Note:
- "New" indicator will only be shown for messages received after April 23, 2026.
- You can enable this from labs - Conversations: Quickly Find Unread Messages with New Indicators
Load More
→