Skip to main content

Workday Data Source Connector

The Workday Data Source Connector is an API-based integration that extracts HR data directly from your Workday tenant using the Workday Query Language (WQL) REST API. Unlike the file-based Workday integration, which relies on Enterprise Interface Builder (EIB) exports, the connector pulls data from Workday automatically on a scheduled basis — no file exports or transfer infrastructure required.

Key benefits

  • Fully automated — TechWolf manages the connector end-to-end. No need to build, schedule, or monitor EIB exports.
  • Broad data coverage — Extracts up to 14 distinct data types from Workday, from basic worker information to learning enrollments, performance reviews, and goals.
  • Permission validation — The connector validates your Workday security configuration at setup time and reports exactly which permissions are missing, if any.

How it works

  1. You configure an Integration System User (ISU) in Workday with the necessary security permissions and register an API client.
  2. You share the OAuth credentials with TechWolf.
  3. TechWolf configures and operates the connector.
  4. The connector authenticates with Workday, executes WQL queries against the configured data types, and loads the results into the SkillEngine API.
The connector connects directly to the Workday REST API. No data passes through intermediate files or storage — it flows from Workday to the SkillEngine API.

Available data types

The connector supports up to 14 data types. Each accordion below shows the field mapping from Workday to TechWolf, the exact WQL query (or SOAP operation, for Feedback) issued by the connector, and any filter logic applied. Each data type requires specific Workday security domain permissions, detailed on the Installation page.
Basic Employee information: Employee ID, current Job Profile, Supervisory Organisation, and active status.Source: Workday WQL — allWorkers. Permission domains: Worker Data: Current Staffing Information; Worker Data: Current Job Profile Information; Worker Data: Public Reporting Items.
TechWolf FieldPrimary Business ObjectBusiness ObjectWQL Output FieldRequiredNotes
employee_external_id (external_id)WorkerWorkeremployeeIDRequiredEmployee’s Workday ID. External ID of the entity.
assigned_positionWorkerJob ProfileIDRequiredJob Profile ID of the Employee’s current position. Called assigned_position_id in TechWolf; relates to Job Profiles in Workday, not Positions.
organisational_unit_idWorkerSupervisory OrganizationorgUnitIdRequiredSupervisory Organisation reference ID.
activeWorkerWorkeractiveStatusWhether the Employee is currently active.
WQL query:
SELECT employeeID, jobProfile{ID}, supervisoryOrganization{referenceID1},
       activeStatus, workdayID
FROM allWorkers
Supervisory Organisation hierarchy: name, reference ID, parent Organisation, and active status.Source: Workday WQL — supervisoryOrganizations. Permission domain: Manage: Supervisory Organization.
TechWolf FieldPrimary Business ObjectBusiness ObjectWQL Output FieldRequiredNotes
organisational_unit_nameSupervisory OrganizationSupervisory OrganizationnameRequired
organisational_unit_id (external_id)Supervisory OrganizationSupervisory OrganizationreferenceID1RequiredExternal ID of the organisational unit.
organisational_unit_activeSupervisory OrganizationSupervisory OrganizationinactiveRequiredWhether the Organisation is inactive.
parent_organisational_unit_nameSupervisory OrganizationSuperior OrganizationsuperiorOrganizationName
parent_organisational_unit_idSupervisory OrganizationSuperior OrganizationsuperiorOrganizationCodeRequired
WQL query:
SELECT name, referenceID1, superiorOrganizationName, superiorOrganizationCode,
       inactive, workdayID
FROM supervisoryOrganizations
Employee learning enrolments. Only completed enrolments of type Blended Course, Digital Course, or Lesson are emitted to TechWolf.Source: Workday WQL — allWorkers (with learningEnrollments subselection). Permission domains: Worker Data: Current Staffing Information; Person Data: Learning.
TechWolf FieldPrimary Business ObjectBusiness ObjectWQL Output FieldRequiredNotes
employee_idLearning EnrollmentWorkeremployeeIDRequired
course_idLearning EnrollmentEnrolled ContentcourseIDRequiredWorkday ID extracted from the enrolled content reference.
timestampLearning EnrollmentLearning EnrollmentcompletionDateRequiredIf empty, defaults to current date.
completion_statusLearning EnrollmentLearning EnrollmentcompletionStatusUsed by the connector filter (see below).
learning_content_typeLearning EnrollmentLearning EnrollmentlearningContentTypee.g. Blended Course, Digital Course, Lesson.
WQL query:
SELECT employeeID,
       learningEnrollments{enrolledContent, learningContentTitle,
                           completionDate, completionStatus,
                           learningContentType},
       workdayID
