Skip to content
Elaichi Elaichi

HRIS

360learning

Connect 360learning once and hand every teammate a governed MCP endpoint with 156 tools ready to call from Claude, ChatGPT, Cursor, or any MCP client, inside the same permissions they already have, with every call checked and logged.

360learning

See it in Elaichi

What connecting 360learning gets you

6 screens from the product, each doing one job for your 360learning account.

The agent

Ask 360learning questions, get live answers.

Ask about certificates, classrooms and registrations in plain language and get answers from live records.

  • certificate outlines
  • classrooms
  • classroom slots
  • registrations

Ask Elaichi to work across your apps.

Which classrooms have open registrations this month?

List certificate outlines updated in the last week.

Show classroom slot attendance for last week's sessions.

Also runs in Claude, ChatGPT or Cursor

MCP clients

One endpoint, every client, no shared keys.

Connect Claude, ChatGPT or Cursor to 360learning through one governed org endpoint.

Claude ChatGPT Cursor

Copy the endpoint

https://api.elaichi.ai/mcp
Client Connected by Status Last used
Claude
E

Emma Laurent

• Connected 4 minutes ago
Cursor
S

Sofia Ricci

• Connected 2 hours ago
ChatGPT
C

Clara Nowak

• Connected Yesterday

Tool catalogue

156 360learning tools, ready with no code.

Browse every 360learning tool, resource and method available without writing integration code.

  • list_all_360_learning_certificate_outlines
  • create_a_360_learning_certificate_outline
  • update_a_360_learning_certificate_outline_by_id
  • delete_a_360_learning_certificate_outline_by_id
Tool Resource Method Description
list_all_360_learning_certificate_outlines 360_learning_certificate_outlines list List all certificate outlines in 360learning, optionally filtered by createdAt or groupId using LHS bracket notation. Returns: id, createdAt.
create_a_360_learning_certificate_outline 360_learning_certificate_outline create Create a new certificate outline in 360learning. Returns the created certificate outline including id, groupId, createdAt, and wording.
update_a_360_learning_certificate_outline_by_id 360_learning_certificate_outline update Update specific fields of an existing 360learning certificate outline by id. Fields not included in the request body remain unchanged. Returns the updated certificate outline including certificateOutlineId, groupId, createdAt, and wording. Required: id.
delete_a_360_learning_certificate_outline_by_id 360_learning_certificate_outline delete Delete a specific 360learning certificate outline by id. Returns an empty 204 response on success. Required: id.
list_all_360_learning_classrooms 360_learning_classrooms list List all classrooms in 360learning, with optional filtering by group, creation date, and modification date. Returns: id, createdAt. Page size of 500 classrooms.

Toolboxes

Every team gets its own 360learning toolbox.

Scope a distinct 360learning toolbox to each team so people only see what they need.

  • Learning & development
  • People operations
  • Compliance
  • Sales enablement
Name Source template Tools Created

Learning & development toolbox

360learning · certificate outlines and classrooms

360learning starter 18 Mar 4, 2026

People operations toolbox

360learning · registrations and attendance sheets

9 Mar 2, 2026

Compliance toolbox

360learning · certificate outlines and audit trails

24 Feb 27, 2026

Sales enablement toolbox

360learning · classroom slots and training schedules

360learning starter 6 Feb 19, 2026

IT toolbox

360learning · connections and access to 360learning

31 Jan 30, 2026

Finance toolbox

360learning · training spend and registration counts

12 Jan 22, 2026

Shared connections

Share 360learning access without sharing credentials.

See who connected each 360learning account and how many teams and members use it.

  • Learning EMEA
  • Learning Americas
  • Compliance
  • Sales Enablement
Connection Scope Status Access Created
36

360learning (Learning EMEA)

Connected by Emma Laurent

Personal • Active 1 team · 6 members Mar 4, 2026
36

360learning (Learning Americas)

Connected by James Whitfield

Organization • Active 3 teams · 24 members Mar 2, 2026
36

360learning (Compliance)

Connected by Sofia Ricci

Organization • Active 2 teams · 11 members Feb 27, 2026
36

360learning (Sales Enablement)

Connected by Daniel Ortega

Personal • Needs re-auth 1 team · 3 members Feb 19, 2026
36

360learning (People Ops)

Connected by Clara Nowak

Personal • Active Not shared Jan 30, 2026
36

360learning (Global Training)

Connected by Michael Brennan

Personal • Active 2 teams · 9 members Jan 22, 2026

Audit log

Every 360learning call, logged and attributable.

See when, who and what happened for every 360learning action in one audit log.

  • When
  • Who
  • What happened
  • Resource
When Who What happened Type Resource

2 minutes ago

Mar 6, 2026, 3:10 PM

E

Emma Laurent

[email protected]

Restriction Created Access Support team

8 minutes ago

Mar 6, 2026, 3:04 PM

J

James Whitfield

[email protected]

Restriction Updated Access Sales team

14 minutes ago

Mar 6, 2026, 2:58 PM

S

Sofia Ricci

[email protected]

Role Assigned Access Analyst

