Skip to main content

Canvas Destination

Nexla's bi-directional connectors allow data to flow both to and from any location, making it simple to create a FlexFlow, DB-CDC, Spark ETL, or Replication data flow that sends data to a Canvas location.
canvas_lms_api.png

Canvas

Create a Canvas Destination

  1. Click the + icon on the Nexset that will be sent to the Canvas destination, and select the Send to Destination option from the menu.

  2. Select the Canvas connector from the list of available destination connectors. Then, select the credential that will be used to connect to the Canvas instance, and click Next; or, create a new Canvas credential for use in this flow.

  3. In Nexla, Canvas destinations can be created using pre-built endpoint templates, which expedite destination setup for common Canvas endpoints. Each template is designed specifically for the corresponding Canvas endpoint, making destination configuration easy and efficient.
    • To configure this destination using a template, follow the instructions in Configure Using a Template.

    Canvas destinations can also be configured manually, allowing you to send data to Canvas endpoints not included in the pre-built templates or apply further customizations to exactly suit your needs.
    • To configure this destination manually, follow the instructions in Configure Manually.

Configure Using a Template

Nexla provides pre-built templates that can be used to rapidly configure destinations to send data to common Canvas endpoints. Each template is designed specifically for the corresponding Canvas endpoint, making destination setup easy and efficient.

