[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)

# Chase overdue Absorb LMS training

> Find overdue Absorb LMS learners in an Online Course and send them a reminder after your OK. Runs weekly from Claude Code, n8n or a script.

Source: https://cotlet.dev/integrations/absorb-lms-api-mcp-server/chase-overdue-training

A compliance course passes its due date and a few learners have not finished, so an admin opens the report, filters, selects the right rows and writes the same reminder again.

Cotlet does it in your own Absorb LMS account with list\_courses, list\_course\_activity and message\_users, called by your AI agent, an n8n workflow or a script.

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

Hosted · nothing to install or maintain

## Can Absorb LMS do this on its own?

Absorb has the filters and the message workspace in the Course Activity Report (checked 20 Oct 2026), and its Message Templates send automatic emails on action triggers. Chasing the late learners of several courses in one pass is manual, one course at a time. The Aura MCP can answer a question about learners but takes no action.

## How you do it in Absorb LMS today

1. Open the Course Activity Report in the Reports tab and pick the course from the Course drop-down.
2. Filter Completion to Not Started or In Progress and Is Overdue to Yes, as Absorb recommends for finding overdue learners.
3. Select the rows and choose Message User(s) to open the message workspace.
4. Write the subject and text, and send.
5. Repeat for every course with a due date, because the report works on one course at a time.

## How to chase overdue Absorb LMS training

Prompt

```
Every Monday, find learners in Warehouse Safety Basics who are overdue and not finished, and message them that it is due. Show me the list first.
```

1. 01  
### Find the courses  
Your agent calls list\_courses with type online\_course and status active, since the Course Activity Report only covers Active Online Courses, and keeps the ones you named or all of them.
2. 02  
### Read who is late  
For each course, list\_course\_activity runs with overdue true and completion not\_started or in\_progress. Overdue means the due date passed, whatever the completion status, so the completion filter is what removes finished learners.
3. 03  
### Group and draft  
The agent groups late learners by course and department, and drafts one message per course with its title and due date. It shows you the list before anything is sent.
4. 04  
### Send after your OK  
message\_users sends each draft to its group. You confirm every call until you switch confirmation off for this tool.

### What you get back

Example data

```
Warehouse Safety Basics, due 19 Oct 2026
Overdue and not finished: 2
- Omar Haddad, Not Started, 0%
- Dana Reyes, In Progress, 80%
Message "Warehouse Safety Basics is overdue" sent to both after your OK.
```

### Other ways to ask

- Only message learners at 0% progress, and just list the ones who started.
- List overdue learners for every active Online Course by department, send nothing.
- Message the department managers instead of the learners.

## What Absorb LMS allows, and what to know first

- In the Course Activity Report, Overdue is calculated strictly from the Due Date in the course's Settings > Availability, independent of completion status.
- The Course Activity Report covers Active Online Courses only, so Instructor Led Courses and Curricula need the Course Enrollments report.
- Inactive users cannot take part in or record new training, so a reminder to them does nothing.
- Absorb shows the message workspace from the report, and which Message actions you see depends on your Admin role.

message\_users asks for your OK by default. To run it weekly without you, switch confirmation off for that tool in your dashboard.

Sources: [Absorb Help: Course Activity Report](https://support.absorblms.com/hc/en-us/articles/360063832253-Course-Activity-Report) · [Absorb Help: Message Templates](https://support.absorblms.com/hc/en-us/articles/1500006359441-Message-Templates) · [Absorb Help: October 2026 Aura Release](https://support.absorblms.com/hc/en-us/articles/55635088123667-October-2026-Aura-Release-Connect-Aura-with-Claude-and-ChatGPT)

## Call message\_users from a script

curl

```
curl -X POST https://cotlet.dev/api/v1/absorb-lms/users/message \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"user_ids":["9b7e5d10-2c44-4f0b-8a31-6e2f9c4d7702","4f1c2a7e-8b3d-4c1a-9e55-0a6d3b7c1201"],"subject":"Warehouse Safety Basics is overdue","body":"Your Warehouse Safety Basics course was due on 19 Oct. Please finish it this week."}'
```

Example response

```
{
"sent_to": [
{
"user_id": "9b7e5d10-2c44-4f0b-8a31-6e2f9c4d7702",
"name": "Omar Haddad"
},
{
"user_id": "4f1c2a7e-8b3d-4c1a-9e55-0a6d3b7c1201",
"name": "Dana Reyes"
}
],
"subject": "Warehouse Safety Basics is overdue"
}
```

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

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

## Absorb LMS tools this automation uses

__Cotlet Absorb LMS tools used to chase overdue Absorb LMS training__
| Tool | Parameters |
| ---------------------- | ------------------------------- |
| list\_courses | query, type, status, limit |
| list\_course\_activity | course\_id, completion, overdue |
| message\_users | user\_ids, subject, body |

[All 14 Absorb LMS tools with descriptions](https://cotlet.dev/integrations/absorb-lms-api-mcp-server.md#tools)

## Frequently asked questions

### Is it safe to connect Absorb LMS to Cotlet?

Yes. You sign in to Absorb LMS yourself, in your own Cloud Browser in the EU, and we never save your password. Your agents only get Absorb 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 Absorb LMS automations

- [Approve Absorb LMS course enrollment requests](https://cotlet.dev/integrations/absorb-lms-api-mcp-server/approve-course-enrollment-requests.md)
- [Enroll new hires in Absorb LMS onboarding courses](https://cotlet.dev/integrations/absorb-lms-api-mcp-server/enroll-new-hires-in-onboarding.md)
- [Absorb LMS API and MCP server: every tool](https://cotlet.dev/integrations/absorb-lms-api-mcp-server.md)
- [All use cases](https://cotlet.dev/use-cases.md)

## Give your agent access to Absorb LMS.

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

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

---

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.
