Make
Send Zidi events to a Make.com scenario. You paste one Make webhook URL into Zidi, and every event goes to that URL.
Available on: Pro
There is no Zidi app inside Make. The connection is a Custom webhook module in your scenario. You can save one Make URL per Zidi account.
Connect a Make scenario
When you save the URL, Zidi sends a live test event to it. The save only works if the webhook answers, so set up Make first.
- In Make, create a scenario and add a Custom webhook module as the trigger.
- Copy the webhook URL that Make creates.
- Turn the scenario on in Make, so the webhook is listening.
- In Zidi, in the sidebar, click Integrations, then the Make.com card.
- Paste the URL into Make.com Webhook URL.
- Optional: click Test Webhook. You see "Webhook reached your Make.com scenario." when it works.
- Click Connect to Make.com. You see "Make.com connected successfully!".
The URL must look like https://hook.us1.make.com/…. Other Make regions and older integromat.com hook URLs also work.
The test event
Both Test Webhook and Connect to Make.com send one event with "event": "test.ping". Your scenario receives it like any other event. Filter it out if you do not want it to run your later modules.
Events Zidi sends
All events go to the same URL. Use a Router in Make and filter each route on the event field.
| event | Sent when |
|---|---|
video.viewed | A campaign recipient opens their personal link for the first time. |
cta.clicked | A campaign recipient clicks the call-to-action for the first time. |
engagement.threshold | An identified viewer passes 50%, 80% or 100%. |
campaign.launched | You launch a campaign. |
video.uploaded | A new video is added to your library. |
What each event means
video.viewedfires once per campaign recipient. Views of a normal share link or an embedded video never send it. ItspercentWatchedandwatchDurationSecare always 0.cta.clickedfires once per campaign recipient. CTA clicks on a normal share link do not send it.engagement.thresholduses three milestones: 50%, 80% and 100%. It covers campaign recipients, and people who watch through a tracked link or while signed in to Zidi. For campaign recipients, each milestone fires once per recipient. For tracked-link and signed-in viewers, each milestone fires at most once a day per viewer. A visit more than 24 hours later can fire it again. If one progress report crosses several milestones, for example on a short video or when a tracked-link or signed-in viewer skips ahead, Zidi still sends each one as its own event. Each lower milestone carries its own value aspercentWatched, for example 50, and the highest carries the viewer's real percent. So a filter onpercentWatched, such as 100, runs once when a viewer finishes.thresholdCrossedtells you which milestone an event is for. Zidi holds every 80% event for about 5 seconds and every 100% event for about 10 seconds, so a viewer's events normally arrive lowest first. Make runs a scenario's webhook events in parallel unless you turn on Process data in order in the scenario settings. For campaign recipients only what actually played counts, so skipping ahead does not cross a milestone.video.uploadedfires for uploads, browser and Chrome extension recordings, and videos you render from the editor.
What the request looks like
Each event is a JSON POST with this shape:
{
"event": "engagement.threshold",
"timestamp": "2026-09-24T10:30:00.000Z",
"idempotencyKey": "threshold-campaign-abc123-80",
"data": {
"id": "threshold-campaign-abc123-80",
"videoId": "…",
"videoTitle": "Product demo",
"percentWatched": 82,
"thresholdCrossed": 80,
"thresholdPercent": 80,
"watchDurationSec": 95,
"viewerEmail": "redacted",
"viewerName": null,
"company": null,
"recipientHash": "3f9a1c0b7d2e4f61",
"campaignName": "Q3 outreach",
"timestamp": "2026-09-24T10:30:00.000Z"
}
}The same key is also sent in the X-Zidi-Idempotency-Key header. If Make receives the same key twice, treat it as a repeat. You can use it to skip duplicates. For video.uploaded the key is the video ID, so a later re-render of the same video reuses it. Treat your webhook URL as a secret. Anyone who has it can send data to your scenario.
Fields inside data
| event | Fields |
|---|---|
video.viewed | id, videoId, videoTitle, totalViews, viewer fields, campaignName, watchDurationSec, percentWatched, timestamp |
cta.clicked | id, ctaId, ctaLabel, ctaUrl, videoId, videoTitle, viewer fields, campaignName, timestamp |
engagement.threshold | id, videoId, videoTitle, percentWatched, thresholdCrossed, thresholdPercent, watchDurationSec, viewer fields, campaignName, timestamp |
campaign.launched | id, campaignName, campaignId, status, videoId, videoTitle, recipientCount, timestamp |
video.uploaded | id, title, videoUrl (the share link), sourceUrl (a download link that works for 7 days), views, duration, sourceType, timestamp |
"Viewer fields" are viewerEmail, viewerName and company, plus recipientHash when the details are hidden. For viewers outside a campaign, company and campaignName are null.
Why viewer details show as "redacted"
By default, campaign events do not carry the recipient's identity. viewerEmail is "redacted", viewerName and company are null, and recipientHash holds a 16-character ID that stays the same for that recipient.
To receive the real email, name and company, turn on Include recipient PII for the campaign before you launch it. The toggle is in the campaign's Custom Webhook card, and you can change it only while the campaign is in Draft. The steps are in Send names and emails for a campaign.
Change the URL or disconnect
When connected, the Make.com page shows the last 6 characters of your saved URL. The rest is hidden because anyone with the URL can send data to your scenario.
- To use a new scenario, paste its URL into Update Webhook URL and click Update. Zidi sends the test event again first, so the new scenario must be on.
- To stop sending events, click Disconnect Make.com. Zidi deletes the saved URL.
If your account moves off Pro, Zidi stops sending events but keeps the URL. Events from that time are not sent later. See Plans.
Troubleshooting
These messages appear when you test or save the URL.
| Message | What to do |
|---|---|
| Invalid webhook URL. Expected format: https://hook.us1.make.com/... | Copy the full hook URL from the Custom webhook module. |
| Webhook returned 404 — the scenario may be paused or the URL is wrong. | Turn the scenario on, or copy the URL again. |
| Webhook returned HTTP {n}. Check that the Make.com scenario is running. | Check the scenario in Make, then try again. |
| Webhook timed out after 10s. Check the scenario is running. | Make did not answer in 10 seconds. Check the scenario is on. |
| Could not reach the webhook. Check the URL uses HTTPS and is public. | Check the URL starts with https:// and was copied in full. |
| This integration requires a Pro plan. | Upgrade to Pro from Billing. |
If events stop arriving after setup, check these points:
- The viewer used a personal campaign link, not a normal share link.
- It is the first open or first click for that recipient.
- The campaign was launched less than 90 days ago. Tracking ends 90 days after launch.
- The scenario is still on in Make.
Related