Skip to content
Coursebox Support home
InboxAsk a human

Integrations - SAML, WordPress, Arlo, SCORM, Zapier, Open API

Updated by Carolina Martin

This article covers the integrations available in Coursebox: SAML single sign-on, the WordPress/WooCommerce plugin, Arlo sync, SCORM imports, the Open API, and Zapier automation.

Plan requirements: Zapier is available from Creator and above. The Open API — direct API access for custom integrations — is an add-on on Pro + LMS and included on Enterprise. The WooCommerce integration is available from Creator and above. SAML SSO is available on Enterprise only, as a paid add-on — it cannot be added to a self-serve plan. Compare plans.

On an earlier plan? Plan names and inclusions changed when we moved to Free, Creator, Pro, Pro + LMS and Enterprise. If you are on an earlier plan, your subscription continues unchanged and you keep everything it included — so you may still see features this article lists under a higher plan. Nothing has been removed from your account.

SAML single sign-on (SSO)

Coursebox supports SAML 2.0-based Single Sign-On (SSO), allowing users to authenticate using their existing organisation credentials. This provides a secure and seamless login experience for learners, admins, and facilitators — particularly within enterprise or institutional environments.

SSO is configured by the Coursebox team together with your IT department. To start, contact support@coursebox.ai and we will send you the Coursebox SP metadata and a sample of the SAML token claims we expect from your identity provider.

What your identity provider needs to supply

  1. SAML IdP metadata in XML format

  2. A sample SAML token containing all the user claims your IdP will generate

  3. A test user for each group

WordPress plugin integration with WooCommerce

The Coursebox WooCommerce Plugin seamlessly connects your Coursebox account with your online store, making it easy to sell your existing courses directly through WooCommerce.

With this integration, your courses can be listed as products in your store, and customers are automatically enrolled in the correct course as soon as they complete their purchase. No more manual enrollments — saving you time and simplifying your workflow.

This integration lets you combine Coursebox’s powerful AI-driven course creation and management features with the flexibility of WooCommerce, giving you full control over sales, enrollments, and the customer experience.

Quick start guide – Coursebox WooCommerce plugin

Step 1: Install & Activate

  • Upload the plugin files to /wp-content/plugins/course-box or install it directly from the WordPress Plugins screen.

  • Go to Plugins → Installed Plugins and click Activate.

  • Make sure WooCommerce is installed and active.

Step 2: Connect to Coursebox

  1. In Coursebox, click the dropdown (▼) next to your profile icon and select Settings.

Coursebox top bar with the profile dropdown open and Settings highlighted
  1. In the left-hand menu, click Integrations and, under Open API, copy your API Key.