20 minutes ago

Mar 6, 2026, 2:52 PM

D

Daniel Ortega

[email protected]

360learning Users Updated MCP users

26 minutes ago

Mar 6, 2026, 2:46 PM

C

Clara Nowak

[email protected]

360learning Certificate outlines Created MCP certificate outlines

32 minutes ago

Mar 6, 2026, 2:40 PM

M

Michael Brennan

[email protected]

360learning Certificate outlines List Toolbox certificate outlines

Automations & dashboards

From answering questions to doing the work

A person no longer has to ask. A trigger starts the work, inside the same permissions and the same audit log as everything else. Automations and live dashboards ship on the Black plan.

Automations

360learning digests run themselves, people approve.

A schedule fetches classroom records, drafts a digest, and waits for approval before posting back.

360learning digest

Run 418 · started 2 minutes ago · on behalf of Emma Laurent

  1. Schedule

    Every weekday at 08:00

    0.2s
  2. Fetch certificate outlines

    360learning

    1.4s
  3. Group by owner

    Transform

    0.1s
  4. Draft the digest

    Agent step

    Ran with 4 tools, returned a structured summary

    6.2s
  5. Approve the digest

    Needs approval

    Assigned to Michael Brennan

    Approve
  6. Post the digest

    360learning

    Queued

Collections and dashboards

360learning metrics, refreshed without a model.

A 14 day chart and team breakdown of 360learning records refresh on a schedule automatically.

360learning health

Refreshed 4 minutes ago · every 15 minutes · from the certificate outlines collection

Live

Certificate outlines

1,284 ↓ 12%

Classrooms

96 ↓ 8%

Needs attention

3 ↑ 2

Updated this week

412 ↑ 9%

Certificate outlines created

Last 14 days

By workspace

Share of activity

Learning EMEA 34%

Learning Americas 27%

Compliance 21%

Sales Enablement 18%

AI tools

360learning tools for your AI agents

156 tools are ready to call through Elaichi's MCP endpoint the moment you connect 360learning, governed by the same roles, restrictions, and audit log as everything else in Elaichi.

list_all_360_learning_certificate_outlines

List all certificate outlines in 360learning, optionally filtered by createdAt or groupId using LHS bracket notation. Returns: id, createdAt.

create_a_360_learning_certificate_outline

Create a new certificate outline in 360learning. Returns the created certificate outline including id, groupId, createdAt, and wording.

update_a_360_learning_certificate_outline_by_id

Update specific fields of an existing 360learning certificate outline by id. Fields not included in the request body remain unchanged. Returns the updated certificate outline including certificateOutlineId, groupId, createdAt, and wording. Required: id.

delete_a_360_learning_certificate_outline_by_id

Delete a specific 360learning certificate outline by id. Returns an empty 204 response on success. Required: id.

list_all_360_learning_classrooms

List all classrooms in 360learning, with optional filtering by group, creation date, and modification date. Returns: id, createdAt. Page size of 500 classrooms.

create_a_360_learning_classroom

Create a classroom in 360learning. Returns: id, createdAt. Required: groupId.

get_single_360_learning_classroom_by_id

Get a single classroom in 360learning by id. Returns: id, createdAt. Required: id.

update_a_360_learning_classroom_by_id

Update specific fields of an existing classroom in 360learning; fields not included in the request payload remain unchanged. Returns: id, createdAt. Required: id.

list_all_360_learning_classroom_slots

List all slots in a 360learning classroom. Returns: createdAt. Required: classroom_id. Page size of 100 slots.

update_a_360_learning_classroom_slot_by_id

Edit specific fields of an existing classroom slot in 360learning. Fields not included in the request payload remain unchanged. Returns: createdAt. Required: classroom_id, id.

delete_a_360_learning_classroom_slot_by_id

Remove a classroom slot from a classroom in 360learning by its slot ID. Returns an empty 204 response on success. Required: classroom_id, id.

list_all_360_learning_classrooms_registrations

List all classroom registrations in 360learning. Returns: id, createdAt. Page size of 7,000 registrations per page.

list_all_360_learning_classroom_registrations

List all slot registrations for a classroom in 360learning. Returns: id, classroom_slot_id, user_id, status. Required: classroom_id. Paginated with a page size of 7,000 registrations.

create_a_360_learning_classroom_slot_attendance_sheet

Create an attendance sheet for a classroom slot in 360learning. Returns the created attendance sheet object as either an opened or closed attendance sheet. Required: classroom_slot_id. A maximum of 100 attendance sheets is allowed per classroom slot.

update_a_360_learning_classroom_slot_attendance_sheet_by_id

Replace an attendance sheet in a 360learning classroom slot by id. Returns the updated attendance sheet object including its id and sheet-specific attributes (shape varies for opened vs closed sheets). Required: classroom_slot_id, id.

delete_a_360_learning_classroom_slot_attendance_sheet_by_id

Delete an attendance sheet from a 360learning classroom slot by id. Returns an empty 204 response on success. Required: classroom_slot_id, id.

list_all_360_learning_attendance_sheet_attendances

