← All nodes
Connectors

PowerSchool

Reads records from PowerSchool SIS — a database table such as students or cc, or a named PowerQuery — and returns them as rows.

When to use it

Use it to pull rosters, enrollments, schools, sections or staff out of PowerSchool for reporting, state submissions, or syncing into another system.

In a pipeline

Settings

SettingTypeRequiredDefault or hint
ConnectionselectYesAdd a connection below
Read FromselectYestable
TabletextYese.g. students, schools, cc, sections
Fieldstextarea—Comma-separated, e.g. dcid, student_number, first_name, last_name (blank for all the plugin may read)
Filtertext—e.g. grade_level==9;enroll_status==0
PowerQuery NametextYese.g. com.pearson.core.student.search
PowerQuery Arguments (JSON)textarea—{ "schoolid": 100 }
Row Limitnumber—e.g. 5000 (blank for all)

Example

Active ninth graders

  • Read From=A table
  • Table=students
  • Fields=student_number, first_name, last_name, grade_level, schoolid
  • Filter=grade_level==9;enroll_status==0
The request the node sends
Request
GET /ws/schema/table/students?projection=student_number,first_name,last_name,grade_level,schoolid&q=grade_level==9;enroll_status==0&pagesize=100&page=1
Records as rows
student_numberfirst_namelast_namegrade_levelschoolid
100231MayaOkafor9100
100245LeoBrandt9100

Columns keep PowerSchool's lower-case field names; a PowerQuery that joins several tables names them table.field.

Worth knowing

  • Setup, once per district: a PowerSchool administrator installs the FlowDoo plugin (the link is on the connection form) under System › System Settings › Plugin Management Configuration, enables it, and copies the Client ID and Client Secret from the plugin's Data Configuration page.
  • The plugin decides what FlowDoo may read: a table or field missing from its access request answers with a permission error. Add it to plugin.xml, then reinstall the plugin.
  • The Filter uses PowerSchool's query syntax: == equals, =gt= / =lt= / =ge= / =le= compare, ; means AND and , means OR, and * is a wildcard (last_name==Sm*).
  • Press Test Connection to check the address and credentials: it lists the tables the plugin can read in the Table dropdown, and choosing a table lists the columns it grants. Pick none to read every granted column.
  • Records are read 100 at a time until the Row Limit.
  • PowerQuery arguments are JSON sent as the request body, for example {"schoolid": 100}; the plugin must also grant access to the fields the PowerQuery returns.

Others in Connectors