FROM allWorkers
Filter logic (applied by the connector after the WQL response):
  • completionStatus equals Completed
  • learningContentType is one of Blended Course, Digital Course, or Lesson
Employee internal staffing history. Hire, position-change, and termination events are pulled and consolidated by the connector into job periods with a start and end date per role. Consecutive events with the same Job Code and Position are merged; endDate is empty when the Employee is still in the role.Source: Workday WQL — allWorkers (with staffingHistory_All subselection). Permission domains: Worker Data: Current Staffing Information; Worker Data: Historical Staffing Information. BP Security Policies (View All): Hire, Change Job, Termination, Contract Contingent Worker, Transfer Contingent Worker Inbound, End Contingent Worker Contract.
TechWolf FieldPrimary Business ObjectBusiness ObjectWQL Output FieldRequiredNotes
employee_id (employee.external_id)WorkerWorkeremployeeIDRequired
job_idWorkerJob Profile HistoryjobCodeRequiredJob code of the position during this period.
start_date (& timestamp)WorkerJob Profile HistorystartDateRequiredStart of the job period.
end_dateWorkerJob Profile HistoryendDateRequiredEnd of the job period. Empty if the Employee is still in this role.
positionWorkerJob Profile HistorypositionPosition identifier.
WQL query:
SELECT employeeID,
       staffingHistory_All{jobCode, effectiveDate, position,
                           isHireTransaction,
                           isPositionChangeTransaction,
                           isTerminationTransaction},
       workdayID
FROM allWorkers
WHERE ON staffingHistory_All
      isHireTransaction = true
   OR isPositionChangeTransaction = true
   OR isTerminationTransaction = true
Previous (pre-current-employer) work history captured in the Worker profile.Source: Workday WQL — allWorkers (with jobHistory_SkillsAndExperience subselection). Permission domains: Worker Data: Current Staffing Information; Person Data: Job History.
TechWolf FieldPrimary Business ObjectBusiness ObjectWQL Output FieldRequiredNotes
employee_idWorkerWorkeremployeeIDRequired
job_titleWorkerJob History - Skills and ExperiencejobTitleRequired
job_descriptionWorkerJob History - Skills and ExperienceresponsibilitiesAndAchievementsRequired
companyWorkerJob History - Skills and Experiencecompany
start_dateWorkerJob History - Skills and ExperiencestartDateRequired
end_dateWorkerJob History - Skills and ExperienceendDateRequired
WQL query:
SELECT employeeID,
       jobHistory_SkillsAndExperience{jobTitle, company, startDate, endDate,
                                       responsibilitiesAndAchievements},
       workdayID
FROM allWorkers
Employee certifications with issue and expiration dates.Source: Workday WQL — allWorkers (with certifications subselection). Permission domains: Worker Data: Current Staffing Information; Person Data: Certifications.
TechWolf FieldPrimary Business ObjectBusiness ObjectWQL Output FieldRequiredNotes
employee_id (employee.external_id)WorkerWorkeremployeeIDRequired
certification_nameWorkerCertificationscertificationNameRequiredCertifications in Workday have no description.
timestampWorkerCertificationsissuedDateRequired
expiration_dateWorkerCertificationsexpirationDate
WQL query:
SELECT employeeID,
       certifications{certificationName, issuedDate, expirationDate},
       workdayID
FROM allWorkers
Employee education history.Source: Workday WQL — allWorkers (with education subselection). Permission domains: Worker Data: Current Staffing Information; Person Data: Education.
TechWolf FieldPrimary Business ObjectBusiness ObjectWQL Output FieldRequiredNotes
employee_id (employee.external_id)WorkerWorkeremployeeIDRequired
degree_nameWorkerEducationdegreeRequired
field_of_studyWorkerEducationfieldOfStudyRequired
start_dateWorkerEducationfirstYearAttendedRequired
end_date (& timestamp)WorkerEducationlastYearAttendedRequired
schoolWorkerEducationschoolName
WQL query:
SELECT employeeID,
       education{degree, schoolName, fieldOfStudy,
                 firstYearAttended, lastYearAttended},
       workdayID
