Skip to content
cursareDocs
Sign inGet started

Start here

  • Overview
  • Getting started
  • Platform concepts

Create

  • Content
  • Editor and blocks
  • Block reference

Publish & access

  • Publishing and access
  • Custom domain & white-label

Learners

  • Learner experience
  • Learners and enrollments
  • Progress and certificates

Teams & cohort

  • Teams
  • Cohorts

Sales

  • Offers & checkout
  • Payments & payouts
  • Affiliates
  • Links
  • Insights and reports

Admin

  • Organization & security
  • Subscription, trial & billing
  • Appearance
  • Members & roles
  • Audit log

Developer

  • Integrations
  • Google Classroom
  • Open Badges
  • Zoom
  • Learner UI registry
  • API keys & webhooks
  • MCP server
  • API reference
Explore the API

Connect Google Classroom to Cursare

Use Google Classroom as the class entry point and Cursare as the learning environment. The connection brings four workflows together: select a Google class, map it to a Cursare cohort, explicitly enroll matched learners, and publish quizzes as assignments with optional grade return.

In Google ClassroomIn CursareResult
Active classContent + free offer + cohortA stable mapping between both environments
Student rosterAccounts with the same emailA reviewable preview before any enrollment
AssignmentQuiz in published contentA Classroom draft with a link to the learner experience
Student submissionGraded attempt in CursareA proportional grade returned to Classroom when enabled

It is a separate authorization

Connecting Classroom does not reuse Google sign-in or the Google Analytics and Tag Manager connection. The organization grants its own authorization, which can be expanded or revoked without affecting the others.

Before you begin

Prepare both sides before installing the app:

  • In Cursare: sign in as an organization owner or administrator. Create content, a free offer, and a cohort linked to that offer. Publish the content if you plan to create Classroom assignments.
  • In Google: use an account that can access and manage the class. The class must be active.
  • For learners: the Cursare account email must match the email returned by Classroom for automatic matching.
  • In a managed Google Workspace school: the domain administrator might need to approve Cursare as a third-party app before teachers can grant access.

Paid offers are not eligible for this workflow. A roster import cannot bypass checkout, a purchase, or commercial rules, so only free offers appear as mapping targets.

Flow at a glance

  1. Install the Google Classroom app for the organization.
  2. Select an active Google class and its destination Cursare cohort.
  3. Enable roster access and review the preview.
  4. Confirm the eligible enrollments.
  5. Enable assignments and grades when that workflow is needed.
  6. Create assignments as Classroom drafts and publish them there when ready.

Step 1 — Install the app

Open Settings → Integrations → Google Classroom and select Install Google Classroom.

In Google:

  1. Select the account that teaches or administers the class.
  2. Confirm that the consent screen identifies Cursare.
  3. Grant read-only access to classes.
  4. Wait for the automatic return to the integration page.

When authorization finishes, Cursare displays the authorized email, the Connected state, and the Classes badge. At this stage Cursare can discover active classes, but it cannot read rosters or create assignments yet.

Google Classroom connection showing the authorized account and active permissions

Use the account that actually manages the class

An account can sign in to Google successfully and still be unable to read students, create assignments, or update grades in that class. If the class is missing or an operation is denied, verify the account's Classroom role before reconnecting.

Step 2 — Grant only what is needed

Cursare requests permissions progressively. You do not need to allow grade writes merely to discover classes.

StageAction in CursarePermission requestedPurpose
ConnectionInstall Google Classroomidentity and read-only classesIdentify the account and list active classes
EnrollmentEnable roster syncread-only rosters and profile emailsBuild the preview and match accounts by email
AssignmentsEnable assignments and gradesmanage student coursework and gradesCreate work, locate submissions, and return grades

These permissions correspond to the Google scopes openid, email, classroom.courses.readonly, classroom.rosters.readonly, classroom.profile.emails, and classroom.coursework.students. Cursare includes previously granted access when the connection is expanded.

Step 3 — Map the class

Under Map a class:

  1. Choose the Google class.
  2. Choose the Cursare Content · Cohort destination.
  3. Select Create mapping.
Form for mapping a Google class to a Cursare cohort

A Google class has one active mapping inside an organization. Mapping the same class again updates its destination instead of creating two competing synchronizations.

The mapping does not copy content into Google and does not enroll anyone. It establishes the relationship used by subsequent actions.

Step 4 — Review and apply the roster

After enabling roster access, select Preview roster on the mapping. Cursare reads up to 500 students, normalizes their emails, and compares each person with existing accounts and enrollments. The preview changes no data.

StatusMeaningWhat applying does
Already enrolledThe account already has access to the contentLinks the Google identity without duplicating enrollment
ReadyA Cursare account has the same email but no enrollmentEnrolls the person in the mapped offer and cohort
Invitation neededNo Cursare account matches the emailCreates nothing silently; invite the person and generate a new preview
Removed from Google classA previously linked person is no longer in the Classroom rosterReports the difference while preserving Cursare access and progress

Review names and emails, then select Enroll selected learners. Application runs in the background and is retry-safe: applying the same snapshot does not duplicate an account, enrollment, cohort membership, or identity link.

Class mapping with roster preview, grade return, and draft assignment creation

The preview expires after 30 minutes

If the class changed or the preview expired, generate another preview before applying it. This prevents an old roster from being enrolled without review.

Removing someone in Google does not remove them in Cursare

Cursare never deletes access, progress, or results automatically because a learner left the Google class. Review the case and change Cursare access explicitly.

Step 5 — Publish an assignment

