Updated Solution for 2024: Creating "Today's Date" Property
SOLVE
Hi Everyone,
As has been the case for some time, there is not "easy" way to utilize a property that maintains the current date (today) in any of the plans available. There is a way to create a simplified workflow using "Specific Date" workflows, though this is only available to a more premium tier plan. A few ideas have been thrown around on the forums and a couple of them work. Sometimes the answers are buried within them though. I wanted to create a post on what works with some explaination such that it bubbles to the top of current searches. Most of this has been adapted from the excellent write up that @stuartbalcombe did. Enjoy.
---
You will need two new properties. They can be "Contact", "Deal", or "Company" properties. This doesn't matter, though in my example I have used "Deal". Note that you can create a "Today's Date" property in the others at the same time and the workflow can be used to copy the value from the primary into those. I have this in the example should you want to do it.
Property #1: [DEAL] “Today’s Date”
The “Today’s Date” property is a “Date Picker” property within the DEAL holds a date value that is updated every day to the current date (today). This property does not normally exist in HubSpot and yet is required to create reports and other calculated properties. For it to exist, another DEAL property “Today’s Date Updated” is created along with two workflows, “Update Today's Date [PART ONE]” and “Update Today's Date [PART ONE]”. This property should not be modified by anyone except the system.
Property #2: [DEAL] “Today’s Date Updated”
The “Today’s Date Updated” property is a “Single Checkbox” property within the DEAL that holds a binary “Yes” or “No”, which is utilized by the workflows “Update Today’s Date [PART ONE]” and “Update Today’s Date [PART TWO]”. This property is monitored for change to kick off enrollment into the workflows as required to update the DEAL property “Today’s Date”. This property should not be modified by anyone except the system.
---
You will also need two new workflows of same type as the property. Same applies here in that I used "Deal" type of workflow. Remember to enable both at the end of creation. Both new workflows are created as follows.
Workflow #1: “Update Today’s Date [PART ONE]”
1. This workflow is kicked off at any point where the DEAL property “Today’s Date Updated” filter matched the value “No” or was undefined/unknown. Note that “re-enroll” for both matches are allowed such that any existing DEAL will run the workflow again in the future.
2. The current date, which is the date the action ran (AKA today), is set upon the DEAL property “Today’s Date”.
3. The same value used from #2 is copied to the CONTACT property that also has the name “Today’s Date”.
4. To ensure queuing and viewability, a one-minute delay is used. When enrolled DEAL records pass through this workflow, you would see them in this field.
5. After the delay, the DEAL property “Today’s Date Updated” is set to “Yes”. The setting of this property causes the second workflow, “Update Today’s Date [PART TWO]”, to kick off.
Workflow #2: “Update Today’s Date [PART TWO]”
1. This workflow is kicked off at any point where the DEAL property “Today’s Date Updated” filter matched the value “Yes”. This property is only changed by the previous workflow “Update Today’s Date [PART ONE]”. Note that “re-enroll” on the match is allowed such that any existing DEAL will run the workflow again in the future.
2. Upon the match in #1, a SPECIFIC DATE timer is activated that will expire at 1AM EST. This allows the property to reflect that it has updated (AKA “Yes”) throughout the current “today” until the next day’s morning.
3. Once the timer has expired into the next day’s morning, the DEAL property “Today’s Date Update” is changed to “No”. The next step is necessary due to how HubSpot workflows function to protect the system from loops.
4. This step is required to “complete the loop” back to workflow “Update Today’s Date [PART ONE]”.
It's good that you're raising the visibility of this solution, because it is the best solution on many subscriptions. I do have one minor correction for you, because there is actually a much simpler solution for HubSpot customers who have OperationsHub Professional or Enterprise. A single, two-step scheduled workflow that runs once a day on all contacts will set this property without keeping every contact in the database constantly enrolled in these two workflows. As a result you might not want to say "there is not "easy" way to utilize a property that maintains the current date (today) in (any) of the plans available." Instead, you might say "without an OperationsHub subscription."
- Trevor If my post solves your problem, please accept it as a solution.
Updated Solution for 2024: Creating "Today's Date" Property
SOLVE
Might think this to be the case, but there is a catch if there is sensitivity as to when that field gets "today's date" represented.
WF#1: Trigger Enrollment when Today's Date Updated = NO. 1. Set Today's Date to the date this action was executed.
2. Today's Date Updated = YES
3. Exit WF
Above workflow causes WF#2 to kick off immediately.
WF#2: Trigger Enrollment when Today's Date Updated = YES.
1. Set a waiter/time for next step to occur at "1am". This means its the next "1am" (AKA tomorrow's 1am).
2. Set Today's Date Updated = YES
3. Exit WF
These two WFs ping pong back and forth forever. If we were to set WF#1 to trigger on Today's Date not updated in last 1 day, the timing on when all objects receive the date update would be 0~24hrs variably forevermore. If you want consistency for all objects at the beginning of the day, you'd need a timer-bound waiter.
Updated Solution for 2024: Creating "Today's Date" Property
SOLVE
Unfortunately, Part 2 is not working consistently for us. The error only says "The deal didn't enroll in the specified workflow" with no information as to why. The only change I made to what's shown above is that it doesn't copy to a contact property (unnecessary for what I'm trying to achieve). I've reached out to support but I wanted to make a note here in case anyone else encounters an issue. I'll update with more info if I get a solution.
It's good that you're raising the visibility of this solution, because it is the best solution on many subscriptions. I do have one minor correction for you, because there is actually a much simpler solution for HubSpot customers who have OperationsHub Professional or Enterprise. A single, two-step scheduled workflow that runs once a day on all contacts will set this property without keeping every contact in the database constantly enrolled in these two workflows. As a result you might not want to say "there is not "easy" way to utilize a property that maintains the current date (today) in (any) of the plans available." Instead, you might say "without an OperationsHub subscription."
- Trevor If my post solves your problem, please accept it as a solution.