Skip to documentation

    Campion Education Integration

    Local Plugin
    SSO Integration
    v1.0.8
    Ready
    50 LMS Labs credits for one-time site access · Marketplace: US$5 one-off

    Connect Moodle to the Campion Education platform. Students click a Campion resource link inside Moodle and are logged in automatically — no separate password. Student accounts and resource access are managed automatically as enrolments change.

    ⭐ Why this plugin is unlike anything else available

    Direct Campion textbook integration inside Moodle

    ▸ Campion Education is Australia's largest educational resource distributor. Without this plugin, RTOs manually cross-reference Moodle courses with Campion's portal — two logins, double data entry. The Campion Integration syncs resource requirements from Moodle to Campion automatically.

    ▸ Learners see their required textbooks on their Moodle dashboard without accessing a separate portal. The purchase link goes directly to their pre-populated resource list.

    ▸ Administrators reconcile enrolments against resource orders in one report. Enrolled learners without ordered resources are flagged automatically.

    What is Campion Education?

    Campion Education is Australia's leading educational resource supplier for schools, TAFEs, and RTOs. They supply textbooks, workbooks, and digital learning materials — and they run an online platform called Campion myConnect where students can access their digital resources.

    If your RTO uses Campion as a resource supplier, your students need to log into both Moodle and Campion myConnect. This plugin removes that double-login problem and keeps both systems in sync automatically.

    What is a "booklisting" or resource subscription? When Campion sets up your account, they create a subscription for each student to each resource (textbook or digital product). Each resource has an ISBN — the same identifier used on a printed book. A subscription ties a student's account to a specific ISBN, giving them access to that product on the Campion platform. This plugin manages those subscriptions automatically — creating them when students enrol and removing them when they leave.

    The problem it solves

    Without this plugin
    Students need a separate Campion login (username + password)
    Admin manually creates each Campion account when a student enrols
    Admin manually adds each resource subscription per student
    When a student leaves, you have to manually remove them from Campion
    No visibility — you can't see Campion account status from Moodle
    With this plugin
    Students click a link in Moodle and are logged into Campion automatically
    Campion accounts are created automatically when students enrol
    Resource subscriptions are assigned automatically based on course enrolment
    Departing students are removed from Campion automatically
    Full dashboard inside Moodle showing all users, subscriptions, and activity

    A real example — what it looks like in practice

    Here is a complete walkthrough of what happens for a typical student at an RTO running Certificate II in Business (BSB20120).

    Student experience

    Jordan enrols in Cert II in Business

    Automatic

    The RTO admin enrols Jordan in the BSB20120 course in Moodle. Behind the scenes, the Campion plugin immediately calls CreateUser to create Jordan's account on the Campion platform — Jordan doesn't need to do anything or even know this happened.

    Jordan's workbook subscription is activated

    Automatic

    The course uses the Campion resource "BSB20120 Learner Resource" (ISBN 978-1-86924-123-4). The plugin calls CreateSubscription, giving Jordan access to the digital workbook on Campion myConnect. No admin action needed.

    Jordan logs into Moodle and opens their course

    Jordan's action

    Jordan visits the RTO's Moodle site and signs in with their usual username and password. They open the BSB20120 course and see a section called "Course Resources" with a link labelled "Open Campion Workbook".

    Jordan clicks the link — no second login needed

    One click

    Jordan clicks "Open Campion Workbook". Moodle silently passes Jordan's email to Campion. Campion recognises Jordan's account, creates a secure one-time token, and opens the workbook directly. Jordan is never asked for a Campion username or password.

    Jordan reads their digital workbook

    Working

    Jordan is now inside Campion myConnect, viewing their BSB20120 learner resource. They can read, annotate, and complete the digital activities. If they close the browser and come back tomorrow, clicking the same Moodle link takes them straight back in.

    Jordan completes the course and is unenrolled

    Automatic

    Six months later, Jordan finishes the qualification and is unenrolled from the Moodle course. The plugin automatically calls DeleteSubscription to remove the workbook access and DeleteUser to remove Jordan's Campion account. No manual clean-up needed.

    What the admin sees the whole time

    In the Overview tab: Site ID and API Key show as "Connected". Both SSO and provisioning endpoints show green.

    In the Users tab: Jordan's row appears with status "Active" and a "Last synced" timestamp from the moment of enrolment.

    In the Subscriptions tab: One active subscription — Jordan → BSB20120 Learner Resource (ISBN 978-1-86924-123-4).

    In the Activity Log: Every SSO login attempt is recorded — timestamp, outcome (success/fail), and Jordan's email.

    Key benefits

    No extra login for students

    Students click a Campion resource inside Moodle and are taken straight in — no separate Campion username or password needed.

    Accounts managed automatically

    When a student enrols in Moodle, their Campion account is created. When they leave, it's removed. No manual admin work.

    Resource access stays in sync

    As students are enrolled and unenrolled from courses, their access to the matching Campion digital resources updates automatically.

    Secure by design

    Every login token is time-limited (5 minutes), signed with a secret key, and can only be used once — preventing replay attacks.

    Full visibility from one dashboard

    Admins can see every provisioned user, active subscription, ISBN/product, and a live audit log — all inside Moodle.

    Works with AI Central Config

    Credentials are stored in the AI Central Config plugin — one place to manage all your AI Grader plugin settings.

    Single Sign-On (SSO) — how it works

    SSO stands for Single Sign-On. It means a student logs in once (to Moodle) and can access both Moodle and Campion without logging in again. Here is exactly what happens behind the scenes:

    Student
    1

    Clicks a Campion resource link inside their Moodle course

    Moodle
    2

    Redirects the student to the Campion login page with their email pre-filled (login_hint)

    Campion
    3

    Recognises the student by email, generates a signed JWT login token, and sends them back to Moodle

    Moodle
    4

    Validates the JWT signature, checks it hasn't expired, checks it hasn't been used before

    Moodle
    5

    Logs the student into Moodle automatically — they land on their dashboard, already signed in

    There are two SSO directions:

    Publisher-initiated — the student starts from inside Moodle and clicks a Campion link. Moodle redirects them to Campion with their email pre-filled. This is the most common flow.

    IAM-initiated — the student starts from inside the Campion platform and clicks "Go to Moodle". Campion sends a signed JWT back to Moodle and this plugin logs them in automatically.

    Automatic account management (provisioning)

    "Provisioning" is the technical term for automatically creating, updating, and deleting accounts on a third-party system. This plugin exposes an API endpoint that Campion calls to keep accounts in sync. You never have to touch Campion's admin panel for day-to-day student management.

    CreateUsertriggered when:A student enrols in a course with a Campion resource

    Creates the student's account on the Campion platform

    UpdateUsertriggered when:A student's name or email changes in Moodle

    Keeps the Campion account in sync with Moodle

    DeleteUsertriggered when:A student is unenrolled or deleted from Moodle

    Removes the student's account from Campion

    CreateSubscriptiontriggered when:A student is given access to a Campion resource

    Activates the student's access to that specific textbook or digital resource (by ISBN)

    EditSubscriptiontriggered when:Access dates or resource details change

    Updates the subscription period or resource assignment

    DeleteSubscriptiontriggered when:A student's resource access is removed

    Revokes access to that Campion resource

    Who calls the API? Campion's system calls your Moodle's API endpoint — not the other way around. Your Moodle site is the source of truth for users and subscriptions. Campion sends requests to your endpoint with your API key, and Moodle updates its records and responds with the result.

    Admin dashboard

    Find the dashboard at Site administration → Campion Education → Manage Integration. It has five tabs:

    Overview

    Shows your Site ID, API Key status, and the exact URLs Campion needs to set up at their end. Copy-paste ready.

    Users

    Every student whose account has been provisioned to Campion, with their sync status and last-updated timestamp.

    Subscriptions

    All active resource subscriptions — which student has access to which ISBN/product, and when it expires.

    Products / ISBNs

    The product catalogue you have registered — each entry maps a Campion product ID to an ISBN and a display name.

    Activity Log

    A full audit trail of every SSO login, provisioning call, and API request — with timestamp, outcome, and details.

    Student-facing resources page

    Students can visit /local/campion/resources.php inside Moodle to see all the Campion resources they currently have access to. Each resource shows the product name and ISBN with a one-click launch button that takes them straight into Campion myConnect using SSO.

    Security

    The SSO system uses industry-standard JWT (JSON Web Tokens) with four layers of protection:

    Signed JWT tokens

    Every login token is signed with a shared secret using HMAC-SHA256. A token with a forged or tampered signature is rejected instantly.

    5-minute expiry

    Tokens are only valid for 5 minutes from the time they were issued. An old or intercepted token cannot be replayed.

    One-time use (nonce tracking)

    Each token has a unique ID (JTI). Once a token is used to log in, that ID is recorded in the database and can never be used again.

    API key authentication

    Campion's provisioning calls must include a secret API key in the request header. Requests without a valid key are rejected with a 401 error.

    Requirements

    Moodle versionSee the archive-bound Requirements for this release
    PHP version8.0 or later
    AI Central Config pluginRequired — stores your Site ID and API Key
    Campion Education accountRequired — you must have an active RTO account with Campion Education
    Campion IAM credentialsRequired — your Campion account manager provides your Site ID, API Key, and shared JWT secret