Each record in the source Nexset is sent as a JSON request body to the selected endpoint. Map your Nexset attributes to the fields expected by the corresponding Canvas API endpoint (for example, the user[name] and pseudonym[unique_id] fields when creating a user). Endpoints that target a specific resource require a Canvas resource ID, which can be obtained from the corresponding list endpoints on the data source side.

  • To configure this destination using a template, select the endpoint to which data will be sent from the Endpoint pulldown menu. Then, click on the template in the list below to expand it, and follow the instructions to configure additional endpoint settings.

    Create a User

    Creates a new user in a Canvas account using an HTTP POST request. Use this endpoint to provision Canvas user accounts from your source data.

    • Enter the ID of the account in which the user will be created in the Account ID field.
    • Map your Nexset attributes to the Canvas user payload, including the required pseudonym[unique_id] (login) and user attributes such as user[name].

    Update User

    Updates information for an existing Canvas user using an HTTP PUT request.

    • Enter the ID of the user to update in the User ID field.
    • Map your Nexset attributes to the user fields to be updated, such as user[name] or user[email].

    Create Enrollment Term

    Creates a new enrollment term for an account using an HTTP POST request. Enrollment terms define academic periods such as semesters.

    • Enter the ID of the account in the Account ID field.
    • Map your Nexset attributes to the term payload, such as enrollment_term[name], enrollment_term[start_at], and enrollment_term[end_at].

    Update Enrollment Term

    Updates an existing enrollment term for an account using an HTTP PUT request.

    • Enter the ID of the account in the Account ID field.
    • Enter the ID of the term to update in the Term ID field.
    • Map your Nexset attributes to the term fields to be updated.

    Create User Enrollment

    Enrolls a user in a course using an HTTP POST request. Use this endpoint to add students, teachers, or other roles to a course.

    • Enter the ID of the course in the Course ID field.
    • Map your Nexset attributes to the enrollment payload, such as enrollment[user_id] and enrollment[type] (for example, StudentEnrollment).

    End Enrollment

    Removes a user from a course by ending their enrollment, using an HTTP DELETE request.

    • Enter the ID of the course in the Course ID field.
    • Enter the ID of the enrollment to end in the Enrollment ID field.

    Canvas supports several conclusion behaviors for this endpoint (such as conclude, delete, inactivate, and deactivate) via the task query parameter. The default behavior concludes the enrollment.

    Create Course

    Creates a new course within an account using an HTTP POST request.

    • Enter the ID of the account in which the course will be created in the Account ID field.
    • Map your Nexset attributes to the course payload, such as course[name] and course[course_code].

    Update a Course

    Updates an existing course using an HTTP PUT request.

    • Enter the ID of the course to update in the Course ID field.
    • Map your Nexset attributes to the course fields to be updated.

    Create Course Section

    Creates a new section within a course using an HTTP POST request.

    • Enter the ID of the course in the Course ID field.
    • Map your Nexset attributes to the section payload, such as course_section[name].

    Update Course Section

    Updates an existing course section using an HTTP PUT request.

    • Enter the ID of the section to update in the Section ID field.
    • Map your Nexset attributes to the section fields to be updated.

    Create Group

    Creates a new group using an HTTP POST request. Groups organize users for collaboration within Canvas.

    • Map your Nexset attributes to the group payload, such as name and description.

    Update Group

    Updates an existing group using an HTTP PUT request.

    • Enter the ID of the group to update in the Group ID field.
    • Map your Nexset attributes to the group fields to be updated.

    Create a Membership

    Adds a user to a group by creating a membership, using an HTTP POST request.

    • Enter the ID of the group in the Group ID field.
    • Map your Nexset attributes to the membership payload, such as user_id.

    Update a Membership

    Updates an existing group membership using an HTTP PUT request, for example to accept an invitation or change a member's moderator status.

    • Enter the ID of the group in the Group ID field.
    • Enter the ID of the membership to update in the Membership ID field.
    • Map your Nexset attributes to the membership fields to be updated, such as workflow_state or moderator.

    Create SIS Import

    Imports SIS (Student Information System) data into an account using an HTTP POST request. Use this endpoint to bulk-load CSV-based provisioning data.

    • Enter the ID of the account in the Account ID field.
    • Set the Import Type field to the import format (for example, instructure_csv).
    • Set the Extension field to the file extension of the import data (for example, csv or zip).

    SIS imports are processed asynchronously by Canvas. Use the Get SIS Import Status data source endpoint to monitor the progress and result of a submitted import.

    Create Assignment

    Creates a new assignment within a course using an HTTP POST request.

    • Enter the ID of the course in the Course ID field.
    • Map your Nexset attributes to the assignment payload, such as assignment[name] and assignment[points_possible].

    Update Assignment

    Updates an existing assignment within a course using an HTTP PUT request.

    • Enter the ID of the course in the Course ID field.
    • Enter the ID of the assignment to update in the Assignment ID field.
    • Map your Nexset attributes to the assignment fields to be updated.

    Create a Module

    Creates a new module within a course using an HTTP POST request. Modules organize course content into sequential units.

    • Enter the ID of the course in the Course ID field.
    • Map your Nexset attributes to the module payload, such as module[name].

    Update a Module

    Updates an existing module within a course using an HTTP PUT request.

    • Enter the ID of the course in the Course ID field.
    • Enter the ID of the module to update in the Module ID field.
    • Map your Nexset attributes to the module fields to be updated.

    Create a Module Item

    Creates a new item within a module using an HTTP POST request. Module items reference course content such as pages, assignments, and files.

    • Enter the ID of the course in the Course ID field.
    • Enter the ID of the module in the Module ID field.
    • Map your Nexset attributes to the module item payload, such as module_item[type] and module_item[content_id].

    Update a Module Item

    Updates an existing item within a module using an HTTP PUT request.

    • Enter the ID of the course in the Course ID field.
    • Enter the ID of the module in the Module ID field.
    • Enter the ID of the module item to update in the Module Item ID field.
    • Map your Nexset attributes to the module item fields to be updated.

    Create a Quiz

    Creates a new quiz within a course using an HTTP POST request.

    • Enter the ID of the course in the Course ID field.
    • Map your Nexset attributes to the quiz payload, such as quiz[title] and quiz[quiz_type].

    Update a Quiz

    Updates an existing quiz within a course using an HTTP PUT request.

    • Enter the ID of the course in the Course ID field.
    • Enter the ID of the quiz to update in the Quiz ID field.
    • Map your Nexset attributes to the quiz fields to be updated.

Configure Manually

Canvas destinations can be manually configured to send data to any valid Canvas LMS REST API endpoint.

