OperatorGet started
← All integrations
Canvas logo

Connect Canvas to OpenClaw on Operator.io

Canvas is a learning management system for online courses, assignments, grading, and collaboration. It's trusted by educators and students to streamline virtual classrooms and enhance digital learning.

Education & LMS573 actions

Automate Canvas with AI

Operator runs your personal agent on OpenClaw, the open source agent framework, and points it straight at Canvas. You message the agent on Telegram or Discord, tell it what you need in plain language, and it operates Canvas on its own, running actions like abort quiz report generation, add conversation message, add course to favorites.

Your agent reaches Canvas directly or through connectors like Composio MCP and Pipedream MCP, which handle the sign in and token refresh for you, so there is nothing to wire up and no API keys to paste.

What your agent can do with Canvas

Your agent can call any of these Canvas actions by name as part of a larger task. Ask for the outcome you want and it picks the right ones.

Abort Quiz Report Generation

Aborts the generation of a quiz report or removes a previously generated one. Use when you need to cancel a report generation request or clean up an old report.

Add conversation message

Tool to add a message to an existing Canvas conversation. Use when sending a follow-up message to a conversation thread with specified recipients.

Add course to favorites

Tool to add a course to the current user's favorites. Use when you need to favorite a course for the authenticated user. If the course is already in the user's favorites, nothing happens.

Add group to favorites

Tool to add a group to the current user's favorites. Use when you need to mark a group as favorite for the authenticated user. If the group is already in the user's favorites, nothing happens.

Add last attended date

Tool to add or update the last attended date for a student enrollment in a course. Use when tracking student attendance by recording the last date a student attended the course.

Add recipients to conversation

Tool to add recipients to an existing group conversation. Use when you need to add new participants to an ongoing conversation. Response includes the latest message showing who was added.

Add users to content share

Tool to send a previously created content share to additional users. Use when you need to add more recipients to an existing content share.

Answer quiz questions

Tool to provide or update answers to quiz questions for a quiz submission. Use when submitting answers for a quiz attempt. Requires a valid validation_token from quiz submission creation and the latest attempt number.

Assign unassigned members to group category

Tool to assign unassigned members to groups within a group category. Use when you need to distribute users who are not yet in any group within the category. Returns a Progress object for async tracking by default, or group memberships wh...

Clear Course Nicknames

Tool to remove all stored course nicknames for the current user. Use when you need to clear all custom course name preferences.

Close notification for user

Tool to excuse/close an account notification for the current user. Use when the current user no longer wants to see a specific notification. If the `remove` parameter is set to true, the notification is permanently destroyed for all user...

Conclude, deactivate, or delete an enrollment

Tool to conclude, deactivate, or delete an enrollment in a Canvas course. Use when you need to end or remove a user's enrollment. If the task argument isn't given, the enrollment will be concluded.

Copy File to Folder

Copies an existing Canvas file to a specified destination folder. Use when you need to duplicate a file to another location.

Copy Folder

Tool to copy a folder to another folder in Canvas. Use when you need to duplicate a folder structure with its contents to a destination folder.

Create account notification

Creates a global notification within a Canvas account, ensuring `end_at` is after `start_at` and any specified `notification_roles` are valid.

Create a user content migration

Tool to create a content migration for a Canvas user. Use when you need to import content into a user's files from various sources (zip files, cartridges, etc.). If the migration requires a file upload, the actual processing starts once...

Create appointment group

Creates a new appointment group in Canvas for schedulable time slots within specified course or group contexts.

Create an assignment

Creates a new assignment within a specified course in Canvas LMS.

Create assignment via GraphQL

Tool to create a new assignment in a Canvas course using the GraphQL API. Use when you need to create assignments with detailed configuration options including peer reviews, moderated grading, or assignment overrides.

Create assignment group

Create a new assignment group for a course. Use when you need to add a new assignment group to organize assignments in a Canvas course.

Create assignment override

