Create a template
From the dashboard, click New Template in the top right corner. A dialog will open with the following fields:- Template Name — give it a clear name you’ll recognize, like “Spring Roofing Pitch” or “Solar Q4 2025”
- Description — optional, for your own reference
- Template Context — describe who this template is for and what it covers. This helps AI Presentations write better narration. For example: “Residential roofing replacement for storm-damage leads. Audience: homeowners aged 40–65 in the Southeast US.” The more specific, the better.
- Use Premium Voice AI — toggle this on if you want higher quality voice generation
Upload your slide images
Below the template details, you’ll see an upload area. Drag your slide images in, or click to browse. PNG, JPG, WebP, and SVG are accepted, up to 10 MB per image. The order you upload them is the order they’ll appear in the presentation — so make sure your slides are in the right sequence before uploading. The number of uploaded slides is shown as you add them. Once you’ve added at least one image and filled in the template name, the Create & Generate button becomes active. Click it to start.While it’s generating
AI Presentations will analyze each image, write a narration script, and generate spoken audio. This runs in the background, and you can follow the progress everywhere the template appears:- In the editor, each slide appears in the rail as it finishes — the slide being written shows Generating… and the ones behind it show Queued. You can review and edit slides as soon as they land, without waiting for the whole template.
- On the Templates page, the template card shows generation progress until the job finishes.
- In the FAQs tab, AI Presentations writes suggested FAQs from your slides after the last slide completes, and the tab says so while that’s running.
409 with code DECK_GENERATING for the same reason.
If progress stops updating for longer than expected, refresh the page to check again — a quiet stretch usually just means this page stopped hearing about the job, not that it failed.
Review your slides
The Slides tab shows each slide with its generated title, narration script, and audio. Click the edit button on any slide to:- Update the Slide Title
- Edit the Narration Script — or use Use AI to Generate Script to regenerate it from the image
- Change the Hero Image (the background image for that slide)
- Add Slide Context to give the AI more guidance for that specific slide
- Click Regenerate Audio from Script after making edits to update the spoken audio
Preview your template
Click Preview in the editor toolbar to open the template in a new tab and watch it the way a homeowner would. If the narration audio is out of date, AI Presentations regenerates it first and opens the preview once it’s ready. The Preview button stays disabled with an Add a slide to preview hint until the template has at least one slide. If you open a preview link for a template with no slides, the page tells you to add at least one slide in the editor and open the preview again.Add a slide manually
Click Add Slide in the deck editor to insert a blank slide. AI Presentations creates the slide immediately with the placeholder title Untitled slide and no narration script, so navigating away or switching tabs won’t discard it. Blank slides are surfaced two ways in the editor so they’re easy to spot:- Each rail entry shows a Needs narration marker until you save a narration script for that slide.
- A running count of slides needing narration appears beneath the rail.
Narrating bulk-uploaded slides
Slide images added through the upload area land un-narrated by default. After a bulk upload, the editor opens a wizard that walks the batch one slide at a time, showing the image preview alongside the narration script field and the Use AI to Generate Script action. You can skip any slide in the wizard. The Needs narration markers stay on the rail until each script is saved, so skipping the wizard doesn’t hide anything.Start from a template
Instead of building a deck from scratch, you can start from a published template or duplicate one of your existing decks:- Browse the library —
GET /api/templates/libraryreturns the catalog of free and premium templates, each with a thumbnail and tier. - Preview before you commit —
GET /api/templates/{deckId}/previewreturns the slide list, sample FAQs, and counts so you can review the contents. - Instantiate —
POST /api/templates/{deckId}/usedeep-copies the template into your organization. The new deck is fully independent — edits to the source template do not propagate. Premium templates require an active subscription. - Duplicate one of your decks —
POST /api/decks/{deckId}/duplicatecopies a deck you already own, including all slides, FAQs, branding, and uploaded images. The duplicate is private and never inherits the source’s published or library state.
name in the request body to override the default copy name. If a name collision occurs, the new deck is auto-renamed (for example, Spring Pitch (Copy 2)).
Import a PowerPoint presentation
If your deck already exists as a PowerPoint file, you can import it in one API call instead of exporting and uploading slide images yourself.POST /api/decks/import?source=pptx accepts a .pptx file as multipart form data along with a name and optional description, and returns the created deck with a 201.
The import creates a ready-to-edit image-based deck:
- Each slide is rendered to a PNG image and becomes a slide in the new deck, in the original order.
- Speaker notes become each slide’s editable narration script. The original notes are kept separately, so you can always see what the script started from.
- The response includes an
import.warningsarray for non-fatal issues, such as slides with no speaker notes (missing_speaker_notes).
DELETE /api/decks/{deckId}) removes them too — see the API Reference for full request and response shapes.
Personalization tokens
Narration scripts support tokens that get replaced with the homeowner’s real information when a presentation is created. Type{ in any script field to insert one:
For example:
"Hi {{first_name}}, I'm reaching out about your home at {{address}}..."
Product card pricing
When a product slide’s Content Source is Custom, each product card has its own pricing controls in the Total Cost section of the card editor.- Price Type — choose Single for one price or Range to show a price band. With Range, set a Range % to expand the price above and below the base amount. For example, a 900 – $1,100*.
- Pricing Number or Formula — a static price or a pricing formula. Range and Pay Over Time math is applied after the base price resolves, so both work with formulas too.
- Pay Over Time Price — toggle this on to show a monthly payment on the card, calculated from the total price, the dealer’s fee, the term in months, and the annual interest rate (APR). When the card is range-typed, the monthly payment renders as a range as well.
Journey-backed product slides
Product pricing slides can pull their content from a Demand IQ journey so product names, prices, monthly payments, highlights, and images come directly from the live journey instead of being maintained manually. In the product slide editor, set Content Source to Journeys (the default is Custom). AI Presentations detects the product type automatically — there is no profile to pick. While a slide is set to Journeys, the Product Cards section is hidden entirely: journey data fills each product’s name, price, description, highlights, and image when the presentation is created, so there is nothing to configure per card. Each card’s tier badge (for example, “Good” or “Recommended”) comes from the label configured on the journey option; options without a configured label show no badge. Switch back to Custom to edit the product cards manually again. Fields outside the product cards (narration, CTA copy, supporting imagery) remain editable either way. The journey block must return at least three product options. The first three map positionally onto thegood, better, and best tiers, exactly as the deck-editor preview shows. If the journey returns more than three, the extras render after the tiers in a horizontally scrollable row (with a scrollable pill row on portrait mobile), and homeowners can select any of them — including an extra — as the product carried through to narration, the confirmation modal, and the contract. Only {{product.good|better|best.*}} narration tokens are available for the first three tiers; extras are selectable but not individually addressable by tier token. Use {{product.selected.*}} to reference whichever card the homeowner picks.
Product data for a slide is available via GET /api/slides/{slideId}/product-data and updated via PUT /api/slides/{slideId}/product-data. See the API Reference for full request and response shapes.
Next steps
With your slides in place, set up your branding and FAQs before creating presentations:- Branding — your colors, logo, and the landing page homeowners see first
- FAQs — pre-built answers to common questions
- Notifications — configure automated email delivery and subscribe to presentation events