Skip to main content
Salesforce integration

Video engagement on the Salesforce activity timeline

Send a personalized video campaign from Zidi and every recipient is matched to a Salesforce Contact by email address, or created as one. When they open the page without pressing play, or finish the video or click, Zidi logs a completed Task against that Contact — so the rep sees the video in the same activity timeline as the calls and the emails, without opening another tool.

How to connect Salesforce

  1. 1

    Open Integrations in Zidi

    From your Zidi dashboard, open Integrations and pick the Salesforce card. Connecting is on the Pro plan, and the connection belongs to your own Zidi account. The first connection in an org needs a Salesforce permission most reps do not hold — see who can connect, below.

  2. 2

    Click Connect Salesforce

    Zidi sends you to your Salesforce login and asks for two scopes: API access, and a refresh token so the connection survives without you signing in again.

  3. 3

    Approve and come back

    Salesforce returns you to Zidi, which stores the connection against your org's instance URL. There is no package to install and no metadata to deploy. A Salesforce admin then installs Zidi for the org, which is what lets the rest of the team connect.

Zidi connects with OAuth from inside Zidi: there is no package to install in Salesforce. Three limits are worth knowing before you start. The first person to connect needs a Salesforce permission most reps do not hold by default, which the next section explains. The connection authorises against production orgs, so sandbox orgs are not supported. And the Salesforce user you connect with needs a profile that allows API access.

Who can connect Salesforce

Salesforce changed this in September 2025. An ordinary user can no longer authorise a connected app that nobody has installed in the org, and Zidi is a connected app. There is still no package to install and no metadata to deploy. What changed is who may click Allow the first time, and the permission that decides it is Approve Uninstalled Connected Apps.

The usual case: you are the one with the Zidi account. Connecting happens inside Zidi, on the Pro plan, and each person connects their own account — so the admin is usually not the one doing it. Ask them to give your Salesforce user Approve Uninstalled Connected Apps. A permission set is enough, and because this is a permission Salesforce means admins to hold, the point is to take it away again once Zidi is installed — after that nobody needs it. Connect from Zidi. Then ask them to open Setup, go to Connected Apps OAuth Usage, click Install in the Actions column beside Zidi, and Install again on the confirmation page. If your admin cannot see Zidi on that page yet, it is because nobody has been through the Salesforce authorisation screen for it. Do the connect above first, then have them look again.

If you are a Salesforce admin with your own Zidi account. You are normally not blocked, because the System Administrator standard profile already carries Approve Uninstalled Connected Apps. Connect from Zidi, then install the app for the org the same way. This is the shorter road, but only if you use Zidi yourself: an admin with no Zidi account has nothing to connect, which is why the path above exists. The one exception is an org running API Access Control, below.

After the install. Salesforce leaves an installed app on its default policy, All users may self-authorize, so your colleagues can then connect from their own Zidi accounts — each of them still on Zidi Pro. If your admin switches that policy to Admin approved users are pre-authorized, they have to pre-authorise those people through a profile or a permission set first.

Orgs with API Access Control are a separate case. That is an optional Salesforce feature, switched on through Salesforce Support, and it denies every app the org has not approved. Use Any API Client is the permission that clears it; Approve Uninstalled Connected Apps does not. You never reach a Salesforce error page here — you are sent straight back and Zidi reports the refusal on its own Integrations page, because Salesforce answers with error=OAUTH_APP_BLOCKED and the description this app is blocked by admin. The way through is for an admin to install Zidi and approve it for the users who need it, or to grant the person connecting Use Any API Client. Until one of those is done, an admin is turned away in such an org as well.

What syncs, and when

What happens in ZidiWhat appears in Salesforce
Campaign launchedZidi looks the recipient up by email address and creates the Contact if the org does not have one. When your recipient row carries a company, Zidi finds or creates the matching Account and links the Contact to it. A completed Task records the personalized video link.
Recipient opens their videoIf they have not started the video or clicked the CTA by the time Zidi syncs, about a minute after their last activity, a completed Task with the subject “Zidi: Video Page Opened” is added to the Contact. A recipient who presses play straight away gets no opened Task; if they then stop before the end without clicking, no engagement Task is written for them at all.
Recipient finishes (95% or more) or clicks the CTAA completed Task with the subject “Zidi: Video Engagement” records how far they watched and which milestones they passed — 25%, 50%, 80%, Completed, CTA Clicked.
A directly shared video is watched by an identified viewerOne Task is created the first time they cross 50% and then updated as they pass 80% and 100%. Its priority is raised to High from 80% onward.

Every Task Zidi writes is created with the status Completed, because it is a record of something that already happened rather than work for a rep to do. Writes are queued rather than instant and engagement is debounced for about a minute per recipient, so a burst of activity produces at most one clean entry. Only identified viewers reach Salesforce at all: campaign recipients and people arriving on a tracked share link. Anonymous views stay in your Zidi analytics.

What a rep sees, and what Zidi never touches

