Skip to content

Knowledge Management

Articulate 360
API integration

Ship Knowledge Management features without building the integration. Full Articulate 360 API access via Proxy, normalized data through Unified APIs, and 40+ MCP-ready tools for AI agents — all extensible to your exact use case.

Talk to us
Articulate 360

Use Cases

Why integrate with Articulate 360

Common scenarios for SaaS companies building Articulate 360 integrations for their customers.

01

Automate onboarding training provisioning

HR and onboarding platforms can invite new hires to Reach 360, add them to role-based groups, and enroll them in required learning paths the moment they're created in the source system.

02

Power compliance and audit evidence collection

Compliance and GRC platforms can continuously pull course completions, quiz scores, and timestamps from Reach 360 to populate audit-ready evidence for SOC 2, HIPAA, and other frameworks without manual CSV exports.

03

Trigger event-driven customer certification flows

Customer education and certification platforms can react to Reach 360 events via webhooks to mint badges, unlock features, or notify CSMs the instant a learner finishes a course or learning path.

04

Correlate training with revenue and performance

Sales enablement and analytics tools can extract group- and learner-level reports from Reach 360 and overlay them with CRM data to prove the ROI of training on quota attainment and deal velocity.

05

Centralize external training records

HRIS and talent platforms can push historical or externally completed training into Reach 360 via the import completion endpoint, giving L&D one system of record for all learning activity.

What You Can Build

Ship these features with Truto + Articulate 360

Concrete product features your team can ship faster by leveraging Truto’s Articulate 360 integration instead of building from scratch.

01

Automated user and group provisioning

Create invitations, sync users into department- or role-based groups, and offboard users in Reach 360 in lockstep with your product's identity model.

02

Bulk cohort enrollment engine

Enroll and unenroll entire groups into courses or learning paths on demand, driven by lifecycle events in your app such as promotions or license changes.

03

Training completion and quiz score dashboards

Surface per-learner, per-course, and per-learning-path reports — including completion status, quiz scores, and time spent — natively inside your product's UI.

04

External training import pipeline

Push completions from other systems or manual sources into Reach 360 so customers get a single, complete training record for every learner.

05

Real-time webhook automations

Subscribe to Reach 360 events to trigger downstream workflows — issue certificates, alert managers, or update compliance status — without polling.

06

Manager and reporter visibility mapping

Expose which groups a user manages or reports on so your product can scope training views and reporting to the right stakeholders.

SuperAI

Articulate 360 AI agent tools

Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.

list_all_articulate_360_courses

List all submitted courses (published and unpublished) in Articulate 360 Reach 360. Returns: id, title, coverImageUrl, authorUrl, courseReportUrl, url, contentType. Max 100 results per page, defaults to 50.

get_single_articulate_360_course_by_id

Get a single Articulate 360 Reach 360 course by id. Returns: id, title, coverImageUrl, authorUrl, courseReportUrl, url, contentType. Required: id.

articulate_360_course_enrollments_enroll_user

Enroll a single user in an Articulate Reach 360 course. Returns an empty 204 response on success. Required: course_id, user_id.

articulate_360_course_enrollments_enroll_group

Enroll a group of users in an Articulate Reach 360 course. Use `everyone` as the group_id to enroll all users in the account. Returns an empty 204 response on success. Required: course_id, group_id.

articulate_360_course_enrollments_unenroll_user

Unenroll a single user from an Articulate Reach 360 course. Returns an empty 204 response on success. Required: course_id, user_id.

articulate_360_course_enrollments_unenroll_group

Unenroll a group of users from an Articulate Reach 360 course. Use `everyone` as the group_id to unenroll all users in the account. Returns an empty 204 response on success. Required: course_id, group_id.

list_all_articulate_360_favorites