Enable Assignments and grades and publish the content in Cursare. Every eligible quiz in the published version appears on the mapping as Create draft assignment: quiz name.

When selected, Cursare:

  • creates a draft assignment in the Google class;
  • uses the content title and first quiz question to identify the assignment;
  • attaches the canonical URL that takes the learner into Cursare;
  • stores the class, assignment, and quiz ids for safe updates and grade return;
  • looks for coursework already associated with the same link before creating another item on retry.

Open the assignment in Classroom, review its title, instructions, due date, and audience, and publish it when ready. Creating the draft in Cursare does not distribute it automatically.

If no assignment button appears, confirm that the content is published, the published version contains at least one valid quiz, and the Assignments and grades badge appears on the connection.

Step 6 — Return grades

For each mapping, choose Max points between 1 and 10,000 and enable Return grades to Classroom.

When a linked learner completes the quiz, Cursare converts the result to the configured scale. A result of 8 out of 10, for example, becomes 80 on a 100-point scale. The grade is rounded to an integer and sent as both the draft and assigned grade on the matching Classroom submission.

Grade return occurs only when every condition is true:

  • grade return is enabled on the mapping;
  • the person was matched through the Google identity stored during roster reconciliation;
  • the attempt belongs to the content and quiz published through this mapping;
  • Cursare created the Classroom assignment and the same Google developer project can still modify it;
  • a matching Classroom submission exists.

If Google rejects the update, the original Cursare result remains intact. Disabling grade return stops new writes without deleting results or grades already recorded.

Privacy and security

The integration is designed for least privilege and a clear audit trail:

  • OAuth tokens are encrypted at rest and never returned by the UI or API;
  • raw Google responses are not retained;
  • Cursare stores the authorized identity, granted scopes, mappings, and verified learner matches;
  • connection, mapping, preview, enrollment, publication, grade settings, and grade return are recorded in the organization audit trail;
  • only an owner or administrator can connect, expand permissions, map, apply rosters, change grade settings, or disconnect.

Disconnect without losing history

Select Uninstall app to revoke authorization and disable mappings. This stops new class reads, enrollments, publications, and grade returns.

Disconnecting does not delete learners, cohorts, progress, attempts, grades, assignments already created in Google, or audit history. Those records remain to explain activity that happened before revocation.

Troubleshooting

The class is missing

  • Confirm that you selected the correct Google account.
  • Confirm that the class is active, not archived.
  • Confirm that the account can open and manage the class in Classroom itself.
  • If another identity is connected, uninstall and reinstall with the correct account.

Google blocked access

In managed domains, ask the Google Workspace administrator to review Cursare under Security → Access and data control → API controls → Manage third-party app access. They can allow the app for the specific Google data it needs. See the official Google Workspace instructions.

A learner shows “Invitation needed”

No Cursare account matches the email returned by Classroom. Invite the learner with that exact address, wait for the account to exist, and generate another preview. The integration never creates identities silently.

The connection shows “Needs attention”

Authorization might have been revoked, a scope might be missing, or Google might be unavailable. Retry after confirming the account's access. If a permission was removed, reinstall the app and grant the required modules.

A grade did not reach Classroom

Confirm that grade return is enabled, Cursare created the assignment, the learner was linked through the roster, and a Classroom submission exists. Cursare does not take ownership of assignments created manually in Google.

Production setup for Cursare operators

This section is for the team configuring the OAuth project, not the school administrator.

  1. Enable the Google Classroom API in the production project.
  2. Use an OAuth client dedicated to Classroom; do not reuse the sign-in or Analytics client.
  3. Register https://cursare.com/api/integrations/classroom/callback as an authorized redirect URI.
  4. Configure GOOGLE_CLASSROOM_CLIENT_ID and GOOGLE_CLASSROOM_CLIENT_SECRET in production.
  5. Declare only the scopes used by the implementation and keep cursare.com authorized and domain-verified.
  6. Publish consistent app name, home page, support email, privacy policy, and terms on the consent screen.
  7. Prepare a reviewer account with representative class, students, quiz, and submission, and record a complete demonstration of each scope.
  8. Submit branding and data access for the required verification before opening the connection publicly.

Google recommends requesting the narrowest possible access and can require verification for sensitive scopes. Refer to the official Classroom scope list and sensitive scope verification process.

Integration is not certification

Working technical flows do not authorize Cursare to display a partner badge or claim Google for Education certification. Those claims require separate external approval.

Validation checklist

Before enabling a school, run the complete flow with test data:

  • the correct account connects and lists only active classes;
  • each permission expansion explains the new access;
  • the mapping displays the expected content and cohort;
  • the preview separates enrolled, ready, and invitation-needed learners;
  • applying the same roster again creates no duplicates;
  • removing a learner in Google only reports the difference;
  • a published quiz creates a draft with the correct link;
  • the learner attempt returns a grade on the configured scale;
  • revoking authorization puts the integration into attention state;
  • uninstalling stops synchronization without deleting history.

Next steps

CohortsConfigure the offer, dates, seats, tutors, and discussion before mapping.Learners and enrollmentsUnderstand access, invitations, status, and enrollment management.Progress and resultsSee how activities, attempts, and completion are recorded.All integrationsExplore the other connections and their boundaries.
PreviousIntegrationsNextOpen Badges

Your privacy choices

The technical Tag Manager container is required to apply your choices. Analytics and marketing cookies and storage remain optional and stay off until you authorize them. Privacy Policy.

Sign-in, security, core functions and consent enforcement.

Audience measurement such as Google Analytics.

Marketing storage, campaign attribution and optional tags.