Skip to content

Keep your roster in sync

Instead of uploading a roster file each time, you can have SurveyRock fetch it every day and load it with the same checks as a file you upload: teams, leaders, people, their HR fields, and who joins and leaves the Employees (roster) list. See Load your org structure for what a roster holds and does.

Roster sources are part of team reports, on the Growth plan and above. Workspace owners and admins set them up.

In Workspace Settings → Org Structure → Keep it in sync, choose one:

  • A Workday report: SurveyRock reads a custom report you publish as a web service.
  • A file on an SFTP server: SurveyRock fetches a CSV your HR system writes to a server you run.
  • A file at an HTTPS address: SurveyRock downloads a CSV from a web address, with no sign-in, a user name and password, or a bearer token.

Pick the hour it loads each day (in your time zone) and select Save. Test connection fetches the roster and says what loading it would do, without loading anything. Load now loads it straight away.

SurveyRock connects from no fixed IP address. If your server, or your Workday sign-in policy, only accepts listed addresses, contact us and we will set up a fixed address for your connection.

Your Workday administrator does this once:

  1. Create an Integration System User for SurveyRock. Select Do Not Allow UI Sessions, leave Require New Password at Next Sign In unticked, and add the user to the password rules’ list of system users exempt from password expiry, so the connection doesn’t break when passwords expire.

  2. Put the user in a security group that can see only the workers and fields the report needs.

  3. Build an Advanced custom report with one row per worker, including workers who left in the last 30 days (so a leaver arrives with their leaving date), and these fields. For each one, set the Column Heading Override and the XML alias to the same name in the second column:

    Field Name
    Work email Employee_Email
    Team (for example the supervisory organization’s code) Team_Code
    Team name Team_Name
    The team above it Parent_Code
    The team’s manager’s email Leader_Email
    Employee ID Employee_ID
    Hire date Hire_Date
    Termination date Termination_Date
    Location (optional) Location
    Job title (optional) Job_Title
    Worker type (optional) Employment_Type
    First and last name (optional) First_Name, Last_Name
  4. Enable the report as a web service and share it with the integration system user.

  5. From the report’s related actions, choose Web Service → View URLs and copy the JSON URL.

In SurveyRock, choose A Workday report, paste the URL, and enter the integration system user’s name and password. SurveyRock only sends them to Workday’s own addresses (workday.com and myworkday.com).

  1. Have your HR system write the roster CSV to your SFTP server on a schedule, before the hour SurveyRock loads it. The columns are the same as an uploaded roster file.
  2. Create an SFTP account that can read only that file.
  3. In SurveyRock, choose A file on an SFTP server, enter the server, port, user name and the full path to the file, and choose how SurveyRock signs in:
    • SurveyRock’s key (recommended): after you save, add the public key SurveyRock shows to the account’s authorized_keys. SurveyRock never holds a password for your server.
    • A password: enter the account’s password.
  4. Select Check the server’s key. Compare the fingerprint with your server’s own (ssh-keygen -lf on its host key) and select This is the right key. From then on SurveyRock refuses to connect if the server’s key changes, before sending anything, and pauses the source until you check it again.

A scheduled load checks the roster against the one before it. It stops, loads nothing and emails the workspace’s owners and admins the same day when:

  • more than 10 people (or 2% of the roster, if that is more) are missing without a leaving date, which usually means a report’s filter or access changed rather than people leaving;
  • more than 10 people (or 2%) join at once;
  • 20% or more of the roster would leave; or
  • the new people would go over your plan’s contact limit.

The first load after you save a source uses only the 20% check, since it may carry weeks of changes.

To load a stopped roster on purpose, open Recent loads and select Load anyway. SurveyRock fetches the roster again, shows how many people would leave and join by team, and loads it only with those numbers. If the roster changes in between, it stops again.

Someone who leaves the roster and is back within 14 days is restored, not treated as a new joiner, so they are not sent your onboarding workflow again.

If SurveyRock can’t fetch the roster, or the file isn’t a valid roster, the load is logged in Recent loads with the reason. After two failures in a row, the owners and admins get an email. After seven, the source pauses until someone fixes it and saves it.

A source runs with the rights of the person who saved it. If they can no longer manage the workspace’s settings or import contacts, the source pauses and the owners and admins are emailed; any of them can select Take it over.