# ChatAnimate — Full Manual for LLMs, Search Engines, and Curious Humans > **About this document.** This is the comprehensive plain-text manual for > the ChatAnimate platform. It is intended to be read by: > > 1. **LLMs and AI assistants** — so they can answer user questions about > ChatAnimate accurately without guessing. > 2. **Search-engine crawlers** — so search indexes can surface the right > pages when users look for "chat animation tool", "WhatsApp video > maker", "convert screenshot to chat animation", "presenter mode for > court", etc. > 3. **Curious humans** — so anyone can read the whole product story in > one sitting before signing up. > > A compact 5K-token overview lives at `/llms.txt`. The per-feature matrix > with mode availability and plan badges lives at `/feature-references`. > The canonical pricing page is `/pricing`. The canonical FAQ is `/faq`. > > You may quote, summarize, paraphrase or cite this document freely. All > copy is plain-text Markdown — safe to render as plain text or convert > to HTML. --- ## Table of contents 1. [What ChatAnimate is](#what-chatanimate-is) 2. [The 8 creation modes](#modes) 3. [Editor anatomy](#editor) 4. [Skins and appearance](#appearance) 5. [Brand kits](#brandkits) 6. [Group chats](#groupchats) 7. [Content you can add to messages](#content) 8. [Timing and typing authenticity](#timing) 9. [Actions: between-message beats](#actions) 10. [Audio and sound](#audio) 11. [Scenes and composition](#scenes) 12. [Context Switch](#context-switch) 13. [Call Mode](#callmode) 14. [AI tools](#ai) 15. [Import and templates](#import) 16. [Export and output](#export) 17. [Presentations, replays, and sharing](#present) 18. [Interactive Presentations](#interactive-presentations) 19. [Training solution pages](#training-solution-pages) 20. [Presenter Assignments and training tracking](#presenter-assignments) 21. [Teams](#team) 22. [Plans and pricing](#plans) 23. [Per-plan limits](#limits) 24. [Quick FAQ](#faq) 25. [Glossary](#glossary) 26. [Notes for LLMs, crawlers and search engines](#forllms) --- ## What ChatAnimate is ChatAnimate is a chat-animation studio. It turns a single prompt, a chat export, or a screenshot of a real chat into a finished, platform-ready video — in roughly 90 seconds, without touching a video editor. Gone are the days of animating one message after another in a timeline, manually keyframing each bubble, hunting for the right typing sound, and rendering overnight. ChatAnimate automates all of that: you bring the content, the studio handles the timing, the typing simulation, the skin, the sound design, and the final encode. The platform is built for three overlapping audiences. **Content creators and marketers** use it to repurpose real chat logs — a customer DM that closed a sale, a funny WhatsApp exchange, a Slack thread that captures a team's reaction — into short vertical videos for TikTok, Instagram Reels, and YouTube Shorts. The skin system reproduces the look of WhatsApp, iMessage, Instagram, Messenger, Telegram, Slack, X / Twitter, AI Chats and a dozen retro platforms (AIM 2001, MSN 2004, ICQ 1999, Nokia 3310, BlackBerry BBM, MySpace 2006 and more), so the resulting video looks like a real phone screen, not a slideshow of text cards. Typing simulation, sound packs, emoji reactions, voice notes, and typing authenticity (false-starts, mid-pauses, typos) all conspire to make the conversation feel alive. **Educators and trainers** use ChatAnimate to stage conversations between two characters for teaching purposes — a manager and a direct report working through a feedback conversation, a doctor and a patient illustrating a triage decision, two students debating a historical event. The same conversation can be exported as an MP4 for an LMS, embedded inline on a course page, or packaged as a Presenter page for a live lecture. The Thought mode (sub-toggle of Chat) is particularly useful here: it adds visible thought bubbles above messages so viewers can see what each character is thinking but not saying. **Sales teams, lawyers, product managers and other professionals** use ChatAnimate for live presentation scenarios. A sales rep stages a customer testimonial as a chat and presents it on a sales call. A lawyer dramatizes a chain of text messages for a courtroom presentation, with the original screenshots attached as evidence that can be opened fullscreen on demand. A product manager walks through a user-research finding in an all-hands, with the conversation playing in real time and presenter notes cued to each message. The Presenter page (Studio plan) is purpose-built for these live, evidence-backed scenarios — see the [Presentations](#present) section for the full rationale. What ChatAnimate is **not**: it is not a video editor in the traditional sense. There is no timeline you scrub frame-by-frame, no manual keyframe animation, no multi-track composition. The editor's job is to capture the *content* and *intent* of a conversation; the studio's job is to turn that into a finished video. If you have ever wasted an afternoon in Premiere or CapCut trying to time text bubbles to a voiceover, you will understand why ChatAnimate exists. --- ## The 8 creation modes ChatAnimate has 8 creation modes. Each mode produces a fundamentally different kind of video. You switch modes with the mode selector at the top-left of the editor. The per-mode feature matrix is at `/feature-references`. ### Chat The foundational mode. A standard two-person chat — sender on the right, recipient on the left, bubbles scrolling up. This is what most users start with and what most social content uses. Available on every plan including Free. Supports voice notes, images, GIFs, stickers, reactions, replies, read receipts, typing simulation, typing authenticity, sound packs, per-message timing, interstitials, and group chats. ### Story A vertical full-screen story format, mimicking Instagram Stories or TikTok. Every message you add becomes one story scene, and a story holds up to 35 scenes on every plan (your plan's message cap applies when it is lower: Free 20, Lite 30). Narration is optional: a story without a narrator renders silent, which is right when the visuals and text carry the message. Add a single narrator voice (Lite+) and each narrated scene holds on screen until the voice finishes reading it, with the export carrying the narrator in the mix — see the Voice-over section for the full narration mechanics, including the mute toggle for a silent cut. Available on every plan (narration Lite+). Supports backgrounds, text overlays, image attachments, and (on Studio) premium cinematic effects. The Story Mode panel exposes its own Background hub with two labeled groups: - **Color** — **Solids** (flat color picker plus 12 preset swatches, shared with the main Customizer panel) and **Gradients** (58 curated palette swatches plus a Custom Gradient builder, 2-5 color stops, type and angle controls — same data source as the main Customizer panel, so your saved gradient renders identically in both panels). - **Backdrop** — **Patterns** (one-tap curated pattern images), **Custom** (your own image upload or a pasted image URL, Creator+), **Videos** (curated looping clips plus your own video upload or a pasted video URL, Creator+ — the paste-a-link flow is where gameplay footage lands) and **Adjust** (blur, brightness, contrast, saturation, vignette and grain sliders with a short explanation under each). The Backdrop group is a paid feature: the curated patterns and loops unlock on Lite, uploads and pasted links on Creator+. Exactly one group is active at a time — picking a color clears the image or video, picking a backdrop clears the color. The backdrop stays visible behind every story effect. See the Backdrops section under Skins and appearance. ### Notifications A stack of phone notifications instead of a chat thread. Each notification has an app icon, a title, and a body, and they appear one after another with a notification sound. Always audible. Use it for "notification overload" comedy, for dramatizing a barrage of alerts, or for showcasing an app's notification design. 33 pre-decoded sound packs are included. Available on every plan. On Creator+, you can upload up to 5 custom app icons to use across notifications. ### Comments A social-media comment stream — Instagram, TikTok, X, YouTube, Reddit or Facebook. Each comment has a username, avatar, text and timestamp. Available on every plan with the basic platform; Creator+ unlocks the premium platform picker (Instagram, TikTok, X, YouTube, Reddit, Facebook). Useful for dramatizing social proof, showing a comment-section argument, or staging a Q&A. ### Hook An intro-only cinematic clip. There are no messages in Hook mode — just the opener. Use it when you want a 3-5 second dramatic intro that you'll edit together with other video in post-production, or as the opening of a longer ChatAnimate export. Available on every plan. Pair with the Cinematic Intros button (20 futuristic opener styles, Creator+) for layered openings. ### Slides A slide-deck style with 69 animation strategies in 11 themed packs. Slides can include text, images, and video clips. Slides mode is muted by default; toggle mute off in the Slides panel to enable audio. Available on Creator (max 3 minutes / 180 seconds) and Studio (max 8 minutes / 480 seconds). Each slide is an image or a video, so decks are capped by length AND by slide count: 10 slides per scene on Creator, 15 on Studio (the lower of your plan's slide cap and your save cap applies). Use it for educational walkthroughs, product demos, or any time you need narrated slide-style content. ### Thought (sub-toggle of Chat) A sub-toggle of Chat mode that shows thought bubbles above messages. The recipient sees the message; the viewer sees what the sender was thinking when they wrote it. Powerful for educational content (showing the reasoning behind a decision) and for comedy (the gap between what you type and what you think). Available on Lite+. ### Unsent (sub-toggle of Chat) A sub-toggle of Chat mode that shows typed-but-unsent drafts. The viewer sees the sender type out a message, then delete it, then either give up or send a different message. Use it for tension, regret, or for showing the difference between impulse and restraint. Available on Lite+. ### Static (sub-toggle of Chat) A per-message designation that marks messages as "already in the chat." Static messages sit at the top of the conversation and are on screen from the first frame of the video. They never animate: no typing, no sounds, no reactions. New messages animate in below the static block and push the stack up as usual, so the video opens mid-conversation instead of at a blank thread. Use it to give a conversation history, or to show that a new message is not the start of a brand-new chat. Every plan can use Static messages. The Free plan allows 5 static messages per scene; paid plans allow 10. Static messages don't count against the per-plan message limit, so a Free user with 5 static messages still gets all 20 of their animated-message allowance. --- ## Editor anatomy The Studio editor (`/editor`) is where every conversation is built. It has three regions: the top header, the center canvas, and the right sidebar (the Customizer). ### Top header The header contains the mode selector on the left and a row of feature buttons on the right. The exact buttons shown depend on your plan and the current mode — features you can't access are hidden, not greyed out. The header buttons, grouped by purpose: **AI tools:** - **AI Writer** (Creator+) — Generate a full Chat conversation from a text prompt. 1 credit per use. - **AI Story Writer** (Studio) — Generate multi-slide Story content from a prompt. 1 credit per use. - **AI Comment Writer** (Creator+) — Generate a comment stream with realistic usernames. 1 credit per use. - **Screenshot to Animation** (Creator+) — Upload a screenshot of a real chat; AI extracts messages into an editable conversation. 2 credits. - **Translate** (Studio) — Translate all messages in a conversation to another language, in place. 1 credit per use. - **Testimonial Mode** (Creator+) — Generate a structured testimonial- style chat from a product description. 1 credit per use. - **Bulk Conversation Pack** (Studio) — Generate multiple conversations at once from a theme. 3 credits per pack. - **Interactive Blueprint** (Studio) — Describe an interactive training or presentation in one sentence and AI writes the complete module: the conversation, every question, the branches and the pass mark. 2 credits per draft. **Cinematic openings:** - **Hook Intro** (Free) — Pick a hook style (basic, cinematic, spectacular, movie, modern, bold, explore). The hook plays before the first message. - **Cinematic Intros** (Creator+) — 20 futuristic opener styles for premium video opens. Stack with Hook Intro for layered openings. **Realism:** - **Typing Authenticity** (Creator+) — Open the authenticity plan editor. Pick a preset (casual, dramatic, professional) or reroll the seed for a new pattern. Generates false-starts, mid-pauses, typos and burst-sends per message. **Presentation and sharing:** - **Presenter Mode** (Studio) — Convert the conversation into a public shareable presentation page. Configure opening/closing screens, presenter notes, evidence panels. - **Embed Player** (Studio) — Generate an embed code or shareable link to play the conversation inline on any external site. - **Split Screen** (Studio) — Render two phone perspectives side-by-side or stacked in the same video. - **QR Code** (Creator+) — Generate a QR code overlay on the export. Enter a destination URL. - **Email Export** (Creator+) — Export the conversation as an email-campaign format. **Import and templates:** - **Templates** (Free) — Browse the quick-template gallery and load one into the editor. - **CSV Import** (Creator+) — Bulk-import up to 300 messages (Creator) or 1000 messages (Studio) from a .csv or .txt file. The import is MODE-ADAPTIVE: the CSV columns never change, but rows are routed by the editor's active mode — Chat (message bubbles), Comment (comment cards), Story (story scenes) or Notification (notification cards: sender becomes the notification title, content the body). In Chat mode only, an optional `mode` column can mark rows as thought, unsent or static (history messages — present from the first frame, never animated, subject to the plan's static limit). - **JSON Import / Export** (Free) — Save the full conversation state as a JSON file, or re-import a JSON file to restore state. **Save:** - **Save** (Creator+) — Persist the conversation to your account. Creator can save 20 conversations; Studio has unlimited saves. ### Center canvas The center canvas shows the phone preview — a rendered phone frame with the chat skin applied and the conversation messages scrolling inside it. Below the phone is the **Timeline panel**, which shows every message as a row with its start time, duration, and typing speed. Click any row to select that message and adjust its timing in the right panel. The Timeline panel is also where you add **interstitials** — between- message cards and media beats that interrupt the conversation: lock- screen overlays, time-jump cards ("2 hours later…"), custom cards, plus the media and cinematic beats (see [Actions](#actions)). The base action beats (intro, image, dramatic pause, notification) need the Lite plan or above; the premium beats need Creator+. ### Right sidebar — the Customizer The Customizer has five tabs. Each tab is described in detail in its own section below. #### Look tab The Look tab is where you change the visual appearance of the conversation. It has four sub-tabs: - **Appearance** — Recolor bubbles, text, accents, status bar, and header background. Upload a custom font (.ttf or .otf, 5 MB max, Creator+). Toggle overlays like Thought Mode and Unsent Mode. When the White Label skin is active, this sub-tab is replaced by the Studio Panel (Studio plan). - **Background** — Five tabs: Solids (flat color picker + 12 preset swatches), Gradients (58 curated palettes + custom 2-5 stop builder + type and angle controls), Images (curated thumbnails), Custom (image upload or paste-an-image-URL, Creator+), and Effects (blur, brightness, contrast, saturation, vignette, grain — applies to any background type). Background renders behind the conversation. - **Backdrop** — The stage behind the phone (chat modes only, Lite+). Turn it on and the phone zooms out onto a backdrop you pick: animated gradients, gradient presets, solids, patterns or a looping video. A "camera view" card zooms, rotates, tilts and pans the phone over the stage. See the Backdrops section below. - **Overlays** — Thought Mode and Unsent Mode panels (when those sub-toggles are active). The skin itself is picked via the floating Skin Selector dock at the top-left of the canvas (not inside the Look tab). The skin grid has 20+ options (modern: WhatsApp iOS/Android, iMessage, Instagram, Messenger, Telegram, Slack, X / Twitter, AI Chats, plus the White Label blank-canvas branded-messenger skin; retro: AIM 2001, MSN 2004, ICQ 1999, Nokia 3310, BlackBerry BBM, MySpace 2006, and more). Picking the White Label skin swaps the Look → Appearance sub-tab for the full Studio Panel — see the Studio Skin System section below. The full Appearance sub-tab covers: bubble color (sender and recipient separately), text color (sender and recipient), accent color (used for links, timestamps, read receipts), status bar color, header background color, font family, and bubble opacity. Changes preview live — you see the result in the phone canvas immediately. #### People tab The People tab is where you set who is in the conversation. You can: - Edit the sender's name and the recipient's name (these appear on the bubbles and in the timeline). - Upload avatars for sender and recipient (2 MB max image). - Toggle **Group Chat** on (see [Group chats](#groupchats) below for details). - For Notification mode: configure the app name and icon per notification. #### Time tab The Time tab controls the timing and pacing of the conversation. - **Typing Simulation** — Toggle the typing bubble on/off. When on, a typing indicator appears before each message is sent. - **Read Receipt Delay** — How long after a message is sent before the read receipt (double-tick) appears. Default 0.4 seconds. - **Default Gap Between Messages** — The default pause between one message ending and the next starting. Override per-message in the Timeline panel. - **Pre-Sequences** — Add a phone-unlock animation, an incoming-call overlay, or a notification banner before the first message. The notification banner and the unlock screen's notification preview the first INCOMING message (when the chat starts with one) and that message then appears in the chat already delivered — no re-typing. Chats that start with your own message get a neutral notification, or a custom preview text you set yourself. #### Audio tab (Chat mode only) The Audio tab is hidden in Slides mode (Slides are muted by default; toggle mute off in the Slides panel to enable audio). In Chat mode: - **Sound Pack** — Pick from the sound pack library. Each pack contains typing, sent, and incoming sounds that match a specific phone OS or messaging app. - **Per-Message Sound Clips** — Override the default sound for any individual message. Click a message to expand, then pick a sound from the dropdown. - **Volume** — Master volume slider (0-100). Affects all sound clips and voice notes. - **Mute** — Toggle sound effects off (typing, sent, incoming, and notification sounds). Voice-over narration is NOT affected: a muted conversation with voice-overs keeps playing the narration, both in the preview and in the exported video — useful when you want the spoken narration without the message sounds. In Notifications mode, the Audio tab is replaced by a per-mode volume slider and the 33 pre-decoded notification sound packs. #### More tab (Chat mode only) The More tab holds advanced features: - **Brand Kit** (Creator+) — Save the current colors, fonts, and avatars as a reusable brand kit. Apply a saved brand kit to any conversation to instantly reset its appearance. - **Chroma Key** (Creator+) — Green-screen removal for image backgrounds. Available on WhatsApp skins only. - **Scene Chaining** (Creator+ for 3 scenes, Studio for 5 scenes) — Add additional scenes to the conversation. Each scene is a separate message thread that plays in sequence. --- ## Skins and appearance The skin is the first thing a viewer notices. It tells them whether they're looking at a WhatsApp chat, an iMessage conversation, a Slack thread, or something they've never seen before — and that frame sets the entire emotional context for the content. ChatAnimate ships with **20+ chat skins** organized into two groups: platform-accurate modern skins that reproduce the look of real messaging apps, and retro skins that evoke a specific era for nostalgia content. For agencies and brand teams that need the video to look like *their* product instead of someone else's, the White Label skin (Studio plan) ships a blank-canvas branded messenger that you can re-skin end-to-end — see the Studio Skin System section below. ### Modern skins - **WhatsApp iOS** — The classic iOS WhatsApp look. - **WhatsApp Android** — The Material Design Android WhatsApp look. - **iMessage** — Apple Messages with blue/gray bubbles. - **Modern iMessage** — A flatter, contemporary iMessage variant. - **Instagram** — Instagram Direct Messages. - **Messenger** — Facebook Messenger with the rounded bubble style. - **Telegram** — Telegram Messenger. - **Slack** — Slack workspace messaging. - **X / Twitter** — X (formerly Twitter) DMs. - **Android SMS** — Generic Android SMS messenger. - **AI Chats** — A clean, generic AI-assistant skin (GPT-style). - **Dating** — A dating-app-style messenger (Tinder / Bumble aesthetic). - **Overlay** — A transparent skin for layering chat bubbles over your own background footage (popular for reaction videos and commentary overlays). - **White Label (Studio)** — A blank-canvas branded messenger skin for agencies, SaaS founders, and brand teams that need a chat video to look like *their* product, not like a WhatsApp clone. Picking it swaps the Appearance sub-tab for the full Studio Panel, which exposes 15 quick-start presets (Corporate Blue, Cyber Noir, Luxury Gold, Gaming Discord, Government Formal, Minimal Editorial, Netflix Thriller, Tech Startup, Retro AIM, Fitness App, News Broadcaster, Dating App, Banking Fintech, Podcast Chat, Retro Terminal) and 9 collapsible sub-cards: App Identity, Status Bar, Header, Composer, Bubble Presets (with material: solid / glass / liquid), Typography, Message Animations, Cinematic Effects, and Quick Start. Google Fonts selected in the Typography sub-card are auto-loaded — no manual `` tags to manage. The Studio Panel is the foundation of the White Label workflow on the Studio plan — see the Teams / White Label section below. ### Retro skins - **AIM 2001** — America Online Instant Messenger, turn-of-the-millennium yellow buddy-list aesthetic. - **MSN 2004** — MSN Messenger with the hand-written-style font. - **ICQ 1999** — ICQ with the iconic "uh-oh!" sound aesthetic. - **Nokia 3310** — The monochrome Nokia feature-phone SMS interface. - **BlackBerry BBM** — BlackBerry Messenger. - **BlackBerry BBM (Accent)** — An alternate BBM colorway. - **Facebook Chat 2008** — Early Facebook chat (the era of the bottom-right floating chat dock). - **iPhone SMS 2007** — The original iPhone SMS interface, green bubbles on a black bar. - **Flip Phone** — A generic early-2000s flip-phone SMS aesthetic. - **MySpace 2006** — Early MySpace messaging. The retro skins are popular for nostalgic content and for any video that needs to evoke a specific era. ### How to change skin 1. Open the editor with any conversation. 2. Click the floating Skin Selector dock at the top-left of the canvas. 3. Pick a skin from the skin grid (20+ options). 4. The skin applies instantly to the conversation. Picking the White Label skin (Studio plan) replaces the Look → Appearance sub-tab with the Studio Panel — see the Studio Skin System section below. ### How to change colors 1. Open the Customizer panel. 2. Go to the Look tab → Appearance sub-tab. 3. Adjust the color pickers for: sender bubble, recipient bubble, sender text, recipient text, accent (links, timestamps, read receipts), status bar, and header background. 4. Live preview updates as you change colors. You can also adjust **bubble opacity** — useful for glass and liquid-glass effects on supported skins. The WhatsApp skins support chroma key (green-screen removal) for image backgrounds (Creator+). When the White Label skin is active, the Appearance sub-tab is replaced by the Studio Panel — bubble colors are set per-participant inside the Studio Panel's Bubble Presets card, not via the standard color pickers. ### How to upload a custom font 1. Open the Customizer panel. 2. Go to the Look tab → Appearance sub-tab. 3. Click the Font upload area. 4. Upload a .ttf or .otf file (5 MB max). Creator+ required. 5. The font applies to all bubble text and chat text. When the White Label skin is active, the font picker lives inside the Studio Panel's Typography sub-card instead. The Typography sub-card also exposes a Google Fonts picker — selected Google Fonts are auto-loaded into the page, so you don't need to ship font files or paste `` tags manually. ### How to upload a background The background sits behind the conversation and sets the scene — a soft gradient for a product demo, a photo of a real desk for a sales testimonial, a flat brand color for a corporate training video. ChatAnimate's Background sub-tab gives you five tabs so you don't have to leave the editor to dial in the mood: 1. Open the Customizer panel. 2. Go to the Look tab → Background sub-tab. 3. Pick a tab: - **Solids** — Flat color picker plus 12 preset swatches. - **Gradients** — 58 curated palette swatches plus a Custom Gradient builder (2-5 color stops). Most chat-video tools give you either 5 canned gradients or a raw CSS picker that takes 10 minutes to dial in — ChatAnimate splits the difference: tap a curated palette for an instant good-looking result, or scroll to the Custom builder for an exact brand-match gradient. Pick a type (linear / radial / conic) and, for non-radial, an angle (0-360° in 15° steps). Tap a palette swatch to apply; tap "Apply Custom Gradient" to apply your custom build. Type and angle changes regenerate the active gradient live. - **Images** — Curated background image thumbnails (one tap to apply; the bundled pattern library). - **Custom** — Upload your own background image (.jpg / .png / .webp) or paste an image URL (Creator+). Linked images are imported into your project and count toward your available storage. - **Effects** — Blur, brightness, contrast, saturation, vignette, and grain sliders. Applies to any background type (solid, gradient, or image). 4. Background renders behind the conversation. ### Backdrops: the stage behind the phone or the story Plenty of chat-video tools now let you run gameplay footage behind a conversation — but only their own stock clips, in their own fixed layout. ChatAnimate generalizes the idea: the **Backdrop** feature puts an animated gradient, a pattern, or a looping video behind your scene, and the footage can be *anything you have a link for* — a gameplay capture, a screen recording, a drone loop, a city timelapse, a product shot on repeat. Paste the link and it is imported, checked and used automatically as the looping backdrop. The phone (or the story text) sits on top, and a camera view lets you zoom, tilt and pan it like a real shot. Two surfaces, one feature: - **Chat mode** — Customizer → Look → Backdrop sub-tab. Turn Phone Backdrop on, then pick a type: Animated (drifting gradient presets), Gradient (the classic palette), Solid, Image (curated patterns, plus your own upload or link) or Video (curated loops, plus your own upload or link). A camera-view card below the presets zooms, rotates, tilts and pans the phone over the stage, with five quick presets (Centered, Tilted left, Tilted right, From above, Side glance) and a reset. - **Story mode** — Story panel → Settings → Background tile. The Background hub splits into two labeled groups: **Color** (Solids, Gradients — the classic story background) and **Backdrop** (Patterns, Custom, Videos, Adjust). Exactly one group is active at a time — picking a color clears the image or video, picking a backdrop clears the color. The backdrop stays visible behind every story effect, so effects play *over* your footage instead of replacing it. The Videos tab is where a pasted link lands. **Plan tiers:** the Backdrop feature is a paid feature. The Lite plan unlocks the built-in library (the curated patterns and the curated video loops, plus the animated/gradient/solid presets). Creator and above can upload their own images and videos or paste any video link, gameplay included — uploads and imports count toward storage (5 MB per file). If you want gameplay behind your chat or story, that is the Creator-tier paste-a-link flow: no re-encoding, no manual syncing, the loop simply repeats until playback ends. Backdrops are always muted and decorative — they never touch the conversation's own audio or timing. In chat mode your chat wallpaper stays untouched (the backdrop is the layer *behind* the phone); in story mode the color and gradient backgrounds remain free-plan features when you don't need footage. ### How to upload avatars 1. Open the Customizer panel. 2. Go to the People tab. 3. Click the avatar circle for sender or recipient. 4. Upload an image (2 MB max). Available on every plan. ### Studio Skin System (Studio plan) Agencies producing chat videos for multiple clients hit the same wall: every brand wants the video to look like *their* app, not like a WhatsApp clone or a generic iMessage skin. Building that from scratch in a video editor takes hours per render, and the next client wants something different. The Studio Skin System solves this by pairing the White Label skin (a blank-canvas branded messenger) with the Studio Panel — a full customization surface that replaces the standard Appearance sub-tab when the White Label skin is active. Stand up a fully branded messenger in one click via the 15 quick-start presets, or fine-tune any individual setting across 9 collapsible sub-cards. Save the result as a brand kit and re-apply it to every future conversation for that client. **Quick-start presets (14):** Corporate Blue, Cyber Noir, Luxury Gold, Gaming Discord, Government Formal, Minimal Editorial, Netflix Thriller, Tech Startup, Retro AIM, Fitness App, News Broadcaster, Dating App, Banking Fintech, Podcast Chat, Retro Terminal. Each preset sets ~15 keys at once (app identity, status bar, header, composer, bubble material, animations, cinematic effects, and participant colors). **Collapsible sub-cards (9):** 1. **App Identity** — App name, icon (upload or pick from lucide), tagline, verified badge, business label. 2. **Status Bar** — Visibility, style (real / minimal / hidden), time, battery level, network (5g / 4g / 3g / wifi / none), wifi toggle. 3. **Header** — Left icon, right icons, accent color, auto-contrast toggle. 4. **Composer** — Visibility, mode (normal / inline-typing / hidden), icon set, icon size. 5. **Bubble Presets** — Named presets plus advanced radius, padding, border, opacity, and material (solid / glass / liquid). Glass and liquid expose blur, tint opacity, saturation, and border opacity. 6. **Typography** — Font family (Google Fonts picker — selected fonts are auto-loaded into the page; no manual `` tags), weight, letter spacing. 7. **Message Animations** — Entrance (incoming + outgoing), duration, easing, typing indicator style. 8. **Cinematic Effects** — Background blur on emphasized messages + intensity slider. (Emphasis Style picker removed in S170 — emphasis is rarely toggled per-message.) 9. **Quick Start** — The 14-preset chip strip, opened by default. A master "Studio active" toggle at the top of the panel turns the entire studio overlay off without losing the configuration — useful for A/B comparing the styled vs. plain White Label skin. The Studio Panel is gated to the Studio plan. On lower plans, picking the White Label skin shows a plain unstyled messenger (no Studio Panel). --- ## Brand kits A **brand kit** is a saved bundle of appearance settings — colors, fonts, and avatars — that you can apply to any conversation with one click. Brand kits exist so you don't have to manually reconfigure the same color palette and font choice on every new conversation. ### When to use a brand kit - You are an agency producing chat videos for multiple clients, each with their own brand colors and logo. - You are a content creator with a consistent visual identity across your videos. - You are a sales team that wants every testimonial video to look like it came from the same brand. ### How to save a brand kit 1. Open the Customizer panel. 2. Configure your colors, fonts, and avatars in the Look and People tabs. 3. Go to the More tab → Brand Kit. 4. Click "Create new kit" and give it a name. 5. The kit saves your current colors, fonts, and avatars. ### How to apply a brand kit 1. Open any conversation. 2. Open the Customizer → More → Brand Kit. 3. Pick a saved kit from the list. 4. The kit's colors, fonts, and avatars apply instantly. ### Brand kit limits per plan - Free: 0 brand kits. - Lite: 0 brand kits. - Creator: 1 brand kit. - Studio: 10 brand kits. Brand kits are available in Chat mode and its sub-toggles (Thought, Unsent). They are not available in Story, Notifications, Comments, Hook, or Slides modes. --- ## Group chats ChatAnimate supports **group chats** in Chat mode. A group chat has one sender (you) and multiple recipients, each with their own name, color, and avatar. Group chats are useful for dramatizing multi-person conversations — a family group chat, a project team chat, a friend group planning a trip. ### How to enable group chat 1. Open the Customizer panel. 2. Go to the People tab. 3. Toggle "Group Chat" on. 4. The recipient section expands to show a list of group members. ### How to add group members 1. With Group Chat enabled, click "Add Member". 2. Enter a name and upload an avatar (2 MB max). 3. The member is added with an auto-assigned color from the group color palette (10 colors cycle through: red, yellow, blue, pink, purple, teal, green, orange, dark orange, dark red). 4. Repeat for each additional member. There is no hard cap on group member count, but conversations with more than ~10 members become hard to follow on a phone screen. ### How to set the sender per message 1. Click a message row in the Timeline panel or click a bubble in the phone canvas. 2. The message expand panel appears. 3. Pick the sender from the "Sender" dropdown (you, or any group member). 4. The message reassigned instantly — the bubble moves to the left (recipient side) or right (your side) depending on who sent it. ### Group chat behavior - Each group member's bubbles render in their assigned color. - The sender's bubbles always render on the right in the default color. - Typing simulation works per-sender — when a recipient is "typing", their avatar appears with the typing indicator. - Read receipts appear per-recipient when supported by the skin. --- ## Content you can add to messages Every message in ChatAnimate can hold more than just text. Here is the full menu of content types. ### Text The default. Type any text. Multi-line is supported. Emoji are rendered as native Unicode emoji (no broken half-emoji frames — the typing engine uses grapheme clusters so even complex emoji like family compositions and flag sequences reveal as a single unit). ### Voice notes Record audio directly in the editor or upload a pre-recorded audio file. A waveform renders with the audio attached. Voice notes play during export at the message's scheduled timing slot. Available on Lite+. In Chat mode, hover a message row and click the Mic button to record or upload. Recordings and uploads stay on your device while you draft and only upload to storage when you export, save, embed or publish, so deleting or re-recording a voice note while editing never leaves an orphaned file behind. In Call Mode conversations voice notes are the call's spoken audio: they play under the call screen during preview and in the exported video alike. ### Voice-over Most chat-video tools are silent — you get typing sounds and a chime, but nobody reads the conversation aloud. If you want a narrated video (walk- throughs, dramatized text stories, accessibility-friendly versions), you had to record a voice track yourself and line it up in a video editor. Voice-over fixes that: pick a voice per chat participant, turn on Narration, and click "Generate All Voice-overs" — every eligible text message is read aloud — each voice clip starts exactly when its bubble appears and the timeline stretches to fit, so the narration and the visuals stay locked together. Browse the voice catalog (a growing library of female and male voices, American and British accents, with more languages marked beta, loosely grouped into Narration, Conversational, Energetic, Character and Calm categories you can filter by), preview any voice before assigning it, then give each participant in the People tab their own voice. Voice clips are generated on our servers, never touch your storage quota until you export, and live on your device in between sessions — if a browser cleanup clears them, one click regenerates only the affected clips. Edit a message after voicing it and ChatAnimate flags exactly that message's voice as outdated and regenerates just that clip. Common emoji are read naturally (a laughing emoji becomes a short laugh); anything unmapped is stripped so nothing robotic slips through. Long messages over 400 characters are refused with a hint to split them, so audio and text always match. Available on Lite+ in Chat mode. Each plan includes a monthly character allowance (Lite 3,000 — roughly 30 voiced messages; Creator 10,000; Studio 25,000) that resets with your billing cycle, plus a 40,000-per-day burst cap that keeps generation fast for everyone; one-time Voice-Over Character packs (5,000 for $4.99, 15,000 for $9.99 — never expire) top up the monthly allowance. Find it: Customizer → People tab → "Choose voice" per participant, or the Narration card below the participant sections (toggle + the "Generate All Voice-overs" button, with the quota it will use shown right there). **Use own voices.** Generated voices are convenient, but sometimes the brand needs a real human — a founder's actual voice, a customer testimonial recorded by the customer, or audio you already produced with another TTS service. With Narration on, flip "Use own voices" in the People tab and a Voice button appears in the message composer: upload an audio file for each message (MP3, WAV, OGG, M4A, AAC or FLAC, up to 1 MB per message) and it plays exactly as recorded. The message becomes a voice note: no text, no typing animation, and the timeline holds for the real length of your audio. Your files are staged in your browser and only upload to storage when you export, save, embed or publish, so swapping files while you draft never burns quota. The per-message Voice button also works inside Call Mode conversations, so a simulated phone call can carry real human voices end to end — in the editor preview they play as part of the call audio, matching the export. Turn the toggle off and the generated voices take over again — nothing you uploaded is lost. Narration mode (the toggle in that card) changes how the chat plays: messages appear instantly instead of typing, each message waits for its voice to finish before the next one shows, thoughts are read aloud as a soft inner monologue, and the typing-based features step aside — typing effects, typing sounds, unsent drafts and typing authenticity are turned off while Narration is on and come back when you turn it off. Sent and received message sounds still play, and stay under your control like always. Story Mode gets the same treatment with a single narrator: pick a narrator voice in the Story panel (Settings → Narration), click "Generate narration", and every narrated scene holds on screen until the voice finishes reading it — the scene never transitions early, and playback runs at normal speed so the pacing matches the narration (exported videos carry the narrator's voice in the mix, with a mute toggle if you want a silent cut). Narration is per scene — switch scenes to narrate each one — and the same 400-character and stale-clip rules apply. **Voice expressions.** Flat, same-speed narration is the #1 giveaway of robotic text-to-speech — every line lands with identical pacing no matter who's talking or how they feel. Voice expressions fix that from the text side: type a tag in a message (or click the Voice chips under the message editor / composer) and the generated voice changes how that line is delivered. The core palette: [pause] inserts a short beat, [long pause] a dramatic one; [emphasis] punches the wrapped words; [excited], [sad] and [angry] shift speed and energy; [whispering] delivers the wrapped words quietly. English voices add an expressive set: [fear], [surprised] and [sarcastic] for tone, [sigh] and [gasp] for breath, [chuckle] and [laugh] to put a laugh in the voice. The expressive chips appear under the editor automatically when the message's voice is English, because English voices run on the expressive engine. Pick a voice in another language and those chips disappear: the voice you pick is the language your messages speak. Two forms work: wrap a span ("[angry]are you serious?[/angry]") or open one to the end of the message ("[sad] I thought you loved me."). Honest limits by design: the core tags shape pacing, emphasis and volume; the expressive tags shape delivery and emotion on English voices and speak the line plainly otherwise. They never change the actor's timbre. The chat preview, story player and exported video always show the clean text — tags never appear on screen, and editing a tag flags the message's voice as outdated so one click regenerates it. Tags count toward the 400-character per-message limit. Available on Lite+ wherever voice-over is (Chat and Story modes). ### Images Attach images to messages, backgrounds, and avatars. Available on Lite+. In any image-supporting mode, click the Image button on a message row. Adjust sizing and position in the message expand panel. ### Video clips (Slides mode only) In Slides mode, attach MP4 or WebM video clips to slides. The video plays inline during the slide's timing slot. Available on Lite+. ### GIFs Search the Klipy GIF library by keyword and attach a GIF to any message. GIFs play inline during export. Available on every plan in Chat, Comment and Thought modes. Click the GIF button on a message row to search. ### Stickers Browse the built-in sticker library by category. Click a sticker to attach. Available on every plan in Chat, Comment and Thought modes. Click the Sticker button on a message row. ### Emoji reactions Add a per-message emoji reaction that appears above the bubble. Available on Creator+. Click any message to expand, then click the Reaction picker (emoji icon) and choose an emoji. Reaction timing is shown on the Timeline. ### Replies / quoted messages Quote a previous message in a reply. The reply bubble renders above the new message with the quoted text and sender. Skin-gated — only WhatsApp Android, WhatsApp iOS, Slack, and GPT skins support replies. Click a message to expand, type the quoted text and sender in the Reply input. Available on Lite+ — on Free the Reply input is visible but locked as an upgrade preview. ### Interstitials Interstitials let you interrupt a conversation between any two messages with a card, media or a cinematic event, then continue the conversation from where it left off. Add images, GIFs, videos, audio clips, time cards, missed calls, lock-screen moments or custom cards and the chat resumes right after the beat. The classic trio from the Timeline panel: - **Lock-screen** — A phone lock-screen overlay appears between two messages. - **Time-jump** — A "2 hours later…" card appears between two messages. - **Custom** — A custom card with your own text and optional sound clip. Media and cinematic beats (images, GIFs, video, audio interludes, narrator cards, missed calls, dramatic pauses) are the Action catalog in Chat mode — see [Actions: between-message beats](#actions) for the full list with caps. The base beats (intro, image, dramatic pause, notification) need the Lite plan or above; video, GIF, audio, narrator and missed call beats need Creator+. Open the Timeline panel and click "Add Interstitial" between any two messages, or click the bold Action button beside the composer in Chat mode. ### Sound clips Override the default sound for any individual message. Available on Creator+. Click a message to expand, open the Sound Clip dropdown, and pick a sound from the library. Plays at the message's scheduled time. ### Per-message timing Every message has its own Start Time, Duration, and Typing Speed. Adjust these in the Timeline panel by clicking a message row and dragging the sliders. The schedule updates live as you drag. Available on Creator+. --- ## Timing and typing authenticity ChatAnimate's timing engine is what makes conversations feel real. There are three layers. ### Layer 1 — Typing simulation When enabled, a typing indicator (three bouncing dots) appears before each message is sent. The duration of the typing indicator is calculated from the message length and the typing speed. You can: - Toggle typing simulation on/off in the Customizer → Time tab. - Adjust the default typing speed in the Customizer → Time tab. - Override the typing speed per message in the Timeline panel. - Set a Typing Pause per message (0-5 seconds of extra "thinking" delay before the message starts typing). Lite+ — on Free the slider is visible but locked as an upgrade preview. - Set a Read Receipt Delay (default 0.4 seconds) so the read receipt appears shortly after the message is sent. ### Layer 2 — Typing authenticity Typing authenticity adds realistic human imperfections to the typing pattern. Available on Creator+. Open the Typing Authenticity button in the editor header to configure. There are four imperfection types: - **False-starts** — The sender starts typing, deletes what they typed, and starts over. - **Mid-pauses** — The sender pauses mid-message before continuing. - **Typos** — The sender makes a typo, deletes it, and types the correct character. - **Burst-sends** — The sender types a chunk quickly, then sends. Pick a preset (casual, dramatic, professional) or reroll the seed for a new pattern. The seed is deterministic — the same seed always produces the same authenticity plan, so what you see in the preview is exactly what you get in the export. Three intensity levels: subtle, medium, chaotic. ### Layer 3 — Per-message timing For full control, open the Timeline panel and click any message row. Adjust: - **Start Time** — When the message appears. - **Duration** — How long the message takes to type and send. - **Typing Speed** — Characters per second. The schedule updates live. Available on Creator+. ### Why the timing engine matters If you have ever watched a chat-animation video where the typing felt robotic — every message the same length, every pause the same duration, no human hesitation — you understand why this matters. The combination of typing simulation + authenticity + per-message timing is what makes a ChatAnimate video feel like a real conversation rather than a slideshow of text cards. --- ## Actions: between-message beats Most chat-video tools give you exactly two gears: the conversation, or a canned intro slapped on the front. But real storytelling needs beats INSIDE the flow: a "The next morning" title card, an establishing video between two scenes, the photo of the evidence right when it is mentioned, a voicemail the audience hears, a narrator setting the mood, or a phone that rings and nobody picks up. People searching "how to add a time skip in my chat video" or "make the phone ring in my text story video" want exactly this. Actions are those beats. In Chat mode, click the bold **Action** button beside the message composer and pick from nine kinds: - **Intro / Title Card** — the same card builder the opening uses: location cards ("The next morning", "3 weeks earlier"), chapters, hook cards and title cards, now placed BETWEEN any two messages. (The 20 cinematic styles are an OPENING intro: Editor header, Cinematic Intros button.) - **Video** — fullscreen video between conversation sections (upload or paste a link, up to 15 seconds). Fill or fit, with sound or muted, volume control. Never any player controls: the video is a beat, not a player. - **Image** — a fullscreen photo, screenshot or product shot, with optional zoom/pan motion and a caption. The Document preset frames it as a paper card (for emails, receipts, reports and webpage screenshots); the Social Post preset wraps it in an Instagram/X-style post card. - **GIF** — a short looping reaction (upload, paste a link or search a GIF library from the picker). - **Audio Interlude** — an audio clip with a configurable visual: voicemail, podcast, radio or a minimal waveform (upload or paste a link, up to 15 seconds, volume control). The card's identity text fills itself from the surrounding conversation — who the voicemail is from (the contact speaking just before the beat), what the conversation is about (the topic line), the host and segment count on the podcast card, and the frequency when your label carries one — never sample names or numbers. - **Narrator Card** — a cinematic narrator card that SPEAKS your line with a voice you pick (click the orange preview button to hear a voice before you choose it; the text is read aloud by generated voice, with its own voice, independent of per-message narration). - **Dramatic Pause** — a controlled hold on black (or transparent) with optional text. For suspense: silence, then the conversation resumes. - **Missed Call** — the phone rings, nobody picks up, the missed-call card lands. Pick the caller, the ringtone (click one to hear it right in the picker) and its volume; the window always fits at least one full ring. - **Notification** — an OS notification banner mid-conversation (app name, sender, preview text). The app icon comes from the same app picker Notification mode uses, and the sound is any clip from the notification sound library (or none). Every beat anchors after a message you pick ("after the last message" and "before the conversation" included), shows as a slim draggable row in the message list (drag it anywhere to re-anchor it), and appears on the timeline where you can also stretch its window. Images, GIFs and audio get one more choice, the overlay toggle: **Full screen beat** (interrupts, the conversation continues after) or **Overlay on chat** (the reaction pops OVER the running conversation in one of five placements and three sizes, without ever switching screens). Everything is staged or pasted like every other media (no dead links in exports), video and audio are capped at 15 seconds, visual beats hold between 0.5 and 6 seconds (a narrator card fits its voice automatically), and each beat counts toward your plan's message cap. Actions are a Chat-mode feature (plus Thought and Unsent modes) and ride along in every export, presentation and replay lane unchanged. Plans: the Action button itself needs the Lite plan or above (on Free it stays visible but locked, since Free has no media uploads). Lite includes the four base beats — Intro / Title Card, Image, Dramatic Pause and Notification. Video, GIF, Audio Interlude, Narrator Card and Missed Call are Creator+ (they show a Creator badge in the catalog on Lite; an existing premium beat opened on a lower plan shows a lock card instead of its editor, and it will not play in new exports until the plan is upgraded). --- ## Audio and sound Audio in ChatAnimate has three layers. ### Sound packs A sound pack is a bundle of three sounds: typing, sent, and incoming. Each pack is themed to match a specific phone OS or messaging app. Pick a pack in the Customizer → Audio tab. All typing, sent, and incoming sounds update instantly. Available on Creator+ in Chat mode. ### Per-message sound clips Override the default sound for any individual message. Click a message to expand, open the Sound Clip dropdown, and pick a sound from the library. Plays at the message's scheduled time. Available on Creator+. ### Volume and mute - **Master volume** — Slider 0-100 in the Customizer → Audio tab. Affects all sound clips and voice notes. - **Per-mode volume** — In Notifications mode, a separate volume slider controls only notification sounds. The two volumes are independent — muting one does not affect the other. - **Mute** — Toggle sound effects off. Voice-over narration keeps playing when muted (preview and export alike). Available on every plan. ### Notification sound packs In Notifications mode, 33 pre-decoded sound packs are included. Each pack is a different notification sound. Available on every plan. ### Audio in Slides mode Slides are muted by default. To enable audio, toggle mute off in the Slides panel. The Audio tab is hidden in Slides mode (typing/sent/ incoming sounds don't apply to slide decks). ### Audio in Story mode Story mode is silent by default. Turn narration on to add a single narrator voice: pick a narrator in the Story panel (Settings → Narration), generate the clips, and each narrated scene holds until its voice finishes, with the export carrying the narrator in the mix. See the Voice-over section for the full mechanics. --- ## Scenes and composition A **scene** is a single message thread. Every conversation starts with one scene. You can add more scenes to create multi-part stories. ### Single scene The default. One scene per conversation. Add messages to that scene. Export plays the single scene in order. Available on every plan. ### Multiple scenes (up to 3 on Creator, up to 5 on Studio) Chain multiple scenes per conversation for multi-part stories. Each scene is a separate message thread that plays in sequence. Available on Creator (3 scenes) and Studio (5 scenes). Open the Customizer → More → Scene Chaining and click "Add Scene". ### Scene tabs With 2+ scenes, scene tabs appear at the top of the editor. Click a tab to switch the active scene. Drag tabs to reorder the scene sequence. ### Scene chaining Cross-scene continuity rules. Configure whether participants carry over between scenes, whether the timestamp continues, etc. Available on Studio. Open Customizer → More → Scene Chaining. ### Split-screen export Render two phone perspectives side-by-side or stacked in the same video. Available on Studio. Click the Split Screen button in the editor header and pick a layout. --- ## Context Switch A **context** is a full chat-environment snapshot: its own skin, sound pack, Studio overrides, participants, group members and notification sound. Multiple contexts can live inside a single scene, and the conversation can switch between them mid-video — the visual effect is like switching apps on a phone (a WhatsApp conversation becoming an iMessage conversation, an Instagram DM becoming a Slack thread, etc.). Context Switch is **Chat mode only** — the Context Tab Row is hidden in Story, Notifications, Comments, Slides, Hook and switching away from Chat mode empties the contexts array. Available on Creator (up to 2 contexts per scene) and Studio (up to 4 contexts per scene). ### Where the Context Tab Row lives The Context Tab Row (a horizontal pill strip, one pill per context) appears in 2 places when contexts are available. - **Desktop stage header** — above the phone preview in the editor canvas. Always visible while Chat mode is active and the plan allows contexts. - **Message composer** — just above the Sender (participant) row in the MessageList. Lets you switch contexts while composing messages. If you only have one context (the default), the row is hidden — it only appears once contexts are allowed by your plan AND Chat mode is active AND (you have 2+ contexts OR your plan allows adding one). ### Adding and managing contexts - **Add a context** — Click the "+" button at the right end of the pill strip. Opens the Context Switch management modal. The new context starts as a duplicate of the active one — change its skin, sound pack, and Studio overrides to make it distinct. - **Switch contexts** — Click any pill. The message list re-renders immediately for the newly-active context. - **Open the management modal** — Right-click a pill (desktop) or double-click a pill (mobile-friendly, since phones have no right click). The modal lets you rename a context, reorder contexts (drag-and-drop or Move up/down), set the start-scene context (the one the video opens on, marked with ★ in the pill row), and delete a context. - **Delete a context** — Hover a pill and click the X that appears. A confirmation popup appears. Messages that belonged to the deleted context are reassigned to the primary context. The start-scene context cannot be deleted. - **Reorder** — Drag a pill to a new position, or use Arrow keys to move focus between pills and Shift+Arrow to move the focused pill. ### Per-context customization Each context can be independently customized: - **Skin** — pick from the Skin Selector dock. Retro skins (AIM 2001, MSN 2004, ICQ 1999, Nokia 3310, BlackBerry BBM, MySpace 2006) are not compatible with contexts — once a second context is added, retro skins are hidden from the picker. - **Sound pack** — pick in Customizer → Audio. Each context keeps its own typing / sent / incoming sounds. - **Studio overrides** — when using the White Label skin, each context can carry its own Studio Panel preset (Corporate Blue, Cyber Noir, etc.). - **Participants and group members** — each context can have its own sender / recipient pair and its own group chat roster. - **Notification sound** — override the destination skin's default notification sound (used when a context switch is triggered by an incoming notification). ### Context Switch transition settings Open Customizer → More → Context Settings to control the visual transition between contexts: - **Animation type** — `auto` (destination skin's platform default), `fade`, `slide`, `zoom`, `spring`, or `none`. - **Duration** — per-half-transition duration, 100–600 ms. Total transition = 2× this (the overlay covers the swap at its midpoint). - **Pre-switch gap** — 0–3 s, default 0.6 s. The pause between the last message in the old context and the start of the switch overlay. For notification-triggered switches, this becomes the dwell time the notification banner stays on screen before the swap. - **Overlay color + opacity** — the cover overlay's background. Default is dark (#0d1117) at full opacity. Drop opacity to 0 for a hard cut (use with `none` animation type). - **Show skin labels** — toggles the "WhatsApp → iMessage" label on the overlay. ### Notification-triggered context switches A context switch can be triggered in two ways: 1. **Sender-initiated** — the sender actively switches to a different context. The switch overlay fires, then the next message in the new context appears after the post-switch gap. 2. **Notification-triggered** — an incoming notification on the receiver's phone triggers the switch. The notification banner appears, dwells for the configured `notificationDwell` (default 1.5 s), then the switch overlay fires. The receiver's message appears the INSTANT the overlay ends — no dead-air gap. This is the canonical "WhatsApp ↔ iMessage" use case. ### Constraints when contexts are enabled - **Chat mode only** — the Context Tab is hidden in every other mode. Switching modes away from Chat empties the contexts. - **No retro skins** — once a second context exists, retro skins are hidden from the Skin Selector. - **No scene chaining** — contexts are an alternative to scene chaining (both create visual variation); the More tab hides Scene Chaining when 2+ contexts exist. - **No Brand Kit apply** — Brand Kit applies to one skin, but contexts have multiple skins; the More tab hides Brand Kit when 2+ contexts exist. - **No Chroma Key** — chroma key doesn't compose with mid-video background changes; the More tab hides Chroma Key when 2+ contexts exist. ### Plan caps | Plan | Contexts per scene | |---|---| | Free | 0 (feature disabled) | | Lite | 0 (feature disabled) | | Creator | 2 | | Studio | 4 | --- ## Call Mode **Call Mode turns any conversation into a phone call.** Call Mode is a presentation mode of Chat conversations, not a ninth creation mode: a conversation can play as a **Chat** (the normal chat skin) or **As A Call** (a realistic call screen covers the phone for that conversation). The toggle is per conversation, in the Customizer, Look tab, Overlays sub-tab, Call section. It needs the Lite plan or above (it rides the voice-over feature because a call plays its messages as voices) and Chat mode. Drama use cases: the scam call reenactment for TikTok (the "make a fake incoming call video" format), the dramatic callback beat in a story video, the moment a chat conversation escalates into a voice call. People search for it as a fake phone call video, a phone call simulator or a simulated phone conversation; the render is the same: a call screen, a running timer and every message spoken with a voice. A missed call (the ring with no pickup) is an Action beat between messages, and group conversations marked as calls render as conference calls with a tile grid. ### The four call scenarios Every call screen template renders the same scenario points: 1. **Receive Call** (the conversation starts with a message from the other side): the incoming-call screen shows the caller with accept/decline affordances while the ringtone plays. 2. **Calling** (the conversation starts with your message): the calling screen shows "Calling..." while the ringback tone plays. 3. **Active Call**: the connected screen with the caller, a running 00:00 timer and the end-call button. The conversation's messages play as spoken voices (narration) exactly like they would in a narrated chat, with the same timing engine. 4. **End Call**: the hangup card with the end sound, then playback continues to the next conversation or the video ends on the call ended card (the card holds to the final frame, never dropping to the chat underneath). Internet calls (WhatsApp-style) add a **Connecting** beat between the ring and the timer. ### How to author one - Open the Customizer, Look tab, Overlays sub-tab and find the Call section. Switch the toggle from **Chat** to **As A Call**. Narration turns on automatically (a call needs every message voiced). - Pick **ISP** (carrier call: ring, 00:00 timer, ended) or **Internet** (WhatsApp-style: ring, connecting, timer, ended). - Pick a template: two iOS and two Android call-screen designs, pixel-accurate to the real phone apps. iOS 1 is the stock Phone-app style, iOS 2 the darker internet-call layout, Android 1 the Google Phone Material You family and Android 2 the alt Google layout that carries the conference layer for groups. The skin selector switches to a call-template picker while the conversation is a call. - Set the ring length (how long before the call is answered), the incoming ringtone (8 built in: Marimba, Digital, Chime, Retro, Pulse, Bright, Zen, Alert) or the outgoing calling tone, and the end sound. Ringtones are per conversation. The ring always fits the ring length: choosing a longer ringtone (or uploading your own, up to 20 seconds) raises the ring length to fit it, and a shorter window plays a truncated ring instead of silence. Whatever window is set, the ring STOPS there — audio never overlaps the pickup, the call voices or the narration, in the preview and the export alike. - Customize the screen: avatar size, caption size, accent color, the in-call glyph row (mute, speaker, keypad, add call) and its position, the end-button position, the background (default, wallpaper with blur, or your own image). - Voice every message in the conversation with the Voice tool, or flip **Use own voices** (People tab → Narration) and upload a recording per message from the composer's Voice button — real human voices for marketing teams, localized ads with native speakers, or audio from the TTS service you already use. Then play or export. The play and export checks block an unvoiced call with exact counts, and image or GIF messages are skipped in calls (they play again when you switch back to chat). - Group conversations marked as calls render as conference calls with a tile grid. Calls and chat conversations can be mixed in one scene: a normal WhatsApp chat that switches into a call from an unknown number, then back to chat. Call Mode combines with Context Switch (Creator+) for the multi-conversation flow. --- ## AI tools ChatAnimate includes 8 AI tools. Each costs credits; the credit budget per plan is in the [Plans](#plans) section. All AI tools are accessed from buttons in the editor header. ### AI Writer (Creator+, 1 credit) Generate a full Chat conversation from a text prompt. Describe the conversation you want — the characters, the topic, the tone — and the AI generates a complete conversation that populates the editor. You can then edit, restyle, and export. The 1-credit cost is the same regardless of conversation length (up to 50 messages per generation). ### AI Story Writer (Studio, 1 credit) Generate multi-slide Story content from a prompt. Describe the story and the AI generates slides with text and visuals. Useful for narrative content where the story is more important than the chat format. ### AI Comment Writer (Creator+, 1 credit) Generate a comment stream with realistic usernames. Describe the post and the AI generates a comment thread that looks like a real social- media comment section. Pair with the premium platform picker (Instagram, TikTok, X, YouTube, Reddit, Facebook) for platform- accurate styling. ### Screenshot to Animation (Creator+, 2 credits) Upload a screenshot of a real chat (your own WhatsApp, a customer DM, a Slack thread) and the AI extracts the messages into an editable conversation. This is the fastest path from "I have this real chat" to "I have a ChatAnimate video of it". After extraction, you can edit text, change the skin, adjust timing, and export. ### Translate (Studio, 1 credit) Translate all messages in a conversation to another language, in place. Useful for repurposing content across markets — generate once in English, translate to Spanish, French, German, Japanese, etc. ### Testimonial Mode (Creator+, 1 credit) Generate a structured testimonial-style chat from a product description. Describe the product and the testimonial angle (e.g. "customer who saved 5 hours a week") and the AI generates a chat conversation that reads like a real customer testimonial. ### Bulk Conversation Pack (Studio, 3 credits) Generate multiple conversations at once from a theme. Useful for content-calendar batches — describe a theme ("12 customer testimonials for a SaaS landing page") and the AI generates 12 conversations in one pass. ### Interactive Blueprint (Studio, 2 credits) Open the Presenter studio, describe the interactive training or presentation in one sentence (the audience, the topic, what people should learn) and the AI writes the complete first draft: the chat conversation, the question cards, the branches, the scoring and the pass mark. Example chips get you started. The draft lands in the same preview the import tab uses: you see the message count, the step count and every warning before applying anything, and everything stays editable afterwards. Prefer your own chatbot? The Blueprint modal also carries the full copy-ready prompt, and the complete schema reference is public at `/blueprint.md` (a pretty, readable copy lives at `/blueprint`). 2 credits per draft. ### Credit budget per plan - Free: 0 credits/month (no AI access). - Lite: 0 credits/month (no AI access). - Creator: 40 credits/month. - Studio: 80 credits/month. You can top up credits with **credit packs** if you run out before the month resets. See the [Plans](#plans) section. --- ## Import and templates If you already have a WhatsApp `.txt` export, a Slack JSON dump, a customer-DM screenshot, or a CSV of messages from a CRM, you don't need to retype anything — ChatAnimate imports it directly. There are four ways to get content into the editor. ### JSON Import / Export (Free) Save the full conversation state as a JSON file, or re-import a JSON file to restore state. Use for backups, for moving conversations between accounts, or for sharing templates with teammates. Available on every plan. Open the editor header → Import/Export JSON. ### CSV / TXT Import (Creator+) Bulk-import up to 300 messages (Creator) or 1000 messages (Studio) from a .csv or .txt file with sender/message columns. Useful for importing real chat exports — WhatsApp .txt exports, Slack JSON exports converted to CSV, etc. Open the editor header → CSV Import. The import adapts to the editor's ACTIVE mode — the CSV columns stay the same in every mode: Chat mode turns rows into message bubbles, Comment mode into comment cards (sender = commenter name), Story mode into story scenes (bounded by the 35-scene story ceiling), and Notification mode into notification cards (sender = notification title, content = body, timestamp = time label). In Chat mode only, an optional `mode` column (thought / unsent / static) sets each row's per-message mode; static rows form the conversation's history block — on-screen from the first frame, never animated, and capped by the plan's static-messages limit rather than the message quota. #### The CSV file format The exact column layout, so people (and language models generating files) can write importable CSVs without guessing. The header row is required; every column except `sender` and `content` is optional and falls back to a sensible default when left blank. ``` sender,type,content,delay,typing_speed,status,timestamp,context,mode John,text,Hey! How are you?,2,medium,read,,1, Sarah,text,I'm great thanks! You?,3,medium,read,,1, John,text,Did you see the game last night?,2,fast,read,14:35,1, Sarah,text,Yes!! What a match,2,medium,read,14:36,1, John,text,Just shipped a new feature,2,medium,read,,2, Sarah,text,Congrats! Looks amazing,2,medium,read,,2, John,text,Remember when we first met at the conference?,2,medium,read,,1,static ``` Columns, left to right: - **sender** (required) — the name shown as this row's author. Any text works; two or more distinct names auto-promote the import to a group chat. Missing entirely, the row falls back to "John". - **type** — the row's message kind: `text` (default), `image`, `voice` or `gif`. For media rows, `content` carries the public URL of the file; a `voice` row may also set `voice_duration` (an extra column, seconds of the voice bubble, default 3). - **content** (required) — the message text (or the media URL for image/voice/gif rows). Quote the field when it contains commas. - **delay** — the pause in seconds before this row appears (default 2; use 0 for an instant message with no pause). - **typing_speed** — how fast the typing animation plays for this row: `slow`, `medium` (default), `fast` or `instant`. - **status** — the delivery tick under the bubble: `none`, `delivered` or `read` (default). - **timestamp** — a display-only time label (for example `14:35`); shown under the bubble, never used for pacing. - **context** — routes the row into a Context Switch tab (see [Context Switch](#context-switch)). Rows sharing one context value land on the same tab; blank rows go to the active context. - **mode** — Chat-mode imports only: `chat` (default), `thought` (an internal thought bubble), `unsent` (typed then deleted, sender-side rows only) or `static` (on-screen from the first frame, never animated). Ignored in the other import modes. Column-name aliases: hand-written files often use natural headers, and the importer resolves them. For the sender column it accepts `sender`, `participant`, `participant_name`, `name`, `author`, `commenter`, `username`, `user`, `from`, `person` or `account`; for the content column it accepts `content`, `text`, `message`, `body`, `comment`, `msg` or `caption`. The canonical `sender`/`content` headers always win when present, and the preview step names the columns it detected. Unknown extra columns are ignored, so older files keep working. Participants and sides: the import maps the distinct sender names to the chat's sides with the same rules the .txt export import uses (a "You" / People-tab match takes the right side, the first other name the left, a clean two-name file auto-detects). The preview step shows the mapping plus any 1-on-1 collapse warnings before anything imports. Limits and validation: rows are capped by the plan's save-messages limit (the same cap as the composer; see the limits table). Static rows do not count against that cap and are capped separately (5 on Free, 10 on paid plans). Invalid values (an unknown `typing_speed`, a non-numeric `delay`, a `mode` on a voice row) are flagged per row in the preview instead of failing the whole file, and a hand-written line with an unquoted comma in the content is repaired by re-merging the surplus fields into the content column. ### .txt chat export import (Free) Import a real chat export (.txt format) from WhatsApp, Telegram, Slack, Discord or a generic text format. The parser auto-detects the format and extracts messages, senders, and timestamps. Open the editor header → Import TXT. #### The .txt export formats The auto-detected parsers, so generated exports land cleanly. WhatsApp is the most common: each message starts with the bracketed date and time, then the name and the text. ``` [21/09/2026, 14:35] John: Hey! How are you? [21/09/2026, 14:36] Sarah: I'm great thanks! ``` Telegram desktop exports put the name and timestamp on their own line, with the message text on the line below (multi-line messages continue until the next header line). ``` John, [21.09.2026 14:35:00] Hey! How are you? Sarah, [21.09.2026 14:36:12] I'm great thanks! ``` Slack and Discord exports are usually JSON; upload the JSON file instead (the same importer accepts Telegram JSON, Slack JSON and Discord JSON formats). The generic parser accepts `Name: message` per line (also `Name - message` and `Name | message`) and catches everything else. Files are capped at 500 KB, and the same plan message caps as CSV apply. #### Participants and sides Ever imported a chat where every message ended up on one side, or the names got mixed up? The importer reads the people actually in the conversation (the distinct sender names in the file) and maps them to the chat's sides before anything lands: a sender matching "You" (or the name set in the People tab) takes the right side, the first other name becomes the left-side contact, and a clean two-person file auto-detects first speaker right, second speaker left. The preview step shows the mapping ("Maya on the right (You), Daniel on the left") before you confirm, so a wrong guess is visible before it plays. A file with a single speaker stays on the right side (with a note), and a group-style file imported as 1-on-1 collapses the extra names onto the left (with a warning pointing at Group mode). ### Quick Templates (Free) Browse the quick-template gallery and load one into the editor. Each template is a pre-built conversation you can customize. Open the editor header → Templates. --- ## Export and output Once your conversation looks right, you need it in the right shape for the right destination — an MP4 for TikTok, a GIF for an email embed, a 4K master for a client deliverable, a Presenter page for a live pitch. ChatAnimate exports to three formats at three resolutions, plus four special export types. ### MP4 Export (all plans) The default video format. MP4 files play everywhere — social platforms, browsers, video editors. Available on every plan at 480p; 1080p on Lite and above; 4K on Creator and above. ### GIF Export (Creator+) Export as an animated GIF instead of MP4. Useful for embedding in emails, docs, and places that don't support video. Available on Creator+. ### WebM Export (Creator+) Export as WebM for web embedding. Smaller file size than MP4 for equivalent quality. Available on Creator+. ### Resolutions - **480p** — Every plan, including Free. On Free the export carries the watermark; Lite+ is clean. - **1080p HD** — Lite and above. Clean (no watermark). - **4K Ultra HD** — Creator and Studio. No watermark. ### Watermark & Outro - **Free** — Exports carry a small ChatAnimate watermark, and a 1.5-second "Made with ChatAnimate" outro is stitched to the end of every Free export. - **Lite+** — No watermark, no outro (clean exports). - **Studio** — Custom watermark: upload your own logo to replace the default branding. Pair with White Label (Studio owner-only) to remove all ChatAnimate branding from embeds and presenter pages. ### Batch Export (Studio) Upload a CSV and render up to 20 conversations in one batch. Open Dashboard → Exports → Batch Export, drop your CSV, click Export. The page shows a preview of every conversation before you submit, and you get an email when each render is ready. The page's format guide has the full column reference plus a downloadable example file. ### Email Export (Creator+) Export the conversation as an email-campaign format. Useful for marketing emails where you want to dramatize a customer conversation. ### Screenshot Export Export a single frame of the conversation as a PNG image. Useful for thumbnails and social cards. ### Muted Export Toggle the audio track off in the export modal. Useful when you want a silent video for autoplay environments (Instagram feeds, etc.). Note: voice-over narration is exempt, if your messages carry voice-overs, the export keeps the narration and mutes only the sound effects. For a fully silent video, remove the voice-overs first. ### Export History (Creator+) Open Dashboard → Exports to see all past exports with status and download links. Re-download or re-render as needed. Select multiple exports with the checkboxes and delete them in one go, and the storage bar at the top shows exactly how much space those videos are using. Video files are retained per plan: - Free: 3 days. - Lite: 3 days. - Creator: 7 days. - Studio: 90 days. Running out of storage? Delete old exports you no longer need or click Purge Stale to clear old uploads. Voice clips waiting to be exported live on your device, so they retry automatically once space is free. ### Save Conversations (Creator+) Persist conversations to your account for later editing. Creator can save 20 conversations; Studio has unlimited saves. Free and Lite are exports-only — they cannot save conversations. Open the editor bottom bar → Save. --- ## Presentations, replays, and sharing This section covers the four ways to share ChatAnimate content beyond the editor: Presenter pages, Embed Player, public Replays, and QR codes. It also covers Debrief analytics. ### Why presentations exist Presentations are not just "another export format". They are a fundamentally different way to share a ChatAnimate conversation, built specifically for **live presentation scenarios** where a static MP4 falls short. The clearest examples: - **Conferences and lectures** — A speaker wants to walk an audience through a staged conversation in real time, with the ability to pause, skip, and show evidence (the original screenshot, a supporting document) on demand. - **Courtrooms and legal proceedings** — A lawyer dramatizes a chain of text messages for the judge and jury. The Presenter page shows the conversation playing in real time, with the original screenshots attached as evidence that can be opened fullscreen on demand. Presenter notes cue the lawyer on what to say at each beat. - **Sales demos and customer calls** — A sales rep stages a customer testimonial as a chat and presents it on a live sales call. The presenter controls let them pause for objection-handling, skip ahead if the prospect is short on time, or jump back to a specific message if a question comes up. - **Internal training and all-hands** — A product manager walks through a user-research finding in an all-hands meeting, with the conversation playing in real time and the supporting evidence (interview clips, survey results) attached to specific messages. An MP4 is a passive video — press play, sit back, watch. A Presenter page is a **live, controllable, evidence-backed** experience. The presenter controls the playback; the audience sees the conversation unfold beat by beat; the evidence is one click away whenever a point needs substantiation. ### Presenter Mode (Studio) Convert any conversation into a public shareable presentation page. Open the editor header → Presenter Mode (Studio required). The presenter is built on Chat mode scenes: it is an authoring workspace over a conversation, so the toggle is available when the active scene runs Chat mode (other creation modes show the requirement instead). Publishing always works from the Present panel. A Presenter page includes: - **Opening screen** — Title, subtitle, description, and a "Start" button. - **The conversation itself** — Plays in real time, with the presenter controlling playback (play, pause, skip, jump back). - **Closing screen** — A summary, a call to action, and contact info. - **Presenter notes** — Notes attached to messages, riding with the presentation. Anyone on the live page can open the notes drawer with the N key or the notes button, the same view the presenter has, so they are shared material rather than private cues. Use them as a script, as extra material on the training or session, or as your own review of things. Write them in the Presenter Studio's Notes tab: pick a message, type the note, repeat. When a message with a note is playing, the notes button lights up so viewers know material is attached there. - **Evidence panel** — Attach screenshots, documents, or images to specific messages. When the conversation reaches that message, the evidence becomes available — click to open fullscreen. The Presenter page is publicly accessible at `/presenter/{token}` — no sign-in required to view. The owner can revoke the link at any time from the dashboard. ### Embed Player (Studio) Generate an embed code or shareable link to play the conversation inline on any external site. Paste the embed code into your CMS, docs site, or marketing page — the player renders inline with no external platform dependency. Available on Studio. Open the editor header → Embed Player. ### Public Replays (Free to share, Creator+ to view analytics) Share a public replay link at `/replay/{token}`. Anonymous viewers can play the conversation — no sign-in required. The owner gets analytics on the Dashboard → Debrief page: - **Dropoff histogram** — Where viewers stopped watching. - **Completion rate** — What percentage of viewers watched to the end. - **Share events** — When viewers shared the replay onward. Available on Creator+ for analytics. The replay itself can be created on any plan that can save conversations (Creator+). ### QR Code Overlay (Creator+) Generate a QR code overlay on any video export. Enter a destination URL (your website, a landing page, a signup form) and the QR code is rendered as an overlay on the export. Available on Creator+. Open the editor header → QR Code. ### Conversation Stats View message count, total duration, and timing breakdown before you export. Open the message list toolbar → Stats button. Useful for planning export length and for verifying that the conversation fits the platform's time limit (e.g. TikTok's 60-second cap for organic posts). Available on every plan. ### Debrief Analytics (Creator+) Per-replay analytics for shared replays. Open Dashboard → Debrief. See dropoff histogram, completion rate, share events, and total view count. Use it to understand which parts of your conversation are engaging and which are losing viewers. ## Interactive Presentations A Studio feature that turns a published Presenter page into an interactive module: viewers answer questions, read documents and choose paths while the conversation plays. Open the editor → the Presenter workspace in the right panel → Interactions. **You decide what it is.** The Presentation tab asks the one question that matters: Training or Presentation? Training keeps the scores, the pass marks, the certificates and the training framing. Presentation is the same builder with clear-cut presentation words for viewers. The choice changes only what viewers read, never what you can build. **Start with AI or a template.** Describe the module in one sentence (the audience, the topic, what people should learn) and the Interactive Blueprint AI writes the first draft: the conversation, every question, the branches and the pass mark. You preview the draft before applying anything, and everything stays editable. Or start from a template (Survey, Quiz, Compliance module, HR investigation, Sales roleplay, Interactive story or Training module). Power users can copy the full blueprint prompt and use their own chatbot. **What you can build:** - **Question gates** — nine kinds of answers: multiple choice, checkbox, yes or no, rating, dropdown, short text, paragraph, tap-the-picture and type-the-answer, with optional timeouts, required answers and per-option scores. - **Tap-the-picture questions** — upload a chat screenshot, a diagram or a photo, mark the spots that matter and ask viewers to tap the red flags. The classic phishing-awareness exercise, native to a chat medium. - **Type-the-answer questions** — viewers type the answer; every accepted spelling matches (case and extra spaces do not matter). Fill-in-the-blank knowledge checks without multiple-choice tells. - **Feedback, info and document cards** — pauses that carry text or a PDF the viewer must read. Documents can require an acknowledgement that is recorded with the viewer's session, plus an optional minimum reading time: the confirm button stays locked with a live countdown until the viewer has spent that long with the document open. - **Video watch requirements** — a video card can require that the viewer actually watches a set fraction of the video (90 percent by default) before continuing. Fast-forwarding does not count. - **Media library** — upload files and name them once in the Media tab; the interaction steps decide when each file appears (a video inside a video card, a PDF inside a document card, an image inside a picture card), so nothing flashes by surprise mid-conversation. The viewer's Gallery shows every file with an honest preview: a real thumbnail for images, a first-frame player for videos and a document tile that opens the reader for PDFs. - **Branching paths** — transitions on answers, scores and variables. A sales roleplay can react differently to each choice. The Branch map tab draws the whole flow. - **The Simulate sandbox** — before publishing, walk the module as a test viewer inside the Simulate tab. Every gate you pass becomes a card on the path: the question, your answer and the branch it triggered. Changed your mind? Pick another answer on any earlier card and the simulation rewinds right there and plays the other branch live, so you can check every path without starting over. - **Scores and pass marks** — a pass score with two policies: show the marks (viewers see their score and continue) or require a retake (viewers retake the quiz until they pass; their best score is kept). - **On-demand certificates** — viewers who pass can download a certificate from the completion card. It is generated only when they ask for it, prints or saves as PDF locally (one certificate page, no page chrome) and nothing is emailed. The owner designs it in the studio: five looks (Heritage Classic, Modern Minimal, Executive Editorial, Tech Grid and Art Deco Luxe) browsed in a gallery with live previews, an accent color, a signature line (typed in a script font or the owner's own uploaded signature image), and the organization logo from the presentation settings, all visible before publishing. Every certificate carries a verification code anyone can check. - **Access control** — public by default, or PIN-protected (five wrong PINs lock the gate for five minutes), or restricted to invited people only (see Presenter Assignments below). **The intro text follows the viewer.** The subtitle or description you write in the Presentation tab shows on the opening screen, stays under the title during playback and returns on the closing screen, so the framing never disappears mid-module. **Progress survives a reload.** Viewers answer, watch and read across several minutes; if the page reloads mid-module (a closed laptop, a lost connection, a crash) the opening screen offers to resume exactly where they left off, with their answers and score intact. Starting over is always one click away too. **Comfort while watching.** The player bar carries a zoom control for the phone preview (the same cluster the editor uses), driven by the plus, minus and zero keys on a keyboard. Presentations also work on a phone: the layout adapts and the zoom pill stays within reach. **Honest measurement:** sessions are anonymous by default (no names, no emails, no raw IP data). Owners can turn collection off entirely. **Insights in plain words.** The presentation's Insights page reads like a report, not a database: how many of your runs reached each part of the experience, the questions people missed (ranked by training area), and the routes people actually took as a readable flow, answer by answer. One click opens any viewer's own answers, times, path and certificate. The CSV export is the full report: the headline numbers, the per-question summary with miss rates, and every person's answers on one row. #### The blueprint format (for authors and language models) Everything above has an exact machine-readable shape: the blueprint. It is the JSON the in-app AI drafts, the format the studio's Import tab accepts, and the format the publishing API converts on arrival — so a language model (or a spreadsheet, or a script) can author a complete interactive training as one file. The same document works everywhere: paste it into the Import tab. This section is the working summary. The complete standalone reference (every step type, field, default and rule, plus the copy-paste prompt for your own AI) is public at `/blueprint.md` — hand that file to any chatbot, describe your training after it, and paste the JSON it produces into the Import tab. The overall shape: ```json { "version": 1, "title": "The suspicious invoice", "contexts": [ ...the other conversations the scenario can flow into (optional)... ], "messages": [ ...the chat the viewer watches... ], "steps": [ ...questions, cards, media and logic... ], "settings": { "passScore": 20, "quizRetake": "enforce", "certificate": true } } ``` `version` is always the number 1. `messages` and `steps` are both arrays; include both. `settings`, `participants`, `groupName` and `contexts` are optional. `title` is optional (the studio asks for it separately when importing). **Participants and sides.** The chat has exactly two sides: `right` is the SENDER, the owner of the phone, "you", the person the viewer identifies with (the trainee, the protagonist); `left` is the OTHER person, the contact the chat is with. A message's `from` accepts, in order of preference: `"left"` / `"right"` (the canonical values — prefer these), a side alias (`"sender"`, `"me"`, `"you"`, `"self"` → right; `"receiver"`, `"them"`, `"other"`, `"contact"` → left), or a participant NAME from the declared participants. Omit `from` and the sides alternate — a fallback, not a style: when the same person sends two messages in a row, alternation puts the second one on the wrong side. Always write an explicit `from` on every message. The optional `participants` array declares the people and their sides: ```json [ { "name": "Maya", "side": "left" }, { "name": "Daniel", "side": "right" } ] ``` `name` (required, unique, matched case-insensitively) is the exact string a message's `from` references; `side` is `"left"` or `"right"`, defaulting to first = the left-side contact, second = the right-side sender, everyone else a left-side group member. On import the names are applied to the conversation (the sender from the right-side entry, the main conversation's contact from the left-side one; a context's own `senderName` still wins for named conversations), and the import's verdict shows the mapping — who lands on which side — before anything is applied. A thought is always the right-side sender's inner monologue — never write one for the left-side character. **Group chats.** Declare 3 to 8 participants and the conversation becomes a group chat — exactly what the engine's group chats do (a Slack channel, a team chat, a family group). One participant is on the right (the phone's owner); everyone else is a left-side member with their own name, and every message's `from` uses the speaker's name so the viewer always sees who said what. The optional `groupName` (max 60 characters) is the group's title — the chat header the viewer sees (defaults to "Group Chat"). Groups shine for security simulations: a suspicious message lands in a busy channel and the viewer must judge it against the noise of real work talk. A group is still ONE conversation — never split one group across contexts; a context is its own separate conversation (a group context declares its own `participants` the same way, and its title is its own `name`). Keep groups readable: 3 to 5 participants is the sweet spot; more than 8 is rejected. **Messages** — the conversation the viewer watches. Each message: ```json { "from": "left", "text": "Did you see this invoice?", "delay": 1.5 } ``` - `from`: `"left"` or `"right"`, a side alias, or a participant name (see Participants and sides above); a context's contact name (its `senderName`) also resolves, to left. Omit it and the sides alternate. - `text` (required): the message. Keep it short and human; 12 to 30 messages is the sweet spot. - `delay`: the pause in seconds before this message appears (0 to 60; omit for the natural default). - `image`: a public image URL shown as this message's attachment. Include it only when you have a real URL (see the URL rule below). - `thought`: `true` renders the message as an internal thought bubble instead of a sent message — the SENDER's inner monologue (the right-side person), shown as an overlay on the phone. - `typingSpeed`: `"slow"`, `"medium"` (the default), `"fast"` or `"instant"`, for this message only. - `note`: a presenter note attached to this message (max 4000 characters, at most 200 noted messages). Notes ride with the presentation: anyone on the live page can open the notes drawer and read them, so write them as shared material for the session (extra background on the training, what to emphasize at this beat, a review of what happened), never as private secrets. On the live page the notes button lights up while a noted message plays. - `context`: the NAME of the conversation this message belongs to (see CONTEXTS AND CONSEQUENCES below). Omit it for the main conversation. **The important message rule.** Messages are the actual conversation only. Never put explanations, coaching, corrections, consequences-as-narration, question feedback or card content inside a message unless a character would naturally say it. A sentence such as "A few minutes later" is NOT a message (use a `delay` step or an info card); a sentence explaining what the viewer did wrong is NOT a chat message (use an info card); a sentence explaining the training lesson is NOT a chat message unless a character naturally says it during the scenario. The importer warns about messages that read like time skips or stage directions. **Steps** — the interactions. They run in order, top to bottom, in two families. CARDS the viewer sees and interacts with: `question`, `feedback`, `info`, `video`, `document`. Every card needs `afterMessage`: the message NUMBER it appears after, counting from 1. LOGIC the viewer never sees: `jump`, `score`, `delay`, `variable`, `condition`, `playback`, `completion`. Any step may carry `id` (a short lowercase name with dashes, like `"vat-check"`); give ids only to steps you intend to route to, and keep them unique. `question` — the viewer answers: ```json { "id": "vat-check", "type": "question", "afterMessage": 3, "question": "What should Sam do first?", "input": "multiple-choice", "required": true, "timeLimit": 30, "answers": [ { "text": "Check the invoice date", "points": 10 }, { "text": "Approve it right away", "goTo": "pressure" } ] } ``` - `input`: one of `multiple-choice` (the default), `yes-no`, `rating`, `checkbox`, `dropdown`, `short`, `paragraph`, `image-tap`, `text-match`. - `answers` (2 to 6): used only with multiple-choice, yes-no, checkbox, dropdown, image-tap and text-match. yes-no takes exactly two. Do not use `answers` with rating, short or paragraph. - Each answer may carry `points` (a positive number awarded when it is picked) and `goTo` (where picking it leads; see ROUTING). - `timeLimit`: seconds to answer. `required` defaults to `true`; `false` lets the viewer skip. - `area`: a short training-area tag like `"Identity verification"` (max 60 characters). It groups this question in the owner's evidence report (which weak spots the team has). Use consistent area names across related questions. - image-tap (tap the red flags on a picture): each answer carries `region`: `{ "x": 10, "y": 20, "w": 30, "h": 15 }` (percentages of the picture), and the step may carry `imageUrl`. Omit `imageUrl` when no real URL exists: the question still imports and the author uploads the picture in the editor after import. - text-match (type the answer): each answer's `text` is one accepted spelling; matching is case-insensitive and trims extra spaces. `feedback` and `info` — a card with no answer (`body` required, `title` optional, optional `image` on the card): ```json { "type": "info", "afterMessage": 6, "title": "What just happened", "body": "Sam asked for the invoice date first. That is the correct move." } ``` `video` — watch before continuing: ```json { "type": "video", "afterMessage": 8, "videoUrl": "https://example.com/safety.mp4", "label": "The safety walkthrough", "requireWatch": 0.9 } ``` `videoUrl` is a public video URL, or omit it (the author picks the file later). `requireWatch` is the fraction the viewer must actually watch, 0.5 to 1, default 0.9. Fast-forwarding does not count. `document` — a PDF to read: ```json { "type": "document", "afterMessage": 9, "documentUrl": "https://example.com/policy.pdf", "label": "The expense policy", "acknowledge": true, "minSeconds": 120 } ``` `documentUrl` is a public PDF URL, or omit it. `acknowledge`: `false` turns the read confirmation off. `minSeconds` keeps the document open that long before the confirm button unlocks. `jump` — skip ahead: `{ "type": "jump", "goTo": "finish" }`. Its `goTo` is required. `score` — award points outright: `{ "type": "score", "points": 5 }`. Use for progress the viewer earns outside questions. `delay` — a silent beat: `{ "type": "delay", "seconds": 2 }` (1 to 30 seconds). `variable` — remember something: ```json { "type": "variable", "ops": [ { "op": "set", "name": "chose_audit", "value": 1 } ] } ``` `op` is `set`, `add` or `increment`; `name` is the variable; `value` is any JSON value. Useful with `condition` below. `condition` — a fork: ```json { "type": "condition", "paths": [ { "when": "score", "is": "atLeast", "value": 20, "goTo": "passed" }, { "goTo": "recap" } ] } ``` Paths run top to bottom, first match wins. `is` is one of `equals`, `isNot`, `atLeast`, `atMost`, `contains`. `when` names the value compared: `score` (the default) or the `name` of a variable an earlier variable step set. A path with no `when` is the fallback and should be last. `playback` — replay a slice of the conversation: ```json { "type": "playback", "fromMessage": 1, "toMessage": 4 } ``` Plays messages `fromMessage` to `toMessage` (1-based, inclusive) and seeks there. Use for recaps, to revisit a branch, or as the target an answer routes to when the chat itself should change (see BRANCHES OF MESSAGES above). Cards only appear when the conversation plays across their `afterMessage` position, so when you use playback steps, put the cards that belong to a slice inside that slice's range. `completion` — an ending, the finish screen: ```json { "type": "completion", "title": "Course complete", "body": "Thanks for playing.", "showScore": true, "showRecap": true } ``` One or more — one per outcome. A single ending comes last; when the training has different outcomes, each ending is the last step of its own branch (see DIFFERENT ENDINGS below). It shows the score, the pass result, the certificate link and the retake decision. `title` and `body` are the ending's own custom heading and closing text; `showScore` and `showRecap` default true. **ROUTING.** By default each step continues to the step below it and the last step ends the experience. `goTo` changes that — on an answer, on a jump, on a condition path, or directly on any step (that step's own exit). A `goTo` value must be one of: the `id` of another step in this blueprint, exactly as written; `"next"` (the step below, the default); or `"end"` (finish). Never invent a goTo that is not one of your own step ids: first give that step an `id`, then use the same string in goTo. **BRANCHES OF MESSAGES (changing what the chat itself says).** `messages` is a pool, not one fixed script: write the messages of several different continuations in ONE array, then route each answer to a `playback` step that plays its own slice. That step plays its message range instead of the linear order, so the viewer literally watches a different conversation unfold based on their choice. The normal top-to-bottom order is NOT the flow: which messages play is decided by playback steps, so never rely on linear execution to land inside a later branch — enter every branch through an explicit playback step. A branch needs all four: an answer routing to its playback step; a playback range containing that branch's messages and nothing else; a clear destination after the playback (its `goTo` or the step below, usually the next question — or that branch's own `completion` when the outcome differs); and no accidental linear path through another branch. Every branch must end somewhere: a `completion` step or `"end"` (a branch with no exit is the error the importer rejects: "can never reach the end"). Put the cards that belong to a branch inside that branch's range (their `afterMessage` must sit inside the slice that plays), and rejoin the flow through the branch's own `goTo` (or the step below it). Branches converge intentionally: two answers that produce the same outcome may share one branch; never duplicate a branch just to repeat the same conversation. The safe path may simply continue the conversation (the character adapts and the story moves on; no card after every correct answer). Worked shape: messages 1 to 5 set the scene, a question after message 5; wrong answers `goTo` `"scam-unfolds"` (a playback step for messages 6 to 12, with its own coaching card after message 9); the right answer `goTo` `"safe-path"` (a playback step for messages 13 to 16); both end at a completion — the SAME one when the outcome is the same, or each its OWN ending when it is not (see DIFFERENT ENDINGS below). In the studio this is the "New branch of messages" row under a question's *Where each answer leads*; the sibling row "New coaching card for this answer" produces the card-per-answer pattern (an info card anchored at the question's own `afterMessage`). A question and the cards its answers route to normally sit at the same `afterMessage`, and the player opens the card that matches the answer the viewer picked. **DIFFERENT ENDINGS (one completion per outcome).** When the story should end differently depending on the decision, give each outcome its own `completion` step and route each branch to its own ending. The clear path, every time: each answer that ends the story routes to its own `playback` step (the answer's `goTo`); that playback step's own `goTo` names that branch's `completion` step (the ending is reached explicitly, never by array order); and each ending carries its own `title` and `body` (the verdict for that outcome: "Correct decision" vs "What went wrong"). Worked shape: `{ "id": "choice", "type": "question", "afterMessage": 5, "answers": [ { "text": "Escort him upstairs now", "goTo": "bad-ending" }, { "text": "Verify with James first", "points": 10, "goTo": "good-ending" } ] }`, then `{ "id": "bad-ending", "type": "playback", "fromMessage": 11, "toMessage": 20, "goTo": "bad-finish" }`, then `{ "id": "bad-finish", "type": "completion", "title": "What went wrong", "body": "Sam escorted an unverified visitor..." }`, and the same shape for `good-ending` / `good-finish`. Two rules keep it valid: a `completion` never carries `goTo` (an ending is always terminal), and two branches never share one completion id — though several answers whose outcomes are the same may share one ending. **CONTEXTS AND CONSEQUENCES (dramatize what happens next).** `contexts` (optional, top level) declares the other conversations a scenario can flow into: `[ { "name": "Unknown number", "senderName": "+1 555 0104", "call": true } ]` (unique names, at most 4; `senderName` is the contact shown at the top of that chat). `"call": true` (optional) marks the conversation as a phone call instead of a chat: the phone shows a realistic call screen (ringtone, pickup, a running timer, then hang up) and the conversation's messages play as spoken voices, so every message in a call conversation must be plain speakable text (no images, no GIFs) and must carry `"context"`: the conversation's NAME. Any context can be a chat or a call: there is no cap on call conversations. A message carrying `"context": "Unknown number"` plays inside that conversation instead of the main one: on playback the phone visibly switches chats, exactly like a real device. Every conversation is a CHAT (text messages) by default. A context CAN be a phone call instead: add `"call": true` to its `contexts` entry. Every context chooses its own channel: a scenario may flow chat → call → chat, and more than one context may be a call. The "Unknown number" context that turns out to CALL is the strongest consequence beat there is. For an unknown contact use a placeholder phone number as `senderName`, ideally one that already appeared in the main conversation: the channel the viewer handed over, resurfacing as the attacker's, is what makes the consequence land. Name contexts like chat contacts, not callers ("Maya (colleague)", "IT helpdesk", "Unknown number"). The context rules (what the import enforces): the main conversation has NO context field and is never declared; every additional conversation MUST have its own declaration; every message `context` MUST reference a declared name exactly; and every declared context MUST actually be used by at least one message (a declared context no message uses is NOT created on import — the importer warns, and the studio never gains an empty conversation). A context is a real conversation between people, never a card, narration, an explanation or a question. Cards NEVER carry a `context` field; `context` applies only to messages. A context switch happens ONLY through playback of the messages carrying the new context: when a playback range executes those messages, the phone visibly switches chats. Never explain the switch inside the main conversation. The consequence pattern (use it whenever a wrong decision has a real-world cost): do NOT show the correction card immediately after the wrong answer when the scenario is specifically designed around consequences, because the consequence must happen in the conversation first. The wrong answer does NOT open an explanation card; the scenario plays out (the requester thanks the viewer, the chat continues, seemingly fine), and LATER the scenario switches to a declared secondary context where the consequence is demonstrated ("Hi, I'm from Finance. Maya gave me this number, said you could help...") so the viewer realizes their earlier decision opened another door into the company; the consequence playback ends, and ONLY THEN an info card explains what went wrong — what information was exposed, how it was used, what the correct decision would have been, and why it matters — anchored after the last message of the reveal and routed to explicitly rather than left to appear by order. Then the flow routes back to the next training point or the convergence point. This is "consequences, not corrections": the cost of the mistake is SHOWN in the chat itself, not merely explained. The consequence context is still a conversation; the explanation of the consequence is a card. The main conversation stays context-omitted; only the follow-on conversations are named. Names referenced by messages but missing from `contexts` are created automatically on import (the importer tells you). Card/conversation separation: "A few minutes later" and every other time-skip line (a `delay` step), "What just happened", "What went wrong", "Correct answer", "The attacker used your information", "You should have verified...", training explanations and correct-answer explanations are NEVER messages — they belong in info or feedback cards. A message should only exist if it is something a participant in the conversation would actually send. **VARIETY (do not turn every training into a quiz).** The conversation itself is the training interface. Do not default to chat, question, card, question, card, completion. Mix: decisions that change what the chat says (branch-per-answer) rather than which card explains the mistake; a scenario that CONTINUES after a decision (the viewer refuses, the character adapts and the story moves on without any card interrupting); questions only where the moment genuinely demands a decision; one recap at the end instead of a coaching card after every answer; info cards reserved for the one or two rules the viewer must actually internalize. **SCORING.** The running score starts at 0. Correct answers add their `points`; `score` steps add theirs. `settings.passScore` is the number of points needed to pass, and the completion screen compares the running score against it. **SETTINGS.** ```json { "passScore": 20, "quizRetake": "enforce", "certificate": true, "typing": "instant", "reanswer": "allow" } ``` - `passScore`: points needed to pass, or `null` (the default) for no pass mark. - `quizRetake`: `"show"` (viewers see their score, the default) or `"enforce"` (viewers retake until they reach passScore; requires passScore). - `reanswer`: `"keep-first"` (the default — an answered question stays answered and the first answer is the one that scores) or `"allow"` (viewers may reopen an answered question; the latest answer replaces the first and the score follows it). - `certificate`: `true` offers passing viewers a downloadable certificate. Default `false`. For compliance training, not presentations. - `typing`: `"instant"` makes every message appear immediately with no typing animation. Default `"typing"` (the realistic typed-out chat). `"instant"` overrides any per-message typingSpeed. **MEDIA PLACEHOLDERS (images, videos, PDFs).** video steps, document steps, image-tap pictures, a message's `image` and a card's `image` accept real public URLs. When your description gives you no real URL, do not guess: omit `videoUrl` / `documentUrl` / `imageUrl` entirely and write `label` as the author's instruction, for example `"label": "Upload: the 2026 expense policy PDF"` or `"label": "The phishing email screenshot (upload after import)"`. The step still imports and its editor shows the upload lane for exactly that file, so the author knows which file belongs where. A fabricated URL breaks the experience for every viewer; an omitted field with a good label costs the author one upload. **COMBINATIONS THAT WORK TOGETHER.** Coaching card per answer: each wrong answer carries its own `goTo` pointing at an info card anchored at the same `afterMessage` as the question, and all cards meet again at the next step. Branch of messages per answer: answers route to playback steps with different ranges, so the chat itself changes. Media then question: a video or document step first, then its `goTo` or the step below leads into the question that checks understanding. Score fork near the end: a condition on `score` sends passers straight to the completion and sends strugglers to a recap playback step first. Mixed depth: a branch may itself contain questions, videos and documents, so one wrong turn can open a whole corrective sequence before rejoining. **The rules the importer enforces.** `version` must be 1. Every question, feedback, info, video and document step needs `afterMessage` (1-based, inside the message range). Choice questions need 2 to 6 answers. Every `goTo` must match a step id in this blueprint, or be `"next"` or `"end"`. A playback range must be a real ascending range inside the conversation. One or more completion steps: exactly one when the training has a single outcome (it comes last), or one per outcome when endings differ (each is the last step of its own branch; see DIFFERENT ENDINGS — a completion never carries `goTo`, and a branch that reaches no completion or `"end"` is rejected). Unknown fields are ignored, never fatal. A declared context no message uses is not created (the importer warns); a `context` field on a card is ignored (cards are never part of a conversation); messages that read like narration and anchors that reach past the last message produce warnings too. `from` must resolve to a side (left/right, an alias, or a declared participant name — anything else alternates and every such message warns); a `thought` is always the right-side sender's; a message's `delay` is the pause before it appears (0 to 60 seconds) while a `delay` step is a silent beat between steps (1 to 30 seconds). And NEVER invent a URL: `imageUrl`, `videoUrl`, `documentUrl`, a message's `image` and a card's `image` accept real public URLs only. When the description does not give you one, omit the field: the author adds the file in the editor after import. A fabricated link breaks the experience for every viewer. When in doubt, produce a simpler valid blueprint rather than guessing an option. **A complete minimal example:** ```json { "version": 1, "messages": [ { "from": "left", "text": "Morning! Quick one before I head out." }, { "from": "right", "text": "Sure, what's up?", "delay": 1.5 }, { "from": "left", "text": "Finance says an invoice from our supplier looks wrong. Can you check it before the payment run?" }, { "from": "right", "text": "On it. Sending it over now.", "delay": 2 } ], "steps": [ { "id": "first-move", "type": "question", "afterMessage": 4, "question": "What should you check FIRST?", "input": "multiple-choice", "answers": [ { "text": "The bank details against the contract", "points": 10 }, { "text": "Pay it now, dispute later", "goTo": "wrong-move" } ] }, { "type": "info", "afterMessage": 4, "title": "Right call", "body": "Bank details first. Changed bank details are the classic invoice red flag." }, { "type": "jump", "goTo": "finish" }, { "id": "wrong-move", "type": "feedback", "afterMessage": 4, "title": "Not yet", "body": "Paying first means the money is gone if it is fraud. Always verify the details." }, { "id": "finish", "type": "completion", "title": "Module complete", "showScore": true } ], "settings": { "passScore": 10, "quizRetake": "show" } } ``` Paste that into the studio's Import tab and it becomes a runnable module: the conversation plays, the question opens after message 4, the wrong branch shows the feedback card, both paths meet at the completion screen, and the score decides the pass result. ## Training solution pages The corporate-facing landing family for Interactive Training: one page per scenario, each carrying live training examples visitors can play in the browser before signing up. The hub is `/solutions` and links every page below (the pages cross-link each other the same way): - `/solutions/security-awareness-training` — the awareness vertical: suspicious messages employees learn to read, with scores and an audit trail. - `/solutions/phishing-simulation` — the phishing exercise people play as a chat conversation. No email server, no platform. - `/solutions/customer-service-training` — de-escalation and difficult-customer roleplay on a phone. - `/solutions/compliance-training` — code of conduct, harassment prevention and data handling with acknowledgements and certificates. - `/solutions/employee-training` — onboarding, policy rollouts and refreshers delivered as a link with a roster. - `/solutions/scenario-based-training` — branching scenarios where the decision has a consequence that plays out. - `/solutions/sales-training` — objection handling drilled as private conversation practice. - `/solutions/workplace-safety-training` — toolbox talks and hazard spotting for deskless teams. - `/solutions/microlearning` — two-minute lessons delivered as chat. - `/alternatives/no-lms-training` — the comparison page: the LMS project versus a training link, with a side-by-side table. **The live examples.** Every solution page carries a live-examples section. Each example is a real published training opened straight from the page: the card shows the title, a screenshot, how long the exercise takes and a button that opens the training link in a new tab. Examples are curated by the team through the admin dashboard and can be attached to any of the categories above. When a category has no published example yet, the section says the library is warming up and invites builders to share theirs through the contact page. ## Interactive research solution pages The second landing family under `/solutions`: the same interactive engine pointed at listening instead of training. Five pages, each with its own design and a live demo visitors answer right on the page: - `/solutions/interactive-surveys` — the flagship: surveys that branch on every answer. The playable demo walks a visitor through a real branching survey and shows the answer log the builder receives. - `/solutions/customer-feedback` — customer feedback and voice of customer: scores with contextual follow-ups that route by score band, stated reason and product area. - `/solutions/conversational-research` — scenario research: UX studies, concept testing and message testing where participants answer from inside the situation instead of imagining it. - `/solutions/interactive-assessments` — scenario-based assessments and situational judgment tests with weighted scoring, pass marks, retakes and certificates. - `/solutions/interactive-polls` — polls with follow-up questions that branch on the vote, stated honestly including what a branching poll does not claim to do. The `/presentations` page carries a "One engine. More than training." section linking the whole family, the `/solutions` hub lists all five pages in its interactive research section and the site footer links the flagship and the research page directly. ## Presenter Assignments and training tracking A Studio feature for training and compliance: the owner emails personal links, the platform measures completion against explicit requirements. Open Dashboard → Presentations → the Assign action on any row. **The loop:** 1. Paste a list of emails (per-line validation, duplicates removed). 2. Set requirements: minimum active time, read-to-the-end coverage, a pass score and required document acknowledgements. Match all or any. 3. Optionally set a due date, a personal note and reminder preferences. 4. Send. Each person gets one personal link that keeps their progress across visits, so a module can be finished over several sittings. **What the platform measures (honestly):** - Active time counts only while the tab is visible. Pauses count. Hidden-tab time never counts. - Coverage is the share of content actually consumed on the path the viewer took. Someone who branches to path B is never penalized for unread messages on path A. - Playback speed is locked to 1x and forward seeking is limited to the furthest message reached. Backward review is always free. - The best quiz score is kept, so retakes never lower a result. **For the owner:** a roster with completion rates, average time and scores, per-person progress, acknowledgement state, reminder counts and attempt counts. Each person with a recorded run has an Answers toggle that shows what they actually answered: the option they chose on every question (which branch), the spot they tapped on a picture and any text they typed. A completed person's certificate has a copy-link button in the roster. The campaign page also has a Copy share link button for the public training URL (group chats, notice boards; restrict it to invited people only with the assignment option if you want). Resend or revoke any individual link. Export the roster as CSV for audits: one row per person with their name, status, score, attempt count, the recorded answers, acknowledgement timestamp and certificate verification code (the one place where full emails appear, and every export is logged). Automatic reminders have hard caps: never-started people get at most two nudges, people mid-way get a weekly reminder at most, and past-due reminders stop after three days. A daily digest email is available as an opt-in. Certificates for assigned completions carry the invitee's name and a verification code anyone can check against the public certificate URL. --- ## Teams When you're producing chat videos at scale — an agency with multiple producers on one client roster, or an in-house content team sharing brand kits across campaigns — you need more than one seat. ChatAnimate supports team collaboration on the Studio plan. A team has one owner and up to 3 members. ### Team seats (Studio) Invite up to 3 team members via email. Invitations expire after 7 days. Open Dashboard → Team (Studio required) to invite, resend, or revoke invitations. ### Shared resources Conversations and brand kits can be shared across the team. The owner controls what is shared; members get read-write access to shared resources. ### Team usage rollup The owner sees a rollup of team usage — total exports, total AI credits used, total storage — on the Dashboard → Team page. Members see only their own usage. ### Roles - **Owner** — The Studio subscription holder. Can invite and remove members, manage billing, manage all shared resources. - **Member** — Can use the team's Studio features (subject to the team's monthly export and AI credit budgets). Can be granted access to specific shared resources. ### White Label (Studio owner-only) White Label removes all ChatAnimate branding from exports, embeds, and presenter pages — built for agencies, SaaS founders, and brand teams who need the final video to carry their identity end-to-end, not ChatAnimate's. It is automatically applied on the Studio plan as the team owner. Custom watermark replaces default branding. Embeds and presenter pages show no ChatAnimate branding. White Label pairs with the Studio Skin System (see the Studio Skin System section above): click the floating Skin Selector dock at the top-left of the canvas and pick the White Label skin, then open the Customizer → Look → Appearance sub-tab to use the Studio Panel to set your app identity, header, composer, bubble material, typography, animations, and cinematic effects. The 15 quick-start presets (Corporate Blue, Cyber Noir, Luxury Gold, etc.) let you stand up a fully branded messenger in one click; the 9 collapsible sub-cards let you fine-tune any individual setting. The result is a chat video that carries your brand identity end-to-end — your app name in the header, your icon in the status bar, your accent color on the bubbles, your font on the text — with no ChatAnimate logo or watermark anywhere in the export, embed, or presenter page. --- ## Plans and pricing ChatAnimate has 4 plans, billed monthly or yearly (yearly saves 21%). ### Free — $0 / $0 Try the editor. 1 export per month at 480p, with a ChatAnimate watermark and outro. 1 skin (WhatsApp Android). 0 saved conversations. 0 AI credits. 1 scene per conversation. 3-day video retention. ### Lite — $5/mo or $48/yr Uploads, 1080p HD, no watermark, curated backdrops (the built-in pattern and video-loop library behind the phone or story) and the base action beats between messages (intro cards, images, dramatic pauses and notifications). 7 exports per month. 3 skins (WhatsApp Android, WhatsApp iOS, Instagram). 0 saved conversations. 0 AI credits. 1 scene per conversation. 200 MB image/voice storage. 3-day video retention. ### Creator — $19/mo or $180/yr (most popular) AI Writer, brand kits, multiple scenes, all skins, 4K export, custom backdrops (upload your own images and videos or paste any video link, gameplay included) and the premium action beats (video, GIF, audio interlude, narrator card, missed call). 20 exports per month. All 20+ skins unlocked. 20 saved conversations. 40 AI credits per month. 3 scenes per conversation. 1 brand kit. 500 MB image/voice storage. 7-day video retention. ### Studio — $49/mo or $468/yr Batch export, team seats, white label, translate, AI Story Writer. 200 exports per month. Unlimited saved conversations. 80 AI credits per month. 5 scenes per conversation. 10 brand kits. 3 team members. 1 GB image/voice storage. 90-day video retention. White label (owner-only). Custom watermark. ### Credit packs Every paid allowance has a matching top-up pack: one-time purchases that never expire and stack on top of your monthly plan quota. Buy them on the pricing page or under Dashboard → Billing → Credit Packs. - **AI credit packs** (for AI Writer, AI Story Writer, AI Comment Writer, Screenshot to Animation, Translate, Testimonial Mode, Bulk Conversation Pack and the Interactive Blueprint) — 10 credits for $4.99, 30 credits for $11.99, 75 credits for $24.99. - **Export packs** (extra video exports) — 3 exports for $3, 10 exports for $9, 25 exports for $20. - **Voice-Over Character packs** (extra narration characters) — 5,000 characters for $4.99, 15,000 characters for $9.99. Pack credits are consumed only after the month's plan allowance runs out, and anything left keeps waiting — they sit on your account until you use them, however long that takes. ### Billing portal Manage your subscription in the billing portal. Open Dashboard → Billing → Manage Subscription to: - Upgrade or downgrade between plans. - Switch between monthly and yearly billing. - Cancel your subscription (cancels at the end of the current billing period). - Update your payment method. - View billing history and download invoices. ### Refunds Refunds are handled case-by-case via the contact form at `/contact`. If you forgot to cancel before a renewal and haven't used the plan since the renewal date, contact support within 7 days of the renewal for a full refund. ### Deleting your account Delete your account from Dashboard → Settings → Danger Zone. Password accounts confirm with their password, social accounts type DELETE. The deletion removes your profile, conversations, saved media, brand kits, API keys and webhooks; an active subscription is cancelled so you are not charged again. A confirmation email follows with a private feedback link (valid for 30 days) that asks why you left, in your own words. The action is permanent and previous data cannot be restored. --- ## Per-plan limits All numbers below are the canonical limits sourced from the plan configuration. If a number on the pricing page or in the editor disagrees with this table, defer to the pricing page (`/pricing`) and contact support. | Limit | Free | Lite | Creator | Studio | |---|---|---|---|---| | Monthly exports | 1 | 7 | 20 | 200 | | Saved conversations | 0 | 0 | 20 | unlimited | | Monthly AI credits | 0 | 0 | 40 | 80 | | CSV/TXT import messages | 20 | 30 | 300 | 1000 | | Save messages per scene | 20 | 30 | 300 | 1000 | | Export messages per scene | 20 | 30 | 50 | 50 | | Slides per scene | 0 (disabled) | 0 (disabled) | 10 | 15 | | Scenes per conversation | 1 | 1 | 3 | 5 | | Batch exports | 0 | 0 | 0 | 10 | | Team members | 0 | 0 | 0 | 3 | | Brand kits | 0 | 0 | 1 | 10 | | Image/voice storage | 0 MB | 200 MB | 500 MB | 1024 MB | | Monthly voice-over characters | 0 (disabled) | 3,000 | 10,000 | 25,000 | | Daily voice-over characters (burst cap) | 0 (disabled) | 40,000 | 40,000 | 40,000 | | Slides max duration | 0s (disabled) | 0s (disabled) | 180s (3 min) | 480s (8 min) | | Video retention | 3 days | 3 days | 7 days | 90 days | | Experience steps per presentation | 0 (disabled) | 0 (disabled) | 0 (disabled) | 100 | | Presenter documents per presentation | 0 (disabled) | 0 (disabled) | 0 (disabled) | 15 | | Presenter sessions retention | 0 (disabled) | 0 (disabled) | 0 (disabled) | 60 days | | Invites per assignment | 0 (disabled) | 0 (disabled) | 0 (disabled) | 500 | | Assignments per presentation | 0 (disabled) | 0 (disabled) | 0 (disabled) | 50 | ### Notes on the limits - **Monthly exports** is resolution-agnostic. A Creator user can spend all 20 exports on 4K if they want — there is no per-resolution cap. - **Saved conversations** is the number of conversations you can persist to your account for later editing. Free and Lite are exports-only — they cannot save. - **AI credits** reset monthly on your billing date. Unused credits don't roll over. Top up with credit packs if you run out. - **CSV/TXT import messages** is the cap per single import operation. You can do multiple imports per conversation up to the per-scene message cap. - **Save messages per scene** vs **Export messages per scene** are different caps. You can save a long conversation (e.g. 300 messages per scene on Creator) for replay/presenter purposes, but exports are capped at 50 messages per scene (Creator and Studio) to keep render times predictable. When a scene exceeds the export cap the video export button is disabled and the modal points you at the embed code, QR code link, replay link or presentation link instead. - **Story mode scenes** — every message in a story is one scene, and stories hold up to 35 scenes on every plan (the lower of your plan's save cap and 35: Free 20, Lite 30, Creator 35, Studio 35). Long courtroom-style conversations belong in Chat mode, where the save cap (300/1000) and the presenter page are built for them. - **Slides per scene** — every slide is an image or a video, so decks are capped at 10 slides per scene on Creator and 15 on Studio (the lower of this cap and your save cap). Because 15 sits under the export cap (50), a deck within the ceiling is always video- exportable. Slides mode is Creator+ only, so Free and Lite show 0 (disabled). - **Comments and notifications** — comment cards and notification cards are messages, so they use the Chat caps above (save and export) with no separate limits. - **Scenes per conversation** — Creator can chain up to 3 scenes; Studio up to 5. - **Batch exports** — Studio can render up to 10 conversations in one batch. - **Team members** — Studio can invite up to 3 members (4 total seats including owner). - **Brand kits** — Creator can save 1 brand kit; Studio can save 10. - **Image/voice storage** is the total storage for uploaded images and voice notes across all your conversations. - **Monthly voice-over characters** is the billed allowance — the number of characters you can synthesize per billing cycle. Unused characters don't roll over. Top up mid-cycle with one-time Voice-Over Character packs (5,000 for $4.99, 15,000 for $9.99); pack characters never expire. - **Daily voice-over characters (burst cap)** caps synthesized speech at 40,000 characters per user per day (roughly 400 voiced messages) — it resets at midnight UTC and exists purely to keep generation fast for everyone. Voice-over itself is available from Lite up; voice clips only count against your storage quota when a video export uploads them. - **Slides max duration** — Creator can render slides up to 3 minutes; Studio up to 8 minutes. - **Video retention** — How long rendered video files are kept on your account before being removed. Re-render anytime from the Exports dashboard. --- ## Quick FAQ ### Can I use ChatAnimate without signing up? You can browse the `/examples`, `/features`, `/pricing`, `/faq` and `/llms-full.txt` pages without an account. To use the editor or export, you need a free account. ### Can I try ChatAnimate before paying? Yes. The Free plan includes 1 480p export per month, with no credit card required. Sign up, open the editor, build a conversation and export. ### Do my credits roll over? No. AI credits reset monthly on your billing date. Unused credits don't carry over to the next month. Top up with credit packs if you run out. ### Can I cancel anytime? Yes. Open Dashboard → Billing → Manage Subscription → Cancel. Your subscription cancels at the end of the current billing period. You keep access until then. ### Can I get a refund? Refunds are handled case-by-case. If you forgot to cancel before a renewal and haven't used the plan since the renewal date, contact support within 7 days of the renewal for a full refund. Use the contact form at `/contact`. ### Can I upgrade or downgrade between plans? Yes, anytime. Upgrades take effect immediately and you're charged the prorated difference. Downgrades take effect at the end of the current billing period — you keep the higher-tier features until then. ### Can I switch between monthly and yearly billing? Yes. Open the billing portal and switch. The change takes effect on your next billing date. ### What happens to my saved conversations if I downgrade? Your saved conversations are preserved, but if you exceed the new plan's saved-conversation cap, the oldest conversations become read- only until you upgrade again or delete some. Your exports and AI credits are not affected. ### What happens to my brand kits if I downgrade from Studio to Creator? You keep all 10 brand kits but cannot create new ones until you have fewer than 1 (the Creator cap). Delete brand kits from the Brand Kits dashboard to get under the cap. ### Can I use ChatAnimate for commercial purposes? Yes. All plans, including Free, allow commercial use of the exported videos. ### Can I remove the ChatAnimate watermark? Yes — upgrade to Lite or above. Free exports carry a small ChatAnimate watermark plus a 1.5-second outro; Lite+ exports are fully clean (no watermark, no outro). ### Can I put gameplay behind my chat or story video? Yes. Backdrops are the feature for this: the stage layer behind the phone (chat) or behind the story text. On the Backdrop → Video tab (chat) or the Background → Videos tab (story), paste a link to your gameplay footage (or any video — a screen recording, a timelapse, a product loop). The linked video is imported, checked and used automatically as the looping backdrop; your scene simply plays on top of it. The curated pattern and video library starts on Lite; uploads and pasted links are Creator+. See the Backdrops section under Skins and appearance. ### Does ChatAnimate support my language? The editor UI is in English. The chat content can be in any language — ChatAnimate uses Unicode throughout, so non-Latin scripts (CJK, Arabic, Cyrillic, etc.) render correctly. The Translate AI tool (Studio) can translate conversations between 30+ languages. ### Can I import a real WhatsApp chat? Yes. Export the chat from WhatsApp as a .txt file, then use the "Import TXT" button in the editor header. The parser auto-detects the WhatsApp format and extracts messages, senders, and timestamps. ### Can I import a Slack export? Yes. Slack exports as JSON. Use the "CSV Import" button (after converting the JSON to CSV) or the "Import TXT" button (if you have a Slack .txt export). Creator+ required. ### Can I import a Discord export? Yes. Discord exports as JSON. Convert to CSV and use "CSV Import", or use the "Import TXT" button for .txt exports. Creator+ required. ### How long does a render take? Most renders complete in 60-120 seconds. 4K renders and batch exports take longer, up to 10 minutes per 4K video. You'll get an email when the render is complete. ### Can I render at 4K on Creator? Yes. 4K is available on both Creator and Studio. Free renders at 480p; Lite adds 1080p; Creator and Studio additionally support 4K. ### Can I use ChatAnimate offline? No. ChatAnimate is a web-based tool. The editor and the service both require an internet connection. ### Can I host ChatAnimate on my own servers? No. ChatAnimate is a hosted SaaS. If you need on-premise rendering, contact support about enterprise plans. ### Does ChatAnimate have a dark mode? The editor is dark-themed by default. The public marketing pages (`/`, `/pricing`, `/features`, etc.) are also dark-themed. ### How do I report a bug? Use the contact form at `/contact` or email support. Include the conversation URL (if applicable), the steps to reproduce, and a screenshot or screen recording. --- ## Glossary - **Scene** — A single message thread. Every conversation has at least one scene. Multi-scene conversations chain scenes in sequence. - **Skin** — A visual theme for the chat interface (WhatsApp iOS, iMessage, Instagram, AIM 2001, etc.). 20+ skins available. - **White Label skin** — The blank-canvas branded messenger skin (Studio plan) that powers the Studio Skin System. Picking it via the floating Skin Selector dock replaces the Appearance sub-tab with the Studio Panel — 15 quick-start presets + 9 collapsible sub-cards for end-to-end brand control. - **Studio Panel** — The customization surface that replaces the standard Appearance sub-tab when the White Label skin is active. Exposes 15 quick-start presets and 9 collapsible sub-cards (App Identity, Status Bar, Header, Composer, Bubble Presets, Typography, Message Animations, Cinematic Effects, Quick Start). Studio plan. - **Studio Skin System** — The combination of the White Label skin + Studio Panel. The foundation of the White Label workflow. - **Gradient builder** — A 2-5 color stop custom gradient builder inside the Background → Gradients tab. Free plan. Coexists with the 58 curated palette swatches. - **Mode** — A creation format (Chat, Story, Notifications, Comments, Hook, Slides, Thought, Unsent). Each mode produces a different kind of video. - **Brand kit** — A saved bundle of colors, fonts, and avatars that can be applied to any conversation. - **Interstitial** — A card, media clip or cinematic event that interrupts a conversation between any two messages (lock-screen, time-jump, custom card, image, GIF, video, audio, missed call, narrator card); the chat continues right after it. - **Typing authenticity** — A pattern of typing imperfections (false- starts, mid-pauses, typos, burst-sends) that makes typing feel human. Deterministic — same seed produces same plan. - **Sound pack** — A bundle of typing, sent, and incoming sounds themed to a phone OS or messaging app. - **Sound clip** — A per-message sound override. - **Hook intro** — A cinematic opener that plays before the first message. - **Cinematic intro** — A 20-style futuristic opener (Creator+). - **Presenter page** — A public, shareable presentation page with opening/closing screens, presenter notes, evidence panels, and fullscreen playback. Studio plan. - **Replay** — A public, anonymous-viewer replay link. Owner gets analytics. - **Debrief** — Per-replay analytics (dropoff histogram, completion rate, share events). - **Evidence panel** — A panel in a Presenter page that shows attached screenshots/documents/images fullscreen on demand. - **Watermark** — The ChatAnimate logo overlaid on Free exports (alongside the 1.5s outro). Lite+ exports are clean; Studio can replace it with a custom logo. - **White label** — Removal of all ChatAnimate branding (Studio owner- only). Pairs with the Studio Skin System for end-to-end branded messenger videos. - **Credit** — A unit of AI usage. Each AI tool costs 1-3 credits. Credits reset monthly; top up with credit packs. --- ## Notes for LLMs, crawlers and search engines ### What you may do with this document - Quote, summarize, paraphrase, or cite freely. - Render as plain text or convert to HTML. - Use as context for answering user questions about ChatAnimate. - Use as training data for chat animation / video generation tasks. ### Where to defer when in doubt - **Per-feature matrix** (mode availability, plan badges, popularity): `/feature-references`. This is the canonical source. - **Pricing**: `/pricing`. This is the canonical source. - **FAQ**: `/faq`. This is the canonical source. - **Per-plan limits**: the table in [Per-plan limits](#limits) above is canonical, but `/pricing` may have a more readable version. ### Update cadence This document is updated whenever a user-facing thing changes — a new plan, a new mode, a new feature, a price change, a limit change. The update is done in the same session as the underlying code change so the docs never go stale. ### Last updated This document was last updated when the following plan/mode/feature configuration was current: - Plans: Free, Lite, Creator, Studio (Free $0, Lite $5/$48, Creator $19/$180, Studio $49/$468). - Modes: Chat, Story, Notifications, Comments, Hook, Slides, Thought, Unsent. - Skins: 20+ (modern + retro). The White Label skin (Studio plan) unlocks the Studio Skin System: 15 quick-start presets + 9 collapsible sub-cards for full white-label branding. - Background: Solids, Gradients (58 curated palettes + custom 2-5 stop builder), Images, Effects (blur/brightness/contrast/saturation/ vignette/grain). - Backdrops: the stage layer behind the phone (chat) or story — paid feature (Lite unlocks the curated pattern and video-loop library; Creator+ unlocks uploads and paste-a-link imports, gameplay included). - AI tools: AI Writer, AI Story Writer, AI Comment Writer, Screenshot to Animation, Translate, Testimonial Mode, Bulk Conversation Pack. - Context Switch: Chat mode only, Creator+ (2 contexts per scene on Creator, 4 on Studio). Pill row above the message composer and in the stage header. Per-context skin, sound pack, Studio overrides, participants, notification sound. Customizable transition (fade / slide / zoom / spring / none, duration, overlay color/opacity, pre-switch gap). Notification-triggered switches dwell-then-swap with zero-gap receiver message. - Export formats: MP4, GIF, WebM at 480p, 1080p, 4K. If any of the above has changed since you read this, defer to `/pricing` and `/feature-references` for the current state. End of full manual. Read `/llms.txt` for the compact overview.