Workday MCP server
Prebuilt SnapLogic agentic-tool pipelines that let an LLM read from and act on Workday, callable as MCP tools via Pipeline Execute. Published in the SnapLogic pattern catalog.
Overview
This pack gives an agent access to a Workday tenant through WQL for ad-hoc reporting and the Workday SOAP Web Services layer for reads, writes, and business-process cancellation. The agent names the service and operation at call time, so four tools cover the full breadth of Workday objects; writes include a validate-only mode to dry-run a payload before committing.
For setup instructions, see SnapLogic MCP Server quickstart.
Example Prompts
- Cancel the time off request I just submitted for employee 21001
- Withdraw business process event EVT-001234 in Absence_Management
- Undo that vacation entry — cancel the time off event
- Cancel the pending process using the event reference from the last write
- List the active workers in the London office with their work email addresses
- Run this WQL for me: SELECT worker, fullName, primaryWorkEmail FROM allActiveWorkers LIMIT 25
- How many active workers do we have per cost center?
- Give me the first 50 active workers, then the next 50
- Pull every active worker whose job family is Engineering
- Read the Workers object from the Human_Resources service and show me the first 10
Tools
| Tool Name | Functions |
|---|---|
| WorkdayCancelProcess | Cancel an in-flight Workday business process by event reference. |
| WorkdayCancelProcessChild | Workday Cancel Process Child |
| WorkdayQuery | Run a WQL query against the Workday tenant and return matching rows. |
| WorkdayReadService | Read any Workday Web Service object, e.g. Human_Resources / Workers. |
| WorkdayWriteService | Submit a write operation to any Workday Web Service, with an optional validate-only dry run. |
| WorkdayWriteServiceChild | Workday Write Service Child |
Set up the MCP Server tools
- Download workday_tools.zip.
- In SnapLogic Designer, open the target project space (or create one), then choose Import Project / Import Pipelines and select the downloaded workday_tools.zip. Designer unpacks each pipeline into the project.
- Attach the required account to the connectivity snaps (see Connection Setup).
- Expose the project as an MCP server — each pipeline becomes a tool named after its label. New to this? Start with the MCP quickstart, then use the MCP Server Pipeline Builder to generate the server from the imported pipelines.
Configure account
Attach a Workday account to the Workday snaps in Designer after import.
These pipelines ship without credentials by design — attach a valid account in Designer before the tools will execute.
See the SnapLogic account documentation for this connector: Workday Snap Pack.
WorkdayCancelProcess
Cancels an in-flight Workday business process by naming the service and cancel operation, such as Absence_Management / Cancel_Time_Off. Confirm the event ID with the user before calling, as there is no validate-only mode and the cancel is immediate.
| Parameter | Type | Default | Description |
|---|---|---|---|
| service* | string | — | Workday Web Service owning the business process, e.g. Absence_Management. |
| object* | string | — | The cancel operation within that service, e.g. Cancel_Time_Off. |
* Required parameter.
Try asking:
- Cancel the time off request I just submitted for employee 21001
- Withdraw business process event EVT-001234 in Absence_Management
- Undo that vacation entry — cancel the time off event
- Cancel the pending process using the event reference from the last write
WorkdayCancelProcessChild
Lets the LLM workday cancel process child, exposed as an MCP tool callable via Pipeline Execute.
| Parameter | Type | Default | Description |
|---|---|---|---|
| service | string | Absence_Management |
— |
| object | string | Cancel_Time_Off |
— |
WorkdayQuery
Runs a WQL query against the Workday tenant and returns the matching rows. Use this for analytical and exploratory questions such as who, how many, or which workers match a condition; for the full structured record of a specific Workday object, use WorkdayReadService.
| Parameter | Type | Default | Description |
|---|---|---|---|
| wql_query* | string | — | The WQL statement to execute, e.g. SELECT worker, fullName, primaryWorkEmail FROM allActiveWorkers. |
| limit | string | 100 |
Maximum number of rows to return (default 100). |
| offset | string | 0 |
Row offset into the result set, for paging through large queries (default 0). |
* Required parameter.
Try asking:
- List the active workers in the London office with their work email addresses
- Run this WQL for me: SELECT worker, fullName, primaryWorkEmail FROM allActiveWorkers LIMIT 25
- How many active workers do we have per cost center?
- Give me the first 50 active workers, then the next 50
- Pull every active worker whose job family is Engineering
WorkdayReadService
Reads any Workday Web Service object by naming the service and operation, such as Human_Resources / Workers. Use this when you need the full structured record of a Workday business object rather than a WQL row.
| Parameter | Type | Default | Description |
|---|---|---|---|
| service* | string | — | Workday Web Service to read from, e.g. Human_Resources, Staffing, Absence_Management. |
| object* | string | — | The object or read operation within that service, e.g. Workers, Organizations. |
| page_size | string | 100 |
Number of records in the returned page (default 100). |
* Required parameter.
Try asking:
- Read the Workers object from the Human_Resources service and show me the first 10
- Pull organizations out of Workday so I can see the hierarchy
- Fetch job profiles from the Staffing service
- Get me a page of 25 workers with their full Workday detail, not just a WQL row
- What does Absence_Management return for time off plans?
WorkdayWriteService
Submits a write operation to a Workday Web Service, such as Enter_Time_Off or Hire_Employee, by naming the service and operation. Use validate_only to dry-run the payload against Workday validation before committing.
| Parameter | Type | Default | Description |
|---|---|---|---|
| service* | string | — | Workday Web Service to write to, e.g. Absence_Management, Staffing. |
| object* | string | — | The write operation within that service, e.g. Enter_Time_Off. |
| validate_only | string | false |
When true, Workday validates the payload without committing it (default false). |
* Required parameter.
Try asking:
- Book two days of vacation for employee 21001 starting 1 May
- Validate this time-off request against Workday first, don't actually submit it
- Enter a time off entry in Absence_Management for the worker we just looked up
- Submit a job change for this employee through the Staffing service
- Dry-run the hire payload and tell me if Workday rejects anything
WorkdayWriteServiceChild
Lets the LLM workday write service child, exposed as an MCP tool callable via Pipeline Execute.
| Parameter | Type | Default | Description |
|---|---|---|---|
| service | string | Absence_Management |
— |
| object | string | Enter_Time_Off |
— |
| validate_only | string | false |
— |