For Group and Community Editions
At Operoo, our developers often get asked how our Wonde sync works and what fields we use, so we decided to put this technical article together to try and answer some of those questions.
Wonde Documentation
We use this documentation for Wonde API v1.0
Integration Setup Process
- Operoo submits a request to Wonde to integrate with a school's SIS
- Wonde support contacts the school's POC to help in integrating their SIS to Wonde, or if they already have a Wonde account, configure the permissions for sharing.
- Once Wonde support is done with the above, Operoo gets an email to say that the school's data is now live in Wonde.
- Operoo generates a Wonde API read-only token to read the Wonde data
- Operoo generates an Operoo API key called "WondeTwo" to populate data into Operoo
How It Works
Every school will have a unique Wonde School ID.
For the purpose of this article, we will use the Wonde School ID 'A1234'
Interrogating Wonde EndPoints
Step 01
We interrogate the following Wonde URL:
We then use the retrieved data to display log entries, from the data field 'name'
Step 02
Getting staff, students and groups data from Wonde
We interrogate the following Wonde URLs:
- https://api.wonde.com/v1.0/schools/A1234/employees?include=employment_details,contact_details
- https://api.wonde.com/v1.0/schools/A1234/students?include=contacts,contacts.contact_details,permissions
-
https://api.wonde.com/v1.0/schools/A1234/groups?include=students,employees
the group data is then filtered to only have groups with 'type' of 'YEAR' or 'REGISTRATION'
Wonde data comes in the following format:
{ "data": [ <Item>, ... ] }
Mapping Staff Data
From the data retrieved from the 'employees' URL, we translate each employee Item of the root 'data' array into a Operoo Staff Member. https://api.wonde.com/v1.0/schools/A1234/employees?include=employment_details,contact_details
We only bring to Operoo, Wonde employee records with the flag ['employment_details']['data']['current'] set to 'true'
This is the Staff mapping used:
Operoo Staff Member Data
|
Wonde Staff Item Data
|
integration_id
|
id
|
first_name
|
forename (and in its absence 'legal_forename')
|
last_name
|
surname (and in its absence 'legal_surname')
|
user_request_id
|
mis_id
|
request_email
|
contact_details['data']['emails']['work']
|
Mapping Student Data
From the data retrieved from the 'students' URL, we translate each student Item of the root 'data' array into an Operoo Student Member. https://api.wonde.com/v1.0/schools/A1234/students?include=contacts,contacts.contact_details,permissions
This is the Student mapping used:
Operoo Student Member Data
|
Wonde Student Item Data
|
integration_member_id
|
id
|
first_name
|
forename (and in its absence 'legal_forename')
|
last_name
|
surname (and in its absence 'legal_surname')
|
user_request_id
|
mis_id
|
request_email
|
best_contact primary email (or in its absence the first. See details below)
|
request_mobile_number
|
best_contact primary phone (or in its absence the first. See details below)
|
The best student contact is determined by the following:
- if there are contacts with the flag 'primary' set to 'true', choose the first one
- in its absence choose the first contact with the ['relationship']['relationship'] attribute set to 'Mother'
- in its absence choose the first contact with the ['relationship']['relationship'] attribute set to 'Father'
- in its absence choose the first where the attribute ['contact_details']['data']['emails']['primary'] has data
- in its absence choose the first where the attribute ['contact_details']['data']['phones']['primary'] has data
- in its absence choose the first where the attribute ['contact_details']['data']['phones']['phone'] has data
- in its absence choose the first contact
Student phone numbers and email addresses
Operoo syncs student email addresses and student phone numbers from Wonde.
Wonde has 5 types of phone numbers
- phone
-
primary
-
home
-
work
-
mobile
and 4 types of email addresses
-
email
-
primary
-
home
- work
For students in Operoo we only display:
-
the email address of type "home"
-
the phone numbers of type "home" and "mobile"
Community Edition - Phone numbers
-
Parents
-
We sync the parent's phone numbers in the following order of preference.
- 1. Primary
- 2. Phone
-
We sync the parent's phone numbers in the following order of preference.
-
Staff
- We don't sync staff phone numbers from Wonde.
- Staff can add/change their mobile phone number directly in Operoo Central
Group Edition - Phone numbers
-
Student Contacts
- We sync all phone number
Student contacts in Group Edition must have
a first name and last name to sync successfully
- We sync all phone number
-
Staff
- We sync staff phone numbers in the following order of preference.
- 1. Mobile
- 2. Work
- 3. Primary
- 4. Phone
- We sync staff phone numbers in the following order of preference.
Mapping Groups Data
Community Edition
From the data retrieved from the 'groups' URL, we translate each groups Item of the root 'data' array into a Operoo Group.
Groups with no data in the 'name' attribute are skipped.
Mapping Year Groups Data
Only Groups with 'type' attribute having the value 'YEAR'
This is the Year Group mapping used:
Operoo Group Data
|
Wonde Group Item Data
|
integration_group_id
|
id
|
name
|
description (and in its absence 'name')
|
student_memberships
|
a compilation of the 'student_memberships' from Registration Groups with this year group id into parent_group_id
|
Mapping Registration Group Data
Only Groups with 'type' attribute having the value 'REGISTRATION'
This is the Registration Group mapping used:
Operoo Group Data
|
Wonde Group Item Data
|
integration_group_id
|
id
|
name
|
description (and in its absence 'name')
|
parent_group_id
|
the id of a year group, matching by similar group name, or no id
|
student_memberships
|
all the 'id' attributes from the ['students']['data'] array
|
Having a 'parent_group_id' will cause that group to be displayed on a tree level in Operoo
Group Edition
In Group Edition, the Groups description is taken from the "code" field in Wonde. The "name" field is not used.
Step 03
Getting Student Photos
We interrogate the following Wonde URL:
Mapping Student Data
From the data retrieved from the 'students' URL, we translate each student Item of the root 'data' array into a Operoo Student Photo.
The records with the flag ['permissions']['data']['photograph_student'] set to false' are skipped as Wonde is telling us we don't have permission to have that Student Photo on our website.
Step 04
Getting Staff Photos
We interrogate the following Wonde URL:
Mapping Staff Data:
From the data retrieved from the 'employees' URL, we translate each employee Item of the root 'data' array into a Operoo Staff Photo.
The records with the flag ['employment_details']['data']['current'] set to 'false' are skipped as Wonde is telling us this employee has left the School.
Additional information:
SIMS Profiles:
To sync both blue and white SIMS profiles into Operoo, make sure both profile types are synced from SIMS into Wonde. Operoo will then sync the data from Wonde.
Comments
0 comments
Article is closed for comments.