List courses and learning paths a user has saved to their Favorites in Reach 360. Returns: completedAt, courseId, courseUrl, coverImageUrl, estimatedTimeToCompleteMs, hasCertificateDownload, learnUrl, learningPathId, learningPathUrl, numberOfCourses, numberOfLessons, progressPercent, quizScorePercent, title, type, contentType. Required: user_id.

create_a_articulate_360_group

Create a new group in Articulate Reach 360. Returns: id, membersUrl, reportersUrl, managersUrl, name, url. Required: name.

list_all_articulate_360_groups

List groups in Articulate Reach 360. Returns: id, membersUrl, reportersUrl, managersUrl, name, url.

get_single_articulate_360_group_by_id

Get a single group in Articulate Reach 360 by id. Returns: id, membersUrl, reportersUrl, managersUrl, name, url. Required: id.

update_a_articulate_360_group_by_id

Update a group's name in Articulate Reach 360 by id. Returns an empty 204 response on success. Required: id, name.

delete_a_articulate_360_group_by_id

Delete a group in Articulate Reach 360 by id. Returns an empty 204 response on success. Required: id.

articulate_360_group_memberships_add_user

Add a user to a Reach 360 group. Returns an empty 204 response on success. Required: group_id, user_id.

articulate_360_group_memberships_remove_user

Remove a user from a Reach 360 group. Returns an empty 204 response on success. Required: group_id, user_id.

list_all_articulate_360_group_memberships

List members of a Reach 360 group. Returns user records including id, email, role, firstName, lastName, lastActiveAt, articulate360User, groupsUrl, learnerReportUrl, and url. Required: group_id.

articulate_360_import_course_completion_import

Import course completion data for a single Articulate 360 course/user pair into Reach 360. Returns an empty 202 response on success. Required: course_id, user_id, completedAt, startedAt. Repeated calls with the same course and user override prior date values.

create_a_articulate_360_invitation

Create a pending invitation in Articulate 360 Reach 360, sending an email invite to the specified user. Returns: id, email, firstName, lastName, groups, url. Required: email. Any groups that don't exist are created when the user accepts the invitation.

list_all_articulate_360_invitations

List pending invitations in Articulate 360 Reach 360, optionally filtered by email address. Returns: id, email, firstName, lastName, groups, url.

get_single_articulate_360_invitation_by_id

Retrieve a single pending invitation in Articulate 360 Reach 360 by invitation id. Returns: id, email, firstName, lastName, groups, url, invitation. Required: id.

delete_a_articulate_360_invitation_by_id

Delete a pending invitation in Articulate 360 Reach 360 by invitation id. Deleting before the user accepts invalidates the emailed link. Returns an empty 204 response on success. Required: id.

list_all_articulate_360_learning_paths

List learning paths in Articulate 360 (Reach 360). Returns: id, title, description, coverImageUrl, coursesUrl, coursesReportUrl, learnersReportUrl, url. Max 100 results per page.

get_single_articulate_360_learning_path_by_id

Get a single learning path by id in Articulate 360 (Reach 360). Returns: id, title, description, coverImageUrl, coursesUrl, coursesReportUrl, learnersReportUrl, url. Required: id.

articulate_360_learning_paths_list_courses

List courses in a learning path in Articulate 360 (Reach 360). Returns: id, title, coverImageUrl, authorUrl, courseReportUrl, url, order, contentType. Required: learning_path_id. Max 100 results per page.

articulate_360_learning_path_enrollments_enroll_user

Enroll a single user in an Articulate 360 Reach 360 learning path. Returns an empty 204 response on success. Required: learning_path_id, user_id.

articulate_360_learning_path_enrollments_enroll_group

Enroll a group of users in an Articulate 360 Reach 360 learning path. Use `everyone` as group_id to enroll all users in the account. Returns an empty 204 response on success. Required: learning_path_id, group_id.

articulate_360_learning_path_enrollments_unenroll_user

Unenroll a single user from an Articulate 360 Reach 360 learning path. Returns an empty 204 response on success. Required: learning_path_id, user_id.

