Skip to content
HubSpot Unhinged 🚀

Advanced HubSpot workflows with examples and best practices

Start automating today! Learn how to use HubSpot’s latest workflow feature updates with examples and best practices to level up your automation strategy.

learning about advanced workflows

Intro 🎬

If you're comfortable with the basics of HubSpot automation, then you'll find this article interesting. This stems from a webinar I attended that focused on advanced HubSpot workflows with Kyle Jepson, Megan Legge and Matthew Shepherd.

Below are extractions and insights into that awesome event so you can reference and implement into your own automation strategy.

Let's dig in.

Automate vs. Don't Automate ⭐️

It is generally understood that automation can bring benefits, so let's consider when it is appropriate to automate a task or process, and when it may not be the best course of action. 

Automate ✅

  • Repetitive manual process 

  • The execution and scaling of clearly documented content strategy, data management processes and business processes
  • Internal and external communications based on reliable data

Don't Automate ❌

  • Processes that occur infrequently and that take less time than creating an automation

  • Processes that rely on inconsistent data. *Inconsistent data = inconsistent results

  • Processes that require significant or timely human intervention

  • Existing inefficient or poorly documented processes. *You're just scaling up that inefficiency.

  • Processes with no clear goal

Workflow Best Practices 🔥

As you progress in your use of automation and create multiple workflows to streamline various processes and meet various objectives within your organization, you may encounter complexity, misalignment, and unintended consequences.

To mitigate these issues, it is useful to follow best practices for automation.

Now, let's delve into these practices.

Advanced ≠ Complex

It is important to note that a complex workflow is not necessarily an advanced or sophisticated one.

In fact, complexity can make a workflow more difficult to understand, monitor, maintain, and integrate with other workflows.

To address this issue, it is helpful to focus on the desired outcome when designing a workflow.

Consider what the primary objective of the workflow should be and whether it is necessary to achieve multiple goals within the same workflow.

If the workflow becomes too complicated, it may be advisable to break it up into smaller, more focused workflows.

For example, let's take a look below when designing a nurturing workflow, consider how you can manage complexity by defining clear objectives and breaking the workflow into manageable steps.

Single Workflow

It may seem logical to use a single workflow to guide a contact through the entire buyer's journey, but this approach can lead to problems.

Such a workflow may become long and complex, making it challenging to understand and maintain.

It may also be difficult to track the performance of the workflow, as it is hard to determine which specific steps are performing well or poorly.

Instead, it may be more effective to break the buyer's journey into distinct stages and create separate workflows for each stage.

This way, you can more easily track the performance of each stage and identify any areas that may need improvement.

Single Workflow vs. Multiple

By dividing the buyer's journey into three separate workflows, one for each stage, you can gain greater visibility into what is happening at each stage.

You can also set specific goals for each stage and measure the effectiveness of each workflow.

While it is true that adding more workflows may increase complexity, there are steps you can take to manage this.

Below are some tips to help you keep your automation efforts organized and efficient.

Tip 1️⃣ - Consistent workflow and folder naming conventions

This will save you a lot of time and confusion. Especially when navigating an increasing number of workflows with different ownership and purposes across your organization.

Common approaches to workflow / naming conventions:

  • Time / region
  • Internal vs. external
  • Action / purpose of the workflow
    • DM: Data Management
    • LR: Lead Routing
    • SR: Service Routing
    • TC: Task Creation
    • LN: Lead nurturing
  • Buyer persona
  • Stage of the buyer's journey
  • Date / time frame

Ultimately what you want to achieve through naming conventions is a nice list of folders with workflows that communicate ownership, purpose and relationship between workflows.

Tip 2️⃣ - Workflow descriptions & comments

Use workflow descriptions and comments to further describe the purpose of your workflow and each action.

Tip 3️⃣ - Test, test and test again

To avoid problems once your workflow goes live, be sure to test it thoroughly and ensure that it is functioning as intended before publishing.

Tip 4️⃣ - Monitor workflows for errors

It is important to regularly review and monitor your workflows to ensure they are functioning properly.

After publishing a workflow, check that all records and actions are being processed as intended.

Common issues to watch for include

  • Emails not being sent
  • Date actions being skipped
  • Property value copy failures.

By regularly checking for and addressing any errors or issues, you can ensure that your automation strategy is running smoothly and efficiently.

