Secure Sync Certification Guide

How Long Does it Take?

The time it takes to build an integration with Clever varies depending on your business needs, data model, and technical constraints.

Certification Process

  1. Build Integration: Complete your Clever integration.
  2. Submit for Certification: Submit your integration for certification review.
  3. Review: Our Partner Engineering team will review your integration in accordance with our Certification requirements. This typically takes 5 business days but can vary depending on availability.
  4. Results and Next Steps: Receive an email with your certification results and recommended next steps. If needed, we will schedule a call to discuss your integration in greater detail.

How Do I Get Started?

  1. Create a Development App: Sign up for a developer account and create a development app in Clever.
  2. Submit Application Icon: During application setup, submit your application icon (square vector file, typically in SVG or AI format).
  3. Review Certification Requirements: Ensure you understand the certification requirements for your integrations.
  4. Build Integration: Read through our API documentation and begin building your integration.

Checklist

Ensure the following items are complete before submitting for certification:

Integration Requirements

  • Use Clever ID as a key identifier for all data types.
  • Have a strategy for matching existing users to Clever data.
  • Update data at least once per day (updates upon login suffice).
  • Archive records when data in Clever is unshared/deleted and restore records if the Clever ID reappears (including Terms and Courses).
  • Handle missing data fields for non-required fields per Clever's data schema.
  • Tie historical data to student records if tracking historical data.
  • Preserve student-teacher associations (if applicable).

Important Questions to Answer

General Questions

  • Which version of Clever's API are you using?
  • Which field does your application use as the key identifier from Clever?
  • What's the top-level or central record in your data model?
  • What steps are needed for a district to set up your application via Clever?
  • Does your application use district-app tokens to sync data?
  • Does your application need a sync to initialize data before login?
  • How does your application handle missing fields that are not required/guaranteed in Clever?
  • Does your application update data upon login or with a daily batched sync?

Provisioning Accounts

  • Which Clever user types will have accounts in your application?
  • Do you support a user type with more access than teachers?

Matching

  • How will you match Clever districts with existing districts in your CRM/database?
  • How will you match Clever schools with existing schools in your CRM/database?
  • Does your application match user records to preserve historical/progress data and accounts? If so, how?

Rostering

  • Does your application sync student-teacher associations from Clever?

Ongoing Updates

  • How often is a new sync triggered, and how?
  • Do you update data on user login, using full data syncs, or using events?

Admin Edits

  • Can a teacher or admin:
    • Edit user permissions or assign additional roles?
    • Create users not managed by the Clever sync?
    • Create groups of students not managed by the Clever sync?
    • Split a section into subgroups?
    • Add/remove students from a synced section?
  • If yes, will changes persist until manually edited, or be overwritten/deleted on the next Clever sync?

Updating and Deleting Records

  • What happens if a student moves between classes?
  • What happens if a student moves between schools?
  • What do you do if a record is deleted from Clever and no longer appears in the API?
  • Can a record be restored after deletion/archival?

Student Progress

  • Does your application store progress data (e.g., lesson completion, attendance, user-generated content)?
  • Is there any case where progress data would be deleted?

Rollover

  • How do you handle semester or school year rollover?

If You Provision or Update Accounts on Login

  • Which record types do you store/access?
  • What happens when a user logs in for the first time?
  • What happens when a user logs in after their account has been provisioned?

If Your Application Requires an Initializing Sync

  • Who initiates the initial sync?
  • Which record types will be synced?

If Your Application Has a User Type with More Access Than Teachers (Administrators)

  • What access levels of administrator/super-teacher users do you support, and how do they map (or not map) to Clever user types?
  • How do you handle teachers who are also administrators in Clever, having two Clever IDs (one for the teacher record and one for the administrator record)?

If Your Application Uses Roster Data

  • If syncing sections, is there any data on the section object that changes your application's behavior or assigns content/curriculum?
  • How do you handle users not associated with any sections or student-teacher associations?
  • How do you handle users with multiple sections/student-teacher associations?
  • How do you handle users associated with classes/teachers/students in multiple schools?
  • Do you support co-teachers? If yes, is there a maximum number of co-teachers per class?

If You Use Events

  • Can you initiate a full data (non-events) sync if needed?
  • Which records do you process events for?

Sample Edge Case Data

We provide a 5-school dataset to help you test edge cases:

For a full list of edge cases and users, check Certification ISD Edge Cases.