Skip to main content

Canvas Embed Activity Builder

Activity Builder Question type Adaptive Quiz Difficulty mode easy_to_hard Quiz SCORM Video Publish → 1. BUILD Published Activity Embed code <iframe src=”https://…” width=”100%” height=”600″ allow=”fullscreen”> Launch URL https://…/launch/act_abc123 Copy LTI optional → 2. PUBLISH Canvas LMS Modules Pages Week 3: Adaptive Practice <iframe> Adaptive Quiz Start activity 3. EMBED IN CANVAS Canvas Embed Activity Builder LTI INTEGRATION & EMBED-FIRST CANVAS TOOLING — IMPERIAL COLLEGE LONDON BUILD — PUBLISH — EMBED — GRADE
← All Projects EdTech Canvas LMS LTI Proof of Concept

Canvas Embed Activity Builder

An embed-first PoC for building and delivering interactive activities inside Canvas LMS — LTI integration available as an optional pathway.

Deploying new tools inside institutionally managed Canvas environments typically requires a formal LTI integration approval process — a pathway that can be slow, uncertain, and dependent on central ICT decisions. This project explores an alternative: an embed-first authoring platform that allows learning technologists and academics to build interactive activities, publish them to a hosted URL, and embed them in Canvas pages or modules using a standard <iframe> tag or external link — no LTI registration required.

The platform supports four activity types: Adaptive Practice Quiz, SCORM Easy Wrapper, Interactive Video Checkpoints, and Branching Scenarios. Each is authored through a consistent build-and-publish flow, producing either an embeddable iframe snippet or a launch URL that can be placed anywhere Canvas accepts external content. Where LTI is institutionally enabled, the platform also exposes optional LTI 1.3 deep-link and Assignment and Grade Services (AGS) routes for grade passback and richer Canvas integration.

The PoC sits within the broader context of Imperial's migration from Insendi to Canvas, where a number of interactive activity types have no direct equivalent in Canvas's native toolset and have historically been handled as placeholder pages. This tool offers a practical path to preserving and improving that interactivity within the existing Canvas environment.

Project at a Glance

Status Proof of Concept — MVP built and piloted
Primary Approach Embed-first — activities delivered via <iframe> embed or external URL in Canvas pages and modules
Activity Modules Adaptive Practice Quiz · SCORM Easy Wrapper · Interactive Video Checkpoints · Branching Scenarios
LTI Support Optional — LTI 1.3 deep-link and AGS grade passback available where institutionally enabled; not required for core embed workflow
Technology Node.js · Express · Vercel (serverless deployment) · Canvas API · LTI 1.3
Scope Control Modules can be enabled or disabled per Canvas account and sub-account — supports graduated rollout across departments
Context Developed alongside Imperial's Insendi → Canvas migration; addresses activity types with no direct Canvas equivalent
Intended Users Learning technologists and academics authoring course content in Canvas

The Build → Publish → Embed Workflow

The core authoring flow is deliberately simple and consistent across all four activity types. A learning technologist or academic logs in, selects an activity type, authors the content through a structured form interface, and publishes. Publishing produces two outputs: an iframe embed snippet ready to paste into a Canvas page's HTML editor, and a launch URL that can be added as an external link in a Canvas module. Either route places the live, interactive activity directly within the student's Canvas experience without leaving the course.

The Adaptive Quiz module supports two difficulty modes: easy_to_hard for progressive challenge sequencing, and missed_topic_retry for targeted remediation of weaker areas. Attempt data — including responses, timestamps, and completion status — is captured and exportable as CSV for manual grade workflows, with LTI-based automatic grade passback available as an optional extension.

For institutions or departments where Canvas LTI tool approval is available, the same platform exposes a full LTI 1.3 pathway: deep-link content selection, launch session management, and AGS score submission. This means the PoC can operate in both constrained and fully integrated Canvas environments using a single codebase and deployment.

Why Embed-First?

LTI integration with Canvas requires institutional approval, which at a large research university typically means navigation through ICT governance, security review, and procurement — a process that can take months and may not be guaranteed. The embed-first approach offers a practical starting point that works alongside existing institutional processes: Canvas has always permitted embedding external content via iframe, and any published URL can be linked from a module. There is nothing to approve and nothing to install.

This matters particularly in the context of Imperial's Insendi to Canvas migration, where a number of activity types that were native to Insendi — interactive tables, branching scenarios, adaptive quizzes, SCORM content — have no built-in Canvas equivalent and are being migrated as static placeholder pages. The Canvas Embed Activity Builder offers a route to restoring that interactivity for programmes that need it, on a timeline that suits the course team.

“Works even when additional Canvas tools are not approved — one deployment unit for ICT-controlled environments, one consistent authoring flow for learning technologists and academics.”

Pilot Findings & Next Iterations

An initial pilot with learning technologists and academics validated the core embed-first flow across quiz creation, publishing, and Canvas embedding. Attempt payload capture (responses, timestamps, completion) and CSV export for grade workflows were confirmed functional.

Three priority improvements captured from pilot feedback:

1

Replace raw JSON-only question authoring with a guided question form wizard — reducing friction for non-technical users.

2

Add a visible “Preview as student” step before publish, so authors can confirm the activity experience before embedding.

3

Add inline validation for question bank fields — clearer error messages for missing prompt, options, or correct answer selection.

Try the App

The pilot build is live and accessible below. It takes around two minutes to create an activity and generate an embed code ready to drop into a Canvas page or module.

Open Canvas Embed Activity Builder →

How to Use It

The interface follows the same three-step build → publish → embed flow described above:

01

Choose activity type

Select from Interactive Video Checkpoints, Branching Scenarios, or SCORM Wrapper. Interactive video and branching are the recommended starting points.

02

Create & publish

Give your activity a title and description, add any module JSON settings, then hit Create followed by Publish. The activity gets a permanent URL on the Vercel deployment.

03

Copy into Canvas

Copy the generated iframe embed code and paste it into a Canvas page in HTML view, or use the Launch URL as a module item link. No additional setup required.

Note: Grade passback to the Canvas gradebook is not active in iframe-only mode. For gradebook integration, the LTI pathway is available as an advanced option within the app.

Potential Next Steps

The most immediate development priorities are the three pilot improvements above. Beyond those, key directions include persistent data storage for production use (the current MVP uses ephemeral in-memory storage suitable for testing), a broader pilot with programme teams ahead of the Insendi migration deadline, and formal evaluation of the LTI grade passback pathway for departments where it can be enabled.

Longer-term, there is potential to evolve this into a shared institutional tool — a lightweight activity authoring layer that sits alongside Canvas rather than within it, accessible to any programme team that needs richer interactivity than Canvas natively provides without the overhead of a full LTI procurement process.