Avoiding common pitfalls 🚧

Like anything, there are several common pitfalls to avoid when dealing with workflows.

  • Enrollment issues
  • Timing issues
  • Data issues

Enrollment issues

Do you allow re-enrollment? (once vs. many times)

Let's say you're sending a Slack notification to your team every time a new deal is created. You don't expect to get more than 1 notification per deal because it can only be created once.

So re-enrollment is not applicable to this use case.

On the other hand if you have a help request on your website for your customers. It's feasible that they might ask for help on several different occasions and create new tickets. 

Thus you'd want re-enrollment enabled here so that ever time some one comes and asks for help, you can follow-up.

Re-enrollment not available

Some properties and filters cannot be used for re-enrollment, such as Activities.

For some scenarios, for Contacts and Companies you can circumvent this limitation by using a list.

You can build criteria into the list to monitor contacts that have a recent meeting and then trigger our workflow based on list membership. 

So ever time a contact joins that list, they qualify to enroll into that workflow.

PRO TIP! "Property x is known"

For some properties that do not allow for re-enrollment. A workaround is to use the "Property x is known".

This means a record will enroll every time the property is set and also if it goes from 1 known value to another known value.

Enroll existing records?

Carefully consider when publishing your workflow or editing a trigger on a live workflow. 

An example of this is considering if people that have submitted a form on your website are enrolled. Probably not, only moving because you've already follow up with them.

An alternative example is a workflow that you want to clean-up data.

Let's say you want to update your country property to use an abbreviation istead of full country names.

When you turn this on, there's a good chance you already have records in your CRM that need this update.

Consider YES

  • Update property values
  • Re-rotate records

Consider NO ❌

  • Form follow-up
  • Task creation
  • Internal notifications


Measure your workflows' performance, but be aware of enrollment impact.

If a record already meets goal criteria, it could be prevented from enrolling in a certain workflow. And if records are in a workflow and reach a goal they will unenroll immediately.

Timing issues


Workflows execute actions almost immediately after being triggered.So if you're relying on recently added data you might need to use delays.

For example, if you're using a send email action. Follow it with a delay to give contacts time to actually interact with the email before moving on to the next step of the workflow.

This is another place where using a "Property x is known" trigger could be helpful if your workflow is dependent upon key pieces of data being present.

Data that syncs from another system or even HubSpot analytic properties are a good example of this. The original source properties can take a minute to populate when a record is newly created.

If you're going to use those properties in your workflow, like if / then branches. Make sure the data is present even before the workflow runs by putting a trigger like "Original source is known" on top of the other triggers that you are using.

Delay until event actions

Sometimes you don't know how long you have to set a delay for, but it would be helpful for the workflow to wait for something to happen before going to the next action.

The delay until event action will dynamically move records to subsequent actions relevant to something that they do or a change is made.

For example, "Wait until a lead does something, such as visit a web page."


If you have a lot of workflows carrying out similar actions that could effect the same records. You may need to coordinate to avoid overlap or overwhelm.

So make sure you're considering suppression lists to keep records out of workflows until it is relevant or you could use the "enroll in workflow" action to string together a series of workflows if you want them to happen in a specific order.

Data issues

Inconsistent data

A common example is triggering or filtering on email opens. Between privacy protections and inbox security checks, email data can be inconsistent. 

So consider the most reliable data source for your use case.

If you want to target engaged leads, perhaps website visits could also serve that purpose and be more reliable.

Basing enrollment or actions on inconsistent data leads to inconsistent outcomes.

Copying property values

You can get a lot of errors when trying to copy properties with workflows so make sure you look at both properties that the field types match and the values are the exact same before you put them into workflows.

Email subscription and low engagement

Make sure that the subscription types of the automated emails you're sending through a workflow are ones that you've got an opt-in for. 

For each email, think should this email go to an unengaged contact or not.

Automation Examples ♥️

Marketing Examples

Delay until a date: Webinar Nurturing

Webinar Workflow Example (1)

Contact enrollment trigger: if a contact has filled out a specific webinar form on any page.

Step 1️⃣: Send immediate registration email

Step 2️⃣: Delay until the day of the webinar

Step 3️⃣: On the webinar date, email registrants

Step 4️⃣: When the webinar is over, delay action until X hours after the event

Step 5️⃣: Send webinar survey

