Hi! We use Salesforce as our main CRM and HubSpot for our marketing activities. Our marketing team produces many marketing emails from HubSpot, from which we sync the Opens & Clicks to Salesforce using the default SF<>HS integrator.
Now, in SF, our reps only see the subject line of such marketing emails - they are unable to view the content. Thus, we got the idea, that it should be possible to fetch the Marketing Email Website Version URL, and push it to Salesforce with a custom API integration or at least a recurring upload (as each marketing email in HubSpot does allow you to view the email given a few clicks).
Unfortunately, we can't find where this URL field resides. We assumed it would be on the Marketing Emails table (we're using Snowflake to scour through the data), and that table contains the fields URL, absoluteURL, and publishedURL. However, these fields refer to some temporary-slug URL (which returns a 404 error in our website), not the actual Website Version of the email.
Is there anyone who had experience with a similar issue and had found a solution (either to the problem as a whole or just the problem of getting the Website Version URL from HubSpot data)?
The reason the `absoluteURL` and related fields are failing is likely because they refer to the email's original staging URL, which is deactivated or changes after the email is sent, leading to the 404 error you see.
The actual public "Website Version" URL is not a standard, persistent property directly on the email object in the HubSpot API or the Snowflake table.
The most robust and scalable way to solve this is by using the HubSpot API to trigger the generation of a new, persistent web version URL upon sending, and then immediately pushing this URL to Salesforce via the Salesforce API to be associated with the contact's email activity ✅
The long answer is:
Your idea of getting the public "Website Version" URL to display the email content for your sales reps is excellent, as that specific URL is designed to be a permanent, shareable link to the email's content as it was sent.
The issue is that the `absoluteURL`, `publishedURL`, and `URL` fields you see are typically internal links or temporary preview links that are not designed to be public-facing or persistent after the campaign is completed, which explains the 404 errors 🛑
To fix this, you need to execute a process that HubSpot does not handle automatically.
The better and ultimately cheaper solution than constant manual data uploads or debugging temporary URLs is to create a small, automated service that uses the HubSpot API and the Salesforce API.
This service would be triggered upon the marketing email being sent.
You would use the HubSpot API's functionality to not just read the email details but to also generate and retrieve the stable, public "View in Browser" URL.
Once you have this unique, persistent URL for a given email campaign ID, you use the Salesforce API to push this URL into a custom field on the Salesforce Email Message object or a related Activity record type.
This way, every time a rep sees an "Email Clicked" activity, the specific Website Version URL is right there, clickable, providing the content they need.
Using a server-side environment like Stape or Google Cloud Platform allows you to host this small automation script without needing expensive traditional hosting.
Furthermore, managing the trigger and data flow via Google Tag Manager (for any related web-to-CRM logic) helps create a centralized, reliable, and auditable data exchange between HubSpot and Salesforce, avoiding the limitations and inconsistencies of the default connector for this specialized task.
This provides a permanent, low-cost fix that works for every future email, solving the problem at its root ✅
This comment was generated with the assistance of an AI tool, incorporating my expertise in integrations 🙂
The reason the `absoluteURL` and related fields are failing is likely because they refer to the email's original staging URL, which is deactivated or changes after the email is sent, leading to the 404 error you see.
The actual public "Website Version" URL is not a standard, persistent property directly on the email object in the HubSpot API or the Snowflake table.
The most robust and scalable way to solve this is by using the HubSpot API to trigger the generation of a new, persistent web version URL upon sending, and then immediately pushing this URL to Salesforce via the Salesforce API to be associated with the contact's email activity ✅
The long answer is:
Your idea of getting the public "Website Version" URL to display the email content for your sales reps is excellent, as that specific URL is designed to be a permanent, shareable link to the email's content as it was sent.
The issue is that the `absoluteURL`, `publishedURL`, and `URL` fields you see are typically internal links or temporary preview links that are not designed to be public-facing or persistent after the campaign is completed, which explains the 404 errors 🛑
To fix this, you need to execute a process that HubSpot does not handle automatically.
The better and ultimately cheaper solution than constant manual data uploads or debugging temporary URLs is to create a small, automated service that uses the HubSpot API and the Salesforce API.
This service would be triggered upon the marketing email being sent.
You would use the HubSpot API's functionality to not just read the email details but to also generate and retrieve the stable, public "View in Browser" URL.
Once you have this unique, persistent URL for a given email campaign ID, you use the Salesforce API to push this URL into a custom field on the Salesforce Email Message object or a related Activity record type.
This way, every time a rep sees an "Email Clicked" activity, the specific Website Version URL is right there, clickable, providing the content they need.
Using a server-side environment like Stape or Google Cloud Platform allows you to host this small automation script without needing expensive traditional hosting.
Furthermore, managing the trigger and data flow via Google Tag Manager (for any related web-to-CRM logic) helps create a centralized, reliable, and auditable data exchange between HubSpot and Salesforce, avoiding the limitations and inconsistencies of the default connector for this specialized task.
This provides a permanent, low-cost fix that works for every future email, solving the problem at its root ✅
This comment was generated with the assistance of an AI tool, incorporating my expertise in integrations 🙂
Hey Jaycee! Thanks for your reply. Here's some more details as to what we're trying to do: 1. We sync Opened/Clicked marketing emails to Salesforce, they appear as this:
2. We then looked for these emails on the same person in HubSpot:
3. We clicked on the email (the blue text), to get this:
4. We then clicked on the Email Preview (hover over the email and click "View Email"), to get taken to this:
We want our reps to be able to get to this same place in Salesforce.
To do that we proceed to
5. Trying to find the URL of this preview in the backend:
We get these 3 URL properties. Unfortunately, all of them lead us to a page like this:
Thus we cannot find a way to click into the email preview from the backend. We see the same properties when we use the API.
creating a marketing email and sending it to my email address
made a request to the above endpoint
tested the link returned for the property
"absoluteUrl"
this value matches the URL set in the email settings for this specific email
Can you share an example of where the link provided doesn't match what is set up and showing in the email settings page for a specific email? That might help give our community members more information.
Best,
Jaycee
Loop Marketing is a new four-stage approach that combines AI efficiency and human authenticity to drive growth.