Two Task subjects carry campaign engagement. A recipient who opens their page and has not pressed play or clicked by the time Zidi syncs produces Zidi: Video Page Opened. Finishing the video or clicking the call-to-action produces Zidi: Video Engagement, whose description carries the watch percentage and the milestones that were passed. A rep scanning the timeline can tell the two apart at a glance, and a report writer can filter on the subject without any custom setup.

Contacts, Accounts, Tasks — nothing else. Zidi finds a Contact by email address and creates one if the org has never seen that address. If the recipient row in your campaign carries a company name, Zidi finds or creates the Account with that name and links the Contact to it. Beyond that it writes no Leads, no Opportunities, no Events and no Campaign Members, so it cannot collide with the conversion process your team already runs or inflate anybody's pipeline numbers.

One entry per thing that happened. A Task with the same subject already created on that Contact today is updated rather than duplicated, and the Task written for a directly shared video is edited in place as the viewer passes 50%, 80% and 100%, with its priority raised to High from 80% onward. The result is an activity timeline you can still read after a week of campaigns.

What Zidi adds to Salesforce

A page per recipient. A Zidi campaign builds a personalized video page for each person on the list, with their name in the copy and your call-to-action under the player. Because each link belongs to one person, the watching that comes back is attributable: the Task on the Contact is about that Contact, not about an anonymous play on a shared URL.

The detail that does not fit in a Task. Salesforce gets the summary. Zidi keeps the rest: unique viewers, watch time, completion rate, the retention curve that shows where people dropped out, per-viewer heatmaps of what they replayed, and click tracking on the call-to-action. Use the timeline to spot who is worth a call, and Zidi to work out which thirty seconds of the video did the persuading.

Recording that fits between two calls. The Zidi Chrome extension records your screen, a tab or your camera in the browser, and the recording lands in the same library your campaigns draw from. Record a walkthrough after a discovery call, send it to the people who were not in the room, and read who watched it on their Contact records.

Salesforce integration questions

Which plan do I need?

Integrations are on the Zidi Pro plan. The check runs on the server, not just in the interface: once when you start the connection, again when Salesforce hands you back, and again every time Zidi is about to write. If a workspace drops off Pro the syncing stops and the connection stays in place, so upgrading again resumes it rather than making you reconnect.

Salesforce says “We can't authorize you because of an OAuth error”. What now?

That is the block Salesforce added in September 2025, and it is about permission rather than anything being broken. The full message reads “We can't authorize you because of an OAuth error. For more information, contact your Salesforce administrator.” The address bar behind it carries error=invalid_client and the description app must be installed into org. It means your org has not installed Zidi yet, and your Salesforce user is not allowed to approve an app that is not installed. Ask your admin to assign you the Approve Uninstalled Connected Apps permission, connect from Zidi, and have them install Zidi from Setup under Connected Apps OAuth Usage. One refusal looks similar and is not the same thing: in an org running API Access Control you are sent straight back to Zidi, which shows the message on its Integrations page, because Salesforce answers error=OAUTH_APP_BLOCKED instead. There Approve Uninstalled Connected Apps changes nothing — the admin has to install Zidi and approve it for the users who need it, or grant you Use Any API Client.

Why does Zidi write no Leads?

Because Zidi matches people by email address, and the object that reliably carries an email address across every org is the Contact. Zidi finds or creates a Contact, adds the Account when your campaign supplies a company, and logs engagement against that Contact. It creates no Leads, no Opportunities and no Events, so it cannot interfere with whatever conversion process your team already runs.

Why is a sandbox org not supported?

Zidi's connect flow authorises against the production login host only, so sandbox orgs are not supported — a sandbox has nowhere to send you back from. Connect a production org. If you want to try the integration without touching live records, use a Zidi campaign with a single recipient you control — the writes are additive, and a Task on one Contact is easy to delete.

What does a rep actually see?

Completed Tasks on the Contact's activity timeline, in the same place the rep already looks for calls and emails. The subject says what happened, the description names the campaign, or the video for a direct share, and says how far the person got, and the timestamp says when. Nothing is hidden behind a custom tab or a report the rep has to go and find.

Will this fill the timeline with duplicates?

No. Zidi looks for a Task with the same subject created on the Contact today and updates that one instead of adding another, so a person who opens their video five times in an afternoon leaves at most one Zidi: Video Page Opened Task. The direct-share Task is edited in place at 50%, 80% and 100% for the same reason.

Does anything come back from Salesforce into Zidi?

No. Everything moves one direction, Zidi into Salesforce. Zidi looks a Contact up by email address to match a recipient and never imports or browses your lists. One thing to know: when a campaign launches, the recipient's first name, last name and company (as Department) are written from your campaign list, so on a Contact your org already has, those values are updated to match the list. Beyond that Zidi writes only its own Tasks. Disconnect from Integrations in Zidi and the stored tokens are deleted; the Tasks already written stay where they are.

Still stuck? Email support@zidi.ai or contact our team.

Other Zidi integrations

See every Zidi integration — CRMs, Zapier, Make, Slack, tracking pixels and embed guides.