Count Sales Emails openings for a contact


Hi everyone, 


Here is my trick for getting a custom contact property with the number of Sales email openings / Sales email clicks by contact, as it's not available yet either in the UX or the API. 


I've had this talk with several people, and I believe I saw a post somewhere with folks asking about this topic, but can't find it at the moment. (Feel free to ref this post if you come across it). It is SUPER SIMPLE and extremely useful, so here are my two cents to make your hubspot contact management even better.


1. Create a custom contact property of type Number. 

2. Create a contact workflow, with the trigger "Last Sales Email opening date" is known

3. Action : add 1 to the custom contact property. 


You can do the exact same with "Last click in a sales email date".


Basically, the "is known" trigger will activate every time the property changes, so what this does is count the different email opening timestamps. 

It works like a charm, starting from the moment when you implement it. So I'd advise doing it ASAP in order to make the most of it. 


I haven't yet found a way to count the openings for the backlog, but if you're planning to import new contacts for the year, do yourself a favor, it's amazingly useful for mkg/sales MRR attribution, contact priorization and basically, Sales scoring. 

I'll do another post with my best practices regarding this. 


Let me know what you think (especially if you find a way to count ALL values for "Last email opening date"...) and happy new year!



11 Replies 11
Community Manager


Thanks for sharing @AnaïsB!


Thanks for the suggestion. This doesn't appear to be working for me. It will increment to a value of '1', however, won't increment beyond.


Is there a reenrollment setting that is critical to get this to work?


Hi Jeff ! Did you check the re-inscription panel to the workflow ? By default, it's off. You need it activated so that it does the thing again every time the trigger happens. 



Here are two print screens that I think are relevant. Do I need to change a setting?


When you click on your trigger, you've got this setting for reinscription : 


The toggle needs to be on and the relevant criteria checked ("Date of last click is known" for example)


It's a very important point for any workflow you may create - if you don't toggle this, it runs once in the life of the contact, and that's it! Sometimes that's a good thing (mail sequences etc), sometimes it's not at all what you want. 





Got it! Thanks so much AnaïsB. I much appreciate it. I included a screen print for reference for other users.

Community Manager

Hello @AnaïsB and @Jeff5 


Thank you for sharing all this helpful information to our Community!




Você sabia que a Comunidade está disponível em outros idiomas?
Participe de conversas regionais, alterando suas configurações de idioma !

Did you know that the Community is available in other languages?
Join regional conversations by changing your language settings !



Thanks, @AnaïsB for sharing this tip. Having a better overview of how Sales emails are performing, it was also something I was struggling with. Especially because I recently implemented a Lead Scoring system for our outbound sales strategy, and data on sales emails is one of the few data I can leverage in the initial stages of the pipeline. Unfortunately, HS doesn't provide for sales emails the same granularity it offers for marketing emails. 
Apart from the number of Sales email openings / Sales email clicks by contact, I wanted to have a property that could give me the data on whether the last email sent by a sales rep was opened or not (HS gives you only the "Recent sales email open date"). If Yes -> it means the contact is engaging with the info sent --> I add some points to the Lead Score.


Here how I did it.
1. I created the custom property: "Sales email opened Y/N". It is a single checkbox with "Yes" and "No" as options.

2. I created a workflow to set this property as "No" for all the contacts I'm interested in having this info for. This was a one-time workflow.

Schermata 2020-10-22 alle 12.04.09.png


3. I created another workflow that operates as a sort of "switch". Every time the "Recent sales email open date is known" (I use it also as a re-enrollment trigger) it sets the property "Sales email open Y/N" to "Yes". Then, after a given amount of time, it sets back the property to "No". I chose 3 days as an assumption for how long to consider an email "fresh" combined with the frequency of emails sent by the Sales team.Schermata 2020-10-22 alle 12.00.01.png


I'm still testing it combined with the Lead Scoring system, but it's already providing me with an overview of who is actually opening the emails sent by the Sales team, which in addition to the Sales email openings / Sales email clicks gives already some more data to work on.


I hope this trick can be useful to someone else. Curious to know what you guys think!




Hi Stefano,


I love the spirit of your solution and I suspect you will probably get it to work. However, there is a shorter (maybe easier) way to get a custom 'email sales opened' property to increment properly. Using the workflow that I posted above, the 'sales emailed opened' property automatically increments every time the 'recent sales email open date' is updated. There is no need for a yes/no to be maintened. 

The reason why this autoflow works as such is not intuitive at first. The key is understanding how Hubspot defines known versus not known. Since I don't have access to the actual programming, I can only speculate. But it appears that the 'recent sales email opened' property's "known" status gets nulled (reset to not known) before the subsequent 'recent sales email opened' date is loaded. As a result, the enrollment trigger is valid again, and contacts will reenroll to have the custom property of 'sales emails opened' incremented. This of course relies on the workflow allowing reenrollment. (again, see above) It works great. Give it a try. 


I used a similar workflow to do the same incrementing with 'recent sales emails clicked' too.


BTW, we also use a custom 'lead score' property and assign points based upon marketing/sales emails opened/closed, calls, form fills, etc. We 'tweek' it often, but the lead score is a valuable property to determine a contacts level of engagement.


Let me know if you have any questions. Good Luck!



Hello Jeff,

Thanks for your reply and advice.


In our lead scoring system, I've implemented both solutions.
A couple of workflows similar to the one that you suggested at the beginning of this thread. One connected with a property "Number of sales emails opened" and one with a property "Number of clicks on a sales email". These properties incrementally change and we can track how many times someone opened or clicked on our follow up emails. They are working perfectly!

However, the workflow that I created with the "Y/N" property serves another purpose. It basically tells our sales team if in the last 3 days someone opened the last email that they sent. During these 3 days, while the property is "Y" there are some additional points to the lead score; and after 3 days, when the property is set back to "N", these points are removed. I didn't want to create any automatic tasks for the team, so in this way, thanks to the lead score, I can automatically stress the urgency to follow up with someone that has just read one of our emails and is likely to have our brand more clear in mind.
I have been testing this system for the past 4 months and it's working well!


Have a great day,


Key Advisor | Diamond Partner

Thanks for sharing @AnaïsB , that can be helpful.

Bruno Teixeira

Growth Manager

Cérès Growth Marketing

Hubspot Diamond Partner
Contact us