Date stamping: Report on email subscription opt outs and / or opt ins over time

out changes

Contact enrollment trigger: is the contact a member of the Opted into Marketing Offers Subscription list or is a member of the Opted out of Marketing Offers Subscription

Step 1️⃣: Use if / then branch to check for list membership scenarios

Step 2️⃣: Prepare custom date properties on contact object for each of those (field type = date picker). If Opted into marketing offers subscription, set property value with date stamp.

Step 3️⃣: Prepare custom date properties on contact object for each of those (field type = date picker). If Opted out of marketing offers subscription, set property value with date stamp.


Sales Examples

Delay until event: Nurture leads to SQLs

Nurturing stream to assign SQLs

Contact enrollment trigger: in this example, the trigger is if a member of the Trade show signups list. (from list or another criteria)

Step 1️⃣: Send marketing email to contact

Step 2️⃣: 'Delay until event happens' action: page visit or 5 days passes. Either the lead will visit the page you set on your website and if / when they do they proceed to the next action or 5 days go by.

Step 3️⃣: Check page visit or 5 days? Value equals branch evaluates the outcomes of other workflow actions.

Step 4️⃣: If the event criteria has been met, automatically enroll them in a sales sequence. In order example, they viewed the desired web page.

Step 5️⃣: If the event criteria has not been met, send another marketing email to lead.

Step 6️⃣: 'Delay until event happens' action: page visit or 5 days passes. Either the lead will visit the page you set on your website and if / when they do they proceed to the next action or 5 days go by.

Step 7️⃣: If the event criteria has been met, go to Step 4.

Step 8️⃣: If the event criteria has not been met, add them to a static list called "Inactive leads".

Service Example

Ticket Handling: Ticket Creation, Routing and Rotating Ticket Ownership

Create ticket for routing on form submission

Contact enrollment trigger: has the contact filled out Support request to ticket form on Any page

Step 1️⃣: Create ticket record with the following format -- "Category of issue - First name Last name" and assign it to no one.

Rotate tickets created by form submission based on category of issue

Ticket enrollment trigger: does the ticket name include any any of the dropdown selections and is a specific pipeline.

Step 1️⃣: Use if / then branch to save you from adding lots of subsequent if / then actions. You can add up to 20 branches. This is a much more compact way to achieve desired result.

Steps 2️⃣ - 6️⃣: Based on selected answer, set property value ticket name to "Ticket name - Ticket ID" using ticket personalization tokens.

Step 7️⃣: If none are met, send internal email notification to a specific team called "Ticket not routed correctly".

Steps 8️⃣ - 1️⃣2️⃣: Rotate record owner amongst a specific team.

Operations Example

Calculation: Calculating time between a custom date property & today (without Ops Hub Pro+)

Update todays date on contact

Contact enrollment trigger: Create a custom date property on the Contact object to store today's date. This workflow with enroll and re-enroll records if Today's date is known or if Today's date is unknown. 

Step 1️⃣: Use if / then branch to check if we are setting Today's date for the 1st time

Step 2️⃣: If Today's date is known, we delay until tomorrow.

Step 3️⃣: If Today's date is unknown, we set Today's date to 'Date of step'. Now our record will enroll again.

Step 4️⃣: Tomorrow we will set Today's date to the 'Date of step'. As Today's date has been updated, the record will re-enroll.

P.S. 📈

We provide an awesome service called the HubSpot Admin Program, where we help you get the most out of your HubSpot investment.


Jameson Campbell

Jameson Campbell

Director of Growth Ops

HubSpot Unhinged newsletter

Subscribe to HubSpot Unhinged 🚀

A resourceful approach on how to unlock the true value of HubSpot.

Latest Articles

Does Pipedrive integrate with QuickBooks?

Does Pipedrive integrate with QuickBooks?

Learn how integrating Pipedrive with QuickBooks enhances efficiency, improves cash flow management, ensures accurate financial reporting, a...

The Best 16 Marketing Automation Tools to Use in 2024

The Best 16 Marketing Automation Tools to Use in 2024

Discover the top 16 marketing automation tools to help optimize your campaigns and save time. Find out how these tools can improve your mar...

CRM Data Migration

CRM Data Migration

Discover the best options for CRM migration, from consulting to seamless migration services. Transition to a new CRM system efficiently.