iSpring LMS integration
iSpring LMS (formerly iSpring Learn) is a corporate learning platform. Manage users, departments and groups (ordinary and rule-based), enroll learners in courses and learning tracks, read learner and quiz results, grade assignments, run instructor-led trainings and attendance, and award gamification points. Not exposed: bulk rewrites of completion statuses, performance reviews (360 appraisals, competencies), on-the-job training checklists, webhooks, passwords and content creation. Authentication: an API key (client id and secret) exchanged for 30-minute tokens, plus the domain of your region (ispring.com, ispring.eu or ispring.au); the REST API needs a Business subscription.
Say what should happen.
The workflow builds itself.
What you can do with iSpring LMS
Each of these is one operation on one endpoint, available both as a workflow step and as a tool an AI agent can call on its own. Nothing bundles several operations into one action, so what a run did stays readable afterwards.
Most endpoints run on the free plan. A few, mainly the ones that publish on your behalf, need a paid plan.
Department, 5 operations
create_departmentCreate departmentPOSTCreates a department under a parent department and returns its UUID. For a top-level department pass the root department's id (from list_departments).delete_departmentDelete departmentDELETEDeletes an empty department (no users, no sub-departments) for good.get_departmentGet departmentGETReturns one department: name, code, parent and supervisors.list_departmentsList departmentsGETLists departments, one page at a time, optionally searched by name or code, with parent and supervisor (the department head's userId).update_departmentUpdate departmentPOSTUpdates a department's name, code or parent. Leave a field out to keep its current value.
Group, 5 operations
create_groupCreate groupPOSTCreates a group of users, optionally with its first members, and returns its UUID. For rule-based membership use create_smart_group.delete_groupDelete groupDELETEDeletes a group (ordinary or smart) and its memberships for good; the users are kept.get_groupGet groupGETReturns one group with its member userIds, usersCount and isSmart.list_groupsList groupsGETLists groups, one page at a time, optionally searched by name. Each has groupId, name and isSmart.update_groupUpdate groupPOSTRenames a group. Membership is changed with update_group_members.
Enrollment, 4 operations
enroll_learnersEnroll learnersPOSTEnrolls learners in courses or other content (itemId from get_courses_tree), with an optional deadline. Content must be published. An existing enrollment is reassigned with reenroll_learner.get_enrollmentGet enrollmentGETReturns one enrollment: learner, content, access date, deadline, lock setting and certificate.list_enrollmentsList enrollmentsGETLists enrollments, one page at a time, filtered by courses, learners or enrollment ids. Completion status is in list_learner_results.update_enrollmentUpdate enrollmentPOSTChanges an enrollment's access date, deadline and lock-after-deadline setting.
List, 4 operations
list_catalog_categoriesList catalog categoriesPOSTLists catalog categories, optionally only those open to some groups or departments.list_coursesList coursesPOSTLists the courses of the account with their title, type, author, passing score, custom fields and view link.list_enrollment_rulesList enrollment rulesPOSTLists automatic enrollment rules (which course is assigned to which group or department), optionally for some groups or departments.list_trainingsList trainingsPOSTLists trainings (instructor-led programs), one page at a time, optionally by title, organizer or type.
User, 3 operations
create_userCreate userPOSTCreates a user in a department and returns the new UUID. fields must contain login; optional email, first_name, last_name, job_title, about_me and custom fields (keys from list_user_profile_fields).delete_userDelete userDELETEDeletes a user for good, with all enrollments and group memberships.update_userUpdate userPOSTUpdates a user's profile, department, role or groups. fields must include login; send only what changes. Dates use yyyy-mm-dd.
V2, 3 operations
get_userGet userGETReturns a user's full profile: profile fields (login, email, names, custom fields), department, groups, roles, supervisors, status and work leave. Personal data.list_usersList usersGETLists users with their profiles (personal data), one page at a time, filtered by departments, groups, logins, emails or user ids.search_usersSearch usersPOSTSearches users with their profiles (personal data), one page at a time: full-text on first and last name, or filters on departments, groups, logins, emails, user ids.
Day, 2 operations
get_training_dayGet training dayGETReturns one day of a training session: start time, duration, location and meeting link, with its session and training ids.update_training_dayUpdate training dayPOSTSets the meeting link of a training day.
Delete, 2 operations
delete_enrollmentsDelete enrollmentsPOSTRemoves enrollments in bulk: the learners lose access to the content, which itself is kept.remove_work_leave_statusesRemove work leave statusesPOSTClears the work leave of users, back to active.
Move, 2 operations
move_departmentsMove departmentsPOSTMoves departments under a new parent department.move_users_to_departmentMove users to departmentPOSTMoves users into another department.
Result, 2 operations
list_learner_modules_resultsList learner modules resultsGETLists learners' results per course module, one page at a time, with filters on users, courses, modules, departments, statuses and dates.list_learner_resultsList learner resultsGETLists learners' course results (status, score, progress, dates), one page at a time. Filter completionStatuses (passed, failed, not_started...) to find who passed or failed.
Scheduled deactivation, 2 operations
cancel_user_deactivationCancel user deactivationDELETECancels a user's scheduled deactivation; the user stays active.schedule_user_deactivationSchedule user deactivationPOSTSchedules a user's deactivation on a future date.
Scheduled termination, 2 operations
cancel_user_terminationCancel user terminationDELETECancels a user's scheduled termination.schedule_user_terminationSchedule user terminationPOSTSchedules a user's termination (stronger than deactivation) on a future date.
Session, 2 operations
get_training_sessionGet training sessionGETReturns one session of a training: title, start time, duration, instructor and the ids of its days (get_training_day). Participants come from list_training_session_participants.list_training_sessionsList training sessionsGETLists the sessions (scheduled runs) of a training.
Smart, 2 operations
create_smart_groupCreate smart groupPOSTCreates a smart group whose members are kept in sync from rules (department, group or profile field) and returns its UUID.update_smart_groupUpdate smart groupPOSTReplaces the whole rule set of a smart group (rules are not merged: read them first with get_smart_group_rules). Fails on an ordinary group.
Subordination, 2 operations
change_department_subordinationChange department subordinationPOSTSets or removes a department's head: subordinationType manual with the head's supervisorId, no_supervisor to remove, or inherit to use the parent department's.change_user_subordinationChange user subordinationPOSTSets who a user reports to: subordination and coSubordination, each with subordinationType (manual, inherit or no_supervisor) and supervisorId.
Activate, 1 operation
activate_usersActivate usersPOSTActivates users in bulk.
Active users by period, 1 operation
list_active_usersList active usersGETReturns the UUIDs of the users who were active within a date range.
Answer breakdown, 1 operation
list_answer_breakdownList answer breakdownGETLists quiz answers question by question, one page at a time, for one quiz, with filters on course, users, departments, groups and attempt dates.
Assignment, 1 operation
list_assignmentsList assignmentsGETLists course assignments with learner submissions, one page at a time. Set ungraded=1 for only the assignments awaiting review.
Award, 1 operation
award_pointsAward pointsPOSTAdds points to a user's gamification balance, with a mandatory reason.
Certificate, 1 operation
get_certificateGet certificateGETReturns the link to an issued certificate file. Recipient, course and dates are on the enrollment (get_enrollment, certificate field).
Course, 1 operation
list_learning_tracks_coursesList learning tracks coursesGETLists the courses inside learning tracks. Each nested course has its own enrollment.
Course field, 1 operation
list_course_fieldsList course fieldsGETLists the custom fields defined for courses.
Deactivate, 1 operation
deactivate_usersDeactivate usersPOSTDeactivates users in bulk (they can no longer sign in).
Field, 1 operation
list_user_profile_fieldsList user profile fieldsGETLists the user profile fields (built-in and custom) with their keys, types and rules: the keys to use in create_user and update_user.
Find existing, 1 operation
find_existing_usersFind existing usersPOSTChecks which of the given user UUIDs exist and returns those found. It does not search by name, login or email (use search_users).
Grade, 1 operation
grade_assignmentsGrade assignmentsPOSTGrades assignment submissions in bulk: per attempt (attemptId from list_ungraded_assignment_attempts) a score from 0 to 100 and an optional comment.
Member, 1 operation
update_group_membersUpdate group membersPOSTReplaces a group's whole member list with userIds: anyone left out is removed, so read the current list with get_group first.
Module, 1 operation
list_course_modulesList course modulesGETLists the modules of a course: training events (type training) and self-study material (type material).
Participant, 1 operation
list_training_session_participantsList training session participantsGETLists the participants of a training session, one page at a time.
Point, 1 operation
list_gamification_pointsList gamification pointsGETReturns the gamification point balance of users who have received or spent points (others are not listed), optionally for some users.
Quizz, 1 operation
list_quizzesList quizzesGETLists quizzes, one page at a time, optionally by quiz, content item or parent course. contentItemId is the courseId for list_learner_results and the enrollment tools.
Reenroll, 1 operation
reenroll_learnerReenroll learnerPOSTRe-enrolls a learner in the same course: progress goes back to zero and status to not_started. Works for courses and trainings, not learning tracks or standalone quizzes.
Remove, 1 operation
remove_user_from_groupsRemove user from groupsPOSTRemoves a user from the given groups.
Role, 1 operation
list_rolesList rolesGETLists the roles that can be assigned to users.
Rule, 1 operation
get_smart_group_rulesGet smart group rulesGETReturns a smart group's membership rules in the shape update_smart_group accepts. An ordinary group returns an empty rule list.
Terminate, 1 operation
terminate_usersTerminate usersPOSTTerminates users in bulk.
Training, 1 operation
get_trainingGet trainingGETReturns a training program: title, type, organizer and its sessions.
Tree, 1 operation
get_courses_treeGet courses treePOSTReturns all content items (courses, quizzes, folders, learning tracks, pages, videos, SCORM...) as a flat list with itemId, title, type and parentId. itemId is the course id for enrollments.
Ungraded, 1 operation
list_ungraded_assignment_attemptsList ungraded assignment attemptsGETLists the submissions of an assignment still waiting for a grade, optionally only for some learners. Each attempt has the attemptId that grade_assignments takes.
Update, 1 operation
update_training_day_attendanceUpdate training day attendancePOSTMarks participants present or absent on a training day, optionally with the time attended.
Withdraw, 1 operation
withdraw_pointsWithdraw pointsPOSTTakes points from a user's gamification balance, with a mandatory reason.
Work leave status, 1 operation
update_work_leave_statusesUpdate work leave statusesPOSTSets a work leave (vacation, sick leave, business trip...) with dates on users.
Use iSpring LMS from Claude Code, Cursor or Codex
Connect iSpring LMS in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its iSpring LMS operations become tools the client can call, next to every other integration you connected.
claude mcp add --transport http livecontext https://livecontext.ai/mcp --header "X-API-Key: YOUR_API_KEY"[mcp_servers.livecontext]
url = "https://livecontext.ai/mcp"
[mcp_servers.livecontext.http_headers]
"X-API-Key" = "YOUR_API_KEY"{
"mcpServers": {
"livecontext": {
"type": "http",
"url": "https://livecontext.ai/mcp",
"headers": {
"X-API-Key": "YOUR_API_KEY"
}
}
}
}How to connect iSpring LMS
- Create your workspace
Sign up free. Nothing to install.
- Connect iSpring LMS once
Add your iSpring LMS connection in Settings. Every tool from this integration reuses it, and secrets are encrypted at rest and visible only to you.
- Describe the job in chat
The workflow builds itself in front of you and picks the endpoints it needs. Drag the steps yourself on the canvas whenever you would rather be explicit.
iSpring LMS integration FAQ
What can you do with the iSpring LMS integration?
LiveContext exposes 70 operations on iSpring LMS, covering department, group, enrollment and list.
