Key capabilities
- Template management — create structured or image-based templates with custom branding, colors, and fonts
- AI generation — upload slide images and let GPT-4o extract content, write narration scripts, and generate FAQs automatically
- Text-to-speech — narrate every slide with word-level timing for synchronized text highlighting
- Live Q&A — viewers ask questions by voice or text; AI Presentations matches FAQs or generates answers in real time
- Personalized presentations — create shareable links tailored to each homeowner with address validation and optional pricing inputs
- Product pricing — configure good/better/best product tiers on slides with dynamic pricing formulas; missing inputs are deferred automatically
- Journey-backed product slides — set a product slide’s content source to Journeys so product names, prices, images, and highlights are populated from the live Demand IQ journey instead of being edited manually. The first three options map onto good/better/best tiers; any additional options render as scrollable extra cards that homeowners can still select for narration and contract flow
- Knowledge base — upload company documents to improve AI-generated answers with your specific product and service information
- Contracts & e-signature — import contract templates, configure signing requirements, and collect typed signatures during the presentation
- Automated email delivery — send the presentation link to homeowners from the deck’s configured sender, with delivery and open tracking via SendGrid
- Notifications — subscribe to presentation events via webhooks or email to track viewer engagement in real time
- Roof measurements — request automated roof measurements for homeowner addresses and poll for results
- Appointment scheduling — let viewers book appointments directly from the presentation
- Voice commands — detect navigation, audio, and CTA commands from voice or text input during playback
Authentication
Most API endpoints require a session cookie obtained fromPOST /api/auth/login. The journey ingest endpoint (POST /api/decks/{deckId}/ingest) additionally accepts a Bearer JWT in the Authorization header for server-to-server callers that don’t run in a browser session. Presentation playback endpoints (/api/qa, /api/narration/*) also accept a presentationId for unauthenticated viewer access. Appointment, event tracking, and presentation content endpoints use an HMAC-signed presentation token passed via the x-presentation-token header.
For portal integrations, AI Presentations supports SSO via GET /api/auth/sso?code={authCode}. The portal redirects users with a short-lived authorization code that is exchanged for an access token server-side. Pass embedded=1 when running inside an iframe. Pass an optional theme parameter (light or dark) to match the portal appearance on first render. In production, set the APP_URL environment variable to the public base URL so that SSO redirects resolve correctly behind a load balancer.
Portal admins with the DIQAdmin or Admin role can carry a company impersonation into AI Presentations by appending &spoof={companyId} to the SSO URL. AI Presentations calls Core’s POST /auth/loginAs/{companyId} and treats a 200 as the authorization grant. On rejection the user is redirected to /no-access rather than the standard SSO error page, so the portal does not retry a request Core will always deny. The deck-picker exchange endpoint (POST /api/auth/sso/exchange) accepts the same optional spoof field in its JSON body.
When an embedded DIQAdmin session opens a deck page that belongs to a different company, such as a portal deep link that carries no company, AI Presentations asks the portal to switch companies instead of rendering the page. It posts a PRESENTATIONS_SPOOF_REQUIRED message with the owning company’s id to the portal and shows a loading spinner. The portal then re-primes the iframe with &spoof={companyId} and the same redirect path, so the second load lands on the same URL scoped to the correct company. This handoff applies only to the DIQAdmin role; all other sessions still receive the 404 response from GET /api/decks/{deckId}.
Get started
Quickstart
Create your first template and presentation in minutes
Guides
Learn about template types, branding, FAQs, and narration