# Blackboard roster desk for registrars and coordinators

> Look up any student's enrollments, fix course rosters, and bulk enroll from a spreadsheet with a full preview before anything is saved.

- Workflow type: app
- Services: Blackboard, Google Sheets
- Categories: Operations
- Published: 2026-08-16

## What it does

- Search for any student and see every course they are enrolled in, with their role in each one, from a single search
- Open a course to view the full roster, promote someone to teaching assistant, or remove them, without leaving the app
- Load a roster from a spreadsheet and preview exactly who will be enrolled and which rows did not match, before anything is saved
- Keep an automatic log in the same spreadsheet of every add, role change and removal, so you always know who changed what and when

## What you'll need

- A Blackboard account with permission to view and manage course enrollments
- A Google account with access to the spreadsheet holding your rosters
- A spreadsheet with a roster tab listing students by email or username, plus a tab for the change log

## Prompt

Build me an internal roster desk that my registrar team and program coordinators work out of instead of clicking through Blackboard admin screens all day. It has three tabs: Student lookup, Course roster, and Bulk enroll. Nothing runs on a schedule, this is a staffed desk people open and work in.

A course picker in the header drives the whole app. Load the list of terms with the Blackboard Get Terms operation and let the coordinator choose one, then list the sections for that term with Get Courses filtered to the selected term, so people land on the courses they own instead of scrolling the whole catalog. Remember each user's last selected term and course between visits.

Student lookup tab: search by name, username or email with Get Users and show the matches in a result list. When one is selected, load the full profile with Get User and every course they are enrolled in with Get User Memberships. Show one row per course with the course name, the section, their role in that course, availability and the enrollment date, so the question "what is this student actually registered for" is answered in one search. Let the user jump straight from any row into that course's roster tab.

Course roster tab: for the course selected in the picker, show the full roster from Get Course Memberships with each person's name, username, email, role and last access, sorted with instructors and teaching assistants first. Load the available role options with Get Course Roles and let the user change someone's role inline, for example promoting a student to teaching assistant, with Update Membership. Removing someone uses Delete Course Membership behind a confirmation dialog that names both the person and the course. After a change, refresh just that row with Get Membership instead of reloading the entire roster.

Bulk enroll tab: the user supplies a Google Sheets spreadsheet ID and range, and the app reads the roster with Get Values. Match each row to a Blackboard user. Blackboard path IDs accept secondary ID prefixes (externalId:, userName:, emailAddress:), which is what makes spreadsheet matching practical when the sheet holds student emails or usernames rather than Blackboard primary keys. Use those prefixes first and fall back to a Get Users search when a row does not resolve cleanly.

The dry run preview before any write is the whole point, because bulk enrollment mistakes are painful to unwind in an LMS. Never write on load. Show a preview table that splits every row into three groups: will enroll, already enrolled (skip), and could not match (failure), with a plain reason on each skipped or failed row. Creating a membership that already exists returns a 409 conflict, so compare against the current roster first and mark those rows as skips rather than failures. Only after the user approves the preview does the app enroll the "will enroll" rows with Create Course Membership, using a role chosen for the batch. Show per row success or failure once the run finishes, and let the user copy or export the failed rows to fix and retry.

Every add, role change and removal appends a row to an audit tab in the same spreadsheet through Append Values, capturing the timestamp, who made the change, the action, the course, the person affected, the previous role and the new role. Write the audit row after the Blackboard call succeeds, and surface a visible warning if the audit append itself fails, so we always have a reliable record of who changed what and when.

Keep the interface dense and readable: table first layout, inline role dropdowns, clear empty and loading states, counts on each preview group, and errors shown next to the row that caused them rather than as a single generic banner.

## How to customize

- Change which term the course picker opens to, so coordinators land on the sections they own
- Adjust which columns the bulk preview reads from your roster sheet, such as email, username or student ID
- Choose which roles coordinators are allowed to assign, and which changes need an extra confirmation

## FAQ

### Will this change anything in Blackboard before I approve it?

No. The bulk tab always shows a preview first, listing exactly who will be enrolled, who is already enrolled, and which rows could not be matched. Nothing is written to Blackboard until you approve that preview.

### What happens if a student in my spreadsheet is already enrolled?

They are marked as a skip rather than an error. The preview separates rows that are already enrolled from rows that genuinely failed to match, so a partly filled roster does not look like a broken import.

### Does my spreadsheet need Blackboard ID numbers?

No. Student email addresses or usernames are enough. The app matches each row to the right person, and anything it cannot match is shown in the preview so you can fix it before enrolling.

### Can I see who made a change later?

Yes. Every enrollment, role change and removal adds a row to the log tab in your spreadsheet with the time, the person who made the change, the course, the student, and the role before and after.

### Can several coordinators use this at once?

Yes. Each person signs in with their own Blackboard access, so they only see and manage the courses they already have permission for.

Use this prompt in General Input: https://www.generalinput.com/prompts/blackboard-roster-desk-for-registrars-and-coordinators