Workday: Conversational Scheduling integration
Table of Contents
The Scheduling integration provides the ability for a customer to trigger a scheduling request in Paradox and update the candidate’s Workday application with the correct interview data.
Considerations
- Job Feeds must include the following:
- Open/Closed
- Internal/External
- Recruiter on the Req
- Hiring Manager on the Req
- Will the customer utilize one or multiple interview stages in Paradox? (Most relevant to Badged Integration)
- If multiple interview stages (i.e Interview 1, Interview 2, Interview 3) and using badged integration, we will need to utilize our inbound mapping tool.
- PUT Interview is only valid when candidate is in the Interview stage inside of Workday.
Conversational Apply + Scheduling considerations
If your customer is using both Conversational Apply and Scheduling, then consider the following:
-
Disposition status
-
Best practice: Align Paradox Disposition statuses with Workday’s Disposition Reason within a single Disposition stage.
- Reduces complexity in the customer-side Workday Studio build.
- Improves reporting accuracy by tying metrics directly to Workday.
-
Best practice: Align Paradox Disposition statuses with Workday’s Disposition Reason within a single Disposition stage.
-
Auto Stage Routing (ASR)
- Automatically moves candidates to a predetermined status based on their questionnaire responses.
- Can dramatically improve metrics and ROI (Example: Candidate comes through Chat-to-Apply, gets created into WD, answers favorably and is “ASR’d” to a Screen status).
- Traditionally, this was done inside of Paradox, but with Dynamic Chat-to-Apply, routing will need to happen inside of Workday after the creation of a candidate.
-
Status Updates: Custom Object vs Job Application BP
- Custom Objects are more flexible, reliable, and requires less maintenance for the customer.
Best practices for implementation
Scheduling sites
For customers who want to utilize scheduling sites, we recommend adding an additional Scheduling journey stage called Scheduling Site as the first scheduling round.
-
Why: When scheduling sites are used, the journey stage they connect to will be the first scheduling round. By adding this separate stage, it allows for clean and easy reporting within Paradox.
- Note: This is not a separate Paradox skill nor an additional product fee.
Semi-automated interview scheduling
For customers who want to schedule complex interviews and either don’t want to build the rules in Workday or need flexibility by candidate, we will often offer what we call the “semi-automated” or “HR-Initiated” approach.
- How: The status change in Workday Recruiting triggers a status update in Paradox (not a scheduling request). The coordinator/recruiter can then log in to the CEM/browser extension to build and send the request from within the Paradox UI.
Customer requirements
Baseline requirements
- Customer to provide Paradox with the endpoint URL that will be used for the integration. This will include the datacenter and tenant ID that will be used for testing. Most enterprise customers will be on datacenter wd5.
- https://{{data_center_id}}-impl-services1.workday.com/ccx/service/{{customer_workday_tenant_ID}}/Recruiting/{{version}}
- Be sure that the body of your requests is using the same version as specified in the endpoint URL.
- Customer to create an Integration System User (ISU) and assign to an Integration System Security Group (ISSG). customer to provide username and password of Integration User to Paradox.
- The permissions listed below will need to be granted for this specific integration.
| Operation | Domain Security Policy | Functional Areas |
|---|---|---|
| Get and Put | Candidate Data: Interview Schedule | Recruiting |
- Customer to make sure Paradox Integration System Security Group has security permission to any Web Service needed for the implementation.
- Due to current limitations with Journey Targeting, you should evaluate based on your customer use case if Groups or Journey Targeting will be used. For most customers and their design/integrations, Group Management can be used.
Scheduling-specific requirements
- Customer users will need to be added to Paradox. We utilize the user’s Workday employee ID as the unique identifier when scheduling users. This is traditionally done by setting up a user feed.
- The customer will need to build an outbound integration to our public API endpoint utilizing Workday Studio. Sample requests for our scheduling API can be found here.
This customer-facing document covers the information in this page. Please download a PDF of this document to share with customers.
Important Notes to share with the customer:
- Paradox currently cannot update a candidate’s interview status that belongs in the Workday Interview business process. We are currently exploring the PUT Interview Workday API to enhance our integration.
- If the customer builds custom Workday statuses outside of the Workday Interview business process, Paradox can utilize the Workday MOVE Candidate API to update the candidate’s Workday status.
Account configuration

