RevOps + HubSpot 4 min read

How to Build a True Rolling Date Filter in HubSpot

HubSpot's date filters only do calendar windows. Here is how to build a true rolling window with two custom date properties and a scheduled workflow that re-stamps them on the 1st.

Natalia Ziarkowska AI & Digital Strategist
7:15
1x

Step 3: Use Format Data to Set Your Date Range

Inside the workflow, add a Format Data action. This is the Data Hub action that lets you perform date arithmetic, specifically, adding or subtracting time from a date value.

Here's the setup for a 4 to 5 months ago rolling window:

Action 1, Set the window start:

  • Source value: Date of step (today's date when the workflow runs)
  • Operation: Subtract 5 months
  • Output: Copy result to report_window_start

Action 2, Set the window end:

  • Source value: Date of step
  • Operation: Subtract 4 months
  • Output: Copy result to report_window_end

Every time this workflow fires on the 1st, both properties get stamped with fresh dates. The window shifts forward automatically.

If you're using the add_time() function in a calculated property formula instead (available in the custom equation builder under Settings > Properties > Calculation), the syntax looks like this:

add_time([properties.create_date], -5, "months")

That said, for the scheduled workflow approach, you don't need calculated properties at all, the Format Data action handles the arithmetic directly.

Step 4: Filter Your Reports Against the Custom Properties

Now, when building custom reports in HubSpot, filter using your new properties instead of the default date filters.

Rebuilding the same date filter every month?

Someone on the team has a reminder to edit that report.

In the Custom Report Builder, add a filter condition like:

  • Create Date is between report_window_start and report_window_end

Because both properties are date pickers and auto-update on the 1st of each month, your report always reflects the exact rolling window you defined, without touching it again.

Important Notes Before You Ship This

A few things worth knowing:

The workflow needs re-enrolment enabled. Make sure your workflow is set to re-enrol records every time the trigger conditions are met, otherwise records that were already enrolled won't get updated properties on the next run.

Daylight saving shifts your run time twice a year. HubSpot stores dates as UTC timestamps, and the eastern Australian offset changes when AEST becomes AEDT in early October and back again in early April. The workflow keeps firing on the 1st, but the moment it fires moves by an hour, so a run scheduled close to midnight can stamp the window on the wrong side of the date boundary for half the year. Schedule it mid-morning Brisbane time and the switch never touches your numbers. Queensland does not observe daylight saving, which is exactly why a portal set to Brisbane and a team in Sydney can disagree about which day a record landed on.

Dates in HubSpot are stored as UNIX timestamps (in milliseconds). You don't need to worry about this for the Format Data action, but if you're building calculated properties with custom equations, the raw values will be in milliseconds. Use a converter or account for this in your formula.

The 5-property limit on calculated properties (Professional tier) is real. If you're creating multiple custom equations, keep an eye on this. Scheduled workflows writing to date picker properties don't count toward this limit, which is another reason to prefer the workflow approach for this use case.

This requires Data Hub Pro or Enterprise. If you're on a lower tier, the Format Data action and scheduled date triggers won't appear. The workaround is a third-party tool like Make or Zapier to handle the date logic externally and write back to HubSpot via the API.

Wrapping Up

This hack is a good example of a pattern that shows up a lot in well-built HubSpot portals. When the reporting layer doesn't have what you need, the automation layer usually can.

HubSpot's reporting is strong, but it's built for the common case. When your use case drifts away from calendar quarters and 30-day windows, you need to engineer the data your reports depend on, not try to bend the filters into shapes they weren't designed for.

Custom properties, written by a scheduled workflow, give you anchor points you fully control. Once you've done this once, you'll start seeing other places where the same pattern applies. Two nearby ones: using date properties to move deals through a pipeline, and rolling up the earliest and latest of these dates across records when the date you care about lives on the associated records instead of the one you are reporting on.

Want Someone to Build This Properly?

If reading this made you think "we need about six of these across three objects and I don't have time for that", that's exactly the kind of systems work we do at Neighbourhood.

We're a Diamond HubSpot Partner, and we spend a lot of time inside portals fixing reporting setups that grew faster than they were designed. If your HubSpot data is technically in there but doesn't actually tell you what you need to know, get in touch. We'll take a look and tell you honestly what's going on. Here is how we build reporting that keeps working as the portal grows.

Talk to us about your HubSpot setup.

New Over on Facebook and YouTube

We've been sharing shorter, sharper HubSpot tips, including stuff like this, on our Facebook and YouTube channels. If you prefer to watch someone click through a workflow instead of reading about it, come find us there. We're building a library of practical how-tos for HubSpot admins and RevOps teams who want to get more out of what they've already paid for.

How many of your reports need a rolling window?

Once one report needs it, the next four usually do too.

Happy HubSpotting.

Neighbourhood

Neighbourhood is a HubSpot Diamond Partner in Brisbane. We build AI systems and the revenue operations they run on, for businesses across Australia and New Zealand.