All n8n workflows
Edit Fields (Set) If Code HTTP Request Wait Zvid Send Email Schedule Trigger

Recover abandoned Shopify checkouts with personalized Zvid videos

Recover abandoned Shopify checkouts with personalized product videos. This workflow finds an eligible checkout, confirms the shopper has not converted, renders a tailored Zvid video, sends an optional recovery email, and stops the follow-up after purchase.

Copy, then paste directly onto your n8n canvas (Ctrl/Cmd + V) — or import the downloaded file via Workflow menu → Import from file.

How it works

What this workflow does

This workflow turns one eligible abandoned Shopify checkout into a private, personalized vertical product video and recovery email. It is designed to recover revenue without messaging shoppers who already purchased or duplicating Shopify's own recovery messages.

End-to-end flow

  1. Trigger: Run it manually for testing or every 15 minutes on schedule.
  2. Find and lock one checkout: Use a safe fixture or query Shopify Admin GraphQL, then lock one eligible checkout so overlapping executions cannot process it twice.
  3. Wait before outreach: Pause for the configured recovery delay (60 minutes by default; two seconds in fixture mode).
  4. Recheck eligibility: Confirm there is no completed order or draft order, the abandonment is still current, inventory remains available, and Shopify has not already sent a recovery email.
  5. Build the video: Map the shopper's first name, up to three product titles, images, prices, and cart total into a privacy-safe 1080x1920 Zvid project.
  6. Validate before spending: Zvid validates the project for free. With dryRun: true, the workflow saves an editor draft and returns the exact credit quote without rendering an MP4.
  7. Render: With dryRun: false, submit the official Zvid render, poll until it finishes, and collect the video URL.
  8. Send the first recovery email: If sendEmail: true, send the Shopify recovery link and video URL through the configured SMTP credential.
  9. Stop after conversion: If follow-up is enabled, wait again and query Shopify once more. A completed order ends the branch; otherwise one follow-up email is sent.
  10. Record the result: Mark the checkout as handled and return an audit summary while excluding email, phone, and the private recovery URL.

Business benefit

Personalized video makes a recovery message more relevant by showing the exact products left behind. The conversion and duplicate guards reduce wasted renders, duplicate outreach, and poor customer experiences, while the dry-run path gives the team a review and credit-approval checkpoint before going live.

Set up steps

1. Install the official Zvid nodes

In n8n, open Settings → Community nodes and install @zvid/n8n-nodes-zvid. A workspace owner or admin may need to install it.

2. Connect Shopify

Create or update a Shopify Dev Dashboard app with read_orders, read_customers, and read_products. The installing user must also have Manage abandoned checkouts permission.

Copy the canonical *.myshopify.com domain from Shopify Admin → Settings → Domains. In Config.shopDomain, enter only its subdomain; do not use the /store/... Admin URL handle.

Exchange the app's Client ID and Client secret for an access token, then create an n8n Header Auth credential:

  • Name: X-Shopify-Access-Token
  • Value: the returned access_token

Assign it to Find open abandoned checkouts, Confirm no purchase and inventory, and Confirm before follow-up. The Client ID and Client secret are not the access token. Dev Dashboard access tokens expire after 24 hours, so refresh the n8n credential before later scheduled runs or use a secure token-refresh service.

3. Connect Zvid

Create a Zvid API key at app.zvid.io/api-keys. In n8n, create a Zvid API credential with the key and the default Base URL https://api.zvid.io. Assign it to all four official Zvid nodes: Validate project (free), Save draft to editor, Submit render, and Get render status.

4. Run the safe fixture test

Leave these Config values enabled for the first run:

{
  "manualFixture": true,
  "dryRun": true,
  "sendEmail": false,
  "testFixtureRecoveredBeforeFollowUp": true
}

The fixture uses fake contact data and the real example product Clay Pocket Oversized Tee, variant M, quantity 1, total $35. It creates an editor draft and credit quote but sends no email and renders no paid MP4.

5. Switch to live data carefully

  1. Set manualFixture: false while keeping dryRun: true and sendEmail: false.
  2. Run manually. No eligible checkout is a successful no-op.
  3. Review the draft in editor.zvid.io and approve the quoted credits.
  4. Set dryRun: false to enable paid rendering.
  5. Add an n8n SMTP credential to both email nodes, set emailFrom to a verified sender, privately test delivery, and only then set sendEmail: true.

Configure SPF, DKIM, consent, quiet hours, and local recovery-message rules before activation. The Shopify reads use built-in HTTP Request nodes because n8n's Shopify node does not expose the abandoned-checkout objects and conversion/inventory fields required by this workflow; all supported Zvid operations use the official Zvid nodes.

More n8n workflows

Ready to ship video at scale?

Start free — your first render is only a JSON payload away.