Currently, a due date for a task can be set to a specific date or a set number of days from task creation.
Suggestion: allow task due date to be set in relation to a date property on an associated record
Example use case: use a deal-based workflow to create tasks for deals that needs to be set in relation to the deal close date (e.g. a certain number of days beforehand)
We use custom objects for engineer jobs - we want to be able to take a date field on the object to create a task that goes into the engineer's calendar based on when that job starts. The "delay until" function isn't a workaround, as it would only add to their calendar when the job is due, rather than going in their diary from the day it gets scheduled.
I use HubSpot for onboarding new employees and being able to set a due date relative to their onboarding date would be ideal. There are some tasks I can ONLY do within 5 days of their starting date, or I'll need to redo them.
@SkeeStylus I'm very curious about what you've come up with. The only solution I have so far is a task to set due dates.
@Hkrewson Like I said...its way more complicated than it should be. I leveraged the delay actions because we can delay a set number of days before a date property which in this workflow is Report Due Date. We determined the task for the Report Due Date doesn't need to be set more than 120 days from the due date. If its set outside of this window, it will wait until 120 before and set the task due 120 days from that date. I even created a reminder usually 30 days prior to. If the due date is 119 days from today it will wait until 115 days before and set the task 115 days from that date with the adjusted reminder and so on and so on. The task detail displayed is for 70 days prior to the due date to give you an example. Because we're limited in branches and my time is way more valuable I just did this in 5 day increments so at most, you'll have to wait 4 days before the task to be set. Make sense? DM me if you have questions.
Hi @SkeeStylus thank you for sharing your workaround solution. I do like it and would like to set up something similar. Might I just ask how you did configure the branches? Specifically I would be keen to know how you set the criteria and how to achieve this "Check branches in order" functionality.
When I finally got to making my task workflow, I ended up doing it all in custom code.
It happens in two components. You'll define a task creation function. This needs to get name (tname), a set of properties for the task (properties), and a hubspot object id for the ticket you attach it to (ticketID).
Then you'll need to build your task properties. You'll need a date for this too. In my case, I'm getting a date from an input field (which comes from a form submission that creates a ticket) and pushing that to the timestamp below.
taskproperties = {
"hs_task_subject": "Some text or a variable here.",
"hubspot_owner_id": owner_id,
"hs_task_body": "Some text or a variable here.",
"hs_task_status": "NOT_STARTED",
"hs_task_priority": "MEDIUM",
"hs_task_type": "TODO",
"hs_timestamp": date
}
And finally, you'll run the function to create the task.
I'm actually getting all of my task data from another api call in the custom code, then looping through it to create one task for each "item" I'm grabbing.
Then I do Magic™ by calling my custom object via API and gathering the properties. It's a lot and if you want to see the whole thing, let me know.
Finally, I do a for loop to work through all of the properties, building a task for each and sending it to the above function.
for uam in api_response.results[0].properties.keys():
if api_response.results[0].properties[uam]:
if "employee" not in uam:
taskproperties = {
"hs_task_subject": "",
"hubspot_owner_id": owner_id,
"hs_task_body": "",
"hs_task_status": "NOT_STARTED",
"hs_task_priority": "MEDIUM",
"hs_task_type": "TODO",
"hs_timestamp": date
}
create_task("remove access to " + uam, taskproperties, ticket_ID)
The "date" in the code above comes straight from a HS form fill.
Then I do Magic™ by calling my custom object via API and gathering the properties. It's a lot and if you want to see the whole thing, let me know.
Finally, I do a for loop to work through all of the properties, building a task for each and sending it to the above function.
for uam in api_response.results[0].properties.keys():
if api_response.results[0].properties[uam]:
if "employee" not in uam:
taskproperties = {
"hs_task_subject": "",
"hubspot_owner_id": owner_id,
"hs_task_body": "",
"hs_task_status": "NOT_STARTED",
"hs_task_priority": "MEDIUM",
"hs_task_type": "TODO",
"hs_timestamp": date
}
create_task("remove access to " + uam, taskproperties, ticket_ID)
The "date" in the code above comes straight from a HS form fill.
We also need this feature desperately! We organise all our customer onboarding tasks in task lists that are created by workflows. The due dates for these tasks naturally depend on the "date stage entered" deal field, or the "close date" deal field.
Stucked within multiple workflows now, because this feature is missing. We have a lot of process steps within our pipelines and wanted to automate some of them and create tasks for relevant people with the due date that came into the process. But for this we have to react based on a 'starting date' and from there we need to add a task on day7 and another on day 10 for e.g.
we've cerated the date fileds where we calculate already the due dates fot those steps now, but im not able to put that into the tasks due date(s) 😞
This is currently a huge annoyance for us. We always want our tasks to align with a date on an associated record (e.g. Deal Close Date) etc.
Simply being able to bind a date from an associated object would cover most of the use-cases described above, particularly now you can create calculated fields with date offsets. (e.g., create a "renewal discussion" calculated date that is 30 days before a close date, then bind "renewal discussion" to a task that gets created.
I am also onboard with this idea. Having just started a new role wherein the company wishes to use Workflows to keep track of product deliverables and ensure they are provided to clients on time, we need some way to calculate a given Task’s due date based on the parent record’s own due date. Sure, There are workarounds, but a stock field that automatically calculates the required date would be preferable.
I have attempted to use the Delay feature in a Workflow so that a task will be DUE a certain amount of days before a contact object (Event Date).
It does not create the task until that date, so it can'b be seen in a team members tasks to be completed in the future.
This is VERY disappointing and has me questioning why I chose Hubspot as the CRM tool. It requires too many manual touches.
I'd like to create tasks that are due in a workflow leading up to an event date. Right now, task creation and due date only counts forward from today. I need it to count backward from the EVENT DATE, which is an object in the contact.
Hubspot will not be able to continue to be the CRM system if that is the case.