Sky API: One Roster files coming in to ClassLink incorrectly

Hello,


Our school recently started implementing ClassLink. We were able to setup our Roster Server to pull in data from Blackbaud using the SKY API connector and got that working this week. However we are running into a problem where all of our users, courses, and class enrollments are being associated with a single school level, even though we have multiple school levels in the system. The connector appears to be pulling in One Roster files and I was told by support that as the user we're responsible for controlling the endpoints. Connecting ClassLink to our Blackbaud K-12 data was very hands off from our side though, we added the ClassLink application in our Blackbaud environment and I authorized access on the ClassLink side by using my Blackbaud ID credentials. I've not seen where we can manage our endpoints and in the past it hasn't seemed like we have much flexibility in changing or managing any endpoints in the OneRoster data that Blackbaud delivers to third parties. So I'm at a loss for how to resolve this. 


Any suggestions would be appreciated, thank you!

Comments

  • Hi Tasia Weatherly‍ this is timely I've been working with one of our vendors on the school and department modeling this week. Our current OneRoster implementation does output on org both the school levels and departments. However as I'm sure you've noticed nothing is parented so you can't link them together. And then the courses are all parented to the higher school parent id. I had a request in to have our group fix this so that the course is mapped to the parent dept id and then in orgs the departments are parented by the appropriate school level id and so on. However, we hit a little bump this week in that while the OneRoster schema only supports a one to one relationship on both: each org level can only have one parent and each course can only have one parent, our model actually supports one to many. Courses can belong to multiple departments, and departments can belong to multiple school levels (schools). We're struggling with what to do in this situation or what the expected outcome would be. Output the many rows in courses i.e. one for each department related to and then just dedupe at the enrollment level? Maybe this isn't the same issue your'e having but looked related so figured I'd give it a shot. Thanks!
  • Angie Addison:

    Hi Tasia Weatherly‍ this is timely I've been working with one of our vendors on the school and department modeling this week. Our current OneRoster implementation does output on org both the school levels and departments. However as I'm sure you've noticed nothing is parented so you can't link them together. And then the courses are all parented to the higher school parent id. I had a request in to have our group fix this so that the course is mapped to the parent dept id and then in orgs the departments are parented by the appropriate school level id and so on. However, we hit a little bump this week in that while the OneRoster schema only supports a one to one relationship on both: each org level can only have one parent and each course can only have one parent, our model actually supports one to many. Courses can belong to multiple departments, and departments can belong to multiple school levels (schools). We're struggling with what to do in this situation or what the expected outcome would be. Output the many rows in courses i.e. one for each department related to and then just dedupe at the enrollment level? Maybe this isn't the same issue your'e having but looked related so figured I'd give it a shot. Thanks!

    Hi Angie! Thank you for responding.


    The issue we're currently having is that all our users and courses, in the OneRoster files for ClassLink, are being associated with one orgSourcedId and the school level they're being associated with is not actually tied to most of the courses or users. We have a few school levels in our K-12 environment and when I open up the raw OneRoster files in ClassLink, every single row shows our international school in the orgSourceId column. I totally get the issue of how to handle it when courses belong to multiple departments which can then belong to multiple school levels, but do you think our issue is related to that? I know teachers can be associated with multiple school levels and students might belong to more than one school level if they're enrolled in classes at multiple school levels, but would that cause every single user and course to be associated with our international school in the files, even though there is no link to that school in the database?


    The other issue we're having is that our demographics data is coming over to ClassLink empty. I'm honestly not certain how to troubleshoot either of these issues since I don't know how the OneRoster data is set up to flow over to third party applications - I only see the result of it in the raw files on ClassLink's side. 

  • Hi Tasia Weatherly‍! When I run your csv OneRoster export I get a distribution of classes across your orgs. I'll reach out via email and tell you what I'm seeing. I don't think your issue sounds like what we're dealing with in the one to many relationship unfortunately. Sounds like something is off on the mappings from our OneRoster output in your receiving app. One the demographics bit, we haven't built the optional demographics into our OneRoster implementation yet. I think there is an idea on the idea forum for that if you want to vote it up!
  • I am having a similar issue where when I import my data from Blackbuad to ClassLink via ON connection - the orgSourceDID field for my users, classes, and enrollments all show the same value - even though they are not in this school. 
  • Hi Daniel Wilkerson‍, we had the same issue, except we were using SKY API. According to our ClassLink implementation team they have also had trouble with the ON API for other clients, so we had Blackbaud and ClassLink work together to solve the issue. Angie Addison‍ recommended ClassLink build out a connector for OneRoster, and that project was completed a week or two ago - we were able to get the correct data into ClassLink. We're still working out some kinks (OneRoster doesn't include grade level data so we are manually importing a grade level supplemental file to ClassLink for now), but it's progress. Hopefully that helps!
  • Hi all, I met with IMS Global on this issue recently as it's a gap in the OneRoster schema and we started down the path of doing multiple rows per each user, course etc. with unique keys for the combination of the record+parent but not all providers are going to be able to handle that so I'm hesitant to mess up existing implementations that are running just fine. In the case of the course being related to multiple departments within a school we decided to use the metadata extensions and providers that need to relate to more than one parent department can do it with that or, providers that also need subject area on the courses can use this as department is typically akin to subject area. Providers that don't need this can then ignore it. The users to the multiple departments, etc. is really a byproduct of their enrollment so that would also be taken care of unless I'm missing something, let me know. We could also potentially do the school level hierarchy in the same manner. We are slowly releasing provider-specific config options as you may have noticed recently so this will be continuation of that and we can get it to market fairly quickly, faster than we will probably be able to affect IMS Global's roadmap for changes but we're continuing on that path as well for the long-term "right" solution.
  • Thanks so much Angie. The issue I'm having is more what you described in the second half of your paragraph where all students, teachers, classes, and enrollments show a single 'org' value. If I do an export manually out of Blackbaud via the OneRoster / ClassLink option - the values of this field is different. What I'm getting out of the API is a single value (1068) matching a single organization that shows up in my 'org' table. Every record has this same value. When I do the export via the web GUI - I get a value similiar to 'org-sch-229-479' in the org column, with some showing two more than one value separated by a comma. When I look at the 'org' table. I have many more organizations than in the API pull.


    I'm very new to the OneRoster schema - so I was curious what the expected format for this org value (orgSourcedIds)?


    Thanks,


    -Daniel
  • We too started using ClassLink and when pulling the data from OneRoster the demographics and grades are missing. Any updates on this?

  • We are now able to get grade levels from our OneRoster integration between Classlink and Blackbaud, but we are still not getting any demographic information.

  • Same here. Yesterday, we were able to pull the grades but the demographics still remain a main issue.

  • Jackie Gerry:

    Same here. Yesterday, we were able to pull the grades but the demographics still remain a main issue.

    @Angie Addison Do you know if there are any upcoming plans to include a OneRoster demographics file so third parties like Classlink can collect that additional data? Some of our applications need to see birthdate, gender, etc, and until Classlink can get this from Blackbaud we have to upload a supplemental file manually.

  • Hi @Tasia Weatherly ! Good news - BB has spun up a dedicated integrations team (in K12) for SKY API, OneRoster and a handful of other API needs. I'm passing along your message to Evan York, our Product Manager on that new team so hopefully he can update you soon on the plans for OneRoster phase 2.

  • Oh great, thanks Angie!