Integration details
Description
Supademo helps teams find, create, edit, organize, publish, and analyze interactive product demos and showcases from ChatGPT.
- Integration type
- Plugin
- Verification status
- Not applicable
- Platform
- ChatGPT
- Primary Subcategory
- AI Page Hosting & Sharing
- Secondary Subcategories
- None listed
- Brand
- Supademo
- Access
- Account required
- First tracked
- 2026-08-13
- Tool count
- 120
- Geography
- US
The Primary Subcategory used for this profile’s headline score.
Other Subcategories where the Integration is listed.
Get alerts for Supademo
Get updates when Supademo’s Discoverability Score or category rank changes.
ChatGPT Plugin Discovery Score
ChatGPT Plugin discovery is coming soon
ChatGPT can surface a Plugin when it matches a user's request.Your Plugin Discovery Score measures how often yours appears.
No spam. Unsubscribe any time.
What discovery looks like

Competing in ChatGPT AI Page Hosting & Sharing
View Category120 tools agents can invoke
Attach accessible Supademo demos as agent knowledge and queue existing index-agent-demo tasks for sources that are not indexed. Resolve exact demo IDs with list_demos or search_agent_knowledge first. Indexing continues asynchronously.
add_agent_demo_knowledge
Attach uploaded PDF, DOCX, or PPTX files as agent knowledge and queue the existing conversion/indexing tasks. File URLs must belong to this workspace's media storage; for PDFs, create_upload_job/get_upload_job can provide a trusted URL. Indexing continues asynchronously.
add_agent_document_knowledge
Store pasted text such as FAQs, product notes, or positioning as agent knowledge. Each entry becomes a .txt file in the workspace's media storage backed by a reusable Text source, and the existing indexing task is queued. Indexing continues asynchronously.
add_agent_text_knowledge
Attach an accessible workspace library video or a public YouTube/Loom URL as agent knowledge and queue the existing indexing task. Resolve library video IDs with search_agent_knowledge. Indexing continues asynchronously.
add_agent_video_knowledge
Add one public page or a selected set of same-origin pages as agent knowledge. For full mode, first call discover_agent_website_pages and pass selectedUrls. Queues the existing index-content-source or crawl-website task; crawling/indexing continues asynchronously.
add_agent_website_knowledge
Attach existing reusable workspace content sources returned by search_agent_knowledge. No duplicate indexing is started; each source keeps its current indexing state.
attach_agent_knowledge
Copy steps. Two modes: - **Within same demo** (sourceDemoId = targetDemoId): stepIds required — duplicates specific steps. New steps are appended at the end. - **Across demos** (different IDs): always copies ALL steps from source to target. stepIds is ignored because importStepsService does not support partial import.
copy_steps
Create a new unpublished Demo Agent draft using the same defaults, entitlement checks, voice, and intro screen as the interactive app. Use this once the user has described the agent's purpose clearly. It does not publish the agent.
create_agent
Create a new Supademo demo from uploaded media handles — provided as attachments in the conversation or returned by get_upload_job. Each media item becomes one regular step in the same order as provided. Use this when a user has screenshots and/or videos and wants a new demo. If the conversation already contains uploaded media handles (for example as chat attachments), use them directly. Otherwise, for local files, first call create_upload_job, send the user the uploadUrl, then call get_upload_job after they finish. Pass images with their Image URL, width, and height; pass videos with their videoId. Supported media: - Image: provide { type: "image", imageUrl, width, height, text? }. Image URLs must be Supademo CDN URLs from a conversation attachment or the upload portal, and dimensions are required. - Video: provide { type: "video", videoId, text? }. The videoId must reference a completed video visible in this workspace. Do not ask the user for a domain URL. The backend derives the demo domain URL from the workspace. Folder behavior: - Omit folderId to create the demo in the shared workspace area (shared=true). - Provide folderId only when the user picks a folder. Use list_folders with type "Demo" to find folder IDs.
create_demo_from_uploaded_media
Create an empty Demo Hub using the same defaults as the interactive app: three starter categories ("Category 1-3"), a "Help" footer with Knowledge Base / Contact Support placeholder links, and workspace or white-label branding for the header logo and color.
create_demo_hub
Create a Demo Hub from an existing showcase. This mirrors the UI action "Create Demo Hub from Showcase": it creates a Widget/Demo Hub, maps showcase sections to Demo Hub categories, and includes demo-backed showcase items. It does not use Route, RouteVersion, or isRouteHub. Every showcase section becomes a category, so a hub created from a showcase with more than 5 sections will exceed the 5-category limit that manage_demo_hub_categories enforces when adding new categories.
create_demo_hub_from_showcase
Create a new folder. Set personal=true for personal folder, personal=false for shared. Use parentId to create a nested subfolder. Type may be Demo, Showcase, or Video (default: Demo).
create_folder
Create one or more hotspots on steps. Position is specified as x,y percentage coordinates (0-100) relative to the step image. Styles: Circle, Tooltip, Area, Anchor, Pointer, Modal Animations: Ripple, Spinner, Pulse, Ping Width: Small, Medium, Large Tooltip positions: bottom, top, left, right, autostart Border radius: Square, Sharp, Soft, Round, Pill, Roundest Text align: Left, Center, Right
create_hotspots
Create a showcase using the same core defaults as the interactive app: published, one starter section, workspace CTA/branding defaults, and optional Showcase folder placement.
create_showcase
Create a new demo step from an existing media library item returned by list_media_library_items. Images become regular image steps with a default hotspot. Videos duplicate the selected completed VideoProject and attach the duplicate to the new step, so the original media library item remains reusable. This does not upload files. If the conversation already contains uploaded media handles (for example as chat attachments), use those directly with create_demo_from_uploaded_media, create_steps, or replace_step_media. Otherwise, if the user has a local file, first call create_upload_job and send them the returned uploadUrl; when they say they're done, call get_upload_job, then use those tools with the returned handles.
create_step_from_media_library_item
Create one or more steps. Each step must be one of three explicit types: image, video, or chapter. If the conversation already contains uploaded media handles (for example as chat attachments), use them directly. Otherwise, for local files, first call create_upload_job, send the user the uploadUrl, then call get_upload_job after they finish uploading. **Image step:** provide { type: "image", imageUrl, width, height, text? }. A default hotspot is added, matching the app's current image-step behavior. **Video step:** provide { type: "video", videoId, text? }. The videoId must reference a completed video visible in this workspace; the backend duplicates it before attaching it to the step. **Chapter step:** provide { type: "chapter", chapterType, chapter? }. The tool creates the step, chapter, and any inline buttons/formFields you specify. Use position to insert at a specific 1-based step number — existing steps are shifted down. Omit position to append at the end. When multiple items include position in one call, they are processed in array order against the evolving step list. **IMPORTANT:** For chapter steps, omit theme, layout, colors, skip, enabled, and button styling fields unless the user explicitly specifies them. When omitted, the backend automatically applies the workspace's default chapter template. Only pass fields the user explicitly requests — do not infer or copy values from other chapters.
create_steps
Create a short-lived upload job and get a link the user opens in their browser to upload local files (images, videos, PDFs) into this workspace. Use this only when the user has local files, the conversation does not already contain uploaded media handles (an Image URL with width/height, a videoId, or a PDF URL), and the user cannot attach files directly in this interface. If the interface supports message attachments (e.g. Supademo AI Command), ask the user to attach the files to their message instead. If handles are already present — for example as chat attachments — use them directly with create_demo_from_uploaded_media, create_steps, or replace_step_media. Flow: call this tool → give the user the uploadUrl → they upload there while logged in to the same Supademo account; the portal uploads into this job's workspace automatically → when they say they're done, call get_upload_job with the jobId to fetch the resulting identifiers. The job expires 60 minutes after creation.
create_upload_job
Start an AI edit of a video project, in place, from its original recording. Supademo watches the recording, works out its objective and the steps taken to reach it, and edits the project towards that. What the edit makes depends on where the video lives. Today only the video of a demo step is supported: it becomes a click-through demo with a pause hotspot on every step, dead time cut, and typing, scrolling and loading sped up. Other videos fail with VIDEO_EDIT_UNSUPPORTED. Take videoProjectId from the step in get_demo. Before calling, tell the user the edit replaces the project's existing cuts, speed changes and hotspots, removes its zooms, spotlights and camera resizes, mutes the recording's audio, and invalidates any export. The video keeps its title, and the demo's title and description are left as they are. The edit overwrites the project when it finishes, including any other edit made in the meantime. Returns at once with the run's id and status; poll get_video_ai_edit with the id. For 10 minutes after starting an edit, calling again returns that run with its current status (which may already be completed) instead of starting another.
create_video_ai_edit
Permanently delete an agent, every draft and published version, its intro screens, monitor data, evaluation criteria, and triggers. Reusable knowledge remains in the workspace; unreferenced demo/video sources and their vectors are cleaned up.
delete_agent
Soft-delete one Monitor trigger and disable it immediately. Delivery history is preserved.
delete_agent_trigger
Delete one or more chapters from steps. This deletes each chapter and all its buttons and form fields.
delete_chapters
Permanently delete a Demo Hub with all its categories and content links (the underlying demos/showcases are not touched). Any site embedding this hub will stop showing it.
delete_demo_hub
Delete an entire target-language translation from a demo, including its translated text and media rows.
delete_demo_translation
Delete a Demo, Showcase, or Video folder, including subfolders. Demos inside are archived (not permanently deleted); showcases inside are moved to the root; non-step videos in Video folders are permanently deleted (step-attached videos are unlinked only).
delete_folder
Delete one or more hotspots from steps.
delete_hotspots
Permanently delete a showcase. This matches the Showcase model behavior; unlike demo folders, showcases do not have an archived state.
delete_showcase
Delete one or more steps from a demo. Remaining steps are automatically renumbered.
delete_steps
Remove voiceover audio from specific steps or entire demo. Pass stepIds to delete from those steps, or omit to delete ALL voiceovers in the demo.
delete_voiceover
Discover public page URLs before adding a multi-page website as agent knowledge. Use returned links with add_agent_website_knowledge full mode. Returns at most 300 links; totalDiscovered and truncated report when the site has more.
discover_agent_website_pages
Create a new unpublished agent by copying the source agent's draft settings and knowledge attachments. Intro screen, evaluation criteria, triggers, sessions, and checklist results are not copied.
duplicate_agent
Duplicate a demo with all its content (steps, hotspots, chapters, video projects, HTML edits, translations). Creates a copy titled 'Original Title(Copy)'.
duplicate_demo
Create a brand-new demo from a specific published version of an existing demo. The copy is fully independent (all content ids are remapped) and receives its own version 1 when publishing is unrestricted for the workspace; otherwise it remains a draft. The copy remains private until its visibility is changed with update_demo_settings. The source demo is not modified.
duplicate_demo_from_version
Duplicate a Demo Hub including all settings, categories, and content references. The copy is named "<original> (copy)".
duplicate_demo_hub
Duplicate a showcase, including sections, resource-center content references, workspace content source metadata, and tags. Legacy demo-only sections are copied as modern demo SectionContent rows.
duplicate_showcase
Start a fresh readiness-checklist evaluation of the unpublished agent draft. Only one evaluation runs at a time; poll get_agent_checklist until isEvaluating turns false to read the new scores.
evaluate_agent_checklist
Queue structured-summary generation for one ended Monitor session, including retrying a failed summary or regenerating a stale one. Generation is asynchronous; re-read the session to see the result.
generate_agent_session_summary
Generate and store a full target-language translation for a demo, matching the Settings > Translations > Add translation flow. Requires the AI enhancement feature to be enabled for the workspace. This translates demo title/meta description, chapter text, chapter buttons, hotspot text/buttons, and step audio text, storing translated text rows and translated audio transcription rows. Pass voiceId (from list_voices) to also generate translated voiceover audio for every step transcription and enable voiceover playback for this language — this may take 1-3 minutes. Without voiceId no audio files are generated and the language plays without voiceover.
generate_demo_translation
Set voiceover text and generate AI audio for specified steps in one call. Updates text AND regenerates audio. Use list_voices to find available voiceId values. May take 1-3 minutes depending on step count (max 75 steps per request).
generate_voiceovers
Get the authoritative unpublished agent draft, including behavior settings, quick links, attached knowledge sources and their indexing states, draft preview/public URLs, publication state, and evaluation criteria. Use this before changing an existing value, sharing the live URL, or summarizing setup.
get_agent
Read the agent's readiness checklist: the stored per-area scores, when they were last evaluated, and whether an evaluation is currently running. Use before publishing to point out weak areas.
get_agent_checklist
Read the Monitor insights dashboard for a date range: conversation/message/duration KPIs with prior-period comparisons, intent distribution, range-aware daily, weekly, or monthly timeseries, and most-recommended knowledge content. Dates use YYYY-MM-DD and default to the last 30 days.
get_agent_insights
Get one attached knowledge source with its per-agent title/summary, shared content hints, showcase-only mode, indexing state, and website child pages. Set includeTextContent only when the raw body of a Text source is needed for review or editing.
get_agent_knowledge_source
Get a single Monitor session including visitor metadata, summary, complete ordered transcript, and content recommendations.
get_agent_session
Get full demo tree — steps, hotspots, chapters, buttons, form fields, links, and every demo-level settings group: appearance, cta, background, behavior, sharing, hotspotDefaults, metadata, and audio. The settings groups mirror update_demo_settings field-for-field, so read a demo here, change what you need, and write the same shape back — use this to audit or verify settings (e.g. metadata.metaDescription on duplicated demos) instead of overwriting them blindly. Returns the demo author's id and name by default. Set includeAuthorEmail=true only when the user explicitly requests the creator's email address. Personalized link variable values are omitted by default; set includeLinkVariables=true only when the user explicitly asks to inspect them. Use the include parameter to control which resources to fetch. Defaults to all. Use a subset to reduce response size. Example: include: ["steps", "hotspots"] returns steps with their hotspots but omits chapters/buttons/formFields. Settings that are unset come back as null; writing a group back unchanged is a no-op, so it is safe to send the whole group. appearance.customFont is read-only and only present when font is "Custom". sharing.visibility and sharing.published are two views of the same column — write back either one, or both with values that agree; conflicting values are rejected. appearance.color is a legacy column that does not affect the rendered demo — the theme color viewers actually see is the workspace's, readable via get_workspace_settings. Never try to change a demo's theme color with update_demo_settings appearance.color.
get_demo
Overall analytics for one demo in a date range: views, unique views, engagement rate, completion rate, plus previous-period comparison and per-step view counts. Use when the user asks things like: "how is demo X doing?", "what's the completion rate on this demo?", "compare this month vs last month for this demo". Each metric returns `{ current, previous, ... }`. The delta field is named to make the unit explicit: - `differencePct` = percent change vs. the previous period (count metrics: views, uniqueViews). - `differencePoints` = absolute point delta (ratio metrics: engagement, completion). Notes: - Dates are UTC (YYYY-MM-DD). Defaults to the last 30 days. Future ranges are rejected (`from` in the future) or clamped (`to` past today snaps to today). - `completion.current` is null when there are no views or no completions in the period — treat as missing, not zero. - `differencePct` / `differencePoints` are `null` when the previous period had no data. Do NOT report "+100% growth" in that case — say "no prior baseline". - `stepPerformance[].viewersReached` is engagement-weighted (sum of step `completed_count`), NOT a raw funnel of viewers who reached the step. As a result it is NOT guaranteed to be monotonically non-increasing across steps — a later step can show more than an earlier step. Do not narrate "viewer X dropped off at step N" from this field; for true funnel/drop-off analysis say the data isn't structured for it. - `viewType` defaults to "all" (matches the per-demo dashboard route). Pass "external" to exclude internal/team views. - For per-hotspot / per-CTA click counts, use `get_demo_hotspot_performance`.
get_demo_analytics
Get the iframe embed code for a demo, matching the snippet the Supademo share dialog produces: an embed_v=2 URL (on the workspace custom domain when enabled) wrapped in a responsive aspect-ratio container. Returns the raw embed src URL and a copyable iframe snippet. This does not publish the demo; use update_demo_settings sharing.visibility first if the link should be public.
get_demo_embed_code
Per-step click counts for every interactive element on a demo — hotspots on regular steps, buttons on chapter steps. Each entity comes with its label so the consumer can describe what was clicked. Use when the user asks things like: "which CTAs got clicked?", "what's the most popular hotspot on this demo?", "did anyone click the 'Book a demo' button?". Notes: - Dates are UTC (YYYY-MM-DD). Defaults to the last 30 days. - `viewType` defaults to "all". Pass "external" to exclude internal/team clicks. - `clickCount` is total click events in the period — NOT unique viewers. If a viewer clicks the same hotspot twice, it counts twice. There is no per-viewer click distinct count available here. - Full step structure is returned even when nothing was clicked, so this tool is also a way to enumerate hotspots / chapter buttons on a demo. `entities: []` on a step means no hotspot or button is defined on that step (not an error). - For chapter steps the entity `label` is the button content; for hotspot steps it is the hotspot's AI-generated text falling back to the manually-set text. May be an empty string when neither is set. - For click-through rate, pair this with `get_demo_analytics.stepPerformance` (per-step viewer counts). - Steps are returned in display order. Each step has `kind: "chapter" | "hotspot"` and an `entities` array of `{ entityId, label, clickCount }`.
get_demo_hotspot_performance
Get a Demo Hub with all settings (appearance, header, launcher, footer, allowed domains) plus the ordered category tree and its demo/showcase content items. Use this first to obtain categoryId/contentId values for manage_demo_hub_categories and manage_demo_hub_content.
get_demo_hub
Get the install snippets and instructions for embedding a Demo Hub on a website: the SDK script tag, the launcher init snippet, and the custom-trigger snippet (for hubs with the launcher disabled). White-label workspaces get their custom script URL and global name.
get_demo_hub_embed_code
List per-viewer sessions for a demo — viewer email / name / company (when captured via a lead form), location, browser, OS, total session count, completion rate, last view date, plus an `isLead` flag. Use when the user asks things like: "show me the leads from this demo", "who has been viewing this demo recently?", "list the sessions on demo X". Notes: - Each row is one `viewerId`, NOT one unique person. The same email can legitimately appear across multiple rows when the same human visits from different devices, different browsers, or after clearing cookies. For "how many unique leads" or similar headlines, deduplicate `sessions[]` by `email` client-side; the `total` field reports unique `viewerId`s, not unique humans. - Dates are UTC (YYYY-MM-DD). `from`/`to` are inclusive. Omit both for no date filter. - `leadsOnly: true` filters to viewers who submitted an email. - `completionRate` is the percentage of demo steps the viewer reached (capped at 100) — NOT playback duration. - `search` is case-insensitive substring match on `email` and `name` ONLY. It does NOT search company, country, or metadata. There is no server-side filter for country / company / completion threshold — to answer those, page through fully and filter client-side. For demos with hundreds of viewers, page through ALL pages before answering, since filtering only page 1 silently undercounts. - Sort fields are limited to `viewDate`, `completionRate`, `totalSessions`. Sorting by name / email / country is NOT supported server-side; do not promise it. - The `metadata` object's keys depend on the customer's lead-capture form configuration — do not assume specific keys. - 0-indexed pagination (`page: 0` is the first page). `hasMore` indicates whether another page exists.
get_demo_sessions
How do I improve a ChatGPT Plugin's discoverability?
The levers are the listing surface agents actually read: names, descriptions, keywords, tool metadata, and registry health. Which lever matters depends on where discovery breaks, which is what continuous measurement shows.
What are Supademo alternatives on ChatGPT?
As of 2026-09-29, Supademo competes with anew, Buildy, Carryo, dochost.io, Hoaster, LandGoose Advertorial Studio, OrbitPage, PageShare, Playfrog, Rendemo in ChatGPT AI Page Hosting & Sharing, ranked by public Discoverability Score.
Where is this profile measured?
This profile uses the geography attached to the latest public registry snapshot: US. Locale tags are intentionally omitted.