Building our Skyward SIS Connector
We are building new integrations all the time. We currently pull from 20 different student information systems (SIS), edTech applications, and assessment platforms. On the SIS side we have integrations built for Illuminate, PowerSchool, Aspen, eSchool Plus, Cortex, and now Skyward.
Skyward allows their customers to export data via a few different methods. We have found all, but one of them limiting so we wanted to give insight into what we view as the best way to export data from Skyward. Lets breakdown the different ways you can export your Skyward data so that it can be brought into an environment such as Google Data Studio, the report and data dashboard building tool used by Data Viz Starter Pack.
In our experience, most Skyward instances are hosted by ISCorp. However, if you host your own Skyward instance, you may want to jump down to the ODBC section of this as that is the solution you may find the most successful.
For users who want to stay within Skyward, there is Skybuild. Skybuild allows users to define flat files exports that can run automatically. For example, you can use Skybuild to create a .txt file containing student roster data. Skyward will refresh that .txt file every night and you can log in to download it. This is a great solution if you want to do a straight export of a certain type of data. If you want raw attendance data, this could work. However, if you want to create an export that includes some attendance and demographics data, this tool tends to not work as well as the methods described below.
Skyward also allows for API access. A list of available endpoints can be found here. Your Skyward system administrator can create an API key and secret to allow access to the API. We’ve found the API to be easy to work with, but missing critical data. For example, student attendance and current gradebook data is not available via the API. The base data sets for the Starter Pack includes this data so while using an API is typically preferred, it was not an option for us when working with Skyward data.
Skyward does allow their customers to query their database directly. This is the most complex way to pull data from Skyward, but we’ve found it to be the only way to fully build out our base data sets for our districts. If your Skyward instance is hosted by ISCorp, you will need to open a support ticket with them to go down this path.
In order to connect to your Skyward database, you will need to first setup some form of VPN. ISCorp supports both client based and LAN-to-LAN VPN solutions. For our districts, we spin up a Windows Server virtual machine in their Google Cloud and leverage the client based VPN option. The LAN-to-LAN solution requires quite a bit of work on the district side so be warned if going down that path.
If opting for the client based VPN connection, ISCorp will send over Cisco AnyConnect credentials that will allow you to VPN into their network. Once connected, you are able to connect to your SQL database. Skyward uses OpenEdge Progress SQL as their database which was new to us. Most SQL databases such as MySQL or Microsoft SQL provide a free client to connect to their databases. OpenEdge does not, but we’ve found DBeaver to be a great open-source and free SQL client. This article helped us connect DBeaver to OpenEdge.
Skyward may not have the most robust API out there, but it is fantastic that they allow their customers to query their database directly. Most of the data analysts who join the Starter Pack will never need to interact with the Skyward database directly, but we have built our scripting library in a way that allows an advanced user to modify the SQL queries to pull in additional data. In a future blog post we will cover the 10 most useful tables in the Skyward database.