Import data via API integration
Connect your student information system (SIS) to SchoolDay over its rostering API so roster data imports automatically on a schedule.
In this article
Supported SISes and their setup articles
Step 1: Generate API credentials in your SIS
Step 2: Activate the application in SchoolDay
Step 3: Enter the connection details
An API integration pulls roster data directly from your student information system (SIS) over its rostering API. SchoolDay authenticates with credentials you generate in the SIS. It then imports schools, staff, students, sections, and enrollments on a schedule, with no files to upload.
Requirements
- Primary District Admin permissions in SchoolDay.
- Administrator access to your SIS, so you can generate API credentials.
- An SIS that supports API-based rostering. See Supported SISes Overview.
- The connection details from your SIS: Service URL, Client ID, Client Secret, and, if the SIS uses OAuth 2.0, the authentication URL (also called the token URL).
- A decision on sync mode: Import for one-way data flow into SchoolDay, or 2-way Sync to also write data back to the SIS. See Sync modes in SchoolDay.
Supported SISes and their setup articles
Credential names and SIS menu paths differ by vendor. Use the article for your SIS alongside this one.
- Aeries setup
- Blackbaud setup
- Chalkable iNOW setup
- ClassLink setup
- FACTS (RenWeb) setup
- Focus setup
- Follett Aspen setup
- Illuminate setup
- Infinite Campus setup
- Lumen Touch setup
- PowerSchool setup
- Sapphire setup
- Skyward setup
- Synergy setup
- Veracross setup
If your SIS isn't listed, import over SFTP instead. See Configure an SFTP integration.
Step 1: Generate API credentials in your SIS
- Sign in to your SIS as an administrator.
- Go to the area where you register external applications or rostering connections. Names differ by SIS. Look for something like an API, OneRoster, or digital learning application settings page.
- Create an application entry for SchoolDay. This generates a rostering connection.
- Copy the Service URL, Client ID, and Client Secret. If your SIS uses OAuth 2.0, copy the authentication URL as well.
The API version your SIS exposes sets the path at the end of the Service URL, for example /rostering/v1p2 or /rostering/v1p1.
Important: Keep these credentials open in a second window. Most SISes show the Client Secret only once.
Step 2: Activate the application in SchoolDay
- Sign in to SchoolDay.
- Go to Connect > Application Gallery.
- Search for your SIS by name.
- Select the application, then click Activate. If the gallery lists more than one entry for your SIS, select the native API entry.
- If the application offers a sync mode, select Import or 2-way Sync.
Step 3: Enter the connection details
- Go to Settings > Delivery Config.
- Enter the Service URL, including the API version path.
- Enter the Client ID and Client Secret.
- If your SIS requires one, enter the authentication URL.
- If the application asks for a data schema, select one.
- Open Advanced Settings and set the options your district needs:
- SIS ID prefix: Set it when you import from more than one source and SIS IDs might collide.
- Bulk upload mode: Turn it on when records removed from the SIS must also be deleted in SchoolDay.
- Data will be uploaded from multiple data sources: Turn it on when roster data comes from your SIS plus another source, such as Active Directory.
- Compare records by Domains of Uniqueness: Turn it on when you've configured duplicate detection. See Configure Domains of Uniqueness for duplicate detection.
- Preview of data upload (Data Preview Mode): Turn it on when you want to approve every sync before other apps see the data. See Data Preview Mode: approve syncs before they apply.
- Sync hold threshold (Safety Threshold): Set it when you want large changes held for approval. See Safety Threshold: protect against unexpected bulk changes.
- Click Test Connection. Don't continue until the test passes.
Step 4: Map schools and attributes
- Open Schools Mapping and select the schools to import. See Map schools from your SIS to SchoolDay.
- Open Attributes Mapping and confirm which SIS fields map to which SchoolDay fields. See Map data attributes from your SIS to SchoolDay.
- Set the optional tabs your district needs:
- Data Requirements: Define what happens when an attribute is missing. See Set data requirements for your SIS.
- Filter Rules: Exclude records by entity type. See Configure a filter rule.
- Domains of Uniqueness: Define the fields that make a record unique.
- Master Fields: Decide which source wins when records conflict.
- Schedule: Set the frequency and time of automatic syncs. See Set up a sync schedule.
- Click Finish Configuration.
Step 5: Run the first import
- Go to Connect and select your SIS application.
- Click Run Import. For a 2-way sync application, click Run Sync.
- Wait for the run to finish. The first run is a full sync of every selected school, so it takes longer than later runs. [Add typical duration for a large district.] You can leave the page while it runs.
Tip: Run the first import outside school hours.
Verify the import
- Confirm the application status is Active.
- Open the History tab and click Show Details on the latest run. Compare the record counts for schools, students, teachers, sections, and enrollments with your SIS.
- Confirm the run lists no errors.
- Go to Connect > Data and spot-check a few students and sections. See View your rostering data.
- Check for skipped and duplicate records. See Check data quality after each sync.
The integration works when the status is Active, the latest run shows the expected record counts, and no records are skipped.
Troubleshooting
| Symptom | Likely cause | Fix |
| Status shows Connection failed | The credentials are invalid or expired. | Go to Settings > Delivery Config, re-enter the Service URL, Client ID, and Client Secret, then click Test Connection. |
| Test Connection fails although the credentials are correct | The Service URL points to an API version your SIS doesn’t expose. | Confirm the API version enabled in the SIS, then correct the version path in the Service URL, for example /rostering/v1p2. |
| The import finishes but no schools appear | No schools are selected. | Go to Settings > Schools Mapping and select the schools to import. |
| Records deleted in the SIS still appear in SchoolDay | Bulk upload mode is off, so SchoolDay doesn’t detect deletions. | Turn on Bulk upload mode in Settings > Delivery Config > Advanced Settings. |
| Data synced before and has stopped, with no error shown | No sync schedule is set. | Go to Settings > Schedule and set the frequency and time. |
| Status shows Data verification or Changes pending approval | The Safety Threshold or Data Preview Mode held the run. | Review the changes on the History tab, then accept or decline them. |
| Duplicate users appear after you add a second data source | SIS IDs overlap between sources. | Set a SIS ID prefix for each source and configure Domains of Uniqueness. See Resolve duplicate records in SchoolDay. |
| Students are missing from a vendor app | SchoolDay skipped records for data quality reasons. | Go to Data Quality > App Rules, then correct the missing fields in your SIS. See Troubleshooting errors and skipped records. |
If the problem persists after these checks, contact support@schoolday.com. See Troubleshoot roster data sync issues.