I've been working on building a custom report to figure out which campaign caused the most unsubscribes in 2024.
The report is using Campaign (primary), Contacts and Marketing email analytics as data sources. Not sure how I was able to combine these three sources, as I can't reproduce such a report, but that is a different "problem".
I used the Campaign Owner as a filter, and the unsubscribed date for 2024. In the configuration, I am showing the Campaign Name as the rows, and the count of contacts as a value. I thought that it would show what I was looking for. However, this is not the case. It is showing the contacts that have unsubscribed during this period, but that have been "influenced" by the campaign.
Consequently, they might have unsubscribed from campaign A, but they are showing up in campaign B, and C, as they received an email from campaigns B and C during the Event timestamp found in the filters.
I think this type of report may be achieved using Marketing email analytics, but the Campaign name is not a measure that can be added to the report. It is only by campagin ID and that does not help in any way shape or form.
According to HubSpot support, I might be able to achieve this using custom dataset containing derived fields that would calculate the unsubscribe rates and return the campaign name associated with which a contact unsubscribed. Otherwise, using the email analytics API and then correlate contact data, email data, and associate with the campaign.
Does anyone have any insight as to how we could acheive such a report, by using the built-in report filters, and minimal development, or explain how to create a dataset that would provide us this information (never created a dataset).
Personnally, I think this should be an easy, already integrated report feature. Especially, from a marketing reporting perspective.
I tried using the metric you mentionned above but it doesn't seem to be available as described "Unsubscribed from this email". I used the "Marketing email unsubscribed" metric instead, but this is giving me the number of times (sum) an unsubscription status occured. For example, this is what my report looks like :
Data sources :
Marketing email analytics (primary)
Marketing email
Contacts
Filters used :
Event timestamp = less than 31 days ago
Marketing email anylitics - Marketing email unsubscribed = is known
Marketing emails - Email name is known
Configuration : Pivot table
Rows = Email name
Values = SUM (Marketing Email Unsubscribed), can't use any others as they pretty much return 1 all the time, seeing it is the email name.
Email performance (directly from email) : shows 24
I then created a list from the email option "create list" to see these 24 unsubscribed contacts.
List (created from email tool) : size of list 23 contacts
When analysing these differences, the List shows 23 contacts, as one of the contacts received the email twice (ex. yesterday and today), and unsubscribed from both emails on the same day (the one sent yesterday and the one sent today). Consequently, HubSpot counts it as 2 seperate unsubscribes in the Email performance. Therefore, explains the 24 "registered unsubscribes" within the email.
Digging the 25 which are displayed in the report, it shows the "original" 24 from the email performance, but it is also including 1 contact that has not unsubscribed via this email, but rather opted-in to this subscription type, and is not unsubscribed. Why ?
I might be missing something in my report filters, or configuration, but I can't seem to understand why this information is not readily available and easily accessible (without any low-code).
Unfortunately, this reporting adventure has given me a little scare into other reports that I have built. As they might not be displaying exactly what I am looking for, even though the filters being used and configurations seem to be what I would expect it to be. Even after spot checking, and seemed to provide the information required.
I guess the only option left is really the custom dataset. Even then, I am not sure how this could be acheived and will I obtain what I am really looking for.
Thank you very much for your previous input, just thought I'd give you an update.
Currently, one approach is using Marketing Email Analytics and filtering by the "Unsubscribed from this email" metric.
However, since campaign names aren't directly available, a custom dataset with derived fields may be the best low-code solution. This would calculate unsubscribe rates and associate them with the correct campaign.
Join us on March 27th at 12 PM for the Digital Essentials Lab, an interactive session designed to redefine your digital strategy!
Engage with expert Jourdan Guyton to gain actionable insights, participate in live Q&A, and learn strategies to boost your business success. Don't miss this opportunity to connect and grow—reserve your spot today!