Skip to main content

Workday HCM Setup Guide

Prerequisites

  • Administrator access to your Workday tenant. You need it to create the integration user and grant it permissions.
  • A dedicated Workday Integration System User (ISU) for Matia. You'll create one in Step 1. Matia expects an ISU rather than a personal or administrator account.

Authentication options

Pick one of the two methods before you start, since a few Workday settings depend on it:

Method in MatiaWhat you enterWorkday setup
Access TokenISU username and passwordSteps 1, 2, 3 and 5 (Step 6 is optional)
OAuthClient ID, Client Secret, and Refresh TokenSteps 1 to 5 (Step 6 is optional)

Both methods also need your Workday Tenant and Workday Hostname (see Step 5).

Setup Guide

Step 1: Create the Matia integration user and security group

  1. Sign in to Workday as an administrator.
  2. Run the Create Integration System User task (search for create user).
  3. Choose a User Name and Password, and keep Require New Password at Next Sign In unchecked.
  4. Set Do Not Allow UI Sessions based on your authentication method:
    • Access Token: check it.
    • OAuth: leave it unchecked. The OAuth flow needs the user to be able to open a UI session.
  5. Click OK, then Done.
  6. Run the Create Security Group task.
  7. Set Type of Tenanted Security Group to Integration System Security Group (Unconstrained), give the group a Name, and click OK.
  8. Add the integration user from this step to the group and click OK.

Step 2: Allow the group to authenticate

  1. Run the Manage Authentication Policies task and click Add Authentication Policy.
  2. Under Restricted to Environments, pick the environments Matia should reach, and check Authentication Policy Enabled.
  3. In the Authentication Allowlist, add a rule with an Authentication Rule Name, the Security Group from Step 1, and an Authentication Condition Name with its Authentication Conditions.
  4. Under Allowed Authentication Types:
    • Access Token: choose Specific and select User Name Password.
    • OAuth: choose Any.
  5. Click OK.
  6. Run Activate All Pending Authentication Policy Changes, add a comment, check Confirm, and click OK.

Step 3: Grant read access to the data Matia syncs

Matia reads from the Workday Human Resources, Staffing, Payroll, and Time Tracking web services. The security group needs Get access to the domains behind the data you plan to sync:

  • Workers, including personal data, contact details, positions, leave status, and worker events
  • Positions, organizations, job profiles, job families, and job categories
  • Payroll results
  • Calculated time blocks
  1. Open the Security Group Membership and Access report and select the security group from Step 1.
  2. From the group's related actions (...), choose Security Group > Maintain Domain Permissions for Security Group.
  3. Under Integration Permissions, add the relevant domains to Domain Security Policies permitting Get access, then click OK and Done.
  4. Run Activate Pending Security Policy Changes, add a comment, check Confirm, and click OK.

Tip: Domain names vary between tenants. To see which domains protect a specific object, open it in the View Security for Securable Item task, click View Security, and look at the domains listed for its Get operations.

Step 4 (OAuth only): Create an API client and refresh token

Skip this step if you use Access Token.

  1. Run the Register API Client for Integrations task.
  2. Enter a Client Name, e.g. Matia.
  3. Keep Non-Expiring Refresh Tokens checked. If you set a Refresh Token Timeout instead, the connection stops working when the token expires and you'll have to paste a new one into Matia.
  4. Under Scope (Functional Areas), select the functional areas that match the domains you granted in Step 3. The View Security for Securable Item task shows the functional area for each object. Leave Include Workday Owned Scope unchecked.
  5. Click OK, then copy the Client ID and Client Secret. Workday shows the secret only once.
  6. From the client's related actions, choose API Client > Manage Refresh Tokens for Integrations.
  7. For Workday Account, select the integration user from Step 1, check Generate New Refresh Token, and click OK.
  8. Copy the Refresh Token.

The Client ID, Client Secret, and Refresh Token must all come from the same API client. Matia uses the refresh token to request short-lived access tokens on its own, so there is no sign-in popup during setup.

Step 5: Find your tenant and hostname

Open any Workday Web Services endpoint URL for your tenant. It follows this pattern:

https://<hostname>/ccx/service/<tenant>/Human_Resources/...

  • Workday Tenant is the segment right after /ccx/service/.
  • Workday Hostname is the host only, e.g. impl-services1.wd5.myworkday.com. Leave out https:// and any path, since Matia builds the full URL for you.

Note: Use the web services host, which contains -services1 (or -services2, -services3, and so on). The host you see in the browser when using Workday, e.g. impl.wd5.myworkday.com, won't work.

Step 6 (Optional): Set up custom and calculated fields

Do this only if you want Workday custom or calculated fields on worker data. In Matia they appear in the worker, worker history, and calculated time block tables.

  1. Run the Create Integration System task, name it, choose New Using Template with the Cloud Integration template, and click OK.
  2. From the integration system's related actions, choose Integration System > Configure Integration Services, check Enable All, and click + under Custom Integration Services.
  3. Create an Integration Field Override Service, set its Business Object to Worker, list the fields you want to expose, and click OK until the configuration is saved.
  4. From the related actions again, choose Integration System > Configure Integration Field Overrides, pick the service you just created, map each field under Override External Field, and click OK.
  5. Copy the Integration System ID.

Step 7: Complete configuration in Matia

  1. Choose Access Token or OAuth as the authentication method.
  2. Enter the Workday Tenant and Workday Hostname from Step 5.
  3. Enter the credentials for your method:
    • Access Token: the integration user's Username and Password from Step 1. Enter the username alone, without @<tenant>. Matia adds the tenant for you.
    • OAuth: the Client ID, Client Secret, and Refresh Token from Step 4.
  4. (Optional) Turn on Sync Custom and Calculated fields and enter the Integration System ID from Step 6.
  5. Enter an Asset Name.
  6. (Optional) Enter a Description.
  7. (Optional) Assign Tags.
  8. Select an Owner.
  9. Verify that your Workday HCM account is successfully connected by clicking Test Connection.
  10. Click Connect.

Note: Test Connection checks your credentials and hostname by reading job families. It doesn't check every domain, so a missing permission may only show up during the first sync as a "not authorized" error. If that happens, add the missing domain in Step 3 and activate the change.

Troubleshooting

  • Authentication failed: Check that you're using the integration user, not an administrator account, and that the authentication policy from Step 2 is active. For OAuth, confirm the Client ID, Client Secret, and Refresh Token all belong to the same API client.
  • Task submitted is not authorized: The security group is missing a domain. See Step 3.
  • Syncs fail on Saturday mornings: Workday runs weekly maintenance on Saturdays from 02:00 to 06:00 (UTC-5). Syncs that run during that window can fail with a 503 error. Syncs after the window ends are not affected.