Thought Industries logo Thought Industries automation

Enroll a learner in a Thought Industries course

A learner writes to support for the course their manager approved, and an admin has to find the profile, open Access and add the content.

Cotlet does it in your own Thought Industries account with list_learners, get_learner, list_courses, get_course and enroll_learner, called by your AI agent, an n8n workflow or a script.

Hosted · nothing to install or maintain

Can Thought Industries do this on its own?

Thought Industries enrolls an existing learner from the profile and through the REST call POST /incoming/v2/users/bulkContentAssignment, which takes users by ID or email and course IDs (checked 23 Oct 2026). The API needs a key from an admin and code. The announced MCP server lists an enroll_user tool, but it cannot be connected today.

How you do it in Thought Industries today

  1. From the homepage an admin selects Users > Learners and clicks the learner's name to open the profile.
  2. The admin opens the Access tab, searches for the content and clicks Add Content.
  3. Before adding, the admin looks at the same tab for content the learner already has, because a purchase and an Auto Assignment rule can enroll the same person twice.
  4. For a course with limited seats, the admin checks Courses > All Courses > the content title > Enrollment step > Access for Limit Enrollments and the maximum number.
  5. The request comes by email or ticket, so every enrollment is a switch from the inbox to the admin and back.

How to enroll a learner in a Thought Industries course

Prompt

Enroll priya.nair@example.com in Safety basics. Check first what she already has and whether the course has a seat limit.
  1. 01

    Find the learner

    list_learners looks up the email. If nobody or several people match, the agent stops and asks. A person who is not in the platform yet goes through import_learners, with your OK.

  2. 02

    Read what they have

    get_learner returns the content on the Access tab. If the course is already there, the agent says so and enrolls nobody twice.

  3. 03

    Check the seats

    list_courses finds the course by title and get_course reads its Enrollment step. If enrollments are limited, the agent shows the maximum and asks before it adds one more person.

  4. 04

    Enroll

    enroll_learner adds the content to the learner's Access tab. The call waits for your OK by default, because the learner sees the course on their dashboard.

  5. 05

    Confirm

    The agent reads the profile again and reports the content now on the Access tab.

What you get back

Example data

Learner: Priya Nair (priya.nair@example.com)
Already had: Onboarding 101
Safety basics: no seat limit
Enrolled in Safety basics
Access tab now lists 2 courses

Other ways to ask

  • Enroll everyone on this list in Safety basics, one by one, and skip anyone who already has it.
  • Enroll Tom Becker in the June webinar if it still has a free seat.
  • Check which courses priya.nair@example.com has, but change nothing.

What Thought Industries allows, and what to know first

  • A course added by an admin shows in the Content Actions Log as an enrollment with the source manager_course_enrollment.
  • Enrollment limits and the waitlist setting belong to a session, so each session of a webinar has its own maximum.
  • Auto Assignment does not respect seat limits or waitlisting, and overlapping enrollments can occur when a rule and a purchase both apply.
  • Managers with permission to provision learner access see the Waitlisted Content container on the learner's Access tab, so the account behind this job needs that permission.

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

Sources: Thought Industries Help: Managing Learners in Panorama · Thought Industries Help: Waitlisting · Thought Industries Help: Auto Assignment · Thought Industries developer docs: Bulk Content Assignment

Call enroll_learner from a script

curl

curl -X POST https://cotlet.dev/api/v1/thought-industries/contents/4b1c2d3e-6a7b-4c8d-9e0f-1a2b3c4d5e6f/learner/enroll \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"learner":"priya.nair@example.com"}'

Example response

{
  "learner_id": "3f9a2b18-7c4d-4e2a-9b1f-0c5d6e7f8a90",
  "content_id": "4b1c2d3e-6a7b-4c8d-9e0f-1a2b3c4d5e6f",
  "title": "Safety basics",
  "status": "enrolled"
}

MCP: add https://cotlet.dev/mcp/v1 with the same key; the call is thought_industries_write → enroll_learner. Example data.

Schedule it in n8n, Make, Zapier or cron

Thought Industries tools this automation uses

Cotlet Thought Industries tools used to enroll a learner in a Thought Industries course
Tool Parameters
list_learners query, cursor
get_learner learner
list_courses query, cursor
get_course content_id
enroll_learner learner, content_id
All 11 Thought Industries tools with descriptions

Frequently asked questions

Is it safe to connect Thought Industries to Cotlet?

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

Give your agent access to Thought Industries.

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