Sync people from Workday
Have your Workday admin publish a custom report as a web service, connect it with an integration system user, and Polzy keeps your members up to date from it.
On this page
Polzy reads Workday through one custom report that your Workday admin builds and publishes as a web service — often called Report as a Service, or RaaS. Each row of the report is one person. New rows arrive as members of your workspace, changes follow at the next sync, and people the report marks as inactive stop receiving surveys. You choose the report's columns, so you decide exactly what Polzy can read.
People sync is on Team and up, and only workspace admins can connect a source. Polzy only reads the report: it never writes to Workday.
Before you start
You need:
- To be an admin of the Polzy workspace, on Team or higher, with People sync switched on under Settings → General → What this workspace does.
- A Workday admin who can create an integration system user, a security group and a custom report. Workday's own documentation for these tasks is on Workday Community, behind your Workday sign-in.
- The fields you want to group results by already added in Polzy, such as Department or Location.
A workspace syncs from one source at a time. If another source is connected, disconnect it first. If your organization provisions people through SCIM, a people source cannot be connected at all — see SCIM.
Build the report in Workday
Your Workday admin does this part.
- Create an integration system user (the Create Integration System User task) for Polzy, with a strong password that does not expire without warning.
- Put it in an integration system security group that may see the workers and fields the report will show.
- Create a custom report of workers, with Advanced as its type, and tick Enable As Web Service.
- Add one column per field, named the way Polzy expects:
Email,First_Name,Last_Name,Employee_ID,Active,Manager_Email,Department,Business_TitleandLocation. Other names work too; you then map them in Polzy. - Include recently terminated workers, with
Activeset to 0 for them, so Polzy learns that they left. - Share the report with the integration system user.
- From the report's actions, choose Web Service → View URLs and copy the JSON address. It looks like
https://wd2-impl-services1.workday.com/ccx/service/customreport2/acme/ISU_Polzy/Polzy_Workers.
Test against your implementation tenant first: every Workday report is specific to its tenant, and a report built there has to be built again in production.
Connect Workday in Polzy
- Open Contacts → Sync & fields.
- Under Available sources, find Workday and choose Connect. A panel opens with three steps: Connection, Sync settings and Field mapping.
- Paste the report's address into Report web service URL, and enter the integration system user's name and password as API Username and API Password.
- Choose Test connection. Polzy reads the report: Connected. The report returned data. means everything works; Connected, but the report returned no rows. means the user may not see any worker.
- Choose Next, check the sync settings (see below), and choose Next again.
- On Field mapping, keep the default mapping or switch on Custom field mapping (see below), then choose Connect.
Polzy asks for the report as JSON, so the address works with or without ?format=json on the end. The password is stored encrypted and is only used to read the report.
Sync settings
| Setting | What it does | Default |
|---|---|---|
| Sync Frequency | How often Polzy reads the report: every hour, every 4 hours, twice daily or daily. Workday limits how often its web services can be called, so every 4 hours or daily is best. | Every 4 hours |
| Disable Terminated Employees | Meant for people who disappear from the report. For Workday it has no effect today: see When someone leaves. | On |
| Send Invitation Emails | New members with an email address get an invitation to sign in to Polzy. | On |
| Default Role | The role new members get: Viewer, Editor or Admin. It applies only to people the sync creates. | Viewer |
| Fetch Contact Information, Fetch Organization Data and Fetch Employment Data | No effect: everything Polzy reads comes from the report's columns. | On |
| Save Raw Data | Keeps a copy of each row as Workday sent it beside the person in Polzy. Leave it off unless you are troubleshooting a mapping: it stores more personal data than you need. | Off |
Map the fields
The default mapping reads the column names from step 4 above:
| Polzy field | Report column |
|---|---|
Email | |
| First name, last name | First_Name, Last_Name |
| Employee ID | Employee_ID |
| Active status | Active |
| Manager | Manager_Email |
| Department, job title, office | Department, Business_Title, Location |
If your report names its columns differently, switch on Custom field mapping and choose the right column for each field. Each row also has an If empty, use value, written when the report has nothing for that person — a value the report does send is never overwritten.
A few things to know:
- Real examples. When you first connect, the list shows the default column names. Once connected, choose Settings on Sync & fields and open Field mapping again: the list then comes from the first rows of your report, each with an Example, so you see your report's real column names.
- Only your workspace's fields are filled. Department or office are kept only if your workspace has a field with that name. Add one with Add field on Sync & fields, then map it.
- Groups. To compare results by a field, make it a List field and switch on Groups beside it in the Field mapping table.
- Managers. The manager is linked when someone in Polzy has that email address. If they are not there yet, the link is made at a later sync. Managers need Reporting lines switched on in the workspace.
Preview and run the first sync
- On Sync & fields, choose Preview a sync under Sync history. Polzy works out what a sync would add, update and deactivate, without changing anything, and opens the log where the result appears as Preview.
- Check the preview. If names, emails or departments look wrong, fix the report or the mapping and preview again.
- Choose Sync Now. The result appears in Sync history.
People from Workday are matched to people already in Polzy by email address, so someone you had already invited by hand is updated rather than added twice.
Schedule and sync history
After the first sync Polzy runs on its own, at the frequency you chose, give or take a few minutes. Workday offers no webhooks here, so changes arrive at the next sync, or when you choose Sync Now. Sync history lists the last five runs — Success, Partial (some people were skipped or failed), Failed or Preview — and Full log opens every run, with each change it made.
If a sync fails, Polzy tries again later, waiting longer each time. After three failures in a row the source shows Needs attention and admins are told. Sync Now works again once the source is connected: fix the details under Settings and save.
When someone leaves
- Marked inactive in the report. Someone whose
Activecolumn says 0, false, inactive or terminated is deactivated at the next sync; an empty value counts as active. Deactivated people receive no surveys and use no seat; their past answers stay. - Gone from the report. Someone who simply stops appearing in the report is not deactivated today. Keep leavers in the report with
Activeset to 0 for as long as they might still be active in Polzy. - Blocked in Polzy. Someone an admin blocked in Polzy stays blocked, whatever the report says.
Nobody is deleted by a sync.
Troubleshooting
| What you see | Why | What to do |
|---|---|---|
| Tenant Name is required; Environment is required when you choose Connect | Polzy's Workday connector still checks for two fields the form no longer shows. It is a fault on our side, not in your values. | Contact Polzy support; the connection cannot be saved until it is fixed. |
| Failed to read the Workday report: Workday API error: … | The address is wrong, the user's password changed or expired, or the user may not run the report. | Open the address in a browser, signed in as the integration system user, and fix what Workday reports. |
| Connected, but the report returned no rows. | The user's security group cannot see any worker, or the report's filter leaves none. | Widen the security group or the report's filter. |
| People are skipped | A row has neither an email address nor a phone number. | Add an Email column, or map the column that holds it. |
| N people were not imported: the plan has no seats left for them. | Every member uses a seat, and the plan is full. | Free seats or change plan, then choose Sync Now. |
| … is already importing people. Disconnect it before connecting another source. | A workspace syncs from one source at a time, and another one is connected. | Open that source's Settings and choose Disconnect first. |
Good to know
- Members, not contacts. Everyone from Workday is a member: they can sign in and each uses a seat. A sync that would go over your seats imports the people who fit, stops there and tells admins — see Usage and limits.
- You control the data. Polzy can only read what the report shows. Leave out any column you do not want in Polzy.
- Disconnect or remove. Under Settings, Disconnect stops syncing and keeps the settings and history, so you can reconnect later; Remove deletes the connection. Either way, the people already synced stay in Polzy and are no longer updated.
- Need a hand? The connect panel's Ask Polzy link explains where each value comes from.
Useful links
- Workday's guides to integration system users and reports as a service are on Workday Community, which needs your Workday sign-in; no public page covers them.
- People and contacts — fields, groups and members.
Related articles
Signed-in members can ask Polzy or message the team from Support. How fast we reply depends on your plan.