Using manual configuration, you can also configure Nexla to automatically send the response received from the Canvas API after each call to a new Nexla webhook data source.

API Method

  1. To manually configure this destination, select the Advanced tab at the top of the configuration screen.

  2. Select the API method that will be used for calls to the Canvas API from the Method pulldown menu. Canvas uses POST to create resources, PUT to update existing resources, and DELETE to remove resources.

Data Format

  1. Select the format in which the Nexset data will be sent to the Canvas API from the Content Format pulldown menu. The Canvas API accepts JSON request bodies. Nexla will automatically convert the data to the selected format for each API call.

API Endpoint URL

  1. Enter the URL of the Canvas API endpoint to which you want to send the Nexset data in the URL field, including the protocol (https://), your institution's Canvas domain, and the API path (for example, https://yourinstitution.instructure.com/api/v1/courses/123/assignments). For update operations, include the ID of the object to be updated at the end of the URL.

Request Headers

Optional
  • If Nexla should include any additional request headers in API calls to this destination, enter the headers & corresponding values as comma-separated pairs in the Request Headers field (e.g., header1:value1,header2:value2).

    You do not need to include any headers already present in the credentials.

Exclude Attributes from the Call

Optional
  • If any record attributes in the Nexset should be omitted when sending data to this Canvas destination, select the attributes from the Exclude Attributes pulldown menu.

  • Any number of attributes can be selected for exclusion, and all excluded attributes will be shown in the field. To remove an attribute from the list, click the X icon next to the attribute name.

Record Batching

Optional
  1. If records should be sent to this destination in batched API calls, check the box next to Would you like to batch your records together? to enable record batching.

  2. Enter the maximum number of records that should be batched together in a single API call in the Batch Size field. By default, this value is set to 100.

  3. Select the algorithm that will be used to group records into batches from the Grouping Algorithm pulldown menu. The sample request shown in the panel on the right will be updated to reflect the current batching settings. Some algorithms require additional settings—click on an algorithm listed below to view instructions for configuring these settings.

    Property Inside JSON Object

    1. Enter the name of the JSON property that should contain the batched records in the Property Name field.
    2. If any additional properties should be included in the request, enter the properties in the Other Props field in JSON format.

    Code

    1. Enter the code that will be used to create the batched request in the code editor below the Grouping Algorithm field.

Most Canvas write endpoints operate on a single resource per request. Use batching only for endpoints that accept multiple records in a single call, and confirm the expected payload shape against the Canvas API documentation for the target endpoint.

Response Webhook

Optional

Nexla can automatically send the response received from the Canvas API after each call to a new Nexla webhook data source. This option allows you to keep track of the status of each API call and any additional information returned after each call, such as the ID assigned to a newly created resource.

  • To enable this option, check the box next to Would you like to process the API response as a Nexla Webhook source?.

Sample Request Payload

Sample request payloads containing a portion of the Nexset data that will be sent to the Canvas API endpoint based on the current settings are shown in the Sample Payload panel on the right. These samples can be referenced to ensure that the destination and request settings are correctly configured.

  • Click on a sample request payload to expand it and view the complete payload content.
  • Sample payloads are automatically updated with each setting change, making it easy to verify that changes achieve the desired effect.

Endpoint Testing (Manual Configuration)

After all endpoint settings have been configured, Nexla can send a test payload to the Canvas API to ensure that the destination is configured correctly.

  1. To send a test payload, select the Test button at the top of the Sample Payload panel, and click on a listed sample payload to expand it.

  2. If any modifications to the sample payload are needed, make the necessary changes directly within the sample window.

  3. Click the Send Test Data button at the top of a sample payload to send the test payload to the Canvas API using the current settings.

Save & Activate the Destination

  • Once all endpoint settings have been configured, click the Done button in the upper right corner of the screen to save and create the destination. To begin sending data to the configured Canvas endpoint, open the destination resource menu, and select Activate.

    The Nexset data will not be sent to Canvas until the destination is activated. Destinations can be activated immediately or at a later time, providing full control over data movement.