# Product demo script: six steps and a template that films well

> For founders and product marketers writing a demo video: six steps, a script template you can copy, and the mistakes that make a demo hard to watch.

**Key takeaways**

- Wistia's 2026 State of Video Report found product videos under a minute averaged 50% engagement, so viewers typically watched about half.
- Average US conversational speech runs about 150 words per minute, so a 60-second demo script gets about 150 words of narration.
- A product demo script should open on the result, name one viewer and one job, and place the ask in the first and last beats.

Published Oct 19, 2026 · uscale · https://uscale.ai/blog/product-demo-script

## Why does a product demo script matter more than the footage?

A product demo script matters more than the footage because most viewers never reach the end of the footage. Wistia's [2026 State of Video Report](https://wistia.com/blog/optimal-video-length) looked at more than 13 million videos uploaded to its platform, and product videos under a minute averaged 50% engagement. Viewers typically watched about half.

For a typical viewer, the second half of the demo might as well not exist. The opening lines of the script decide what they see, and those lines are written before anyone presses record. Sharper footage, a better voice and smoother cuts all come later. None of them can move the moment that matters into the half people actually watch.

This post gives you a step-by-step way to write a product demo script, a template you can copy, and the mistakes that make demos hard to watch. It starts with a question most scripts skip: who, exactly, is this demo for?

## Name one viewer and one job before you write a line

Before the first narration line, write one sentence: **This demo is for (viewer), and after watching they should (one action).** That sentence decides what the script leaves out.

The reasoning is short. A demo shows one path through the product, screen after screen. Different viewers need different paths. A buyer wants the result that beats their current tool, and a new user wants a first win. A demo written for everyone shows several half-paths, and none of them films cleanly. A demo for one viewer shows one path, and that path is what gets filmed.

Here are three common viewers, as hypothetical examples:

| Video (hypothetical) | Viewer | Job after watching | What drops out |
|---|---|---|---|
| SaaS launch | A buyer comparing tools | Start a trial | Settings, integrations, admin screens |
| Developer tool, from its GitHub repo | A developer evaluating the tool | Run the first command | Pricing, roadmap, team features |
| Onboarding video | A new user who just signed up | Reach their first result | Advanced features they won't need yet |

Expect most features to drop out of the script. That is the point. A feature that doesn't move this viewer toward this job is a scene they sit through.

Done looks like the sentence written at the top of the draft. If you need an "and" to finish it, you have two demos.

One honest limit: if the viewer doesn't know the problem exists yet, a demo is the wrong video. They need the problem framed first, which is the job of [an explainer video](https://uscale.ai/blog/how-to-make-an-explainer-video). Once the viewer and the job are fixed, the next decision is how long the video runs.

## Pick the length first, then count the words it allows

Set the length before you write a word, because the length decides how many words the script can hold. If you write the script first, the length decides itself, and it usually grows.

For a demo, the sources point short. Wyzowl says explainer videos usually run 60 to 120 seconds. Wistia calls 1–5 minutes the sweet spot for videos meant to educate or explain, which leaves room for a longer how-to. Viewers lean short too. In Wyzowl's survey, 63% of people chose a short video as the way they'd most like to learn about a product. In Wistia's 2025 State of Video Report, how-to videos under a minute had the highest engagement, at 82%. Compare that with the product-video figure from the opening, keeping in mind that the two come from different report years. A short video that teaches one task held attention much better.