Users with full access to Client Setup can complete the below steps.
- Select All Apps in the top left corner of the header and then Settings from its dropdown menu.
- When the Settings page opens, select Client Setup under the Paradox Tools section.
- From the left panel of Client Setup, scroll down to and open the Integrations section.
- Check to make sure that Workday is selected as the ATS.
- When enabled, configure the Scheduling feature based on their scheduling needs. Options include:
-
Simple Scheduling only – This is recommended for Enterprise/Commercial Launch customers. This includes up to 3 rounds of automated Journey Targeting scheduling with the recruiter, hiring manager, or interview team on the requisition. Click here to learn how to set up Simple Scheduling.
- Use case: The Interview Team field could be used as a catch-all for a different Workday user role seen on the requisition (example: Coordinator).
-
Notes:
- All subsequent rounds will be scheduled using the browser extension or CEM.
- This model only needs the Create/Update API call, not the scheduling alerts API, allowing for a simpler integration build and testing phases.
- The “Launch” model was created by Workday for medium Enterprise customers and consists of predefined configurations of our products (Job Search, Apply, and Scheduling) based on the common uses and deployments that are seen with Enterprise and Commercial customers. This will allow customers to adopt utilizing Paradox faster and realize value faster.
-
Complex Scheduling only – This includes the Workday certification badged scheduled integration and includes up to 3 interview rounds. Click here to learn how to set up Complex Scheduling.
- Nuance: Many customers will also have a “semi-automated” option for each of their interview rounds, which does not affect the Candidate Journey. “Semi-automated” means that a status change in Workday Recruiting triggers a status update to Paradox (not a scheduling request). The coordinator or recruiter then logs into the CEM/browser extension to build and send the request from within Paradox.
- Note: Some customers may have additional interview rounds. They can either append their badged integration to add additional rounds or use the “semi-automated” approach.
-
Simple and Complex Scheduling – This is the most common need for Strategic and Key customers. This includes up to 3 rounds of automated Journey Targeting scheduling with the recruiter or hiring manager on the req + up to 3 interview rounds utilizing the badged integration. Learn how to set up Simple Scheduling here and Complex Scheduling here.
- Nuance: Many customers will also have a “semi-automated” option for each of their interview rounds, which does not affect the Candidate Journey. “Semi-automated” means that a status change in Workday Recruiting triggers a status update to Paradox (not a scheduling request). The coordinator or recruiter then logs into the CEM/browser extension to build and send the request from within Paradox.
- Note: Some customers may have additional interview rounds. They can either append their badged integration to add additional rounds or use the “semi-automated” approach.
-
Simple Scheduling only – This is recommended for Enterprise/Commercial Launch customers. This includes up to 3 rounds of automated Journey Targeting scheduling with the recruiter, hiring manager, or interview team on the requisition. Click here to learn how to set up Simple Scheduling.
Interview scheduling deployment guide
Review Paradox + Workday's Interview Scheduling deployment guide to learn more about this integration and how to configure it in both Workday and Paradox.
Workday APIs utilized
The following APIs are used for this scheduling integration.
PUT Interview Alerts
This is an inbound request to have the customer's AI Assistant schedule a candidate for a specific interview. Learn more here.
Requirements:
- The customer will need to be provided with API access. You will need to create a user in the CEM and provide the customer its credentials.
Callouts:
- The Send Interview Alerts API is probably the most complex endpoint we have. It is strongly recommended that you provide customer with sample payloads specific to their requirements for different interview types being used and data fields needed.
PUT Interview
This request is made to update the candidate’s interview details in Workday.
Callouts:
- This can only be done for candidates that are in the Interview stage within the Job Application Business Process.
- Example: If a scheduling automation is being used say for scheduling a recruiter phone interview, and that is happening in Workday from the Screen stage, then we cannot put interview details back into Workday.
Sample Integration Center request (covers sequential interviews and multiple interviewers)
<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<env:Header>
<wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<wsse:UsernameToken>
<wsse:Username>{{globals.isu_user|escape}}</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">{{globals.isu_pw|escape}}</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</env:Header>
<env:Body>
<wd:Put_Interview_Request xmlns:wd="urn:com.workday/bsvc" wd:version="v39.0">
<wd:Interview_Data>
<wd:Job_Application_Reference>
<wd:ID wd:type="Job_Application_ID">{{__application_id}}</wd:ID>
</wd:Job_Application_Reference>
{% if __itv_complex_sequent_data -%}
{% for itv in __itv_complex_sequent_data -%}
<wd:Interview_Session_Data>
<wd:Interview_Session_Details_Data>
{% for attendee_id in itv['interview_attendee_ex_ids'] -%}
<wd:Interviewers_Reference>
<wd:ID wd:type="Employee_ID">{{attendee_id}}</wd:ID>
</wd:Interviewers_Reference>
{% endfor -%}
<wd:Interview_Start_Time>{{ itv['scheduled_at'] | strftime('%Y-%m-%dT%H:%M:%S', __calendar_tz) }}</wd:Interview_Start_Time>
<wd:Interview_End_Time>{{ itv['scheduled_end_time'] | strftime('%Y-%m-%dT%H:%M:%S', __calendar_tz)}}</wd:Interview_End_Time>
</wd:Interview_Session_Details_Data>
</wd:Interview_Session_Data>
{%- endfor -%}
{%- else -%}
<wd:Interview_Session_Data>
<wd:Interview_Session_Details_Data>
{% for __interview_attendee_ex_id in __interview_attendee_ex_ids -%}
<wd:Interviewers_Reference>
<wd:ID wd:type="Employee_ID">{{__interview_attendee_ex_id}}</wd:ID>
</wd:Interviewers_Reference>
{% endfor -%}
<wd:Interview_Start_Time>{{__scheduled_at | strftime('%Y-%m-%dT%H:%M:%S', __calendar_tz) }}</wd:Interview_Start_Time>
<wd:Interview_End_Time>{{ __scheduled_end_time | strftime('%Y-%m-%dT%H:%M:%S', __calendar_tz)}}</wd:Interview_End_Time>
</wd:Interview_Session_Details_Data>
</wd:Interview_Session_Data>
{% endif -%}
<wd:Timezone_Reference>
<wd:ID wd:type="Time_Zone_ID">{{__calendar_tz}}</wd:ID>
</wd:Timezone_Reference>
</wd:Interview_Data>
</wd:Put_Interview_Request>
</env:Body>
</env:Envelope>Sample request
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<env:Header>
<wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<wsse:UsernameToken>
<!-- Be aware of special characters in the username or password. Username ususally has @customerdomain at the end example: ParadoxIsu@customer.com -->
<wsse:Username>******</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">********</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</env:Header>
<env:Body>
<wd:Put_Interview_Request xmlns:wd="urn:com.workday/bsvc" wd:version="v35.2">
<wd:Interview_Data>
<wd:Job_Application_Reference>
<wd:ID wd:type="Job_Application_ID">JOB_APPLICATION-6-754097</wd:ID>
</wd:Job_Application_Reference>
<wd:Interview_Session_Data>
<wd:Interview_Session_Details_Data>
<wd:Interviewers_Reference>
<wd:ID wd:type="Employee_ID">102966</wd:ID>
</wd:Interviewers_Reference>
<wd:Interview_Start_Time>2021-09-02T18:00:00</wd:Interview_Start_Time>
<wd:Interview_End_Time>2021-09-02T18:30:00</wd:Interview_End_Time>
<wd:Interview_Location_Reference></wd:Interview_Location_Reference>
</wd:Interview_Session_Details_Data>
</wd:Interview_Session_Data>
<wd:Timezone_Reference>
<wd:ID wd:type="Time_Zone_ID">America/Los_Angeles</wd:ID>
</wd:Timezone_Reference>
</wd:Interview_Data>
</wd:Put_Interview_Request>
</env:Body>
</env:Envelope>Sample success response from within the Integration Center
{
"env:Envelope": {
"@xmlns:env": "http://schemas.xmlsoap.org/soap/envelope/",
"env:Body": {
"wd:Put_Interview_Response": {
"@xmlns:wd": "urn:com.workday/bsvc",
"@wd:version": "v37.2",
"wd:Interview_Reference": {
"wd:ID": {
"@wd:type": "WID",
"#text": "20eb5ac99844010827d39b1f02020000"
}
}
}
}
}
}Scheduling demo
A Workday integration exists in our Workday test tenant to trigger an integration from Workday to Paradox. Once the interview is scheduled in Paradox, the status will write back and update Workday with a new “scheduled” step, along with the interview details (date/time) if the candidate is in the Interview stage.
- Please note: This integration is running near real-time. If a customer were to use our Badged integration as is, it would run on a schedule (every X mins depending on cadence customer chooses).
To trigger this integration,
- Create a candidate.
- Log into Workday.
- Pull up the Job Requisition.
- Navigate to the Candidates tab.
- Select the candidate you want to move forward with that is currently in the Review stage.
- It is recommended that you use R-00015 requisition. Candidates for this currently, as for this to function details on the requisition in Workday, have to be set up appropriately. As we are underway with making updates to our integration, this is the only requisition currently configured to work in current state.
- Click Move Forward.
- Select the Screen Stage and then Send Screen Request to Paradox step.
- Click OK. This will move the candidate to the Screen stage in Workday and trigger the integration to schedule an Interview in Paradox.
- Navigate back to Paradox.
- You should see that candidate has now been invited to an interview
- Note: This may take up to a minute or so for the integration to run and complete.
You can also trigger this to send a request in the Interview stage.
- Slightly different, but similar to above, you’ll need to take the following actions:
- Make sure the candidate is currently in a step within the Screen stage.
- Move the candidate forward by selecting Interview for the stage and then Send Interview Request to Paradox for the next step.
- Click OK.