FROM allWorkers
Employee goals with name, description, completion date, and status.Source: Workday WQL — allWorkers (with goals subselection). Permission domains: Worker Data: Current Staffing Information; Worker Data: Employee Goals.
TechWolf FieldPrimary Business ObjectBusiness ObjectWQL Output FieldRequiredNotes
employee_id (employee.external_id)WorkerWorkeremployeeIDRequired
nameWorkerGoalsgoalNameRequired
descriptionWorkerGoalsgoalDescriptionRequired
statusWorkerGoalsstatusRequiredOnly send relevant entries (e.g. Completed, On Track) — agree with TechWolf during onboarding so the appropriate filter is configured.
timestampWorkerGoalscompletedOnRequired
WQL query:
SELECT employeeID,
       goals{goalName, goalDescription, completedOn, status},
       workdayID
FROM allWorkers
Performance review data: review name, manager and employee comments, type, and review period end date.Source: Workday WQL — allWorkers (with reviews_AllStatuses subselection). Requires the Performance Enablement API client scope. Permission domains: Worker Data: Current Staffing Information; Worker Data: Employee Reviews. BP Security Policies (View All): Complete Manager Evaluation for Performance Review, Complete Self Evaluation for Performance Review.
TechWolf FieldPrimary Business ObjectBusiness ObjectWQL Output FieldRequiredNotes
employee_idWorkerWorkeremployeeIDRequired
titleWorkerPerformance ReviewtitleRequiredPerformance Review name.
descriptionWorkerPerformance ReviewdescriptionRequiredManager overall comment, or feedback responses (depending on template).
statusWorkerPerformance ReviewstatusOnly send relevant entries (e.g. Completed, On Track).
typeWorkerPerformance Reviewtype
timestampWorkerPerformance ReviewtimestampReview period end date.
WQL query:
SELECT employeeID,
       reviews_AllStatuses{templateName, content_FeedbackResponses,
                            overallComment_Manager, overallComment_Employee,
                            evaluations_AllStatuses, reviewType,
                            eventCompleted, reviewPeriod_EndDate},
       workdayID
FROM allWorkers
Employee feedback: anytime feedback, self-requested feedback, and feedback requested by others.Source: Workday SOAP — Get_Workers (Human Resources service) with Include_Feedback_Received response group. Requires the Performance Enablement API client scope. Permission domains (must be View, not Get): Worker Data: Anytime Feedback; Worker Data: Role Requested Feedback; Worker Data: Self Requested Feedback; Worker Data: Confidential Feedback; Worker Data: Private Feedback.
TechWolf FieldPrimary Business ObjectBusiness ObjectWQL Output FieldRequiredNotes
employee_id (employee.external_id)WorkerWorkeremployeeIDRequired
timestampWorkerFeedbacktimestampRequiredDate the feedback was given.
sourceWorkerFeedbacksourceRequiredFeedback type — e.g. Anytime Feedback, Requested by Self, Requested by Others.
descriptionWorkerFeedbackdescriptionRequiredCombined feedback question + comment (HTML stripped).
Feedback is the only data type that uses SOAP rather than WQL. This is why Feedback requires View permissions (not Get) on the relevant Feedback domains, and why it is not visible via WQL even when WQL permission is granted. See the Installation page for the full permission set.
Job Profile catalog: descriptions, Job Family information, and active status.Source: Workday WQL — allJobProfiles. Permission domain: Job Information.
TechWolf FieldPrimary Business ObjectBusiness ObjectWQL Output FieldRequiredNotes
job_id (external_id)Job ProfileJob ProfileIDRequiredExternal ID of the entity. Workday ID of the Job Profile.
job_nameJob ProfileJob ProfilejobProfileNameRequired
job_descriptionJob ProfileJob ProfilejobProfileSummaryRequired
job_descriptionJob ProfileJob ProfilejobDescriptionRequired
job_descriptionJob ProfileJob ProfileadditionalJobDescriptionOptional additional Job description text.
activeJob ProfileJob ProfileinactiveRequiredJob assumed active if no value given.
job_family_idJob ProfileJob FamilyjobFamilyIDRequiredReference ID of the Job Family. A Job can be part of multiple families in Workday, but not in TechWolf.
job_family_nameJob ProfileJob FamilyjobFamilyNameName of the linked Job Family.
job_family_group_nameJob ProfileJob Family GroupjobFamilyGroupName
WQL query:
SELECT ID, jobProfileName, jobDescription, jobProfileSummary,
       additionalJobDescription,
       jobFamily{referenceID1, jobFamilyName},
       jobFamilyGroup{jobFamilyName},
       inactive, workdayID
