A update to a Contact triggers updates to other Contacts at that same Company - complex workflow!
SOLVE
At a high level what I'm trying to do is update OTHER contacts at a company based on a change to ONE contact at the same company.
Here's an example:
Let's say I make 2 custom contact properties: "last_seen_demo" and "someone_on team_has_seen_demo"
1) I show you a product demo, I will adjust your "last_seen_demo" to "Product" (we can assume there are multiple types of demos)
2) Based on above, I would like a workflow to change "someone_on_team_has_seen_demo" to "Product" for your co-workers
There's 2 big complexities:
- I want to allow infinite re-enrollment (which is why the property is "last_seen_demo". So if I later show someone else on your team a "Sales" demo, that's the value that I want to be propagated, and so on
- I want to update only CERTAIN other co-workers of yours (e.g., I'd change for co-workers working in your direct team, but not take action on other co-workers, e.g., like if we talked to someone in Legal)
I cannot think of a way to make this work. Initially, I had thought about doing this with 2 workflows. So, I show you a product demo, I will adjust your "last_seen_demo" to "Product", then here's what happens
A) A contact-based workflow trigger and copies this to a Company property, so that your company's "last_seen_demo" becomes "Product"
B) Another contact-based workflow says, any Contacts where Company's "last_seen_demo" is known gets filtered (for specific team) and updated
This doesn't work because in workflow B, re-enrollment isn't possible on an associated record (it's a contact-based workflow, but the trigger is a property on the associated company)
Then I thought maybe I could swap workflow B to be Company-based. But the problem was that with a Company-based workflow, while I can re-enroll each time the company's "last_seen_demo" changes, I cannot filter for specific Contacts. A filter for Any Contact of that Company on a specific team, then update ONLY those contacts... actually means as long as a contact of that Company on that team exists, then update ALL contacts.
Hubspot support suggested Association Labels, but I've never used those, and am worried that will add additional complexity, and still may not resolve the issue. Would love advice from folks with more experience: 1) Is there a way you can think of achieving this without the standard set of workflow triggers? (also open to taking things off HS and using, for example, a workflow in Zapier) 2) If not, would Association Labels actually work? Worried about another gotcha where they don't enable re-enrollment or something like that, and the documentation isn't very explicit...
I typically solve for this type of issue by using a property I call "Refresher" on the target object. This refresher is single checkbox property that can be set by workflows starting from any associated object and is cleared by the target object once the task/check on the target object is achieved. A bit like this.
In your case, it would look like this:
Create a "Refresher" property on the contact object, single checkbox.
A contact-based workflow copies "Product" into "last_seen_demo" on the associated company.
A company-based workflow is triggered by this value change and updates "Refresher" on all associated contacts.
A contact-based workflow checks whether "Refresher" is any of yes and enrolls the contact. Using a branch, it performs additional checks (e.g. about their role/position), where ineligible roles/positions don't get updated but all records end up getting their value in "Refresher" cleared.
Hope this helps!
Karsten Köhler HubSpot Freelancer | RevOps & CRM Consultant | Community Hall of Famer
I typically solve for this type of issue by using a property I call "Refresher" on the target object. This refresher is single checkbox property that can be set by workflows starting from any associated object and is cleared by the target object once the task/check on the target object is achieved. A bit like this.
In your case, it would look like this:
Create a "Refresher" property on the contact object, single checkbox.
A contact-based workflow copies "Product" into "last_seen_demo" on the associated company.
A company-based workflow is triggered by this value change and updates "Refresher" on all associated contacts.
A contact-based workflow checks whether "Refresher" is any of yes and enrolls the contact. Using a branch, it performs additional checks (e.g. about their role/position), where ineligible roles/positions don't get updated but all records end up getting their value in "Refresher" cleared.
Hope this helps!
Karsten Köhler HubSpot Freelancer | RevOps & CRM Consultant | Community Hall of Famer