List all learner attendances in 360learning for a given classroom slot and attendance sheet. Returns a paginated array of attendance records (AttendanceDTO objects) with a page size of 3,000. Required: classroom_slot_id, attendance_sheet_id.

list_all_360_learning_classroom_slot_waitlists

List all waitlist requests in a 360learning classroom slot. Returns: userId. Required: classroom_slot_id.

create_a_360_learning_classroom_slot_waitlist

Add a user to a 360learning classroom slot waitlist. The classroom slot must be full and not yet started. Returns an empty 204 response on success. Required: classroom_slot_id, user_id.

delete_a_360_learning_classroom_slot_waitlist_by_id

Remove a user from a 360learning classroom slot waitlist. Returns an empty 204 response on success. Required: classroom_slot_id, id.

create_a_360_learning_classroom_slot_registration

Register a user to a 360learning classroom slot. Returns the created slot registration including userId, hasAttended, status, createdAt, and modifiedAt. Required: classroom_slot_id, user_id. The user must be enrolled in the classroom slot's path session, and the slot must not be full.

update_a_360_learning_classroom_slot_registration_by_id

Update specific fields of a classroom slot registration in 360learning. Fields not included in the request body remain unchanged. Returns the updated registration including id, userId, status, hasAttended, createdAt, and modifiedAt. Required: classroom_slot_id, id.

delete_a_360_learning_classroom_slot_registration_by_id

Unregister a user from a classroom slot in 360learning. Returns an empty 204 response on success. Required: classroom_slot_id, id.

list_all_360_learning_classroom_slot_registrations

List all users registered to a classroom slot in 360learning. Returns: id, createdAt. Required: classroom_slot_id. Paginated with a page size of 7,000 registrations.

get_single_360_learning_course_by_id

Get a single 360Learning course by id. Returns: id, createdAt, type. Required: id.

list_all_360_learning_courses

List all courses in 360Learning with optional filters by status, type, author, group, creation/modification date, tags, co-authors, source language, and collaborative learning flag. Returns: id, createdAt, type. Page size is 500 courses.

360_learning_courses_archive

Archive or restore a 360learning course. Returns: id, status, type, createdAt, modifiedAt, authorId, groupId, originalAuthorId, tagIds, coAuthorIds, sourceLang, collaborativeLearning. Required: course_id. Archiving prevents the course from being added to new paths but keeps it accessible in existing paths; statistics are not deleted.

update_a_360_learning_courses_elearning_standard_by_id

Update specific fields of an existing eLearning standard (SCORM, AICC, xAPI) course in 360Learning. Fields omitted from the request body remain unchanged. Returns the updated course including id, groupId, and duration. Required: id (courseId). Not for native 360Learning courses; rate limited to 1 request per second.

create_a_360_learning_courses_generate_from_prompt

Trigger asynchronous generation of a 360learning course from a text prompt. An email notification is sent when generation completes; retrieve the course via GET /courses sorted by created_at. Required: prompt, userId, groupId. Returns an empty 200 response on success.

list_all_360_learning_courses_stats

List all courses statistics in 360learning. Returns: courseId, userId, completedAt. Page size of 500 course attempt statistics per page.

list_all_360_learning_custom_fields

List all custom fields in 360learning with optional filtering by name, targetType, and type. Returns: id, name, targetType, type. Page size of 1,000 custom fields.

create_a_360_learning_custom_field

Create a custom field in 360learning. Returns: id, targetType, type, name. Required: name, targetType, type.

update_a_360_learning_custom_field_by_id

Update an existing custom field in 360learning. Returns: id, targetType, type, name. Required: id. Fields not included in the payload remain unchanged.

delete_a_360_learning_custom_field_by_id

Delete a custom field in 360learning by id. Returns an empty 204 response on success. Required: id.

list_all_360_learning_custom_field_authorized_values

List all authorized values for a specific custom field in 360learning. Returns an array of authorized value strings, which may be date strings in YYYY-MM-DD format or plain string values depending on the custom field type. Required: custom_field_id.

360_learning_custom_field_authorized_values_bulk_update

Replace all authorized values for a 360Learning custom field, removing any existing values not included in the request body. Returns an array of the updated authorized value strings (YYYY-MM-DD dates for date-type fields, or arbitrary strings for string-type fields). Required: custom_field_id.

list_all_360_learning_custom_links

List all custom links in 360Learning. Returns an array of custom link objects including id, name, and type. Page size is 1,000.

create_a_360_learning_custom_link

Create a custom link in 360Learning. Returns the created custom link object including id, name, and type. Required: name, type. The name and type must each be unique across all custom links.

update_a_360_learning_custom_link_by_id

Replace a custom link in 360Learning by id. Fields not included in the payload are removed. Returns the updated custom link object including id, name, and type. Required: id, name, type. The name and type must each be unique across all custom links.

delete_a_360_learning_custom_link_by_id

Delete a custom link in 360Learning by id. Returns an empty 204 response on success. Required: id.

list_all_360_learning_external_ids

