CRM Integrations
ImpossibleFX renders personalized videos on demand. CRM platforms like Salesforce, HubSpot, and Marketo can trigger these videos by inserting contact data into a URL — no plugins or API code required.
This page covers the general workflow and shows how to set it up in each platform.
How it works
Most email clients do not support inline video playback. The standard pattern is:
- Build a landing page that embeds the ImpossibleFX player and reads personalization values from URL parameters.
- Create a CRM email template with a clickable thumbnail image that links to the landing page. Use the CRM’s merge fields to inject contact data into the URL.
- When the recipient clicks, they land on a page that renders their personalized video in real time.
The landing page URL follows this pattern:
https://yoursite.com/video/welcome?name=FIRST_NAME&company=COMPANY_NAME
Your CRM replaces FIRST_NAME and COMPANY_NAME with real contact data at send time. The landing page reads those parameters and passes them to the ImpossibleFX player.
Landing page
The landing page is a simple HTML page that you host. It reads URL parameters and passes them to the ImpossibleFX player. Here is a minimal example:
<!DOCTYPE html>
<html>
<head>
<title>Your Personalized Video</title>
<link rel="stylesheet" href="https://cdn.impossible.io/support/fxplayer.css" />
<script src="https://cdn.impossible.io/fxplayer/v3/fxplayer.js"></script>
</head>
<body>
<div id="player" style="max-width: 720px; aspect-ratio: 16/9;"></div>
<script>
const params = new URLSearchParams(window.location.search);
const player = new fxplayer.FXPlayer('player', {
controls: true,
impossible: {
projectId: 'YOUR-PROJECT-ID',
movie: 'welcome-video',
params: {
name: params.get('name') || 'there',
company: params.get('company') || '',
},
},
});
player.play();
</script>
</body>
</html>
The URLSearchParams API reads values from the query string. The fallback values ('there' and '') handle cases where a contact field is empty.
Email thumbnail
ImpossibleFX can render a single frame from your video as a JPEG or PNG — with the same personalization as the video itself. Instead of using a generic screenshot, use the direct URL with a .jpg extension to generate a personalized still frame for each recipient:
<a href="https://yoursite.com/video/welcome?name=MERGE_FIELD&company=MERGE_FIELD">
<img
src="https://render.impossible.io/v1/render/YOUR-PROJECT-ID/welcome-video.jpg?name=MERGE_FIELD&company=MERGE_FIELD&frame=30"
alt="Watch your personalized video"
width="600"
style="display: block; border-radius: 8px;"
/>
</a>
The frame=30 parameter selects which frame to use as the thumbnail (frame 30 in this example). Add a q parameter (10–99) to control JPEG quality. Replace the MERGE_FIELD placeholders with your CRM’s merge field syntax (shown in each section below).
Because the thumbnail is rendered with the same contact data as the video, each recipient sees a personalized preview image — for example, their name or company logo already visible in the still frame. This significantly increases click-through rates compared to a generic image.
Design your video template so that an early frame (around 1–2 seconds in) works well as a still image. That frame will be the personalized thumbnail every recipient sees in their inbox.
Direct video URL
If your landing page only needs to show the video without additional content, you can link directly to the rendered MP4 instead:
https://render.impossible.io/v1/render/YOUR-PROJECT-ID/welcome-video.mp4?name=MERGE_FIELD&company=MERGE_FIELD
The browser will play the video natively. This is simpler but gives you no control over the page layout, branding, or calls to action.
Salesforce
Salesforce Lightning email templates use triple-brace merge fields: {{{Recipient.FirstName}}}.
Email template link
In your Salesforce Lightning email template, create a linked thumbnail that passes contact data to your landing page:
<a href="https://yoursite.com/video/welcome?name={{{Recipient.FirstName}}}&company={{{Recipient.Company}}}">
<img
src="https://render.impossible.io/v1/render/YOUR-PROJECT-ID/welcome-video.jpg?name={{{Recipient.FirstName}}}&company={{{Recipient.Company}}}&frame=30"
alt="Watch your personalized video"
width="600"
style="display: block; border-radius: 8px;"
/>
</a>
Direct video URL
To link directly to the rendered video without a landing page:
https://render.impossible.io/v1/render/YOUR-PROJECT-ID/welcome-video.mp4?name={{{Recipient.FirstName}}}&company={{{Recipient.Company}}}
Classic email templates use a different syntax: {!Contact.FirstName}. Marketing Cloud and Account Engagement (Pardot) have their own merge field formats — check your edition’s documentation.
Salesforce resources
- Use Merge Fields in Email Templates — official guide to inserting merge fields in Lightning templates.
- Embed Videos in a Salesforce Classic Email Template — Salesforce’s own guide on video in email.
- Using Video in Account Engagement Emails — video in Pardot / Account Engagement.
HubSpot
HubSpot uses double-brace personalization tokens with spaces: {{ contact.firstname }}.
Email template link
In the HubSpot email editor, switch to the HTML source of your email module and add:
<a href="https://yoursite.com/video/welcome?name={{ contact.firstname }}&company={{ contact.company }}">
<img
src="https://render.impossible.io/v1/render/YOUR-PROJECT-ID/welcome-video.jpg?name={{ contact.firstname }}&company={{ contact.company }}&frame=30"
alt="Watch your personalized video"
width="600"
style="display: block; border-radius: 8px;"
/>
</a>
Direct video URL
https://render.impossible.io/v1/render/YOUR-PROJECT-ID/welcome-video.mp4?name={{ contact.firstname }}&company={{ contact.company }}
HubSpot lets you set default values for personalization tokens. Set a fallback like {{ contact.firstname | "there" }} so contacts with missing first names still get a working URL.
HubSpot resources
- Use Personalization Tokens — full guide to HubSpot’s token syntax and defaults.
- Add Videos to HubSpot Content — HubSpot’s own video embedding guide.
- Add Videos to CRM Emails — video in one-to-one sales emails and templates.
Marketo
Marketo (Adobe Marketo Engage) uses double-brace tokens: {{lead.First Name}}.
Email template link
In the Marketo email editor, edit the HTML source and add:
<a href="https://yoursite.com/video/welcome?name={{lead.First Name}}&company={{lead.Company Name}}">
<img
src="https://render.impossible.io/v1/render/YOUR-PROJECT-ID/welcome-video.jpg?name={{lead.First Name}}&company={{lead.Company Name}}&frame=30"
alt="Watch your personalized video"
width="600"
style="display: block; border-radius: 8px;"
/>
</a>
Direct video URL
https://render.impossible.io/v1/render/YOUR-PROJECT-ID/welcome-video.mp4?name={{lead.First Name}}&company={{lead.Company Name}}
Marketo token names match the field’s display name and are case-sensitive. If your fields are named differently, check the field names in Admin > Field Management.
Marketo resources
- Personalize an Email — Adobe’s quickstart guide to email personalization.
- Tokens Overview — full reference for all Marketo token types.
- Email Template Syntax — template syntax for editable regions including video.
Tips
Test with real data. Before launching a campaign, send a test email to yourself and verify the landing page URL resolves correctly with your contact data filled in.
URL-encode special characters. If contact fields might contain characters like &, =, or spaces, URL-encode the merge field values. Most CRM platforms handle this automatically for links, but verify with a test send.
Pick a good thumbnail frame. The .jpg thumbnail is rendered from an actual frame of your personalized video. Choose a frame number where the personalization is clearly visible — for example, a frame that shows the recipient’s name or company logo on screen.
Track clicks. All three CRMs track link clicks in emails by default. You can see which contacts engaged with your personalized video directly in your CRM reporting.