Coursebox Settings page with Integrations selected in the left-hand menu and the Open API Key field (hidden) and Reset API Key button highlighted
  1. In WordPress, go to Course Box → Settings and enter your API URL and API Key.

  2. The API URL must be the root domain of your Coursebox portal (for example, my.coursebox.ai users enter https://my.coursebox.ai). Once you save, the status changes to Configured and Active.

Step 3: Import Your Courses

Go to Course Box → Import Courses. You’ll see your Coursebox courses with their images, descriptions and import options. Click Import Course to bring a course into your WooCommerce store.

Step 4: Publish Your Courses

Once imported, each course is listed as a WooCommerce product. You can adjust pricing, categories, and tags directly in WooCommerce, just like any other product. Customers can then add courses to their cart and purchase as usual.

Sync Arlo

A Super Admin can sync an Arlo account with a Coursebox branded training platform by providing Arlo’s login URL and credentials.

Arlo sync settings with login URL and credential fields

This section assumes you are already familiar with Arlo and have a basic understanding of the integration.

Importing a SCORM file

Importing SCORM is useful for including simulations, branching scenarios, or assessments built in third-party tools while keeping everything accessible within your Coursebox course. Using SCORM you can create a highly interactive course which takes advantage of all the HTML5 features. SCORM import requires Pro and above.

The steps are:

  • Prepare your SCORM package. Ensure your SCORM file is a zipped package (.zip) and compatible with SCORM 1.2 or SCORM 2004 standards.

  • Navigate to the course where you want to add the SCORM content.

Add block panel in the course editor with Add block and the SCORM block under Multimedia highlighted
  • Click + Add block and, under Multimedia, choose SCORM.

  • Click Upload File, then select your SCORM .zip file from your computer.

Delivering a Coursebox course inside your own LMS? That is SCORM export, not import. Dynamic SCORM export is available from Creator and above — you export the course from Coursebox and import it into your LMS, and your learners study there rather than needing Coursebox accounts. Self-hosted SCORM export requires Pro and above. See Share & Export a Course.

Coursebox Open API

The Coursebox API allows enterprise clients and training organisations to automate learner management, integrate course data into other platforms (like CRMs, HR systems, or ERPs), and build custom user experiences. It is an add-on on Pro + LMS, and included on Enterprise.

Authentication

Login: Authenticate users with their email and password to receive an access token.

Endpoint:

POST /auth/login

Headers:

Content-Type: application/json

Request Body:

{ "email": "<email>", "password": "<password>" }

Response: Returns an access token for authenticated requests in the token:id parameter.

Register a new user

Create a new Coursebox user.

Endpoint:

POST /api/wineusers/createAccount

Headers:

X-Access-Token: <access_token>

Request Body:

{ "data": { "user": { "firstName": "<firstname>", "lastName": "<lastname>", "email": "<email>", "password": "<password>" }, "offerCode": "", "marketingEmails": true, "is18Plus": true } }

Retrieve user details

Fetch user information by their ID.

Endpoint:

GET /api/WineUsers/<userid>

Headers:

X-Access-Token: <access_token>

Edit user details

Edit a Coursebox user.

Endpoint:

POST /api/WineUsers/updateMainAttributes?id=<userid>

Headers:

X-Access-Token: <access_token>

Request Body:

{ "id": <userid>, "attributes": { "realm": <realm>, "email": <email>, "emailVerified": <emailVerified>, "fullName": <fullName>, "firstName": <firstName>, "lastName": <lastName>, "title": <title>, "contactNumber": <contactNumber>, "dateOfBirth": <dateOfBirth>, "headline": <headline>, "avatarUrl": <avatarUrl>, "profile": { "background": <background> }, "country": <country>, "city": <city>, "location": <location>, "region": <region>, "state": <state>, "zipCode": <zipCode>, "status": [<status>], "rate": <rate>, "rateAdditionalTax": <rateAdditionalTax>, "price": <price>, "currency": <currency>, "additionalTax": <additionalTax>, "isDiscountCodeUsed": <isDiscountCodeUsed>, "calendlyLink": <calendlyLink>, "personalSite": <personalSite>, "companySite": <companySite>, "linkedIn": <linkedIn>, "twitter": <twitter>, "facebookLink": <facebookLink>, "instagramLink": <instagramLink>, "facebookId": <facebookId>, "googleId": <googleId>, "linkedinId": <linkedinId>, "appleId": <appleId>, "customerId": <customerId>, "stripeId": <stripeId>, "isDeleted": <isDeleted>, "isPlatformUpdates": <isPlatformUpdates>, "isAdmin": <isAdmin>, "isExpertRequested": <isExpertRequested>, "isExpertApproved": <isExpertApproved>, "organisationCode": <organisationCode>, "isVIPRequested": <isVIPRequested>, "isVIPApproved": <isVIPApproved>, "isChannelPublished": <isChannelPublished>, "isCoursePublished": <isCoursePublished>, "newEmail": <newEmail>, "isSideBarVisible": <isSideBarVisible>, "isTopBarVisible": <isTopBarVisible>, "channelsPageTabs": <channelsPageTabs>, "peoplePageTabs": <peoplePageTabs>, "elibraryPageTabs": <elibraryPageTabs>, "resourcesPageTabs": <resourcesPageTabs>, "lastActiveAt": <lastActiveAt>, "isInActive": <isInActive>, "isTrial": <isTrial>, "inIframe": <inIframe>, "referer": <referer>, "username": <username>, "credentials": <credentials>, "challenges": <challenges>, "created": <created>, "lastUpdated": <lastUpdated>, "id": <id>, "createdAt": <createdAt>, "updatedAt": <updatedAt>, "isUserAdmin": <isUserAdmin>, "isVIP": <isVIP>, "isBoxer": <isBoxer>, "isPro": <isPro>, "isApprovedExpert": <isApprovedExpert>, "isExpert": <isExpert>, "isLearner": <isLearner>, "isFollowed": <isFollowed> } }

Invite a user to a course

Send an invitation for a user to join a course.

Endpoint:

POST /api/Courses/inviteUserForCourse

Headers:

X-Access-Token: <access_token>

Request Body:

{ "data": { "firstName": "<firstname>", "lastName": "<lastname>", "courseid": <courseid>, "email": "<email>" }, "courseId": <courseid>, "title": "", "body": "" }

Enrol a user in a course

Add a user to a specific course.

Endpoint:

POST /api/Courses/<courseid>/enrolUser

Headers:

X-Access-Token: <access_token>

Request Body:

{ "id": <courseid>, "userId": <userid> }

Remove a user from a course

Unenrol a user from a course.

Endpoint:

DELETE /api/Courses/<courseid>/users?userid=<userid>

Headers:

X-Access-Token: <access_token>

Retrieve available courses

Fetch a list of available courses.

Endpoint:

GET /api/Courses/findCourses?pageOptions={"my":true}

Headers:

X-Access-Token: <access_token>

Retrieve course details

Fetch details of a specific course.

Endpoint:

GET /api/Courses/findCourse?id=<courseid>

Headers:

X-Access-Token: <access_token>

Get course content

Retrieve content for a specific course page.

Endpoint:

GET /api/Activities/<activityId>

Headers:

X-Access-Token: <access_token>

Get course learners

Retrieve a list of learners enrolled in a course.

Endpoint:

GET /api/Courses/<courseid>/allLearners

Headers:

X-Access-Token: <access_token>

Get course administrators

Retrieve a list of course administrators.

Endpoint:

GET /api/WineUsers/getUserForMentio?params={"all":true,"ids":"<courseid>"}

Headers:

X-Access-Token: <access_token>

Error handling

The Coursebox API returns standard HTTP status codes:

  • 200 OK – Request successful

  • 400 Bad Request – Invalid request

  • 401 Unauthorized – Invalid authentication token

  • 404 Not Found – Resource not found

  • 500 Internal Server Error – Issue on the server side

Best practices

  • Always use HTTPS and manage secrets securely.

  • Limit token lifespan for security.

  • Add rate limiting logic on your system if building public interfaces.

API FAQs

Can I use this API to push results or assessments?
Not in this version. For advanced LTI or webhook support, contact your Coursebox rep or book a call.

Can I access this via Zapier?
Yes — see the Zapier section below, or the Coursebox LMS integrations page on Zapier.

For any questions or custom endpoint requests, contact Coursebox Support at support@coursebox.ai.

Zapier automation

Zapier allows you to connect Coursebox with hundreds of other applications to automate tasks such as enrolling users, updating profiles, and tracking completions — without writing any code.

Access your Open API key

To connect Coursebox with Zapier, you’ll need your API Key.

  • Log in as a Super Admin.

  • Go to Settings → Integrations and find the Open API section.

  • Copy the displayed API Key for use in Zapier. The screenshot in the WooCommerce section above shows where it is.

  • If needed, click Reset API Key to generate a new one.

Open the Zapier integration

  • Open your course and click the Share button (top right of the course editor) to open the Share panel.

  • Click See all, then click Zapier.

Share course panel expanded with See all, showing Download, Embed, LTI, SCORM, Social Media and Zapier, with Zapier highlighted
  • You’ll be directed to the Coursebox LMS Integrations page on Zapier.

  • Sign in or create a Zapier account using email or Google login.

Connect Coursebox to Zapier

When setting up a Zap with Coursebox, you’ll be prompted to connect your Coursebox account.
This connection allows Zapier to communicate securely with your learning platform and perform actions automatically.

  • In Zapier, select Coursebox LMS as your app.

  • When prompted, enter the following:

    • API Key – found in Settings → Integrations, under Open API.

    • Coursebox Domain – your portal’s URL (e.g., https://my.coursebox.ai).

  • Click Continue to authorise the connection.

You can reset your API Key at any time to generate a new one.
This adds an extra layer of security and ensures your integrations remain private and protected.

Coursebox trigger options

These triggers start your Zaps when specific events occur in Coursebox:

Trigger

Description

New Course

Fires when a new course is published.

New Event

Fires when a new event is created.

New Resource

Fires when a new resource is added.

New User

Fires when a new user registers in Coursebox.

New User Subscription

Fires when a user subscribes to a plan or feature.

New User Status

Fires when a new status is assigned to a user.

User Enrolled in Course

Fires when a user is enrolled in a course.

User Enrolled in Event

Fires when a user joins an event.

User Enrolled in Resource

Fires when a user gains access to a resource.

Course Completed

Fires when a user completes a course.

Course Completed needs an owner-level API key. The Course Completed trigger returns a 403 error unless the Open API key you connect to Zapier belongs to the course Owner, a Collaborator on that course, or a portal admin. If your Zap will not pull sample data, or fails with 403, check whose key you are using before anything else.

Coursebox action options

These are the actions Zapier can perform inside Coursebox after a trigger occurs:

Action

Description

Enrol Into Course by Code

Enrols a user into a course using a unique course code.

Enrol Into Event

Enrols a user into a specific event.

Enrol Into Resource

Gives a user access to a resource.

Enrol Into Resource Directory

Adds a user to a resource directory.

Invite User

Creates a new user in Coursebox and sends them an invitation.

Remove User Custom Field

Deletes a custom field value for a user.

Remove User Status

Removes an assigned user status.

Set User Custom Field

Adds or updates a user’s custom field value.

Unenrol From Channel

Removes a user from a channel.

Unenrol From Channel by Code

Removes a user from a channel using a code.

Unenrol From Course

Removes a user from a course.

Unenrol From Course by Code

Removes a user from a course using a code.

Unenrol From Event

Removes a user’s event enrolment.

Unenrol From Resource

Removes a user’s access to a resource.

Unenrol From Resource Directory

Removes a user from a resource directory.

Update Profile

Updates a user’s profile details in Coursebox.

These examples assume Coursebox is already connected in Zapier using your API Key (Settings → Integrations → Open API) and your Coursebox Domain (e.g. https://yourportal.coursebox.ai).

#

Workflow

Trigger

Actions

Key Mapping / Notes

1

Stripe Payment → Invite User → Enrol Into Course

Stripe – New Payment

Invite User; Enrol Into Course by Code

Map Customer Email, First Name, Last Name; Course Code e.g. AI101

2

Calendly Booking → Enrol Into Event

Calendly – Invitee Created

Invite User; Enrol Into Event

Map invitee email; map User ID from Invite step

3

Eventbrite Registration → Enrol Into Course

Eventbrite – New Attendee Registered

Invite User; Enrol Into Course by Code

Auto-enrol new event registrants

4

Facebook Lead Ad → Invite + Assign Status

Facebook Lead Ads – New Lead

Invite User; Set User Status

Status example: "Prospect"

5

Google Sheets Row Added → Invite + Enrol

Google Sheets – New Spreadsheet Row

Invite User; Enrol Into Course

Ideal for bulk onboarding from a spreadsheet

6

HubSpot Deal Won → Enrol Into Premium Course

HubSpot – Deal Stage Changed to Closed Won

Invite User; Enrol Into Course; Set User Custom Field

For premium/paid course access

7

Shopify Order → Grant Resource Access

Shopify – New Paid Order

Invite User; Enrol Into Resource

For digital product/resource sales

8

Typeform Submission → Enrol Into Free Course

Typeform – New Entry

Invite User; Enrol Into Course

For free course lead magnets

9

Gmail Label Added → Add User Status

Gmail – New Label Added

Set User Status

Example label: "VIP Client"

10

Zoom Webinar Registration → Enrol Into Event

Zoom – New Webinar Registrant

Invite User; Enrol Into Event

Sync webinar attendees to live events

11

Course Completed → Send Slack Notification

Coursebox – Course Completed

Slack – Send Channel Message

Notify team of learner completions

12

New User Registered → Add to Mailchimp Audience

Coursebox – New User

Mailchimp – Add Subscriber

Sync learners to email marketing

13

User Enrolled in Course → Create Google Calendar Event

Coursebox – User Enrolled in Course

Google Calendar – Create Event

Auto-schedule learning blocks

14

Course Completed → Issue Certificate via Accredible

Coursebox – Course Completed

Accredible – Create Credential

Verifiable digital credentials

15

New Course Published → Post to LinkedIn

Coursebox – New Course

LinkedIn – Create Post

Auto-promote new courses

16

New User Subscription → Send Invoice in Xero

Coursebox – New User Subscription

Xero – Create Sales Invoice

Automated billing

17

New Event Created → Create Zoom Meeting

Coursebox – New Event

Zoom – Create Meeting

Auto-generate meeting links

18

Airtable Record Updated → Update Profile

Airtable – Updated Record

Coursebox – Update Profile

Map phone, organisation, job title

19

Cancelled Stripe Subscription → Unenrol From Course

Stripe – Subscription Cancelled

Unenrol From Course

Auto-revoke access on cancellation

20

SurveyMonkey Submission → Set Custom Field + Enrol

SurveyMonkey – New Response

Invite User; Set User Custom Field; Enrol Into Course

Capture survey data + auto-enrol

Mapping the User field to a previous step

When enrolling someone into a course, event, channel or resource, the User field shows a list of existing names — that is a static selector. You almost always want it to map to the user created or invited earlier in the same workflow instead.

  • Do not choose a static name from the dropdown.

  • In Zapier: click the Custom tab (or "Insert data"), then choose the User ID output from your Invite User step.

  • In Make (Integromat): click the { } / Add variable icon next to the field and select the User ID from Invite User.

  • Leave the Course, Event or Channel field set to your chosen item.

  • Test the workflow with a sample record. It should create or invite the user (returning a User ID), then enrol that same user.

Which value to map:

  1. user.id — best practice. Often labelled User ID or Coursebox User ID.

  2. Email — fallback option; the enrol action accepts email in most versions of the Coursebox app.

If Zapier or Make doesn’t show fresh outputs, re-run Test on the Invite User step to pull a new sample.

Let admins manage Zapier (optional)

To let users with the Admin role create and manage Zapier integrations for the whole portal, turn on the Approved Admins switch in Settings → Integrations. It is off by default.

Hide the user counter on the login page

On the login page, Coursebox displays the number of users in your community. If you prefer not to show this number, you can hide it.

  • Go to Settings → Users and registration.

  • Tick Hide user counter.

  • When it is ticked, the user count doesn’t appear on the login page.

Settings, Users and registration page with the Hide user counter checkbox highlighted

For the rest of the login page settings, see Edit Login Screen.