List all external ID mappings in 360learning that link resources together. Returns: id, type. Page size of 5,000. Optional filters on platform, type, value, and targetId using LHS bracket notation.

create_a_360_learning_external_id

Create an external ID mapping in 360learning. Returns: id, type. Required: platform, type, value, targetId. A 400 is returned if a mapping already exists for the resource on this platform, the platform name is reserved, or the value is already used by another resource.

update_a_360_learning_external_id_by_id

Replace an existing external ID mapping in 360learning by id. Returns: id, type. Required: id, platform, type, value, targetId. A 404 is returned if the mapping ID does not exist.

delete_a_360_learning_external_id_by_id

Delete an external ID mapping in 360learning by id. Returns an empty 204 response on success. Required: id. A 404 is returned if the mapping ID does not correspond to any existing mapping.

list_all_360_learning_groups

List all groups in 360Learning. Returns: id. Page size of 500 groups.

get_single_360_learning_group_by_id

Get a single 360Learning group by id. Returns: id. Required: id.

update_a_360_learning_group_by_id

Edit specific fields of an existing 360Learning group; fields not included in the request payload remain unchanged. Returns the updated group including id, parentId, isPublic, subdomain, customUrl, imprint, moderationCharter, privacyPolicy, termsOfUse. Required: id.

delete_a_360_learning_group_by_id

Delete a 360Learning group by id. Returns an empty 204 response on success. Required: id.

360_learning_groups_add_user_role

Add a role to a user in a 360Learning group. Returns an empty 204 response on success. Required: group_id, role (one of admin, analyst, coach, contributor, editor, learner, user-admin), user_id.

360_learning_groups_remove_user_role

Remove a user's role from a group in 360learning. When removing the `learner` role, it is also removed from all public subgroups down to the first private excluded. Returns an empty 204 response on success. Required: group_id, role, user_id.

create_a_360_learning_group

Add a user's role in a 360learning group. Returns an empty 204 response on success. Required: id (the group ID), role, user_id.

list_all_360_learning_group_roles

List all memberships (user-role assignments) in a 360Learning group, sorted per user. Returns: userId, role. Required: group_id. Page size of 1,000 memberships.

list_all_360_learning_group_catalogs

List all content IDs of a given type shared in a 360Learning group catalog. Returns a paginated array of content ID strings in ObjectId format. Required: group_id, content_type. Paginated with a page size of 10,000 content IDs.

list_all_360_learning_group_libraries

List all content IDs of a given type shared in a 360learning group library. Returns an array of unique content IDs, each an ObjectId string (e.g. 507f1f77bcf86cd799439011). Required: group_id, content_type. Page size of 10,000 content IDs per page.

360_learning_group_brandings_bulk_update

Update the branding for a 360Learning group by group_id. Returns: id. Required: group_id. Branding is inherited by subgroups unless a subgroup defines its own branding; without the Extended Training package, only the root group's branding can be updated.

list_all_360_learning_integrations

List integration configurations in 360learning. Returns one page of integration configurations including id, externalPlatform, groupId, and authorId. Max 100 per page.

create_a_360_learning_integration

Create a new integration configuration in 360learning, or reactivate an existing inactive one. Returns the created integration configuration including id, externalPlatform, groupId, and authorId.

update_a_360_learning_integration_by_id

Update specific fields of an existing 360learning integration configuration by id. Fields omitted from the request body remain unchanged. Returns: id. Required: id.

delete_a_360_learning_integration_by_id

Delete a 360learning integration configuration by id, archiving all its related content. Returns an empty 204 response on success. Required: id.

get_single_360_learning_integration_course_by_id

Get a specific 360Learning integration course by id. Returns the course object including id, group_id, and created_at. Required: integration_id, id.

360_learning_integration_courses_bulk_update

Bulk upsert external courses in 360Learning, adding or replacing courses matched by their externalId for a given integration. The request is queued and processed asynchronously (up to 10,000 objects per call). Returns an empty 202 response with a Location header URL for polling the bulk operation status. Required: integration_id.

360_learning_integration_courses_bulk_delete

Archive multiple external courses in bulk in 360Learning by integration ID. Processes up to 1,000 objects asynchronously and returns a 202 with a Location header URL to poll the bulk operation status. Required: integration_id.

list_all_360_learning_learning_needs

List all learning needs in your 360Learning platform. Returns: id, createdAt, updatedAt. Page size of 500 learning needs.

create_a_360_learning_oauth_2_token

Create an OAuth2 access token in 360Learning using the client_credentials grant. Returns: access_token, token_type, expires_in. Required: grant_type, client_id, client_secret. The token is valid for 1 hour.

list_all_360_learning_paths_sessions

List all path sessions in 360learning across your platform. Returns: sessionId, pathId, createdAt, modifiedAt, startDate, endDate. Does not return session translations; use the Retrieve a path session endpoint for those. Page size of 500.

list_all_360_learning_paths_stats

List all user statistics for all paths in 360learning. Returns one page of path user statistics including pathId, userId, status, and completedAt. Page size is 2,000 records. All filter parameters are optional and use LHS bracket notation.