articulate_360_learning_path_enrollments_unenroll_group

Unenroll a group of users from an Articulate 360 Reach 360 learning path. Use `everyone` as group_id to unenroll all users in the account. Returns an empty 204 response on success. Required: learning_path_id, group_id.

articulate_360_reports_get_activity

Get the Articulate 360 Reach 360 user activity report listing all user sessions account-wide. Returns: courseId, courseTitle, courseReportUrl, courseUrl, userId, email, firstName, lastName, learnerReportUrl, userUrl, duration, numberOfLessonsCompleted, quizScorePercent, isQuizPassed, startedAt, userDeleted, courseDeleted.

articulate_360_reports_get_course_learners

Get a course learner report from Articulate 360 Reach 360, listing all learner sessions enrolled in a specific course. Returns: userId, email, firstName, lastName, learnerReportUrl, userUrl, duration, quizScorePercent, dueAt, status, completedAt, userDeleted, progress. Required: course_id.

articulate_360_reports_get_learner_courses

Get a learner course report from Articulate 360 Reach 360, listing all course sessions for a specific learner. Returns: courseId, courseTitle, courseReportUrl, courseUrl, duration, quizScorePercent, dueAt, status, completedAt, courseDeleted, progress. Required: learner_id.

articulate_360_reports_get_learning_path_courses

Get a learning path courses report from Articulate 360 Reach 360, listing all course sessions within a specific learning path. Returns: courseId, courseTitle, courseUrl, numberOfLessons, averageDuration, courseReportUrl, courseDeleted. Required: learning_path_id.

articulate_360_reports_get_learning_path_learners

Get a learning path learners report from Articulate 360 Reach 360, listing all learner sessions within a specific learning path. Returns: userId, email, firstName, lastName, learnerReportUrl, userUrl, duration, dueAt, status, userDeleted. Required: learning_path_id.

articulate_360_reports_get_group_courses

List courses in which group members are enrolled in Articulate 360 Reach 360. Returns: courseId, courseTitle, courseUrl, averageDuration, courseReportUrl, courseDeleted, enrollmentDeleted. Required: group_id.

list_all_articulate_360_users

List all users in your Articulate 360 Reach 360 account. Returns: id, email, groupsUrl, reportingGroupsUrl, managingGroupsUrl, role, firstName, lastName, lastActiveAt, learnerReportUrl, favoritesUrl, url, articulate360User. Optionally filter by email address. Max 100 results per page.

get_single_articulate_360_user_by_id

Get a single Articulate 360 Reach 360 user by id. Returns: id, email, groupsUrl, reportingGroupsUrl, managingGroupsUrl, role, firstName, lastName, lastActiveAt, learnerReportUrl, favoritesUrl, url, articulate360User. Required: id.

delete_a_articulate_360_user_by_id

Delete an Articulate 360 Reach 360 user by id. Returns an empty 204 response on success. Only learners who aren't managed with SSO and who don't have an Articulate ID can be deleted. Required: id.

create_a_articulate_360_webhook

Create a new webhook in Articulate Reach 360. Returns: id, targetUrl, events, sharedSecret, apiVersion, url. Required: targetUrl, events. A duplicate targetUrl returns a 409 error.

list_all_articulate_360_webhooks

List webhooks in Articulate Reach 360. Returns each webhook's id, targetUrl, events, apiVersion, and url. Max 2000 results per page.

get_single_articulate_360_webhook_by_id

Get a single Articulate Reach 360 webhook by id. Returns: id, targetUrl, events, apiVersion, url. Required: id.

delete_a_articulate_360_webhook_by_id

Delete an Articulate Reach 360 webhook by id. Returns an empty 204 response on success. Required: id.

articulate_360_managers_list_managing_groups

List groups that a manager manages in Reach 360. Returns: id, membersUrl, managersUrl, reportersUrl, name, url. Required: user_id.