![Engagement of videos under a minute (Wistia): All videos under a minute (2026 report) 52%, Product videos under a minute (2026 report) 50%, How-to videos under a minute (2025 report) 82%](https://uscale.ai/blog-media/product-demo-script/chart-engagement-of-videos-under-a-minute-wist-1200x328.svg "Sources: Wistia / How to Choose the Right Marketing Video Length for Any Goal; Wistia (PR Newswire) / Wistia's 2025 State of Video Report")

### Turn the length into words

Voices.com, citing the National Center for Voice and Speech, puts average conversational speech in the US at about 150 words per minute. That makes the arithmetic one line:

**length in minutes × 150 = word budget.** A 60-second demo gets about 150 words.

Redo it for your own length, then round down. Narration rarely runs wall to wall, because some beats need a pause while the screen shows a result.

### What done looks like

Done is a number at the top of your draft, such as "Budget: 150 words", written before the first beat. Every line you add after that spends from it.

A word budget is what stops a demo script from turning into a feature list: when every feature costs words, only the ones that serve your viewer's job stay. The next step spends that budget one beat at a time.

## Fill in the product demo script template, beat by beat

Copy this table and replace the right two columns with your own product. The example is hypothetical: a SaaS invoicing app for small agencies. It is filled in so you can see how little each row needs to carry.

| Beat | What the viewer sees | Narration line |
|---|---|---|
| Result up front | The dashboard, every client invoice for the month marked paid | "Every client invoice sent, tracked and paid, from one screen." |
| Problem | A timesheet spreadsheet beside a half-written reminder email | "Most agencies still build invoices by hand and chase them by email." |
| Action: create | Tracked hours pulled into a draft invoice for one client | "Your tracked hours become a draft invoice, grouped by project." |
| Action: send | The invoice preview with the agency's logo, then Send | "Check it once and send it under your own brand." |
| Action: follow up | Automatic reminders switched on for overdue invoices | "Late payers get polite reminders you never have to write." |
| Result on screen | The same invoice turns to Paid and the dashboard updates | "When the client pays, the invoice closes itself." |
| Ask | The sign-up screen | "Send your next client invoice from here." |

Fill in the middle column first. Choose the screen for each beat, then write the line that plays over it. If you can't name a screen for a beat, the beat doesn't belong in a demo.

### What each beat must do

- **Result up front:** show the finished outcome before any setup, so the viewer knows at once whether this is for them.
- **Problem:** one line the viewer recognises. It earns attention for the next beats. It is not a market overview.
- **Actions:** one row per action on the path to the result, in the order a user takes them. Add a row only for a step the viewer must see.
- **Result on screen:** the outcome from the first beat, now earned by the actions before it.
- **Ask:** one action that matches the job you named in the first step.

### Why the result comes first

Many viewers leave before the end, so anyone who stops early should already have seen what the product does for them. **A demo should open on the result and spend every later beat proving it.**

When the table is full, count the words in the narration column and check the total against the budget from the previous step. If it runs over, cut an action row before you squeeze every line.

A full table is a draft. Each line still has to earn its place over its screen, and the next step shows how.

## Write each demo video script line for the screen it plays over

A strong line says what the screen can't. The viewer can already read the button, so the narration's job is to say why the click matters or what it gets them. When narration repeats the screen, viewers stop listening, because the voice tells them nothing their eyes didn't already catch. If a viewer could mute the voice and lose nothing, the line isn't doing its job.

### The rules for each line

- **Name the screen first.** Write the screen beside the row before you write its line, so every line has something specific to answer to.
- **One action, one screen, one line.** If a line needs "and then", split it into two rows.
- **Say the reason or the result, never the label.** "Click Send" is already printed on the button.
- **Read the script aloud.** Cut or shorten any line you stumble over, because a narrator will stumble there too.

### One line, rewritten

This example is hypothetical. It comes from the invoicing app for small agencies.

| | Screen | Narration line |
|---|---|---|
| Before | Invoice editor, cursor on "Send" | "Click the Send button to send your invoice." |
| After | Invoice editor, cursor on "Send" | "Your tracked hours are already on it, so the invoice goes out the day the work ends." |

The first line narrates a click the viewer is already watching. The second adds what the screen can't show: the hours carried over and the time saved. The screen stays the same and only the line changes, because the screen leads and the words serve it. The clip below shows the same rule in a finished film.

[Clip: From uscale's Compute Exchange film: the headline and the click land on the screen they describe.](https://uscale.ai/blog-media/product-demo-script/compute-exchange-cinematic-10_0s-1280x720.mp4)

This step is done when every row has a screen and a line that adds something to it. Test each row by asking what the voice gives the viewer that the picture doesn't. The line that has to add the most is the ask, and placing it is the next step.

## Place the call to action early, then repeat it at the end

In a short demo, put a soft ask near the start and the full ask in the last beat. In a [2025 roundup of its State of Video Report](https://wistia.com/learn/marketing/top-7-insights-state-of-video-report-2), Wistia found that well-placed CTAs can push video conversion rates as high as 40%. It also found that CTAs near the start work well in videos under five minutes, while longer videos do better with them in the middle. A demo cut to the length you chose earlier falls in the shorter group.

Write the ask before the rest of the script, and make it one action: the job from your viewer sentence. If the viewer should start a trial, the ask is to start a trial. It is not a trial plus a newsletter plus a call. Then write a soft version for the opening and a full version for the close.

The ask shapes the result beat. If the last line asks the viewer to send a first invoice, the result on screen has to be that invoice, ready to send. You're done when the ask sits in the template's first and last rows. **The ask is the one line a viewer who leaves early must still hear.**

| Video (hypothetical) | Soft ask, first beat | Full ask, last beat |
|---|---|---|
| SaaS launch | "Here's what's new, and you can try it today." | "Open your dashboard and try the new reports now." |
| Developer tool from its repo | "One install command, then you'll see it run." | "Copy the install command from the README and run your first build." |
| Onboarding video | "By the end, you'll have sent your first invoice." | "Open Invoices and send your first one now." |

With the ask in both rows, the script is ready to become a storyboard.

## Turn the script into a storyboard before anything is filmed

Your script is already most of a storyboard. Each template row names a screen and a line, and a storyboard holds exactly that. This step is about choosing who does the filming, not writing anything new.

### The manual route

Copy the template rows into a shot list, one row per shot. Record each screen once per row. Record the narration separately, cut the screen clips to the voice, then add captions so the film works with the sound off. That is four jobs: shot list, screen recording, voice and captions. Plan on a recording session and an edit.

### The uscale route

Paste your site or app address on Generate, and uscale films your real product with no screen recording on your side. For screens behind a sign-in, you sign in once in a browser streamed to you. For a GitHub repo, paste owner/name instead, and the director reads the repository and plans a film of the project.

Then paste your script into the director chat. The director fits the scenes to your lines, or keeps the lines you name word for word. You read and approve every narration line on the storyboard before anything is filmed. Voice, captions and music are added, and uscale says it takes minutes. You ask for changes in the chat, and every earlier cut stays in the version list.

![The director in the uscale chat proposing a storyboard, beat by beat, with the narration line for each](https://uscale.ai/blog-media/how-to/chat-storyboard-800x1694.webp "uscale's storyboard shows every narration line next to its scene, so you approve the script before anything is filmed.")

The [step-by-step URL-to-video walkthrough](https://uscale.ai/blog/url-to-video) covers each screen in detail. The [finished example films](https://uscale.ai/examples) show what you end up with. uscale isn't the route for a live-action shoot, a founder filmed on camera, or footage you already have.

Whichever route you pick, approve the words before the pictures. A changed line costs nothing on a storyboard and a whole take once it is filmed. That approval is also where you catch most of the common script mistakes.

## What are the most common product demo script mistakes?

Most demo scripts fail by showing too much, not too little. Cutting is real work. A product with two viewers, such as a buyer and an admin, also tempts you to serve both in one video. Two viewers need two scripts, each one short and built on the same beats. Every mistake below comes from adding instead of choosing, and an earlier step in this post prevents each one.

| Mistake | What the viewer experiences | Fix |
|---|---|---|
| A feature tour instead of one job | Many screens, no thread to follow and no reason to act | Keep one viewer, one job and one path through the product |
| Narration that reads out the UI labels | Hears what they can already read, then stops listening | Say why the action matters or what it gets them |
| Writing lines before choosing screens | Narration that runs ahead of the picture or lags behind it | Fill in the screen column first, then write the line for it |
| Going over the word budget | A rushed voice, or scenes that sit on screen too long | Cut lines back to the count before recording |
| Saving the only ask for the end | Leaves before hearing what to do next | Ask early, then ask again in the last beat |
| Lines that only work with sound on | In a muted feed, captions that make no sense without the voice | Write each line so it still reads as a caption over its screen |

After these cuts, a draft that feels thin is usually ready. The viewer follows one path, learns why each step matters and knows what to do next.

The catch is that a launch, a repo and an onboarding video don't share a viewer. So which parts of the script move when the video changes?

## How do you adapt the demo script to a launch, a repo or an onboarding video?

Keep the beats and change three things: who is watching, what the result beat shows and what the ask asks for. Each case below changes one row of your template. All three cases are hypothetical.

### A SaaS launch video

Say you're launching a new reporting view in an invoicing app next week. **Rewrite the opening around what's new.** Existing users already know the product, so the first screen should be the new view, not the dashboard they see every day. You're done when the first row of your template names the new feature's screen. The [product launch video](https://uscale.ai/use-cases/product-launch-video) page shows how a launch film is shaped.

### A developer tool demo from its repo

Say you maintain a command-line tool on GitHub and have no marketing site. **Make the result beat the first working output**: the command a developer runs and what it prints back. You're done when your result row matches the README's quickstart. uscale can read a repository read-only and plan a film of the project even before there is a live site. There's more on films for [developer tools](https://uscale.ai/industries/software-products/developer-tools).

### An onboarding video

Say a new user has just signed up and is looking at an empty workspace. **Change the ask to the user's next action in the product**, such as "create your first project", not "book a demo". You're done when the last row of your template names a button the viewer can press as soon as the video ends. The [onboarding video](https://uscale.ai/use-cases/onboarding-video) page covers this case.

### If you do only one thing

Open the script you already have in its doc, pick the case closest to your next video and rewrite the one row it changes. That single row is your quick win.

**Try it:** [make a product demo video](https://uscale.ai/use-cases/product-demo-video) from your own script, and approve every narration line before anything is filmed.

## What should you do after writing your product demo script?

Run five checks on the draft, then turn it into a film.

1. Write the sentence: "This demo is for [viewer], and after watching they should [one action]."
2. Set the length and write the word budget at the top of the draft.
3. Fill in the template, screen column first.
4. Read each line beside its screen, and cut any line that repeats what the screen already shows.
5. Put the ask in the first and last rows.

Then make the film. With uscale you can [film your demo from your site or app, or plan one from your GitHub repo](https://uscale.ai/use-cases/product-demo-video). Paste your script into the director chat and approve every narration line on the storyboard. You get the real product filmed, with voice, captions and music. Your first video is free: [a new account starts with 10 credits](https://uscale.ai/pricing), or 20 with a work email.

The demo doesn't need a studio. It needs one viewer, a few lines somebody agreed on, and the product doing its thing.

## Questions

### What is a product demo script?

A product demo script is the written plan for a demo video: a sequence of beats, each pairing one screen of the product with one narration line and one result. It is written before anything is recorded, for one named viewer and one action they should take afterwards, and it fits inside a word budget set by the video's length. A strong script opens on the result and ends with a clear ask.

### How long should a product demo video script be?

A product demo video script should be about 150 words per minute of video, because average conversational speech in the US runs at roughly 150 words per minute, according to Voices.com citing the National Center for Voice and Speech. A 60-second demo gets about 150 words. Round down, since some beats need a pause. Wyzowl says explainer videos usually run 60 to 120 seconds, and Wistia calls 1 to 5 minutes the sweet spot for videos that explain.

### Do I have to record my screen to turn a demo script into a video?

Turning a demo script into a video does not require recording your screen if you use uscale. Paste your site or app address on the Generate page and uscale films the real product itself. For screens behind a sign-in, you sign in once in a browser streamed to you. For a developer tool, paste a GitHub repository as owner/name. Doing it by hand instead means a screen recording session, a separate voice recording and an edit.

### Can I use my own script with uscale, and change it after the storyboard?

Yes. uscale accepts your own demo script: paste it into the director chat, and the director fits the scenes to your lines or keeps the lines you name word for word. You read and approve every narration line on the storyboard before anything is filmed. After that, ask for changes in the chat; when you ask to keep everything else, only the moment you name changes, and every earlier cut stays in the version list.

### What does it cost to turn a demo script into a video?

Turning a demo script into a video with uscale starts free: a new account gets 10 credits, or 20 with a work email, enough for one full first video with no card needed. After that you buy credits once, with no subscription: Lite is $29 for 25 credits, Starter $49 for 50, and Growth $129 for 150, about 15 product walkthroughs. The director names the price of each step before it starts.

---
Source: https://uscale.ai/blog/product-demo-script
