Course
course_completed
Definition: The event is emitted when all of the module requirements in a course are met.
Trigger: Triggered when all the module requirements of a course have been met. Also gets triggered when a module has a set completion time or when the completion time gets updated.
Payload Example:
{
"metadata": {
"client_ip": "93.184.216.34",
"context_account_id": "21070000000000079",
"context_id": "21070000000000565",
"context_role": "StudentEnrollment",
"context_sis_source_id": "2017.100.101.101-1",
"context_type": "Course",
"developer_key_id": "170000000056",
"event_name": "course_completed",
"event_time": "2019-11-01T19:11:26.615Z",
"hostname": "oxana.instructure.com",
"http_method": "GET",
"producer": "canvas",
"referrer": null,
"request_id": "1dd9dc6f-2fb0-4c19-a6c5-7ee1bf3ed295",
"root_account_id": "21070000000000001",
"root_account_lti_guid": "VicYj3cu5BIFpoZhDVU4DZumnlBrWi1grgJEzADs.oxana.instructure.com",
"root_account_uuid": "VicYj3cu5BIFpoZhDVU4DZumnlBrWi1grgJEzADs",
"session_id": "ef686f8ed684abf78cbfa1f6a58112b5",
"time_zone": "America/New_York",
"url": "https://oxana.instructure.com/api/v1/courses/565/modules?include%5B%5D=items&per_page=99",
"user_account_id": "21070000000000001",
"user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36",
"user_id": "21070000000000123",
"user_login": "inewton@example.com",
"user_sis_id": "456-T45"
},
"body": {
"course": {
"account_id": "79",
"id": "565",
"name": "Computer Science I",
"sis_source_id": "2017.100.101.101-1"
},
"progress": {
"completed_at": "2019-11-05T13:38:00.218Z",
"next_requirement_url": "http://oxana.instructure.com/courses/565/modules/items/12345",
"requirement_completed_count": 6,
"requirement_count": 6
},
"user": {
"email": "inewton@example.com",
"id": "123",
"name": "Isaac Newton"
}
}
}
Event Body Schema
Field | Description |
---|---|
course | file.data_service_canvas_course.html |
progress | file.data_service_canvas_course.html |
user | file.data_service_canvas_course.html |
course_created
Definition: The event is emitted anytime a new course is created by an end user or API request.
Trigger: Triggered when a new course is created (or copied).
Payload Example:
{
"metadata": {
"client_ip": "93.184.216.34",
"developer_key_id": "170000000056",
"event_name": "course_created",
"event_time": "2019-11-05T13:38:00.218Z",
"hostname": "oxana.instructure.com",
"http_method": "POST",
"producer": "canvas",
"referrer": null,
"request_id": "1dd9dc6f-2fb0-4c19-a6c5-7ee1bf3ed295",
"root_account_id": "21070000000000001",
"root_account_lti_guid": "VicYj3cu5BIFpoZhDVU4DZumnlBrWi1grgJEzADs.oxana.instructure.com",
"root_account_uuid": "VicYj3cu5BIFpoZhDVU4DZumnlBrWi1grgJEzADs",
"session_id": "ef686f8ed684abf78cbfa1f6a58112b5",
"time_zone": "America/Denver",
"url": "https://oxana.instructure.com/api/v1/accounts/438/courses",
"user_account_id": "21070000000000001",
"user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36",
"user_id": "21070000000000001",
"user_login": "oxana@example.com",
"user_sis_id": "456-T45"
},
"body": {
"account_id": "21070000000000438",
"course_id": "21070000000000056",
"created_at": "2019-11-05T13:38:00.218Z",
"name": "Linear Algebra",
"updated_at": "2019-11-05T13:38:00.218Z",
"uuid": "a1b2c3c4z9x8a1s2q5w6p9o8i7u6y5t6a2s3d4f5",
"workflow_state": "available"
}
}
Event Body Schema
Field | Description |
---|---|
account_id | The Account id of the updated course. |
course_id | The Canvas id of the updated course. |
created_at | The time at which this course was created. |
name | The name the updated course. |
updated_at | The time at which this course was last modified in any way. |
uuid | The unique id of the course. |
workflow_state | The state of the course (available, claimed, completed, created, deleted). |
course_progress
Definition: The event is emitted when a course module requirement is met.
Trigger: Triggered when a user makes progress in a course by completing a module requirement, unless the completed requirement is the last remaining requirement in the course (in this case, a course_completed
event is emitted). The following setup should be enabled in Canvas in order for this event to get triggered:
- Module is set to be published
- Module has at least one requirement enabled
- Student completed at least one requirement in Module
Note that these events have a 2-minute debounce, meaning that a single course_progress
event will be emitted per student per course 2 minutes after the student has finished completing requirements.
Payload Example:
{
"metadata": {
"event_name": "course_progress",
"event_time": "2019-11-01T19:11:13.590Z",
"job_id": "1020020528469291",
"job_tag": "ContextModuleProgression#evaluate!",
"producer": "canvas",
"root_account_id": "21070000000000001",
"root_account_lti_guid": "VicYj3cu5BIFpoZhDVU4DZumnlBrWi1grgJEzADs.oxana.instructure.com",
"root_account_uuid": "VicYj3cu5BIFpoZhDVU4DZumnlBrWi1grgJEzADs"
},
"body": {
"course": {
"account_id": "1",
"id": "1234567",
"name": "Diff Equations",
"sis_source_id": "2017.102.102.102-2"
},
"progress": {
"completed_at": null,
"next_requirement_url": "http:/oxana.instructure.com/courses/1234567/modules/items/12345",
"requirement_completed_count": 101,
"requirement_count": 123
},
"user": {
"email": "user@domain.tld",
"id": "1122",
"name": "Gottfried Leibniz"
}
}
}
Event Body Schema
Field | Description |
---|---|
course | file.data_service_canvas_course.html |
progress | file.data_service_canvas_course.html |
user | file.data_service_canvas_course.html |
course_section_created
Definition: The event is emitted anytime a new course section is created by an end user or API request.
Trigger: Triggered when a new section is created in a course.
Payload Example:
{
"metadata": {
"client_ip": "93.184.216.34",
"context_account_id": "21070000000000079",
"context_id": "21070000000000565",
"context_sis_source_id": "2017.100.101.101-1",
"context_type": "Course",
"developer_key_id": "170000000056",
"event_name": "course_section_created",
"event_time": "2019-11-05T20:42:54.587Z",
"hostname": "oxana.instructure.com",
"http_method": "POST",
"producer": "canvas",
"referrer": null,
"request_id": "1dd9dc6f-2fb0-4c19-a6c5-7ee1bf3ed295",
"root_account_id": "21070000000000011",
"root_account_lti_guid": "VicYj3cu5BIFpoZhDVU4DZumnlBrWi1grgJEzADs.oxana.instructure.com",
"root_account_uuid": "VicYj3cu5BIFpoZhDVU4DZumnlBrWi1grgJEzADs",
"session_id": "ef686f8ed684abf78cbfa1f6a58112b5",
"time_zone": "America/New_York",
"url": "https://oxana.instructure.com/api/v1/courses/2198496/sections?grant_type=authorization_code&access_token=111~sGvKF4Yzr2AqdwShKj7CwwopgwJuMFONBqWu44Upk1F4jgkFvpXc9HY20PCU5r0&course_section%5Bname%5D=Winter%185572%4Business%1Writing&course_section%5Bsis_section_id%5D=WRIT-684-L0_16169&course_section%5Bstart_at%5D=1326-0-2T0.15510549083388048%3A0.38873681067928767%3A0.039724554014499924&course_section%5Bend_at%5D=766-2-2T0.7605609524181581%3A0.995511619163594%3A0.013954836230862355&course_section%5Brestrict_enrollments_to_section_dates%5D=true&enable_sis_reactivation=false",
"user_account_id": "21070000000000011",
"user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36",
"user_id": "21070000000000001",
"user_login": "oxana@example.com",
"user_sis_id": "456-T45"
},
"body": {
"accepting_enrollments": true,
"can_manually_enroll": null,
"course_id": "565",
"course_section_id": "1234567",
"default_section": true,
"end_at": "2020-06-17T04:00:00Z",
"enrollment_term_id": "1234",
"integration_id": "1234",
"name": "Winter 2020 Linear Algebra",
"nonxlist_course_id": "1234",
"restrict_enrollments_to_section_dates": true,
"root_account_id": "121",
"sis_batch_id": "1234",
"sis_source_id": "MATH-123-A12_12345",
"start_at": "2020-01-03T05:00:00Z",
"stuck_sis_fields": [
"[\"course_id\"",
" \"name\"]"
],
"workflow_state": "active"
}
}
Event Body Schema
Field | Description |
---|---|
accepting_enrollments | True if this section is open for enrollment. False or null otherwise. |
can_manually_enroll | Deprecated, will always be null. |
course_id | The Canvas id of the course that this section belongs to. |
course_section_id | The local Canvas id of the created course section. |
default_section | True if this is the default section for the course. False or null otherwise. |
end_at | Section end date in ISO8601 format. |
enrollment_term_id | The Canvas id of the enrollment term. |
integration_id | The integration id of the section. |
name | The name of this section. |
nonxlist_course_id | The unique identifier of the original course of a cross-listed section. |
restrict_enrollments_to_section_dates | True when 'Users can only participate in the course between these dates' is checked. |
root_account_id | Canvas id of the root account that this section is in. |
sis_batch_id | The SIS Batch id of the section. |
sis_source_id | Correlated id for the record for this course in the SIS system (assuming SIS integration is configured). |
start_at | Section start date in ISO8601 format. |
stuck_sis_fields | Array of strings of field names with the SIS stickiness field set, indicating they will not be replaced by SIS imports. |
workflow_state | The workflow state of the section. |
course_section_updated
Definition: The event is emitted anytime a course section is updated by an end user or API request. Only changes to the fields included in the body of the event payload will emit the updated
event.
Trigger: Triggered when a course section has been modified.
Payload Example:
{
"metadata": {
"client_ip": "93.184.216.34",
"context_account_id": "21070000000000079",
"context_id": "21070000001234567",
"context_sis_source_id": "MATH-123-A12_12345",
"context_type": "CourseSection",
"developer_key_id": "170000000056",
"event_name": "course_section_updated",
"event_time": "2019-11-01T19:11:15.599Z",
"hostname": "oxana.instructure.com",
"http_method": "POST",
"producer": "canvas",
"referrer": null,
"request_id": "1dd9dc6f-2fb0-4c19-a6c5-7ee1bf3ed295",
"root_account_id": "21070000000000001",
"root_account_lti_guid": "VicYj3cu5BIFpoZhDVU4DZumnlBrWi1grgJEzADs.oxana.instructure.com",
"root_account_uuid": "VicYj3cu5BIFpoZhDVU4DZumnlBrWi1grgJEzADs",
"session_id": "ef686f8ed684abf78cbfa1f6a58112b5",
"time_zone": "America/Denver",
"url": "https://oxana.instructure.com/api/v1/sections/sis_section_id:MATH-123-A12_12345/crosslist/sis_course_id:AAOE190823",
"user_account_id": "21070000000000001",
"user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36",
"user_id": "21070000000000001",
"user_login": "oxana@example.com",
"user_sis_id": "456-T45"
},
"body": {
"accepting_enrollments": true,
"can_manually_enroll": null,
"course_id": "1234560",
"course_section_id": "1234567",
"default_section": true,
"end_at": "2020-06-17T04:00:00Z",
"enrollment_term_id": "1234",
"integration_id": "1234",
"name": "Winter 2020 Linear Algebra",
"nonxlist_course_id": "1234",
"restrict_enrollments_to_section_dates": true,
"root_account_id": "1",
"sis_batch_id": "1234",
"sis_source_id": "MATH-123-A12_12345",
"start_at": "2020-01-03T05:00:00Z",
"stuck_sis_fields": [
"course_id",
"name"
],
"workflow_state": "active"
}
}
Event Body Schema
Field | Description |
---|---|
accepting_enrollments | True if this section is open for enrollment. False or null otherwise. |
can_manually_enroll | Deprecated, will always be null. |
course_id | The Canvas id of the course that this section belongs to. |
course_section_id | The local Canvas id of the created course section. |
default_section | True if this is the default section for the course. |
end_at | Section end date in ISO8601 format. |
enrollment_term_id | The Canvas id of the enrollment term. |
integration_id | The integration id of the section. |
name | The name of this section. |
nonxlist_course_id | The unique identifier of the original course of a cross-listed section. |
restrict_enrollments_to_section_dates | True when 'Users can only participate in the course between these dates' is checked. |
root_account_id | Canvas id of the root account that this section is in. |
sis_batch_id | The SIS Batch id of the section. |
sis_source_id | Correlated id for the record for this course in the SIS system (assuming SIS integration is configured). |
start_at | Section start date in ISO8601 format. |
stuck_sis_fields | Array of strings of field names with the SIS stickiness field set, indicating they will not be replaced by SIS imports. |
workflow_state | The workflow state of the section. |
course_updated
Definition: The event is emitted anytime a course is updated by an end user or API request. Only changes to the fields included in the body of the event payload will emit the updated
event.
Trigger: Triggered when the course is renamed, deleted, or other properties (except for syllabus) of a course are modified.
Payload Example:
{
"metadata": {
"event_name": "course_updated",
"event_time": "2019-11-05 07:38:00 -0800",
"job_id": "1020020528469291",
"job_tag": "SIS::CSV::ImportRefactored#run_parallel_importer",
"producer": "canvas",
"root_account_id": "21070000000000001",
"root_account_lti_guid": "VicYj3cu5BIFpoZhDVU4DZumnlBrWi1grgJEzADs.oxana.instructure.com",
"root_account_uuid": "VicYj3cu5BIFpoZhDVU4DZumnlBrWi1grgJEzADs"
},
"body": {
"account_id": "12340000000012",
"course_id": "12340000000056",
"created_at": "2019-11-05T13:38:00.218Z",
"name": "Linear Algebra",
"updated_at": "2019-11-05 07:38:00 -0800",
"uuid": "a1b2c3c4z9x8a1s2q5w6p9o8i7u6y5t6a2s3d4f5",
"workflow_state": "available"
}
}
Event Body Schema
Field | Description |
---|---|
account_id | The Account id of the updated course. |
course_id | The Canvas id of the updated course. |
created_at | The time at which this course was created. |
name | The name the updated course. |
updated_at | The time at which this course was last modified in any way. |
uuid | The unique id of the course. |
workflow_state | The state of the course (available, claimed, completed, created, deleted). |