[Cotlet](https://cotlet.dev/index.md) · [Integrations](https://cotlet.dev/integrations.md) · [How it works](https://cotlet.dev/how-it-works.md) · [Use cases](https://cotlet.dev/use-cases.md) · [Security](https://cotlet.dev/security.md) · [For developers](https://cotlet.dev/for-developers.md) · [For automation agencies](https://cotlet.dev/for-agencies.md) · [Blog](https://cotlet.dev/blog.md) · [API docs](https://cotlet.dev/docs.md) · [Help center](https://cotlet.dev/help.md) · [Changelog](https://cotlet.dev/changelog.md) · [Contact](https://cotlet.dev/contact.md) · [Pricing](https://cotlet.dev/pricing.md) · [Sign up](https://cotlet.dev/signup)

# Enroll an iSpring Learn department in a course

> Enroll a whole iSpring Learn department in a course with your start and due dates, skipping people who already have it. Runs from your agent.

Source: https://cotlet.dev/integrations/ispring-api-mcp-server/enroll-department-in-course

A new compliance course goes live, and someone has to pick the right department, check who already has the course, set the dates and press Enroll in the wizard, again for every team.

Cotlet does it in your own iSpring Learn (iSpring LMS) account with list\_courses, list\_departments, list\_users, list\_enrollments and enroll\_users, called by your AI agent, an n8n workflow or a script.

[Sign up free](https://cotlet.dev/app/signup?app=ispring) [All iSpring Learn (iSpring LMS) tools](https://cotlet.dev/integrations/ispring-api-mcp-server.md)

Hosted · nothing to install or maintain

## Can iSpring Learn (iSpring LMS) do this on its own?

iSpring Learn has the Enroll Users wizard and, on the Business subscription, a REST API with an enrollment call (checked 20 Oct 2026). A Zapier action, Enroll Users in Courses, takes users you already picked. Nothing in iSpring Learn repeats the choice of department, dates and exclusions from a sentence.

## How you do it in iSpring Learn (iSpring LMS) today

1. An administrator opens Learning Content, Courses, picks the course and clicks Enroll Users in the top menu, or opens the course's Edit Course page and its Enrollments tab.
2. The wizard runs Courses, Users, Parameters. On Users the administrator uses Advanced Search to pick a department, a group or a profile field such as position or country.
3. On Parameters the administrator sets the start date and one of four due date options: Use course settings, By Date, For a period or No Due Date, and may tick Restrict access after due date.
4. After Enroll, learners get a notification in the user portal and by email, and the course shows in My Courses.
5. Nothing in the wizard repeats for the next team: the administrator opens it again, and the course's Enrollments tab is the only place to check who already had it.

## How to enroll an iSpring Learn department in a course

Prompt

```
Enroll everyone in the Sales department who is not yet in Information Security Basics. Start on 2 November, due 30 November, and list who you skipped.
```

1. 01  
### Find the department  
Your agent calls list\_departments with the name from your prompt and takes its department\_id. If two departments match, it asks which one before touching anyone. A Department Administrator sees only the departments they manage, so a department outside that list is not found.
2. 02  
### List the people who can be enrolled  
list\_users runs with that department\_id and status active. Inactive users are left out on purpose: iSpring Learn does not let an inactive user be assigned to a course.
3. 03  
### Skip who already has the course  
list\_enrollments for the course gives everyone already enrolled, whatever their status. The agent removes them from the list, so nobody gets a second enrollment or a fresh start date over their progress.
4. 04  
### Pick the dates  
The agent passes start\_date and due\_mode from your prompt. With no dates it uses use\_course\_settings, which takes the due date from the Availability tab of the course. A month counts as 30 days and a year as 365, so "for 2 months" is 60 days.
5. 05  
### Enroll once  
enroll\_users sends one call for the whole list and waits for your OK by default. The agent then reports who was enrolled and who was skipped, with the reason.

### What you get back

Example data

```
Information Security Basics, Sales department
Enrolled 12, start 2 Nov 2026 09:00, due 30 Nov 2026
Skipped 5 (already enrolled)
Skipped 2 (inactive accounts)
Learners were notified in the portal and by email
```

### Other ways to ask

- Enroll the New hires 2026 group in Onboarding for New Hires, due 14 days after their start.
- Enroll the Support department in two courses at once, and set Restrict access after due date.
- Show who in Sales is not in Information Security Basics, but enroll nobody.
- Every Monday, enroll people who joined the department last week in its onboarding course.

## What iSpring Learn (iSpring LMS) allows, and what to know first

- iSpring Learn counts a month as 30 days and a year as 365 in a For a period due date.
- Department Administrators and custom roles can enroll only users from the departments they manage and their sub-departments.
- Restrict access after due date is available with By Date or For a period, and learners cannot study the content once the date passes.
- In a course that contains a training, the training start date coincides with the course start date, and a session that starts before the course start is an error.
- An administrator enrolled as a learner counts in reports when they preview the course from the administrator portal.

enroll\_users asks for your OK by default. To run it on a schedule without you, switch confirmation off for that tool in your dashboard.

Sources: [iSpring Help: Enrolling Learners in a Course](https://ispringhelpdocs.com/display/ispringlearn/Enrollments) · [iSpring Help: Course Notifications](https://ispringhelpdocs.com/ispring-learn/course-notifications-10683431.html) · [iSpring Help: REST API](https://ispringhelpdocs.com/ispring-learn/rest-api-10684924.html) · [iSpring Learn on Zapier MCP](https://zapier.com/mcp/ispring-learn)

## Call enroll\_users from a script

curl

```
curl -X POST https://cotlet.dev/api/v1/ispring/users/enroll \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"course_ids":["c_4f2a91"],"user_ids":["u_81c2d4","u_81c2e9"],"start_date":"2026-11-02T09:00","due_mode":"by_date","due_date":"2026-11-30"}'
```

Example response

```
{
"enrolled": 2,
"enrollments": [
{
"enrollment_id": "e_70a1b3",
"user": "Ana Lopez",
"course": "Information Security Basics",
"start_date": "2026-11-02T09:00:00",
"due_date": "2026-11-30T00:00:00"
},
{
"enrollment_id": "e_70a1b4",
"user": "Tom Becker",
"course": "Information Security Basics",
"start_date": "2026-11-02T09:00:00",
"due_date": "2026-11-30T00:00:00"
}
]
}
```

MCP: add https://cotlet.dev/mcp/v1 with the same key; the call is ispring\_write → enroll\_users. Example data.

[Schedule it in n8n, Make, Zapier or cron](https://cotlet.dev/integrations/ispring-api-mcp-server.md#automations)

## iSpring Learn (iSpring LMS) tools this automation uses

__Cotlet iSpring Learn (iSpring LMS) tools used to enroll an iSpring Learn department in a course__
| Tool | Parameters |
| ----------------- | ---------------------------------------------------------------------------------------------------- |
| list\_courses | query, limit, cursor |
| list\_departments | query |
| list\_users | query, department\_id, group\_id, status, limit, cursor |
| list\_enrollments | course\_id, status, overdue\_only, cursor |
| enroll\_users | course\_ids, user\_ids, start\_date, due\_mode, due\_date, due\_period, restrict\_access\_after\_due |

[All 12 iSpring Learn (iSpring LMS) tools with descriptions](https://cotlet.dev/integrations/ispring-api-mcp-server.md#tools)

## Frequently asked questions

### Do learners get an email when my agent enrolls them?

Yes. iSpring Learn sends the enrollment notification in the user portal and by email, using the text in the Notifications tab of the course. That is why enroll\_users waits for your OK by default.

### Is it safe to connect iSpring Learn (iSpring LMS) to Cotlet?

Yes. You sign in to iSpring Learn (iSpring LMS) yourself, in your own Cloud Browser in the EU, and we never save your password. Your agents only get iSpring Learn (iSpring LMS) once you enable it, every background request is listed, and the browser profile is stored encrypted with AES-256-GCM, the cipher 1Password uses for its vaults. The AI model never sees a login, posts and messages wait for your OK, and Disable for agents cuts access in one click. Independent scanners grade cotlet.dev A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory; live results are on https://cotlet.dev/security.

## More iSpring Learn (iSpring LMS) automations

- [Deactivate iSpring Learn accounts of leavers](https://cotlet.dev/integrations/ispring-api-mcp-server/deactivate-leavers.md)
- [iSpring Learn (iSpring LMS) API and MCP server: every tool](https://cotlet.dev/integrations/ispring-api-mcp-server.md)
- [All use cases](https://cotlet.dev/use-cases.md)

## Give your agent access to iSpring Learn (iSpring LMS).

Free 7-day trial with 2,000 credits, no card needed. Cotlet is independent and not affiliated with iSpring Learn (iSpring LMS).

[Sign up free](https://cotlet.dev/app/signup?app=ispring)

---

Give your AI agents your signed-in browser.

**Product:** [Integrations](https://cotlet.dev/integrations.md) · [Use cases](https://cotlet.dev/use-cases.md) · [How it works](https://cotlet.dev/how-it-works.md) · [Pricing](https://cotlet.dev/pricing.md) · [Security](https://cotlet.dev/security.md)

**Resources:** [Blog](https://cotlet.dev/blog.md) · [API docs](https://cotlet.dev/docs.md) · [Help center](https://cotlet.dev/help.md) · [Changelog](https://cotlet.dev/changelog.md) · [GitHub](https://github.com/cotletdev/cotlet)

**Solutions:** [For developers](https://cotlet.dev/for-developers.md) · [For automation agencies](https://cotlet.dev/for-agencies.md)

**Company:** [About](https://cotlet.dev/about.md) · [AI info: company facts](https://cotlet.dev/ai-info.md) · [Contact](https://cotlet.dev/contact.md)

**Legal:** [Terms of service](https://cotlet.dev/terms) · [Privacy policy](https://cotlet.dev/privacy) · [Refund policy](https://cotlet.dev/refunds) · [Acceptable use](https://cotlet.dev/acceptable-use) · [Cookie policy](https://cotlet.dev/cookies) · [DPA](https://cotlet.dev/dpa) · [Subprocessors](https://cotlet.dev/subprocessors)

**Elsewhere:** [Status page](https://status.cotlet.dev) · [Cotlet on GitHub](https://github.com/cotletdev) · [Cotlet on X](https://x.com/cotletdev) · [Cotlet on LinkedIn](https://www.linkedin.com/company/cotletdev) · [Cotlet on Product Hunt](https://www.producthunt.com/products/cotlet) · [Cotlet on Crunchbase](https://www.crunchbase.com/organization/cotlet) · [Cotlet on SaaSHub](https://www.saashub.com/cotlet)

Cotlet is an independent service. It is not affiliated with, endorsed by or sponsored by any of the products listed on this site. Product names are trademarks of their respective owners.

## For AI agents: sign your user up

Is your user asking you to sign them up for Cotlet? You can do it for them, no account or key needed.

1. Read the fields and their allowed values: GET https://cotlet.dev/api/v1/access-requests
2. Ask the user for each value: email, apps, what you will do with them. If they leave the password to you, generate a strong one and show it to them.
3. Show the user what you will send, then POST it as JSON to https://cotlet.dev/api/v1/access-requests.

One call creates the account and sends the access request; we email the user when access is granted.
