How to add an integration

Integrations allow you to send data from Palette to a third party system and vice versa, receive data from that system.

Palette supports 'offering' integrations and 'other' integrations. An 'offering' integration is one that connects Palette with your Learning Management System or event platform. The 'other' integrations are ones that we are continually building out and include HubSpot and SalesForce.

To view or add integrations, navigate to Integrations under the Settings navigation item.

Offering integrations


To setup a Canvas LMS integration, all you need is the API key and the Canvas URL.

Within Canvas, you will need to create an API key that belongs to an administrative user.

The API key is setup under an administrator account. The admin user needs to login to Canvas and go to: ‘Account’ => ‘Settings’.

Under ‘Approved Integrations’, create a ‘New access token’.

Enter a name, but leave the expiry field blank. Click ‘Generate token’.

Copy the token and paste it into the Palette integration field.

Enter the URL of the canvas instance - for example:

Note: Palette can not enrol students into courses that are setup as Blue Prints.


  1. The first step is to ensure your Moodle site has the right settings enables. Go to Site administration > Plugins > Web services and ensure
    1. “Enable web services” is set to “Yes”
    2. “Enable protocols” is set to “Yes”
  2. Next, create a new user that will have the correct capabilities. This web services user is required to represent the system (Palette) controlling Moodle.

    Check the user capabilities. The new user should have appropriate capabilities according to the protocols used, for example webservice/rest:use. To achieve this, create a web services role with protocol capabilities allowed and assign it to the web services user as a system role. Ensure the following capabilities are assigned to the user.

    1. enrol/manual:enrol
    2. moodle/course:update
    3. moodle/course:useremail
    4. moodle/course:view
    5. moodle/user:create
    6. moodle/user:update
    7. moodle/user:viewdetails
    8. moodle/user:viewhiddendetails
    9. webservice/rest:use
  3. Next, create a custom external service under Site administration > Plugins > Web services > External services

  1. The custom service needs to have the following functions
    1. core_user_get_users_by_field
    2. core_course_search_courses
    3. core_user_create_users
    4. core_course_get_courses_by_field
    5. enrol_manual_enrol_users

  1. Get the Token from Site administration > Plugins > Web services and add it to the new integration in Palette Admin
  2. For the integration URL, please only use the base URL for the moodle instance e.g.


To setup the integration for Brightspace, you must have super admin access to the Brightspace instance.

  1. Navigate to Manage Extensibility in the Admin Tools menu.
  2. Click on the OAuth 2.0 tab.
  3. Click the Register an app button.

  1. Fill out the required details:
    1. To get the Redirect URI, enter the URL of the Palette integration page (URL + /integrations/add).
    2. For the Scope field, use core:*:* .
    3. Make sure Enable refresh tokens is checked on.
    4. Click the Register button.
    5. Obtain the Client ID and Client Secret for the app that you just registered.
  2. On the Palette new integration page enter the following:
    1. Enter the URL of the Brightspace instance, e.g.
    2. Copy and paste the Client ID into the Integration token/key field.
    3. Copy and paste the Client Secret into the Integration secret field.
    4. Ensure the Config field contains the following value: {"roleId":103}
    5. Ensure the OAuth Scope field contains the following value: core:*.*
Did this answer your question? Thanks for the feedback There was a problem submitting your feedback. Please try again later.