Nov 30, 20203:21 AM - edited Nov 30, 20203:31 AM
HubSpot Employee
How to create a 'Today's date' date property.
SOLVE
I recently discovered this smart way to create and maintain a 'Today's date' property using workflows. This can then be used in reporting, workflows and lists.
To do this you can follow these steps: 1) Create a custom date field property
2) Create a contact-based workflow with the enrollment triggers 'Today's date is known' OR 'Today's date in unknown'. 3) Turn on re-enrollment for 'Today's date is known'. 4) Add an if/then branch action with the trigger 'Today's date is known'. 5) After the NO branch add the action 'set property value' and then set 'Today's date' to the 'date of step'. 6) After the YES branch add the the action 'set property value' and then set 'Today's date' to the 'date of step'. 7) The last steps after the YES branch will be a delay. To do this you will chose 'delay until a day or time' and then choose 00:15 or any other time after midnight.
This workflow will then work in the backround to always make sure each contact has today's date saved as the value on their record. The same can be repeated for company and deal properties.
It really is so crazy that “Today’s Date” isn’t a native value available globally in HubSpot. The workflow outlined in this post is a great workaround though. I recorded a quick video of setting it up, which hopefully is helpful to folks.
I am not sure why it needs to be so complicated. I found a solution that simply changes the date if it is not known or is over a day old. It would be nice if HubSpot simply fixed the issue by providing an option to select todays date (rolling).
There is a new option in Workflows for a SCHEDULED workflow option. If you have the ability to set up a scheduled workflow option here is what the setup should look like now for an EASY Today's Date property for any object.
@woody - I discovered this too when I tried to make a Today's Date field in Contacts. Contacts cannot re-enroll based on a date field, but Deals can. I had to completely scrap the approach I used in Deals and start over with a different approach for Contacts.
Instead of a Today's Date field in Contacts, I ended up using a Contact-based workflow of the type "Center on a date property" as a workaround.
It is frustrating that Contacts and Deals are different this way.
I hope that this example for re-enrolling Contacts based on date is helpful.
@CBader : I have found a way to make date stamp forToday's Date field in Contacts. But it need 3 workflows.
Workflow A:
Workflow B:
So that when workflow A finished, it will trigger workflow B, and when workflow B finished, it will enroll into workflow A. And I set a 30 minutes delay to make sure the contacts enroll to to workflow A when they have gone out workflow A. Because a slight lag in the workflows might cause some contacts to enroll into workflow A before they leave. 30 minutes is a bit extreme for workflow latency, but redundancy is better than lack.
And finally, workflow C is for contacts whose Today's Date field is unknown:
The combination of these 3 workflows worked for me for the past few days, and so far there haven't been any contacts go wrong. My current database is about 14000 contacts.
@CBader found this after a long time designing a workflow with a clone of itself that it can enroll so each runs on alternating days, each accomplishing the same task of setting a Today's Date stamp.
What really held me up - using a delay until midnight and an enrollment trigger of Today's Date = Known isn't sufficient because HS thinks the deal is still in the workflow when the workflow is finishing, so Today's Date won't work as a re-enrollment trigger. It lets you set it up won't actually re-enroll deals.
I'm testing your method with one deal but it seems promising and I should be able to delete the two near-identical workflows I made. Thanks!
@peterthegrant It's not possible to make loops, Hubspot detects it and doesn't allow it. However, I've been able to fix this issue with the enrollment and re-enrollment triggers and re-enrollment settings of the 2 pictures bellow. You will need to delete the delay until 12:15, otherwise every day the date will change a bit later and it will become a problem because "today's date" will change in the middle of the day. Anyway, with this re-enrollment settings the delay is not needed anymore.
Tip: use this setting to make sure that the updates happen during the night and your colleagues always see the right time 🙂 <-- UPDATE: Don't do this, I found that after some time it caused part of deals to not update for a day because the update would fall outside of the specified hours. So some were at 'Yesterday' for a day.
@helenasolsona Do you have a similar workaround for the Contacts module? It doesn't seem like within Contacts that I can add a condition like " X has not been updated in the last Y" and the delay isn't working for me either. Trying to play with conditions to see if I can find something that for sure would update once per day.
EDIT: In case it helps anyone, I figured out a method that worked for today though haven't verified it works for multiple days (though I don't see a reason it shouldn't).
I created an active list with the following criteria (despite the condition name, this seems to work for records where the date is more than or equal to 1 day ago):
Then I created a workflow that enrolls (and has a re-enrollment trigger) on the list membership:
Also having the same issue where deals are not re-enrolling into the workflow..... super annoying.
Is there a way to flick deals back anf forward between the same automation? ie. duplicate the workflow above and have the last step delay until 12:15 am and then send to the other identical workflow?
I've tried this (as a deal property instead of a contact property) and I have a question: even though I have turned on the re-enrollment for "today's date is known" and set up a delay until 00:05am, deals did not re-enroll so the date was not automatically updated. Do you know why this might be happening?
Thanks for providing this workaround solution. I hope it can help some people.
We did something like this in our company's hubspot account, and the solution worked on the first day, but ultimately did not work for us as a longterm solution.
1) we have hundreds of thousands of contacts, so this workflow is constantly calculating, and this has processing issues, which eventually breakdown and give incorrect data. It will be even worse for Deals data (millions)... like a perpetual for loop, constantly calculating.
2) some of our dates continued to update, and others became "frozen" on a particular date, which allows our users to create new reports using this column, but the output of the reports they create are wrong, and they won't know, unless they troubleshoot individual contacts to see where the workflow failed.
3) This kind of workflow is a perfect example of when Hubspot should make a feature, and not require users to build "expensive workflows" to solve a simple problem.
We have asked for a "Today's Date" feature to be added, with "Time Between" capabilities. We even directly wrote to the VP of Global Customer Support (David Hunt) on October 14th, 2020. Many people agree, it is shocking/disappointing that Hubspot does not provide this feature "out-of-the-box". Of course, all will be forgiven if we receive this feature soon 😉 We have waited 2 months, let's see how long it takes Hubspot to give users a necessary feature (this is not a UI nice-to-have feature, this is a business intelligence 'must-have' feature).
Right now, we are forced to export our data into a data warehouse, converting Hubspot data into database tables, and then we do the getdate() calculations in SQL and build our automated reports this way. Or, in spreadsheets. Hubspot has become the thorn in our side -- a platform that requires us to use workarounds and ultimately just need to workaround Hubspot entirely, using other platforms to build our automated reports.