articulate_360_managers_list_group_managers

List managers for a specific group in Reach 360. Returns: id, email, groupsUrl, managingGroupsUrl, reportingGroupsUrl, role, firstName, lastName, lastActiveAt, learnerReportUrl, url. Required: group_id.

articulate_360_reporters_list_reporting_groups

List the reporting groups a reporter belongs to in Articulate 360 Reach 360. Returns: id, name, membersUrl, managersUrl, reportersUrl, url. Required: user_id.

articulate_360_reporters_list_group_reporters

List reporters in a Reach 360 reporting group, including users who report on the Everyone group. Returns: id, email, role, firstName, lastName, lastActiveAt, groupsUrl, managingGroupsUrl, reportingGroupsUrl, learnerReportUrl, url. Required: group_id.

list_all_articulate_360_user_groups

List groups in which a Reach 360 user is enrolled. Returns group records including id, name, membersUrl, reportersUrl, managersUrl, and url. Required: user_id.

Why Truto

Why use Truto’s MCP server for Articulate 360

Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 650+ integrations.

01

Auto-generated, always up to date

Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.

02

Fine-grained access control

Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.

03

Multi-tenant by design

Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.

04

Works with every MCP client

Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.

05

Built-in auth, rate limits, and error handling

Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.

06

Expiring and auditable servers

Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.

Unified APIs

Unified APIs for Articulate 360

Skip writing code for every integration. Use Truto’s category-specific Unified APIs out of the box or customize the mappings with AI.

Unified User Directory API

Groups

Groups are a collection of users in the source application. In some applications, they might also be called Teams.

View Docs

Roles

The Role object represents a role of a User.

View Docs

Users

The User object represents a User.

View Docs

How It Works

From zero to integrated

Go live with Articulate 360 in under an hour. No boilerplate, no maintenance burden.

01

Link your customer’s Articulate 360 account

Use Truto’s frontend SDK to connect your customer’s Articulate 360 account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.

02

We handle authentication

Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.

03

Call our API, we call Articulate 360

Truto’s Proxy API is a 1-to-1 mapping of the Articulate 360 API. You call us, we call Articulate 360, and pass the response back in the same cycle.

04

Unified response format

Every response follows a single format across all integrations. We translate Articulate 360’s pagination into unified cursor-based pagination. Data is always in the result attribute.

FAQs

Common questions about Articulate 360 on Truto

Authentication, rate limits, data freshness, and everything else you need to know before you integrate.

Which Articulate 360 product does this integration cover?

The integration targets the Reach 360 API, which is Articulate's LMS for distributing, enrolling, and reporting on training. Storyline and Rise authoring apps do not expose an API — Reach 360 is where user, enrollment, and completion data lives.

How does authentication work for end users?

Truto handles the Articulate 360 auth flow and credential storage for you. Your end users connect their Reach 360 account through Truto, and you call the tools using a Truto integrated account identifier — no token management on your side.

Can I get real-time updates instead of polling reports?

Yes. You can register webhooks via create_a_articulate_360_webhook and receive events such as completions, so your product reacts instantly without repeatedly hitting the reporting endpoints.

What reporting data can I pull from Reach 360?

You can pull account-wide activity, course learners, learner courses, learning path courses and learners, and group courses. These reports include fields like completion status, quiz score percent, and duration, which is enough to power dashboards and audit evidence.

Can I push training completions from outside systems into Reach 360?

Yes. The import course completion tool lets you write historical or externally completed training records into Reach 360, so customers can consolidate learning history from legacy LMSes or manual sources.

Does the integration support both individual and group-level enrollment?

Yes. You can enroll or unenroll users or entire groups against both courses and learning paths, which lets you build cohort-based provisioning without iterating per-user.

Articulate 360

Get Articulate 360 integrated into your app

Our team understands what it takes to make a Articulate 360 integration successful. A short, crisp 30 minute call with folks who understand the problem.