Skip to main content
ProductReport

Prove every completion, and pipe it to your stack.

Every attempt, score and completion is captured against an Identified Recipient and available through analytics embeddables, the tracking API and webhooks, written back to your own systems of record.

compliance.acme.com/insights

Compliance overview

Coassemble Insights · embedded · org-wide
Last 30 days
Completion
92%
▲ 6.2% vs last month
Avg quiz score
88%
▲ 2.1%
Engagement
74%
▲ 3.4%
Completion funnelReachedDropped off
TeamProgress
Sales · EMEA100%
Support78%
Operations52%
Field · APAC31%
webhook · just nowLive
event: "course.completed"
{
  "recipient": "ir_s.reyes",
  "course": "crs_8fk2",
  "score": 92
}
Fans out to your stack
HRISRecord written
CRMMilestone logged
WarehouseRow appended
07 · dashboards people read · events your stack consumes
01Where results go

Every result, everywhere it matters.

A completion is only useful where decisions get made, your dashboards, your systems of record, your stack.

Dashboards · embedded

Insights people actually read

Live progress, scores and drop-off as an embedded component in your product, themed to you.

embeddedliveorg-wide
Tracking API · pull

Your questions, your schedule

Read attempts, scores and completions programmatically, per person, per course, per team.

RESTattemptsscores
Webhooks · push

React in real time

course.completed fires into your stack in under a second, no polling, no export jobs.

<200msretriessigned
NewAsk · via MCP

Query results from your agents

“Who hasn’t finished security training?”, ask Claude or your own agents, answered over MCP.

MCPnatural languagesoon
02The record

From attempt to record.

Every kind of truth about your training, dashboards in the UX, raw over the API, and live while learners are still in the course.

01 · Report dashboard

Every result, one dashboard.

Courses, collections and shared links, completions, scores and engagement in a single view, org-wide or per team.report dashboard ↗

APIGET /v1/tracking/summary
Insights · All training · last 30 days
Completion
92%
Avg score
88%
Engagement
74%
Sales · EMEA100%
Support78%
Field · APAC31%
02 · Course analytics

See exactly where they drop off.

Screen-by-screen progress for any course, who reached what, where attention dips, and what to fix first.course analytics ↗

APIGET /v1/tracking?course=crs_8fk2
Cold Brew 101 · funnel
S1
S2
S3
S4
S5
S6
screen 5 loses 17%, the quiz may be too early
03 · Quiz results

Question-level truth.

See how learners did per question, not just per course, a question everyone misses is a teaching problem, and now you can see it.quiz results ↗

APIGET /v1/tracking/quiz?course=crs_8fk2
Knowledge check · by question
Q1 · Grind size94%
Q2 · Ratio89%
Q3 · Steep time38%
Q3: 62% wrong, revisit screen 3
04 · Sentiment

How it landed, not just whether it finished.

The finish screen’s feedback moment rolls up into a sentiment view per course, a fast read on what learners actually thought.sentiment ↗

APIGET /v1/tracking/sentiment
Cold Brew 101 · sentiment
🤩58%
🙂31%
😐8%
😔3%
89% positive · 412 responses
05 · Learners & tracking

A record per real person.

Identified recipients carry their whole history, progress, attempts, scores, resume state, across devices. Anonymous stays anonymous, by design.learners & tracking ↗

APIGET /v1/recipients/ir_s.reyes
Learners · Cold Brew 101
S. Reyes · IR✓ 92%
M. Jacobs · IRscreen 4 / 6
Anonymous · open linkUNTRACKED
identity captured only when you choose to capture it
06 · SCORM usage

Exported doesn’t mean invisible.

Courses exported as SCORM still report usage home, see how a package performs inside a customer’s LMS without asking them for a report.scorm usage ↗

Built indynamic SCORM reports back
SCORM usage · cold-brew-101.zip
learn.partner-lms.com214 launches
lms.acme.com88 launches
Package versionCURRENT
usage flows back, even from someone else’s LMS
07 · API events

Live, while they’re still in it.

Embedded courses emit in-page events as the learner moves, progress, quiz answers, completion, so your app can react in real time.api events ↗

JSwindow.postMessage ← progress · quiz · complete
your app · event listener
screen.viewed · 4/6 · just now
quiz.answered · Q1 · correct · 4s
course.completed · 92 · 2s
▶ unlockNextModule()
08 · Webhooks

Your systems know the second it happens.

Server-to-server webhooks fire on create, start and complete, signed, retried, and pointed at your HRIS, CRM or warehouse.webhooks ↗

APIPOST yourapp.com/hooks ← course.completed
Webhooks · endpoints
hris.driftwood.coffee/hooks
crm.driftwood.coffee/events
warehouse · append row
signed · retried · <200ms typical
09 · Write back via MCP

Results, wherever your agents work. · Soon

Move training results through MCP so AI assistants can read, and write, completion data in the systems where your team already asks questions.write back via mcp ↗

MCPcoassemble.push_results · soon
Any MCP-enabled assistant
Who hasn’t finished security training?
3 people · reminder drafted
written back to your HRIS on approval
an open standard, works across assistants that support MCP
Live demo

Watch a completion land.

This is the Analytics embeddable concept plus a live webhook feed. Hit the button: the completion fires, the dashboard ticks up, and the event fans out to your stack, exactly the loop your systems would consume.

ops.driftwood.coffee · via <coassemble-analytics /> + webhooks
Cold Brew 101 · insightsLAST 30 DAYS
Completions
1,284
Avg score
88%
HRIS · record written·
CRM · milestone logged·
Warehouse · row appended·
▶ Simulate a completion
WEBHOOK LOG● LIVE
waiting for events…
// dashboards + raw events, same source:
<coassemble-analytics course="cold-brew-101" />  +  POST yourapp.com/hooks ← course.completed
Case study

CitrineX turned messy PDF training into scalable learning.

CitrineX is a business growth and finance consultancy that builds scalable systems for its clients, including onboarding that used to live in PDF manuals nobody read.

Challenge

Training relied on PDF manuals staff rarely opened. Senior employees re-explained the same tasks over and over, and onboarding was inconsistent, leaving new hires with gaps.

Solution

CitrineX rebuilt the program as short, interactive modules in Coassemble: courses generated from existing material, knowledge checks built with the AI quiz generator, and a central hub the team revisits any time.

Read the full story
CitrineX
“Coassemble strikes the perfect balance between functionality, pricing and ease of use. It made it easy to structure the content into bite-sized lessons and keep everything clear and engaging.”
Tanya Stephenson · Founder, CitrineX
ConsistentEvery hire gets the same onboarding
Hours backSenior staff stopped re-explaining tasks
MinutesTo update training, not days

See the record for yourself.

Complete a course and watch it land in the API, a webhook and a dashboard. In a sandbox.