Analytics Catalog/Workday/Data sources & WQL
Explore the catalogModulesExtractionThe object modelEffective datingWorker
Workday · Data sources & WQL

Data sources, and the query language over them

A data source is the only thing a report or a WQL query actually reads. What it is, how to see its fields in your tenant, and how to query it, with queries you can copy.

RulePick the data source first. It decides the population, the reachable fields, and the security.Neverquery a source you haven't checked the population of. All Active Employees is not a company headcount.
What a data source is— one primary business object, one row per instance, delivered in variants for different populations.
PropertyWhat it means
Primary business objectEvery data source has exactly one. The output is one row per instance of it, and it dictates which related objects a query can reach. See the object model.
Delivered variantsWorkday ships several sources over the same object for different populations: All Workers, All Active and Terminated Workers, All Active Employees. Same object, different rows. See Worker.
IndexedSome sources are pre-optimized for fast retrieval. Prefer the indexed source when one exists for your primary object.
SecurityAccess is granted per data source and per field through domain security. A query returns only what its user, or ISU, is granted.
Do Not UseSome delivered sources carry a Do Not Use designation. Leave them alone; they exist for backward compatibility.
WQL in practice— SELECT fields FROM a data source alias, with aliases for clean landing columns.

WQL reads like SQL against a data source alias. Fields are camelCase, AS renames them for your landing zone, and results page through the WQL REST endpoint under an OAuth client. The minimal pull:

SELECT workdayID, employeeID, legalFirstName, legalLastName
FROM allWorkers

The same pull with landing-ready column names:

SELECT
  workdayID   AS worker_wid,
  employeeID  AS employee_id,
  legalFirstName AS first_name,
  legalLastName  AS last_name,
  email_PrimaryWork AS work_email
FROM allWorkers

WQL also filters, sorts, and aggregates, and the exact field names available depend on the data source and your security grants, which is why the reliable workflow is to generate the query from your own tenant rather than type field names from memory. The three ways, next section.

Getting WQL out of your own tenant— convert a report, browse the data source, or build a small report and convert it.
RouteHowBest for
Convert Report to WQLRun the Convert Report to WQL task against an existing standard or custom report. Workday writes the query for you, with the real field names.The fastest correct query. Start here.
Browse the data sourceFind the data source through global search, open it, and read its available fields. Write the query from what you see.Understanding what a source can reach before you build anything.
Build, then convertBuild a small Advanced report with exactly the fields you want, then convert it.Curated extracts where the field list is the design.

One conversion catch, stated once: calculated fields do not survive the conversion to WQL. The logic stays in the tenant, and the durable fix is rebuilding it as models you own. See the extraction pattern.

Limits that matter— the security domain, the source boundary, calculated fields, and paging.
LimitWhat it means for extraction
WQL security domainThe querying user or ISU needs access to the Workday Query Language domain, plus grants on the data source and fields. A missing column in your results is usually a missing grant.
The source boundaryA query reads one data source. There are no joins across sources; cross-source questions are answered in your warehouse after landing. See the enterprise model.
Calculated fieldsNot carried by WQL. If a report's value comes from a calculated field, extract via RaaS or rebuild the logic in dbt.
PagingResults page with limit and offset parameters. Large pulls loop pages; design the pipeline to checkpoint between them.
Effective datesA query answers as of a moment. History comes from pulling with date filters and rebuilding it. See effective dating.
Want the extract queries written and owned?
We build the WQL and RaaS extracts, the paging, and the landing models, reconciled against Workday, and you own every line.
Talk to us
Terms on this page
data source
The published set of instances and fields a report or WQL query reads. Security applies here.
primary business object
The object a data source returns one row per instance of.
indexed data source
A data source pre-optimized for fast retrieval.
WQL
Workday Query Language. SELECT fields FROM a data source alias, over REST.
alias
The camelCase name a data source or field goes by in WQL, allWorkers for example.
Convert Report to WQL
The tenant task that writes the WQL for an existing report, with the real field names.
calculated field
Report logic defined inside the tenant. Not carried by WQL.
ISU
Integration System User, the read-only service account extracts run as.
domain security
Workday's permission model. Grants scope data sources and fields per user.
paging
Pulling results in chunks with limit and offset, looped until done.