For Companies & Schools

Onboarding Refresh, Public Data self-management, and sync improvements

Over the past couple of weeks we've shipped an Onboarding Refresh, expanded Public Data self-serve tooling, and improved several dashboard workflows. Highlights include multi-resource LTI deep linking, richer sharing-rule filters, clearer product/key management, and a round of LMS/SIS sync fixes.

API Updates

  • Public Data: Institution and company detail responses now include parent/child relationship data, and list endpoints support expanding children. See the Institutions and Companies docs.
  • LTI Deep Linking: Resource selection can now return multiple attachments in a single postMessage payload via an attachments array. See the Deep Linking guide.
  • Audit Logs: List Events now uses our standard paging cursors, and Create Event surfaces $warnings for ignored or invalid context fields.
  • Products: Creating or updating a product with a duplicate code now returns a clear ALREADY_EXISTS error instead of a generic failure.

Dashboard Updates

  • Onboarding Refresh: Updated provider onboarding flows (including Infinite Campus and generic OneRoster); fixed OneRoster getting stuck on timezone after credentials; fixed the Qmlativ validate button when a secret is entered; restored PowerSchool plugin download links; dashboard team creation can pick a company or institution (with a pending claim) or keep a custom name; pending invitations are listed during onboarding; sandbox creation prompts for an application when a team has more than one.
  • Public Data: Teams can self-manage claimed institutions and companies (including addresses, offerings, and relationships), and complete Public Data API setup from team claims. A copy-publishable-key step is included in the setup flow.
  • Sharing rules: Added person_races filters, fixed English learner and economically disadvantaged lookups, and exposed MATCHES ANY OF for custom properties plus IS KNOWN / IS UNKNOWN for school name.
  • Team settings: Refactored team settings for a clearer configuration experience.
  • Secret & publishable keys: Redesigned application key management for faster copy/create/delete.
  • Tables: Migrated dashboard tables to a compositional table component with persistable column visibility and order (View Settings).
  • Feedback: Added a Feedback & Bugs button in the dashboard breadcrumbs to submit product feedback.
  • Widgets: Fixed embedded widget sizing so widgets render at the intended dimensions.
  • Integrations: Restored district/developer team names on the integrations list; fixed Share Products so already-shared products are shown as disabled; fixed custom transformation save/delete edge cases.
  • FACTS: Added a feature-flag toggle in source settings.

Pipeline Updates

  • Veracross: Non-historical syncs now include summer academic years.
  • OneRoster: CSV imports trim all values; improved subject-code → CEDS mappings and additional subject string maps.
  • Schoology: Class subjects now inherit course subject data, including CEDS codes when known.
  • Moodle: Sources can supply custom HTTP headers for Moodle API requests.
  • Google Flow: Flow sources request the correct write scopes during validation (instead of read-only sync scopes).
  • Blackbaud: Current parents are marked active correctly.
  • Infinite Campus: Fixed employment-check and school ID handling for sections.
  • Flow: Deleting a class link now removes the corresponding source.classes row to prevent duplicate-key sync failures.
  • Materializations: Proceeding from a halted materialization creates a new materialization run instead of mutating the pending one.