Thought Industries automation · runs weekly
Weekly Thought Industries course completion report
Every Monday a manager asks who finished the compliance course, and an admin opens the Content Actions Log, sets the dates and pastes the rows into a message.
Cotlet does it in your own Thought Industries account with list_content_actions, 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?
The Content Actions Log is a default report in Reporting, the REST API serves the same events through GET /v2/events/courseAction, and the BI Connector feeds Tableau, Power BI and Looker (checked 23 Oct 2026). Each one needs a person to run the report or a developer to write the call. The announced MCP server cannot be connected today.
How you do it in Thought Industries today
- An admin opens Reporting > Reports and, in the Learner Actions section, clicks Content Actions Log. The report generates by itself.
- The admin sets filters: any date range, client, content, learner, type, source and course group, then clicks Update in the top right.
- Completions are rows with type status_change and source course_completed. Certificates are rows with type certificate_grant.
- To share the result, the admin downloads the report as CSV or JSON and filters it again in a spreadsheet.
- The steps repeat every week with new dates, and lost access hides in the same log under the type revoked_access, where it is easy to miss.
How to weekly Thought Industries course completion report
Every Monday, list who completed a course last week in Thought Industries, count completions per course and tell me who lost access. - 01
Set the window
list_content_actions runs with since set to last Monday and until set to Sunday, filtered to type status_change and source course_completed. You can name one course or one Panorama to narrow it.
- 02
Read every page
The agent follows the cursor until it comes back empty, so a busy week is counted whole and not from the first page.
- 03
Add certificates
A second call with type certificate_grant shows who earned one. Completions with no certificate row are listed, because a course may not issue one.
- 04
Check lost access
A third call with type revoked_access names the learners who lost a course this week, so a completion count is not read next to learners who can no longer open it.
- 05
Group and report
The agent counts per course and per Panorama and lists emails only for the course you ask about. It sends nothing to anyone, so the call needs no approval.
What you get back
Week 12 to 18 Oct
Completed: 9 (Safety basics 6, Onboarding 101 3)
Certificates granted: 7
Completed without a certificate: 2 (Onboarding 101)
Access revoked: 1 (tom.becker@example.com, Safety basics) Other ways to ask
- Every Friday, list who enrolled by purchase and who was enrolled by a manager.
- Show everyone in the Retail Panorama who started Safety basics and has not completed it.
- List all certificate grants this month as a table I can paste into a spreadsheet.
What Thought Industries allows, and what to know first
- The Content Actions Log lists enrollments, status changes, certificate grants and access revocations, with the types enrollment, status_change, certificate_grant and revoked_access.
- Each row shows the learner email, Panorama name, content type, content title, type, source and timestamp.
- Every source belongs to one type. Examples: course_started and course_completed for status_change, manager_course_enrollment and course_purchase for enrollment.
- Auto Assignment enrollments appear with the source auto_enrollment, and automatic unenrollments with auto_unenrollment.
Every tool here only reads, so it can run weekly from n8n, Make, Zapier or cron without waiting for your OK.
Sources: Thought Industries Help: Generating a Content Actions Log Report · Thought Industries Help: Auto Assignment · Thought Industries developer docs: REST API
Call list_content_actions from a script
curl "https://cotlet.dev/api/v1/thought-industries/content-actions?since=2026-10-12&until=2026-10-18&type=status_change&source=course_completed" \
-H "Authorization: Bearer $COTLET_API_KEY" {
"actions": [
{
"email": "priya.nair@example.com",
"panorama": "Retail",
"content_type": "course",
"content_title": "Safety basics",
"type": "status_change",
"source": "course_completed",
"timestamp": "2026-10-13T14:02:00.000Z"
},
{
"email": "sam.okafor@example.com",
"panorama": "Field",
"content_type": "course",
"content_title": "Safety basics",
"type": "status_change",
"source": "course_completed",
"timestamp": "2026-10-15T09:41:00.000Z"
}
],
"next_cursor": null
} MCP: add https://cotlet.dev/mcp/v1 with the same key; the call is thought_industries_read → list_content_actions. Example data.
Schedule it in n8n, Make, Zapier or cronThought Industries tools this automation uses
| Tool | Parameters |
|---|---|
| list_content_actions | since, until, type, source, content, learner, panorama, cursor |
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.