create_a_360_learning_paths_add_token

Add tokens to a specific group for a given path in 360Learning. Returns an empty 204 response on success. Required: pathId, groupId.

create_a_360_learning_path

Create a new learning path in 360Learning. Returns the created path object including its id, groupId, certificateId, and createdAt.

update_a_360_learning_path_by_id

Update specific fields of an existing 360learning path by id. Fields not included in the request body remain unchanged. Returns the updated path object. Required: id.

delete_a_360_learning_path_by_id

Delete a 360learning path by id. Returns an empty 204 response on success. Required: id. A path cannot be deleted if it is used as a step or requirement in at least one other path (returns a 409 conflict).

360_learning_paths_archive

Archive or restore a path in 360learning. Returns the updated path object. Required: path_id. A path with running sessions cannot be archived.

create_a_360_learning_path_session

Create a path session for a specific path in 360Learning. Returns the created session information including startDate, endDate, pathId, mainInstructorId, and instructorIds. Required: path_id.

update_a_360_learning_path_session_by_id

Update a 360learning path session by editing specific fields; omitted fields remain unchanged. Returns the updated session including id, groupId, startDate, and endDate. Required: path_id, id.

delete_a_360_learning_path_session_by_id

Delete a 360learning path session by id. Returns an empty 204 response on success. Required: path_id, id.

delete_a_360_learning_session_self_enrollment_by_id

