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.
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