Built for this How it works Who we are Get in touch
EN FR ES
── -->
How it works

One video. Unlimited recipients.
Each sees their own data.

Iris separates the video track from the data. The video track (animation, layout, brand) is built once and hosted once. The data is whatever your system already knows. They only meet at view time, in the viewer's browser.

  • You already personalize email, SMS, web, and ads: video has been the one channel that stayed generic.
  • Iris makes video behave like the rest of your stack.
  • One MotionPackage. Any number of recipients. No rendering queue, no pre-generation, no storage.
  • Built API-first, designed to slot into the automation flows you already run.
MOTIONPACKAGE Built once · brand · motion DATA name: "David" rate: "5.24%" renewal: "May 2" From your system · per viewer viewer's browser Hi David, your rate is 5.24% Book advisor → RENDERED LIVE · NOTHING PRE-MADE
Data flow

The video assembles on their device.
Iris never receives their data.

Your system already knows who the viewer is, and hands the data to the player at view time. Two integration shapes: both matching flows you already run.

  • Outbound (email / SMS): Iris API generates a unique URL per contact during campaign send. The viewer clicks, the page loads, the video renders with their data. No data is stored by Iris.
  • Authenticated (portal / app): the viewer is already logged in. Your server pulls from CRM and passes it to the Iris embed at render time. Iris receives nothing.
Two lines of HTML. The player runs in a sandboxed iframe: your security review only needs to permit an iframe. For regulated clients, that's often weeks instead of months.
OUTBOUND: EMAIL / SMS Campaign sends Iris API per contact Unique URL in CTA Contact clicks renders locally nothing stored PAGE GENERATES <200MS · 100K RECIPIENTS IN MINUTES AUTHENTICATED: PORTAL / APP Customer logs in Your server pulls from CRM Embed receives at render time renders locally nothing stored Personal data enters at the browser. It never leaves it. OUTBOUND: non-sensitive values only · AUTHENTICATED: sensitive values stay behind session auth
The architecture guarantee

Your data never reaches our servers.

This is not a privacy policy.
It's what the architecture makes impossible.

Personal data enters at the viewer's browser and never leaves it. Iris delivers a MotionPackage, the animated video track, via CDN. Your system injects the viewer's data client-side. Nothing flows back. No PII ever touches Iris infrastructure.

Your compliance team requires no changes to your data governance model. There is no data-sharing agreement to review, because there is no data to share.

Structural guarantee, not a policy claim
Your environment
Client web server (authenticated session)
Browser: viewer data injected locally
Viewer's device: rendering only
Personal data renders locally. Never persisted.
DATA
NEVER
CROSSES
Iris infrastructure
Cloudflare R2: MotionPackage CDN
Cloudflare Worker: publish, analytics
Analytics: packageId, event, timestamp only
No userData. No PII. No viewer identity. Ever.
No data processing agreement requiredIris is not a data processor for your customer PII. It never receives it.
No Iris systems in scope for data auditsWhat is in scope is your own system, entirely within your control.
A breach of Iris cannot expose your customer dataThat data was never present in Iris infrastructure.
Integration review is an iframe permissionOne CSP allowance. No SDK, no agent, no data egress to review.
Cost model

One video track.
The cost doesn't multiply with your audience.

Traditional personalized video platforms render a unique video file per viewer, on a server, using the viewer's data. The cost and data risk scales with volume. A campaign of one million viewers requires one million renders. Iris works differently.

Iris
One MotionPackage is built once and hosted on CDN
Every viewer downloads the same lightweight package
Data is injected in the viewer's browser at play time
No video file is ever generated, stored, or billed per viewer
Cost is flat: one package, unlimited recipients
×1
package delivered, regardless of audience size
Traditional render-farm platforms
Each video is generated with viewer data on a server
A unique video file is generated per viewer
Files are stored and delivered individually
Viewer data must leave your environment to reach the render server
Cost scales linearly with audience size
×N
renders for N viewers, every campaign
For developers & IT teams

Integration concerns?
Let's talk architecture.

Iris is built to pass security reviews in regulated environments. The integration surface is intentionally minimal: an iframe, an API call, and your existing data pipeline. Nothing more.