FROM allJobProfiles
Job Family catalog, used when the Job Architecture is in scope.Source: Workday WQL — allJobFamilies. Permission domain: Job Information.
TechWolf FieldPrimary Business ObjectBusiness ObjectWQL Output FieldRequiredNotes
job_family_id (external_id)Job FamilyJob FamilyreferenceID1RequiredExternal ID of the entity.
job_family_nameJob FamilyJob FamilyjobFamilyNameRequired
job_family_summaryJob FamilyJob FamilyjobFamilySummaryRequired
activeJob FamilyJob FamilyinactiveRequiredJob Family assumed active if no value given.
job_family_group_nameJob FamilyJob Family GroupjobFamilyGroupNameRequiredA Job Family can be part of multiple groups in Workday, but not in TechWolf.
job_family_group_summaryJob FamilyJob Family GroupjobFamilyGroupSummaryRequired
WQL query:
SELECT referenceID1, jobFamilyName, jobFamilySummary, inactive,
       jobFamilyGroup{jobFamilyName, jobFamilySummary},
       workdayID
FROM allJobFamilies
Job Requisition data: posting title, descriptions, status, and linked Job Profiles. One output record is emitted per (Job Requisition, Job Profile) pair when multiple Job Profiles are linked to a Requisition.Source: Workday WQL — allJobRequisitions. Permission domain: Job Requisition Data.
TechWolf FieldPrimary Business ObjectBusiness ObjectWQL Output FieldRequiredNotes
requisition_id (external_id)Job RequisitionJob RequisitionreferenceID1RequiredExternal ID of the vacancy.
job_idJob RequisitionJob ProfilejobProfileIDRequiredJob linked to the vacancy; used for skill inference.
job_titleJob RequisitionJob RequisitionjobPostingTitleRequired
job_descriptionJob RequisitionJob RequisitionjobDescriptionRequired
job_descriptionJob RequisitionJob RequisitionjobDescriptionSummaryRequired
job_descriptionJob RequisitionJob RequisitionadditionalJobDescriptionRequired
activeJob RequisitionJob RequisitionjobRequisitionStatusRequiredVacancy assumed active if no value given.
WQL query:
SELECT referenceID1, jobPostingTitle, jobDescriptionSummary, jobDescription,
       additionalJobDescription,
       jobRequisitionStatus{referenceID1},
       allJobProfiles{ID},
       workdayID
FROM allJobRequisitions
Learning content catalog: course titles, types, descriptions, and durations.Source: Workday WQL — learningContent. Permission domains: Set Up: Learning Catalog; Manage: Learning Content.
TechWolf FieldPrimary Business ObjectBusiness ObjectWQL Output FieldRequiredNotes
course_id (external_id)Learning ContentLearning ContentcourseIDRequiredWorkday ID of the course.
titleLearning ContentLearning ContenttitleRequired
descriptionLearning ContentLearning ContentdescriptionRequired
learning_content_typeLearning ContentLearning ContentlearningContentType
activeLearning ContentLearning ContentactiveStatus
duration_in_minutesLearning ContentLearning ContentdurationInMinutes
WQL query:
SELECT title, learningContentType, description, activeStatus,
       durationInMinutes, workdayID
FROM learningContent
Not all data types need to be enabled. Work with TechWolf to select the data types that are relevant for your use case. Security permissions only need to be granted for the data types you choose to enable.

Next steps

Installation

Step-by-step guide to configure your Workday tenant and share credentials with TechWolf.