Archive a self-enrolled learner from a 360learning path session. Returns an empty 204 response on success. Required: path_id, session_id, id (the learner's user ID). Learners enrolled through the Audience Builder cannot be archived here — unassign them by updating the session audience's excludedLearners instead.

list_all_360_learning_path_enrollments

List all enrollments for a given learning path in 360learning. Returns: id, createdAt. Required: path_id. Paginated with a page size of 5,000 enrollments.

list_all_360_learning_session_audiences

Retrieve a path session audience in 360learning given the path ID and session ID. Returns the session audience object with its audience builder configuration, mode, and filter settings as defined by the upstream SessionAudienceDTO schema. Required: path_id, session_id.

360_learning_session_audiences_bulk_update

Replace the audience for a path session in 360learning. Audiences not included in the request body are removed. Returns the updated session audience object with its audience builder configuration, mode, and filter settings. Required: path_id, session_id.

list_all_360_learning_session_user_statuses

Retrieve aggregated metrics for a 360Learning path session, including counts of users by session status and total certificates issued. Returns: attributes containing the aggregated session statistics. Required: path_id, session_id.

list_all_360_learning_session_user_stats

List all user statistics for a 360learning path session. Returns: userId. Required: path_id, session_id. Paginated with a page size of 2,000 user statistics.

update_a_360_learning_path_child_session_by_id

Update a child path session in 360Learning. Returns the updated child session including id, startDate, endDate, and pathId. Required: path_id, id.

360_learning_path_translations_bulk_update

Replace all translations for a 360learning path, removing any translations not included in the request body. Returns the updated path translations as an array of translation objects. Required: path_id. The default language translation cannot be removed or unpublished.

list_all_360_learning_projects

List all live projects in your 360learning platform. Returns a paginated array of project objects, one page per request. Page size is 500 projects per page.

list_all_360_learning_skills_powers

List all powers in 360Learning, paginated at 500 per page. Returns: id. Optional LHS-bracket filters available on skillId, status (toAssess, pendingValidation, validated), and userId.

list_all_360_learning_skills

List all skills in your 360learning platform, optionally filtering by status and updatedAt. Returns: id, status, updatedAt, createdAt. Paginated with a fixed page size of 500 skills.

360_learning_user_jobs_bulk_update

Replace all jobs for a 360learning user with the provided ones; any jobs not included are removed. Returns the current list of job identifiers as an array of strings. Required: user_id. A maximum of 100 jobs is allowed per user.

list_all_360_learning_tags

List all tags in your 360learning platform. Returns: id, name. Page size of 5,000 tags.

create_a_360_learning_tag

Create a tag in 360learning with the given name. Returns: id, name. Required: name.

get_single_360_learning_tag_by_id

Retrieve a single tag in 360learning by its id. Returns: id, name. Required: id.

update_a_360_learning_tag_by_id

Replace an existing 360learning tag by id. Fields not included in the payload remain unchanged. Returns: id, name. Required: id.

delete_a_360_learning_tag_by_id

Delete a 360learning tag by its unique ObjectId. Returns an empty 204 response on success. Required: id.

list_all_360_learning_users

List all 360learning users in your platform, paginated at 500 per page. Returns: userId, firstName, lastName, mail, username, status, createdAt, toBeDeactivatedAt, primaryGroupId. Filterable by mail, username, and status.

create_a_360_learning_user

Create a new invited user in 360learning; if a previously deleted user with the same mail or username exists, their account is restored to invited status. Returns: userId, firstName, lastName, mail, username, status, createdAt, toBeDeactivatedAt, primaryGroupId. Required: at least one of mail or username in the request body.

get_single_360_learning_user_by_id

Get a single 360learning user by id. Returns: userId, firstName, lastName, mail, username, status, createdAt, toBeDeactivatedAt, primaryGroupId. Required: id.

update_a_360_learning_user_by_id

Update specific fields of an existing 360learning user; omitted fields remain unchanged. Returns: userId, firstName, lastName, mail, username, status, createdAt, toBeDeactivatedAt, primaryGroupId. Required: id.

delete_a_360_learning_user_by_id

Delete a 360learning user by id. Returns an empty 204 response on success. The company owner cannot be deleted.

360_learning_users_activate

Activate a specific user in 360learning by their unique user ID. Returns the activated user object including userId, firstName, lastName, and mail. Required: user_id. If the user was previously deleted, it must be recreated before it can be activated.

create_a_360_learning_user_manager

Add a manager to a user in 360learning. Returns an empty 204 response on success. Required: user_id, manager_id.

delete_a_360_learning_user_manager_by_id

Remove a manager from a user in 360learning. Returns an empty 204 response on success. Required: user_id, id.

list_all_360_learning_user_managers

List all manager IDs assigned to a user in 360learning. Returns an array of manager IDs as ObjectId strings. Required: user_id. Page size of 1,000 manager IDs.

list_all_360_learning_user_custom_links

List all custom user links for a 360learning user. Returns: id. Required: user_id. Paginated with a page size of 1,000 custom links.

create_a_360_learning_user_custom_link

Create a custom user link for a 360learning user by associating a custom link with the user. Returns: id. Required: user_id, customLinkId.

update_a_360_learning_user_custom_link_by_id

Replace a custom user link for a 360learning user with the provided data. Returns: id. Required: user_id, id, customLinkId.

delete_a_360_learning_user_custom_link_by_id

Delete a specific custom user link for a 360learning user by id. Returns an empty 204 response on success. Required: user_id, id.

list_all_360_learning_user_certificates

List all certificates for a specific user in 360learning. Returns: id. Required: user_id. Page size of 1,000 certificates.

create_a_360_learning_user_certificate

Import an external certificate for a specific user in 360learning. Returns: id. Required: user_id, certificateOutlineId, deliveryDate. The expiry date cannot be set if the related certificate outline has a validity period.

list_all_360_learning_user_subordinates

List all subordinate user IDs for a given 360learning user. Returns an array of subordinate user IDs as ObjectId strings. Required: user_id. Paginated with a page size of 1,000 subordinate IDs.

list_all_360_learning_certificate_pdfs

Download a certificate PDF file for a specific user in 360Learning. Returns: data (the binary PDF file content). Required: user_id, certificate_id.

list_all_360_learning_user_roles

List all group memberships (roles) for a specific user in 360Learning, sorted per group. Returns: groupId, role, userId. Required: user_id. Page size of 1,000 memberships.

360_learning_user_pseudonymizes_bulk_update

Pseudonymize a previously deleted 360learning user by replacing personal data (firstName, lastName, mail, username) with irreversible random alphanumeric strings while preserving the user ID. Returns the pseudonymized user object including id, firstName, lastName, mail, and username. Required: user_id. The user must already be deleted; a 400 error is returned otherwise.

360_learning_user_passwords_bulk_update

Replace the password of a 360Learning user. If passwordMustBeChanged is set to true, the user will be forced to change their password on the next login. Returns an empty 204 response on success. Required: user_id, password.

360_learning_certificates_privacy_levels_bulk_update

Update the privacy level of specified certificates for a 360Learning user. Returns an empty response on success. Required: user_id.

360_learning_groups_catalogs_bulk_create

Bulk add multiple content IDs of a given type to 360Learning group catalogs. Processes up to 20,000 objects asynchronously; returns a 202 response with a Location header URL to poll the bulk operation status.

360_learning_groups_catalogs_bulk_delete

Bulk-remove multiple content IDs of a given type from groups catalogs in 360learning. The request is queued and processed asynchronously (up to 20,000 objects); a 202 response returns a Location header URL for polling the bulk operation status. Returns an empty 202 response on success. Required: request body with content IDs, content type, and group IDs.

360_learning_groups_libraries_bulk_create

Bulk add content to 360learning group libraries asynchronously. Adds multiple content IDs of a given type to group libraries; the request is queued and processed in the background. Returns a 202 Accepted response with a Location header URL to poll the bulk operation status. Processes up to 20,000 objects per request.

360_learning_groups_memberships_bulk_create

Bulk add users to groups with assigned roles in 360learning. Processes up to 20,000 objects asynchronously; poll the returned operation status URL to check progress. Returns an empty 202 response on success. Required: body (array of objects with userId, groupId, and role).

360_learning_groups_memberships_bulk_delete

Bulk remove users from 360Learning groups with their assigned roles; the learner role is also removed from all public subgroups down to the first private excluded. Returns a 202 Accepted response with no body; a Location header provides the URL to poll the operation status. Required: body — an array of objects each with groupId, userId, and role. Max 20,000 objects, processed asynchronously.

360_learning_bulk_groups_bulk_delete

Delete multiple groups in 360learning asynchronously, including descendant groups and their contents. Returns a 202 Accepted response with no body; the Location header provides a URL to track the bulk operation status. Required: a JSON array body of group IDs. Processes up to 2,000 objects per request.

360_learning_integration_stats_bulk_create

Bulk import integration statistics into 360Learning for a given integration. Processes up to 10,000 objects asynchronously, creating or updating course attempts based on firstActivityAt, lastActivityAt, completedAt, and forceNew. Returns a 202 Accepted with a Location header URL to poll the operation status. Required: integration_id.

get_single_360_learning_bulk_operation_by_id

Get a single bulk operation in 360learning by id. Returns: id, type, createdAt. Required: id.

list_all_360_learning_bulk_operations

List all bulk operations in 360learning with optional filters on status, type, and createdAt. Returns: id, type, createdAt. Page size of 20.

list_all_360_learning_operation_results

Retrieve the results of a completed or erroneous bulk operation in 360learning by its unique operation ID. Returns an array of result items, each being either a success result or an error result. Required: bulk_operation_id. Returns a 400 error if the operation has not run yet, or a 404 if the operation ID does not exist.

360_learning_skills_reviews_bulk_create

Bulk add skill reviews in 360Learning. Reviews support three actions — skill added, skill assessed, and skill deleted; assessments are auto-validated when the assessor is a manager of the user. Returns a 202 Accepted response with a Location header to poll the bulk operation status. Required: a JSON array body of skill review objects. Processes up to 10,000 objects asynchronously.

360_learning_skills_jobs_bulk_update

Bulk upsert (add or replace) skills jobs in 360learning by externalId — matching externalIds replace existing jobs, unmatched ones create new jobs. Returns a 202 Accepted response with a Location header URL for polling the bulk operation status; no response body. Processes up to 10,000 objects asynchronously. Required: an array body of job objects each with an externalId.

360_learning_skills_jobs_bulk_delete

Bulk delete 360learning skills jobs by externalId, processing up to 10,000 objects asynchronously. Returns an empty 204 response on success. Required: body (array of objects each containing externalId).

360_learning_skills_libraries_bulk_update

Bulk upsert skills libraries in 360learning by externalId — matching libraries are replaced with new data and unmatched externalIds create new libraries. Returns a 202 Accepted response with a Location header URL to poll the bulk operation status. Processes up to 10,000 objects asynchronously; the request is queued upon submission. Required: a request body containing the libraries to upsert.

360_learning_skills_libraries_bulk_delete

Bulk delete skills libraries in 360learning by externalId. Submits an asynchronous bulk operation queued for background processing. Returns an empty 202 response on success; the Location response header provides a URL to poll the operation status. Required: body (array of objects each containing externalId). Processes up to 10,000 objects per request.

360_learning_bulk_skills_bulk_update

Bulk upsert skills in 360learning by matching on externalId. If a provided externalId matches an existing skill, the skill is replaced with the new data; if no match is found, a new skill is created. Returns a 202 Accepted with no response body — a Location header provides the URL for polling the bulk operation status. Required: externalId (per array item). Processes up to 10,000 objects…

360_learning_bulk_skills_bulk_delete

Bulk delete skills in 360learning by externalId. Processes up to 10,000 objects asynchronously; the request is queued upon submission and a Location header URL is provided to track operation status. Returns an empty 202 response on success. Required: externalId.

360_learning_skills_jobs_skills_bulk_update

Bulk replace jobs skills in 360learning by jobId — all existing skills for each job are replaced with the provided ones. Returns a 202 Accepted with no response body; a Location header provides a URL to poll the bulk operation status. Processes up to 10,000 objects asynchronously; maximum 100 skills per job. Required: body (a JSON array of objects, each with jobId and skills).

360_learning_users_jobs_bulk_update

Bulk replace users' jobs in 360learning by submitting an array of user-job mappings processed asynchronously (up to 10,000 objects, max 100 jobs per user). Each user's existing jobs are fully replaced by the provided ones. Returns an empty 202 response; the Location response header provides a URL to poll the bulk operation status. Required: body array where each item includes userId and jobs.

360_learning_notifications_subscriptions_bulk_create

Bulk create email subscription events in 360Learning. The request is queued and processed asynchronously (up to 20,000 objects). Returns a 202 Accepted with no response body; the Location response header provides a URL to poll the bulk operation status. Required: a JSON request body with the subscription events to create.

create_a_360_learning_oauth_2_backend_token

Create an OAuth backend access token for a 360Learning plugin using company credentials. Returns: access_token, token_type, expires_in. Required: company_id, client_id, client_secret. The token expires after 1 hour and must be sent as a Bearer token in the Authorization header of subsequent API calls.

create_a_360_learning_oauth_2_client_token

Create an OAuth client access token for a 360Learning plugin. Returns: access_token, token_type, expires_in. The generated token authorizes access to 360Learning API v2 resources for 1 hour and must be sent as a Bearer token in the Authorization header of subsequent requests. A JSON request body is required.

list_all_360_learning_uaa_users

Retrieve the profile of the authenticated user in 360learning. Returns: userId, firstName, lastName, mail, createdAt. Must be called with a user-authorized token issued for a specific user.

list_all_360_learning_webhooks_subscriptions

List all webhook subscriptions in 360learning, optionally filtered by event type using LHS bracket notation. Returns: eventType, name, url, _id, status, id. Page size of 2000 subscriptions.

create_a_360_learning_webhooks_subscription

Create a webhook subscription in 360learning. Returns: eventType, url, _id, status, id, name. Required: eventType, name, url.

get_single_360_learning_webhooks_subscription_by_id

Get a single webhook subscription by id in 360learning. Returns: eventType, name, url, _id, status, id. Required: id.

update_a_360_learning_webhooks_subscription_by_id

Update specific fields of an existing webhook subscription in 360learning. Fields omitted from the request body remain unchanged. Returns: eventType, url, _id, status, id, name. Required: id.

delete_a_360_learning_webhooks_subscription_by_id

Delete a 360learning webhook subscription by id. Returns an empty 204 response on success. Required: id.

list_all_360_learning_subscription_secrets

Retrieve the signing secret for a webhook subscription in 360learning. The signing secret is a confidential key used to generate and verify webhook signatures. Returns: secret. Required: subscription_id.

create_a_360_learning_events_retry_failure

Retry all failed webhook events for a 360learning webhook subscription within a specified timeframe. Returns an empty 204 response on success. The retry timeframe is limited to a maximum of 3 days per request and endDate must be after startDate; events are retained for 90 days and can be retried across multiple requests. Required: subscription_id, startDate, endDate.

create_a_360_learning_events_retry_succese

Retry all successful webhook events for a 360learning webhook subscription within a specified timeframe. Returns an empty 204 response on success. Maximum 3 days per request; events retained for 90 days. Required: subscription_id, startDate, endDate.

create_a_360_learning_secrets_rotate

Rotate the signing secret of a 360Learning webhook subscription. The new secret takes effect immediately and events are also signed with the legacy secret for 24 hours. Returns: secret. Required: subscription_id.

list_all_360_learning_course_custom_field_values

List all custom field values for a 360learning course. Returns: timestamp, data. Required: course_id.

360_learning_course_custom_field_values_bulk_update

Replace all custom field values for a 360learning course with the provided ones; values not included in the request body are removed. Returns an array of updated custom field value objects including customFieldId and value. Required: course_id, body (array of customFieldId and value entries).

list_all_360_learning_path_session_custom_field_values

List all custom field values for a 360learning path session. Returns an array of custom field value objects including customFieldId, value, createdAt, and updatedAt. Required: path_id, session_id. Both IDs must be 24-character hexadecimal ObjectId strings.

360_learning_path_session_custom_field_values_bulk_update

Replace all custom field values for a 360Learning path session with the provided ones; values not included in the request are removed. Returns an array of updated custom field values, each containing customField and value. Required: path_id, session_id.

360_learning_user_custom_field_values_bulk_update

Replace all custom field values for a 360learning user by user_id. Returns the updated custom field values as an array of objects with customFieldId and value. Values not included in the request body are removed. Required: user_id.

create_a_360_learning_group_media

Upload media files (banner, background, favicon, or logo) to a 360Learning group. Returns the updated group object. Required: group_id. At least one media file must be provided in the request body.

create_a_360_learning_user_media

Upload a profile image to a 360learning user by user_id. Returns the updated user object including userId, firstName, lastName, mail, and createdAt. Required: user_id. The uploaded file must be a valid image within size limits.

list_all_360_learning_course_tags

List all tags in a 360Learning course. Returns each tag's tagId and source. Required: course_id. Paginated with a page size of 500 tags.

360_learning_course_tags_bulk_update

Replace all tags in a 360Learning course with the provided ones; any tags not included are removed. Returns an array of the new tag IDs linked to the course. Required: course_id, tagIds.

list_all_360_learning_path_tags

List all tags associated with a 360learning path. Returns each tag's id and source. Required: path_id. Paginated with a page size of 500 tags.

360_learning_path_tags_bulk_update

Replace all tags on a 360learning path — tags not included in the request body are removed. Returns the updated list of tag IDs linked to the path. Required: path_id.

list_all_360_learning_webhook_events

List all webhook events for a given 360Learning subscription. Returns: _id, createdAt, status, payload, type, timestamp, data. Page size is 250 events per page. Required: subscription_id.

How it works

From 360learning account to governed MCP endpoint

Connect

Link a 360learning account through Elaichi's hosted connect flow. Credentials are vaulted, so nobody, including the AI, ever sees them.

Compose

The connection becomes a toolbox instantly. Curate which 360learning tools are exposed, rename them, or freeze arguments.

Authorize

Point Claude, ChatGPT, Cursor, or any MCP client at the one Elaichi endpoint and sign in with OAuth, governed by roles, restrictions, and audit logs.

Put your agents to work in the tools you already use

Start a 14-day Gold trial. Connect a product, curate a toolbox, and paste a governed MCP endpoint into Claude, ChatGPT, or Cursor in minutes.