Creates an assignment override to adjust due/unlock/lock dates for an assignment in a course, targeting specific students (requires `title`), a group, or a course section; at least one target (`student_ids`, `group_id`, or `course_sectio...

Batch create overrides in a course

Tool to batch create assignment overrides for multiple assignments in a course. Use when creating multiple overrides at once in a transactional manner (all succeed or none are created). Each override requires assignment_id and one of stu...

Create blackout date for course

Tool to create a blackout date for the given course context. Use when you need to define a period during which certain activities are restricted or unavailable for a specific course.

Create Bookmark

Creates a new bookmark for the authenticated user. Use when you need to save a shortcut link to a Canvas page or external resource for quick access.

Create Calendar Event

Creates a calendar event with options for recurrence (finite `rrule` series only), section-specific timings, and blackout dates within a specified context.

Create communication channel

Creates a new communication channel (e.g., email, SMS, push) for an existing Canvas user to receive notifications.

Create content share

Shares a Canvas content item to specified users, if the sender has necessary permissions and receiver IDs are valid.

Create conversation

Use to send messages in Canvas by creating a new conversation or adding to an existing one; an existing conversation with the same recipients (and matching scope/filter, if specified) may be reused unless `force_new` is true.

Create conversation via GraphQL

Tool to create a new conversation (message) between users in Canvas via GraphQL. Use when initiating a new conversation thread with specified recipients.

Create a course

Creates a new course in Canvas within a specified account, with comprehensive configuration options. Returns a course object including `id` (course_id); retain this for subsequent module, page, and upload calls.

Create Course Grading Standard

Tool to create a new grading standard in a Canvas course. Use when you need to define a custom grading scale with grade labels and percentage thresholds for a specific course.

Create a custom gradebook column

Creates a new custom gradebook column in a course. Use when you need to add custom tracking fields like participation scores or extra credit to the gradebook.

Create discussion entry

Tool to create a new entry in a Canvas discussion topic. Use when posting a message with optional attachments to a discussion topic.

Create discussion entry (GraphQL)

Tool to create a new entry in a Canvas discussion topic via GraphQL. Use when posting a message or reply to a discussion topic with optional file attachments.

Create discussion topic

Creates a new discussion topic in a specified Canvas course, allowing comprehensive configuration of its content, type, publication settings, engagement features, and associations.

Create discussion topic (GraphQL)

Tool to create a new discussion topic in a course or group using the Canvas GraphQL API. Use when creating discussion topics with the GraphQL interface.

Create enrollment

Enrolls a user in a Canvas course with a specified role and status; `associated_user_id` is required if `enrollment_type` is 'ObserverEnrollment'.

Create ePub export

Tool to initiate an ePub export for a course. Use when you need to export course content in ePub format. Track progress using the Progress API URL returned in the response.

Create External Feed

Creates a new external RSS or Atom feed for a Canvas course. Use when you need to import external content into a course feed.

Create External Feed for Group

Tool to create a new external RSS or Atom feed for a Canvas group. Use when you need to import external content into a group feed.

Create external tool

Tool to create an external tool in a Canvas account. Use when you need to integrate an LTI tool or external application. If a client_id is supplied, Canvas will attempt to create a context external tool using the LTI 1.3 standard.

Create external tool in course

Tool to create an external tool in the specified course. Use when you need to integrate an LTI tool or external application within a course context. If a client_id is supplied, Canvas will attempt to create a context external tool using...

Create Files

Tool to initiate file upload to Canvas (Step 1 of 3-step process). Use when you need to upload a file to a course, user folder, group, or account. This action returns upload_url and upload_params needed for the actual file upload. After...

Create folder

Tool to create a folder in the specified context. Use when you need to create a new folder for organizing files in Canvas for a user.

Create Folder in Group

Tool to create a folder within a Canvas group. Use when you need to organize files in a group context.

Create a group

Tool to create a new community group directly. Use when you need to create a group without specifying a group category. Groups created using this endpoint will be community groups.

Create a group category in a course

Creates a new group category within a specified Canvas course. Use when you need to organize student groups for projects, study sessions, or collaborative activities within a course.

Create a content migration for group

Tool to create a content migration in a Canvas group. Use when you need to import content into a group from various sources. If the migration requires a file upload, the actual processing starts once the file upload completes.

Plus 525 more Canvas actions your agent can call.

How to connect Canvas

You authorize Canvas once from your dashboard. Operator holds the connection and refreshes the access tokens on its own, so your agent keeps working with Canvas without you signing in again. The same setup unlocks every other app your agent can reach, so you only do it once.

When you are ready, the get started guide walks through standing up your OpenClaw agent.

Common questions about Canvas

How do I connect Canvas to Operator?
Connecting Canvas is a one time sign in from your Operator dashboard. Operator keeps the connection live and rotates the token on its own, so the agent stays connected to Canvas and you never reauthorize by hand.
Can my agent manage courses and learners in Canvas?
Yes. It can read and update courses, enrollments, and records, and report on progress. Use it to add learners, check status, or pull a summary out of Canvas without working through each screen yourself.
Do I need to write code or manage Canvas API keys?
No. Operator manages the Canvas connection and token refresh, so there are no API keys to paste and nothing to deploy.
Can my agent use Canvas together with my other apps?
Yes. The same agent reaches every app you connect, so it can move between Canvas and tools like Blackboard, Google Classroom, D2lbrightspace in one job, reading from one and acting in another without you wiring anything between them.

Canvas integrations

Pick an app to see what your agent does across Canvas and it, or browse all integrations.

Put your agent on Canvas

Sign in, connect Canvas, and hand your agent the work. Your first week is free.

Get started