Skip to content
Notis

Correct Brightspace grade objects from Slack

Mark a confirmed grading fix with a reaction and let Notis apply it.

Trigger

Message Reaction Added

Triggered when a reaction is added to a message in Slack. Supports optional filtering by channel and emoji name.

Action

Update Grade Object

Updates a specific grade object. the grade object can be one of four types: 1. numeric: for numeric grades with max points 2. passfail: for pass/fail assessments 3. selectbox: for predefined grade options 4. text: for text-only feedback note: the provided data completely replaces the existing grade object's data. returns a gradeobject json block containing the updated grade object's data. requires oauth2 scope: - grades:gradeobjects:write available in api versions 1.75+ (lms v20.24.5+)

Why this helps

Grade corrections get lost when they depend on remembering a separate admin step.

  • Reduce forgotten corrections
  • Keep approvals visible
  • Apply precise grade updates

Setup

Build it in a few focused steps.

  • 1Connect Slackbot and D2lbrightspace in Notis once.
  • 2Create an automation named Grade correction reaction.
  • 3Tell Notis to read the reacted message, verify the grade object details, and apply the requested update.
  • 4Pick Message Reaction Added as the trigger and choose a report channel.
  • 5Test with one approved correction.

Questions about this workflow

Can any reaction trigger the update?

Filter the reaction trigger to the emoji your team uses for approved corrections.

What information must the message contain?

Include the org unit, grade object, and replacement values in the message context.

When this happens · Trigger

Do this · Action

Supported Triggers and Actions

Notis builds workflows that link Slackbot to D2lbrightspace. A trigger fires from one place; an action lands in another.

Slackbot triggers

D2lbrightspace actions

Recurring trigger

Notis starts this workflow on a schedule, such as daily, weekly, or during business hours.

TriggerScheduled

Copy Role

Creates a new role copied from an existing role in d2l brightspace. notes: - the new role will not have any capabilities upon the old role from which it was created - some capabilities will be copied for the new role (e.g., if old role users could impersonate other old role users, new role users will be able to impersonate other new role users) - additional capabilities must be manually created after copying requires oauth2 scope: - role:detail:create available in api versions unstable (lms v10.4.10+)

ActionInstant

Webhook trigger

Notis starts this workflow when an external tool or custom backend sends an HTTP request.

TriggerInstant

Create Course Offering

Creates a new course offering in d2l brightspace. notes: - course code limitations: max 50 chars, no special chars: \ : * ? " < > | ' # , % & - path: leave empty if path enforcement is enabled - semesterid: provide null if not using the semester element - canselfregister: required for api v1.28+, not supported before v1.28 requires oauth2 scope: - orgunits:course:create available in api versions 1.46+ (lms v20.24.3+)

ActionInstant

New Channel Created Trigger

Triggered when a new channel is created in Slack.

TriggerInstant

Create Course Template

Creates a new course template in d2l brightspace. notes: - course template code limitations: max 50 chars, no special chars: \ : * ? " < > | ' # , % & - path: leave empty if path enforcement is enabled requires oauth2 scope: - orgunits:coursetemplate:create available in api versions 1.46+ (lms v20.24.3+)

ActionInstant

Channel Message Received

Triggered when a message is posted in a Slack channel (public, private, or multi-party IM). Does NOT match direct messages.

TriggerInstant

Create Grade Object

Creates a new grade object for a particular org unit. the grade object can be one of four types: 1. numeric: for numeric grades with max points 2. passfail: for pass/fail assessments 3. selectbox: for predefined grade options 4. text: for text-only feedback returns a gradeobject json block containing the created grade object's data, including its assigned id. requires oauth2 scope: - grades:gradeobjects:write available in api versions 1.75+ (lms v20.24.5+)

ActionInstant

Direct Message Received

Triggered when a new direct message (DM) is sent to a user in Slack. Catches all DMs across all DM channels.

TriggerInstant

Create Quiz

Creates a new quiz in d2l brightspace. notes: - numberofattemptsallowed must be between 1 and 10 (inclusive) or null for unlimited - password must not be empty or whitespace if provided - notificationemail must be a valid email address if provided - timelimitvalue: 0 for no limit (with isenforced false), or 1-9999 for enforced limit - deductionpercentage must be between 0 and 100 if provided - as of le api v1.71: - latelimitminutes is ignored - latesubmissionoption 1 is treated as 2 (autosubmitattempt) - submissiongraceperiod is not used - pagingtypeid added in le api v1.78 - date fields should be in utc format requires oauth2 scopes: - quizzing:quizzes:read - quizzing:quizzes:create available in api versions 1.75+ (lms v20.24.5+)

ActionInstant

Message Reaction Added

Triggered when a reaction is added to a message in Slack. Supports optional filtering by channel and emoji name.

TriggerInstant

Create Quiz Category

Creates a new quiz category in d2l brightspace. returns a quizcategoryreaddata json block containing: - categoryid: the id of the created category - name: the name of the category - sortorder: the sort order value requires oauth2 scopes: - quizzing:quizzes:read - quizzing:quizzes:create available in api versions 1.75+ (lms v20.24.5+)

ActionInstant

Message Reaction Removed

Triggered when a reaction is removed from a message in Slack. Supports optional filtering by channel and emoji name.

TriggerInstant

Create User

Creates a new user entity in d2l brightspace. requires oauth2 scope: - users:userdata:create available in api versions 1.46+ (lms v20.24.3+) notes: - firstname and lastname are used as legal names - externalemail must be null or a valid email address - orgdefinedid must be unique across the organization if provided - preferred names must be set separately after user creation

ActionInstant

Reaction Added Trigger

DEPRECATED: use `SLACK_MESSAGE_REACTION_ADDED` instead. Triggered when a reaction is added to a message in Slack.

TriggerInstant

Delete Course Template

Deletes a course template from d2l brightspace. requires oauth2 scope: - orgunits:course:delete available in api versions 1.46+ (lms v20.24.3+)

ActionInstant

Connect any two apps with Notis in the middle.

Slackbot and D2lbrightspace, or any other combination from 1,000+ integrations.

When this happens · Trigger

Do this · Action

Save your first hour today.

7-day trial of any paid plan, with 20$ of usage included.
No card. Works with personal or business D2lbrightspace.