# Workday

```json
{
  "name": "Workday",
  "slug": "workday",
  "url": "https://composio.dev/toolkits/workday",
  "markdown_url": "https://composio.dev/toolkits/workday.md",
  "logo_url": "https://logos.composio.dev/api/workday",
  "categories": [
    "hr & recruiting"
  ],
  "is_composio_managed": false,
  "updated_at": "2026-05-12T10:30:36.191Z"
}
```

![Workday logo](https://logos.composio.dev/api/workday)

## Description

Securely connect your AI agents and chatbots (Claude, ChatGPT, Cursor, etc) with Workday MCP or direct API to fetch employee data, manage time-off requests, automate approvals, and generate reports through natural language.

## Summary

Workday is a cloud-based ERP platform for HR, finance, and workforce analytics. It streamlines employee management, payroll, and business operations in a single system.

## Categories

- hr & recruiting

## Toolkit Details

- Tools: 84
- Triggers: 13

## Images

- Logo: https://logos.composio.dev/api/workday

## Authentication

- **Oauth2**
  - Type: `oauth2`
  - Description: Oauth2 authentication for Workday.
  - Setup:
    - Configure Oauth2 credentials for Workday.
    - Use the credentials when creating an auth config in Composio.

## Suggested Prompts

- Request vacation days for next week
- Check my current absence balance
- Find all open job postings I manage
- Summarize feedback from recent interviews

## Supported Tools

| Tool slug | Name | Description |
|---|---|---|
| `WORKDAY_CREATE_BUSINESS_TITLE_CHANGE` | Create Business Title Change | Creates a business title change instance for a worker with the specified data. Use this when you need to initiate a business title change request for an employee. |
| `WORKDAY_CREATE_JOB_CHANGE` | Create Job Change | Tool to create a job change instance for a worker in Workday. Use when initiating organization or supervisory changes for employees. Requires valid job change reason and supervisory organization IDs. |
| `WORKDAY_CREATE_PAYROLL_INPUTS` | Create Payroll Inputs | Tool to create payroll inputs in Workday. Use when you need to add new payroll data for a worker such as earnings, deductions, or other pay components. |
| `WORKDAY_CREATE_TIME_OFF_REQUEST` | Create Time Off Request | Creates a time off request for the specified worker and initiates the business process. Use Get Worker Time Off Details to find valid time off type IDs (e.g., Vacation, Sick Leave) from the worker's existing time off entries, and Get Current User to get the authenticated worker's ID. Note: This endpoint works with time off types, not Leave of Absence types. |
| `WORKDAY_GET_ABSENCE_BALANCE` | Get Absence Balance | Retrieves balance information for a specific worker's absence plan. This action returns balance details including the quantity of hours/days available, the unit of measurement (hours/days), effective date, and related metadata for a worker's time off or leave of absence plan. Use this to check how much time off a worker has remaining for a specific absence plan at a given point in time. |
| `WORKDAY_GET_ASSIGNMENT_CHANGE_GROUP_COST_CENTERS` | Get Assignment Change Group Cost Centers | Retrieves cost center instances for organization assignment changes. Returns a list of cost centers that can be used as parameter values when making organization assignment changes in other Workday staffing endpoints. Supports filtering by effective date, event, organization type, and worker. |
| `WORKDAY_GET_ASSIGNMENT_CHANGE_GROUP_JOBS` | Get Assignment Change Group Jobs | Retrieves job instances for organization assignment changes. Returns a list of jobs that can be used as parameter values when making organization assignment changes in other Workday staffing endpoints. |
| `WORKDAY_GET_ASSIGNMENT_TYPES` | Get Assignment Types | Retrieves assignment type values for job changes in Workday. Returns reference data for assignment types (e.g., 'Domestic', 'International') that can be used as parameters in job change and staffing-related endpoints. |
| `WORKDAY_GET_BUSINESS_TITLE_CHANGE` | Get Business Title Change | Retrieves a business title change instance by ID. Use when you need to get details about a specific business title change request for a worker. |
| `WORKDAY_GET_BUSINESS_TITLE_CHANGE_FOR_WORKER` | Get Business Title Change For Worker | Tool to retrieve a business title change instance for a specific worker. Use when you need details about a particular business title change event. |
| `WORKDAY_GET_CANDIDATE_AVAILABILITY_TEMPLATE` | Get Candidate Availability Template | Tool to retrieve the candidate availability template version for a specific job posting. Use this when you need to understand what availability template is configured for candidate scheduling or interview slot selection for a given job posting. |
| `WORKDAY_GET_COLLECTION_OF_JOBS` | Get Collection of Jobs | Tool to retrieve a paginated collection of jobs from Workday Staffing system. Use when you need to list jobs with their associated worker, location, and organizational information. |
| `WORKDAY_GET_COLLECTION_OF_PAYROLL` | Get Collection of Payroll | Tool to retrieve a collection of payroll inputs from Workday. Use when you need to fetch payroll input data for workers, filtered by date ranges, pay components, or specific workers. At least one query parameter is required to get data. |
| `WORKDAY_GET_COMPANY_INSIDER_TYPES` | Get Company Insider Types | Retrieves company insider types from Workday Staffing API. Use when you need reference data for company insider type values that can be used as parameters in other staffing endpoints. |
| `WORKDAY_GET_CONTINGENT_WORKER_TYPES` | Get Contingent Worker Types | Tool to retrieve contingent worker types from Workday staffing API. Use when you need to get valid values for contingent worker type parameters in job changes or other staffing operations. Supports filtering by effective date, job, location, manager, staffing event, and worker. |
| `WORKDAY_GET_COUNTRY_INFO` | Get Country Info | Retrieves detailed information about a specific country from Workday. Use this to get country metadata including ISO codes and address lookup settings. |
| `WORKDAY_GET_CURRENCIES` | Get Currencies | Retrieves currency instances for job changes in Workday. Returns reference data for currencies that can be used as parameter values in job change and staffing-related endpoints. |
| `WORKDAY_GET_CURRENT_USER` | Get Current User | Retrieves the current authenticated worker's profile information from Workday. |
| `WORKDAY_GET_GRANTS` | Get Grants | Retrieves grant instances for organization assignment changes. Returns a list of grants that can be used as parameter values when making organization assignment changes in other Workday staffing endpoints. Supports filtering by effective date, event, organization type, and worker. |
| `WORKDAY_GET_HEADCOUNT_OPTIONS` | Get Headcount Options | Retrieves headcount option instances that can be used as values for other endpoint parameters. Use when you need valid headcount option values for job changes or staffing operations in the Workday Staffing API. |
| `WORKDAY_GET_HISTORY_INSTANCE_FOR_WORKER` | Get History Instance for Worker | Tool to retrieve a specific history instance for a worker. Use when you need detailed information about a particular business process or employment change for a worker. |
| `WORKDAY_GET_HISTORY_ITEMS_FOR_WORKER` | Get History Items for Worker | Tool to retrieve a collection of history items for a specific worker. Use when you need to access a worker's historical staffing information, business processes, or employment changes. |
| `WORKDAY_GET_HOLIDAY_EVENTS` | Get Holiday Events | Returns the holiday events for the specified workers and time period. |
| `WORKDAY_GET_INTERVIEW` | Get Interview | Tool to retrieve detailed information about a specific interview from Workday Recruiting. Use when you need interview details including status, scheduled time, candidate info, interviewers, and job requisition data for a known interview ID. |
| `WORKDAY_GET_INTERVIEW_FEEDBACK2` | Get Interview Feedback | Retrieves interview feedback for the specified interview ID from Workday Recruiting API. Returns raw feedback entries including ratings, comments, and recommendations from interviewers. Use when you need to access detailed interview feedback for hiring decisions or candidate evaluations. |
| `WORKDAY_GET_JOB_BY_ID` | Get Job By ID | Tool to retrieve detailed information about a single job instance by its ID. Use when you need to fetch specific job details including business title, job profile, job type, location, supervisory organization, and assigned worker information. |
| `WORKDAY_GET_JOB_CHANGE_FREQUENCIES` | Get Job Change Frequencies | Retrieves frequency instances for job changes in Workday. Returns reference data for frequencies (e.g., 'Annual', 'Bi-weekly', 'Monthly') that can be used as parameter values in job change and staffing-related endpoints. |
| `WORKDAY_GET_JOB_CHANGE_LOCATION_INFO` | Get Job Change Location Info | Tool to retrieve location information for a specific job change in Workday. Use when you need details about the work location, scheduled hours, work shift, or workspace associated with a job change event. |
| `WORKDAY_GET_JOB_CHANGE_POSITION` | Get Job Change Position | Retrieves position details for a specific job change in Workday Staffing API. Use when you need to get position information associated with a job change event, including whether the position is being created, closed, or available for overlap. |
| `WORKDAY_GET_JOB_CHANGE_REASON_INSTANCE` | Get Job Change Reason Instance | Retrieves a job change reason instance from Workday. Use when you need to get details about a specific job change reason, such as its code, name, and status. |
| `WORKDAY_GET_JOB_CHANGE_REASONS` | Get Job Change Reasons | Retrieves a collection of job change reasons from Workday. Use when you need to get available job change reason reference data for use in other HR operations or queries. |
| `WORKDAY_GET_JOB_CHANGE_REASON_VALUES` | Get Job Change Reason Values | Retrieves job change reason instances that can be used as values for other staffing endpoint parameters. Use when you need to find valid job change reason IDs (e.g., Promotion, Transfer, Demotion) for creating or querying job changes in the Workday Staffing API. |
| `WORKDAY_GET_JOB_CHANGES_GROUP_TEMPLATES` | Get Job Changes Group Templates | Retrieves job changes group template instances in Workday. Returns reference data for templates (e.g., 'Change Location', 'Promotion', 'Multiple Changes') that can be used as parameter values in job change and staffing-related endpoints. |
| `WORKDAY_GET_JOB_CHANGES_JOB_VALUES` | Get Job Changes Job Values | Retrieves job instances that can be used as values for job changes parameters. Use when you need to find valid job IDs for filtering job change events or staffing operations in the Workday Staffing API. |
| `WORKDAY_GET_JOB_CHANGES_WORKER_VALUES` | Get Job Changes Worker Values | Retrieves worker instances that can be used as values for job changes parameters. Use when you need to find valid worker IDs for filtering job change events or staffing operations in the Workday Staffing API. |
| `WORKDAY_GET_JOB_CLASSIFICATIONS` | Get Job Classifications | Retrieves job classification instances for job changes in Workday. Returns reference data for job classifications that can be used as parameter values in job change and staffing-related endpoints. |
| `WORKDAY_GET_JOB_POSTING` | Get Job Posting | Retrieves detailed information about a specific job posting including job description. |
| `WORKDAY_GET_JOB_POSTING_QUESTIONNAIRE` | Get Job Posting Questionnaire | Retrieves screening questions and questionnaires associated with a specific job posting. |
| `WORKDAY_GET_JOB_PROFILES_VALUES` | Get Job Profiles Values | Retrieves job profile instances from Workday Staffing API. Use when you need reference data for job profiles that can be used as parameter values in other staffing endpoints like job changes or assignments. |
| `WORKDAY_GET_JOB_REQUISITION_VALUES` | Get Job Requisition Values | Retrieves job requisition instances that can be used as values for other endpoint parameters. Use when you need to find valid job requisition IDs for filtering or referencing in job change operations within the Workday Staffing API. |
| `WORKDAY_GET_JOB_WORKSPACE` | Get Job Workspace | Tool to retrieve a single workspace instance for a specific job. Use when you need detailed workspace information for a job, including location and hierarchy details. |
| `WORKDAY_GET_JOB_WORKSPACES` | Get Job Workspaces | Tool to retrieve a collection of workspaces for a specified job ID. Use when you need to access workspace information associated with a job in the Workday staffing system. |
| `WORKDAY_GET_LEAVE_STATUS_VALUES` | Get Leave Status Values | Get all available leave status values from Workday. Returns reference data for leave statuses such as 'Canceled', 'In Progress', 'Successfully Completed', 'Process Terminated', and 'Rescinded'. These values can be used to filter or query leave of absence requests in other Workday endpoints. |
| `WORKDAY_GET_MY_JOB_POSTINGS` | Get My Job Postings | Retrieves job postings assigned to the authenticated user (current recruiter). This action finds job postings by: 1. Identifying interviews where the current user is listed as an interviewer 2. Extracting job requisition IDs from those interviews 3. Fetching all job postings associated with those requisitions Returns empty results if the user has no recruiting permissions or no assigned interviews. |
| `WORKDAY_GET_ORGANIZATION_ASSIGNMENT_BUSINESS_UNITS` | Get Organization Assignment Business Units | Retrieves business unit instances for organization assignment changes. Returns a list of business units that can be used as parameter values when making organization assignment changes in other Workday staffing endpoints. |
| `WORKDAY_GET_ORGANIZATION_ASSIGNMENT_CUSTOMS` | Get Organization Assignment Customs | Retrieves custom organization assignment instances. Returns a list of custom organization assignments that can be used as parameter values when making organization assignment changes in other Workday staffing endpoints. Supports filtering by effective date, event, organization type, and worker. |
| `WORKDAY_GET_ORGANIZATION_ASSIGNMENT_FUNDS` | Get Organization Assignment Funds | Retrieves fund instances for organization assignment changes. Returns a list of funds that can be used as parameter values when making organization assignment changes in other Workday staffing endpoints. |
| `WORKDAY_GET_ORGANIZATION_ASSIGNMENT_REGIONS` | Get Organization Assignment Regions | Retrieves region instances for organization assignment changes. Returns a list of regions that can be used as parameter values when making organization assignment changes in other Workday staffing endpoints. Supports filtering by effective date, event, organization type, and worker. |
| `WORKDAY_GET_ORGANIZATION_ASSIGNMENT_WORKERS` | Get Organization Assignment Workers | Retrieves worker instances for organization assignment changes. Returns a list of workers that can be used as parameter values when making organization assignment changes in other Workday staffing endpoints. |
| `WORKDAY_GET_PAY_GROUP_BY_JOB_ID` | Get Pay Group by Job ID | Retrieves the pay group for a specified job ID. This method always returns 1 pay group. Use when you need to determine the pay group configuration associated with a specific job. |
| `WORKDAY_GET_PAYROLL_INPUT_INSTANCE` | Get Payroll Input Instance | Retrieves detailed information for a single payroll input instance by ID. Use this action to get complete details about a specific payroll input including worker information, pay component, dates, input details, and associated worktags and run categories. |
| `WORKDAY_GET_PAY_SLIP_INSTANCES_FOR_WORKER` | Get Pay Slip Instance for Worker | Retrieves a specific pay slip instance for a worker. Use when you need to get detailed payroll information for a specific pay period. |
| `WORKDAY_GET_PAY_SLIPS_FOR_WORKER` | Get Pay Slips for Worker | Retrieves a collection of pay slips for a specific worker. Use when you need to access payroll information and pay history for a worker. |
| `WORKDAY_GET_PROPOSED_POSITION_VALUES` | Get Proposed Position Values | Retrieves proposed position instances that can be used as values for job changes parameters. Use when you need to find valid proposed position IDs for filtering job change events or staffing operations in the Workday Staffing API. |
| `WORKDAY_GET_PROSPECT` | Get Prospect | Retrieves a single prospect instance for talent matching and best-fit analysis. |
| `WORKDAY_GET_PROSPECT_EDUCATIONS` | Get Prospect Educations | Retrieves the educational background of a prospect from Workday Recruiting API for talent matching and best-fit analysis. This action queries the Workday Recruiting v4 API to fetch education information associated with a specific prospect. Education records include details about schools attended, degrees obtained, fields of study, and dates of attendance. Supports pagination through limit and offset parameters for prospects with multiple education entries. Requires: Workday Recruiting (ATS) API access permissions. |
| `WORKDAY_GET_PROSPECT_EXPERIENCES` | Get Prospect Experiences | Retrieves the work experience of a prospect for talent matching and best-fit analysis. |
| `WORKDAY_GET_PROSPECT_RESUME_ATTACHMENTS` | Get Prospect Resume Attachments | Retrieves resume attachments for a specific prospect to help prepare for upcoming interviews. |
| `WORKDAY_GET_PROSPECT_SKILLS` | Get Prospect Skills | Retrieves the skills of a prospect from Workday Recruiting API for talent matching and best-fit analysis. This action queries the Workday Recruiting v4 API to fetch skill information associated with a specific prospect. Skills are professional competencies, technical abilities, or expertise areas that the prospect possesses. Supports pagination through limit and offset parameters for prospects with many skills. Requires: Workday Recruiting (ATS) API access permissions. |
| `WORKDAY_GET_SUPERVISORY_ORG_VALUES` | Get Supervisory Organization Values | Retrieves supervisory organization instances that can be used as values for job changes parameters. Use when you need to find valid supervisory organization IDs for filtering job change events or staffing operations in the Workday Staffing API. |
| `WORKDAY_GET_TIME_OFF_ENTRIES_FOR_WORKER` | Get Time Off Entries for Worker | Retrieves a collection of time off entries for a specific worker. Use this to get time off records and history for a worker identified by their Workday ID. |
| `WORKDAY_GET_TIME_OFF_PLANS_FOR_WORKER` | Get Time Off Plans For Worker | Retrieves a collection of time off plans for a specific worker. Use this to get the list of time off plans (such as vacation plans, sick leave plans, etc.) that are available to or configured for a worker. |
| `WORKDAY_GET_TIME_OFF_STATUS_VALUES` | Get Time Off Status Values | Retrieves available time off status values from Workday. Returns a list of status values (e.g., 'Approved', 'Submitted', 'Sent Back', 'Not Submitted') that can be used as parameters when querying or filtering time off requests in other endpoints. This is a reference data endpoint that requires no input parameters. |
| `WORKDAY_GET_TIME_TYPES` | Get Time Types | Retrieves time type values for job changes in Workday. Returns reference data for time types (e.g., 'Full time', 'Part time', 'Variable time') that can be used as parameters in job change and staffing-related endpoints. |
| `WORKDAY_GET_WORKER_BUSINESS_TITLE_CHANGES` | Get Worker Business Title Changes | Retrieves business title changes for a specific worker. Use when you need to track the history of business title changes for a worker over time. |
| `WORKDAY_GET_WORKER_ELIGIBLE_ABSENCE_TYPES` | Get Worker Eligible Absence Types | Retrieves a collection of eligible absence types for the specified worker. This returns the types of absences (leaves, time off, etc.) that a worker is eligible to request. Each absence type includes details like the category (Leave of Absence, Time Off, etc.), unit of time (Days, Hours), and various configuration flags. Note: Due to Workday security permissions, this typically only works for the authenticated user's own worker ID. |
| `WORKDAY_GET_WORKER_INFO` | Get Worker Info | Retrieves detailed worker information including staffing data. Returns comprehensive worker profile with person details, primary job, and additional jobs. |
| `WORKDAY_GET_WORKER_LEAVES_OF_ABSENCE` | Get Worker Leaves of Absence | Retrieves the Leaves Of Absence for the specified worker using the working absenceManagement v1 API. |
| `WORKDAY_GET_WORKERS_COLLECTION_STAFFING` | Get Workers Collection Staffing | Tool to retrieve workers and current staffing information from Workday. Use when you need to list workers with their job assignments, worker types, and person details. |
| `WORKDAY_GET_WORKER_SERVICE_DATES` | Get Worker Service Dates | Tool to retrieve service dates for a specified worker from Workday Staffing API v6. Use when you need to get hire date and continuous service date information for a worker. |
| `WORKDAY_GET_WORKER_STAFFING_INFORMATION` | Get Worker Staffing Information | Tool to retrieve a worker's current staffing information from Workday. Use when you need to get detailed staffing data including worker type, primary job details, business title, location, and supervisory organization. |
| `WORKDAY_GET_WORKER_TIME_OFF_DETAILS` | Get Worker Time Off Details | Retrieves a collection of time off details for the specified worker. |
| `WORKDAY_GET_WORKER_TYPES` | Get Worker Types | Retrieves worker type instances that can be used as values for job changes parameters. Use when you need to find valid worker type IDs for filtering or categorizing job change events in the Workday Staffing API. |
| `WORKDAY_GET_WORKER_VALID_TIME_OFF_DATES` | Get Worker Valid Time Off Dates | Retrieves valid time off dates for a worker, indicating when they are eligible to take time off. This action checks time off eligibility based on the worker's time off plans, position, and organizational rules. Use this to validate dates before creating time off requests or to display available time off dates to workers. |
| `WORKDAY_GET_WORKSPACE_INSTANCES` | Get Workspace Instances | Tool to retrieve workspace instances that can be used as prompt values for other Workday API parameters. Use when you need to get valid workspace values for job changes group operations. |
| `WORKDAY_GET_WORK_STUDY_AWARDS` | Get Work Study Awards | Retrieves work study award instances for job changes in Workday. Returns reference data for work study awards that can be used as parameter values in job change and staffing-related endpoints. |
| `WORKDAY_LIST_COUNTRIES` | List Countries | Retrieves country values from Workday Recruiting API. Use when you need valid country identifiers for filtering or populating country fields in other recruiting endpoints. |
| `WORKDAY_LIST_INTERVIEWS` | List Interviews | Retrieves a list of interviews with job requisition and recruiter assignment details. Supports filtering by status for pipeline review and scheduled interviews. |
| `WORKDAY_LIST_JOB_POSTINGS` | List Job Postings | Retrieves a paginated list of job postings from Workday Recruiting system. This action queries the Workday Recruiting API to fetch job postings with optional filtering by job requisition, category, specific posting IDs, or job sites. Supports pagination through limit and offset parameters. Returns structured job posting data including titles, departments, locations, status, and dates. Requires the Recruiting (ATS) API scope to be enabled for the integration user. |
| `WORKDAY_LIST_JOBS` | List Jobs | Retrieves a collection of jobs from Workday Staffing system. Use this to get current staffing information including job positions, workers, and organizational details. |
| `WORKDAY_RETRIEVE_WORKER_LEAVE_OF_ABSENCE_SUBRESOURCE` | Retrieve Worker Leave of Absence | Retrieves the leave of absence details for a specified worker. Use when you need detailed information about a specific leave of absence record including dates, type, status, and reason. |
| `WORKDAY_UPDATE_AN_EXISTING_PAYROLL` | Update An Existing Payroll | Tool to partially update an existing payroll input instance in Workday. Use when you need to modify fields of an existing payroll input such as comment, dates, amounts, or other attributes. |
| `WORKDAY_UPDATE_JOB_CHANGE_BUSINESS_TITLE` | Update Job Change Business Title | Partially updates the business title for a specific job change. Use when modifying the business title field of an in-progress job change event. This operation is only available to the person who initiated the Change Job operation and must be submitted before the event Initiation step. |
| `WORKDAY_UPDATE_MESSAGE_TEMPLATE_BY_ID` | Update Message Template By ID | Tool to update a message template in Workday by its ID. Use when you need to modify an existing message template's name, notification type, email details, or push notification settings. |

## Supported Triggers

| Trigger slug | Name | Description |
|---|---|---|
| `WORKDAY_ABSENCE_BALANCE_CHANGED_TRIGGER` | Absence Balance Changed | Triggers when a worker's absence balance changes. This trigger monitors a specific worker's absence plan balance and detects any changes to the balance details including quantity available, effective date, position, or other related fields. Uses snapshot-based diffing to detect meaningful changes. |
| `WORKDAY_BALANCE_DETAILS_CHANGED_TRIGGER` | Balance Details Changed | Triggers when details of a specific balance change (quantity, accruals, adjustments, etc.). This trigger monitors a specific worker's absence plan balance and detects any changes to the balance details including quantity available, effective date, position, or other related fields. Uses snapshot-based diffing to detect meaningful field changes. |
| `WORKDAY_INTERVIEW_FEEDBACK_SUBMITTED_TRIGGER` | Interview Feedback Submitted or Updated | Triggers when interview feedback is submitted or updated for a specific interview. This trigger monitors a specific interview and fires when new feedback entries are detected or existing feedback is modified. |
| `WORKDAY_JOB_POSTING_CHANGED_TRIGGER` | Job Posting Changed | Triggers when a specific job posting's details change (title, status, posting dates, location, etc.). This trigger monitors a single job posting and fires when any of its fields are modified. |
| `WORKDAY_JOB_POSTING_QUESTIONNAIRE_CHANGED_TRIGGER` | Job Posting Questionnaire Changed | Triggers when a job posting's candidate questionnaire is added or changed. This trigger monitors a specific job posting's questionnaires and detects any changes including additions, removals, or modifications to questionnaires and questions. Uses snapshot-based diffing to detect meaningful changes. |
| `WORKDAY_NEW_ABSENCE_BALANCE_TRIGGER` | New Absence Balance | Triggers when a new absence balance record becomes available for a worker. This trigger monitors a specific worker's absence balances and detects when new balance records appear (e.g., a new plan/bucket becomes available). Uses snapshot-based diffing to compare balance record IDs between polls. |
| `WORKDAY_NEW_INTERVIEW_SCHEDULED_TRIGGER` | New Interview Scheduled | Triggers when a new interview is scheduled/created in Workday. This trigger monitors interviews and fires when new interview records are detected. |
| `WORKDAY_NEW_JOB_POSTING_TRIGGER` | New Job Posting | Triggers when a new job posting appears (newly published/opened) in Workday. This trigger monitors job postings and fires when new postings are detected. |
| `WORKDAY_PROSPECT_PROFILE_CHANGED_TRIGGER` | Prospect Profile Changed | Triggers when a specific prospect's profile details change (contact info, status, type, source, level, tags, etc.). This trigger monitors a single prospect and fires when any of its core profile fields are modified. |
| `WORKDAY_PROSPECT_RESUME_ATTACHMENT_ADDED_TRIGGER` | New Prospect Resume Attachment Added | Triggers when a new resume/attachment is added to a specific prospect profile. This trigger monitors a prospect's resume attachments and fires when new attachments are detected. |
| `WORKDAY_WORKER_ELIGIBLE_ABSENCE_TYPE_CHANGED_TRIGGER` | Worker Eligible Absence Type Changed | Triggers when a worker becomes eligible or ineligible for an absence type. This trigger monitors the list of eligible absence types for a specific worker and detects when new absence types are added (worker becomes eligible) or when absence types are removed (worker becomes ineligible). Uses snapshot-based diffing to compare the list of absence type IDs between polls. Note: Due to Workday security permissions, this endpoint typically only allows access to the authenticated user's own data. |
| `WORKDAY_WORKER_LEAVE_OF_ABSENCE_CHANGED_TRIGGER` | Worker Leave of Absence Changed | Triggers when a worker's leave of absence record changes. This trigger monitors all leaves of absence for a specific worker and detects: - New leave requests created - Changes to existing leaves (status, dates, comments, etc.) - Deleted or rescinded leaves Uses snapshot-based diffing to track changes between polling intervals. |
| `WORKDAY_WORKER_LEAVE_OF_ABSENCE_CREATED_TRIGGER` | Worker Leave of Absence Created | Triggers when a new leave of absence record is created for a worker. This trigger monitors a specific worker's leaves of absence and detects when new leave records appear (e.g., when a leave is initiated/recorded). Uses snapshot-based diffing to compare leave record IDs between polls. |

## Installation and MCP Setup

### Path 1: SDK Installation

#### Path 1, Step 1: Install Composio

Install the Composio SDK
```python
pip install composio_openai
```

```typescript
npm install @composio/openai
```

#### Path 1, Step 2: Initialize Composio and Create Tool Router Session

Import and initialize Composio client, then create a Tool Router session
```python
from openai import OpenAI
from composio import Composio
from composio_openai import OpenAIResponsesProvider

composio = Composio(provider=OpenAIResponsesProvider())
openai = OpenAI()
session = composio.create(user_id='your-user-id')
```

```typescript
import OpenAI from 'openai';
import { Composio } from '@composio/core';
import { OpenAIResponsesProvider } from '@composio/openai';

const composio = new Composio({
  provider: new OpenAIResponsesProvider(),
});
const openai = new OpenAI({});
const session = await composio.create('your-user-id');
```

#### Path 1, Step 3: Execute Workday Tools via Tool Router with Your Agent

Get tools from Tool Router session and execute Workday actions with your Agent
```python
tools = session.tools
response = openai.responses.create(
  model='gpt-4.1',
  tools=tools,
  input=[{
    'role': 'user',
    'content': 'Submit vacation request for next Friday'
  }]
)
result = composio.provider.handle_tool_calls(
  response=response,
  user_id='your-user-id'
)
print(result)
```

```typescript
const tools = session.tools;
const response = await openai.responses.create({
  model: 'gpt-4.1',
  tools: tools,
  input: [{
    role: 'user',
    content: 'Submit vacation request for next Friday'
  }],
});
const result = await composio.provider.handleToolCalls(
  'your-user-id',
  response.output
);
console.log(result);
```

### Path 2: MCP Server Setup

#### Path 2, Step 1: Install Composio

Install the Composio SDK and Claude Agent SDK
```python
pip install composio claude-agent-sdk
```

```typescript
npm install @composio/core ai @ai-sdk/openai @ai-sdk/mcp
```

#### Path 2, Step 2: Create Tool Router Session

Initialize the Composio client and create a Tool Router session
```python
from composio import Composio
from claude_agent_sdk import ClaudeSDKClient, ClaudeAgentOptions

composio = Composio(api_key='your-composio-api-key')
session = composio.create(user_id='your-user-id')
url = session.mcp.url
```

```typescript
import { Composio } from '@composio/core';

const composio = new Composio({ apiKey: 'your-api-key' });

console.log("Creating Tool Router session...");
const { mcp } = await composio.create('your-user-id');
console.log(`Tool Router session created: ${mcp.url}`);
```

#### Path 2, Step 3: Connect to AI Agent

Use the MCP server with your AI agent
```python
import asyncio

options = ClaudeAgentOptions(
    permission_mode='bypassPermissions',
    mcp_servers={
        'tool_router': {
            'type': 'http',
            'url': url,
            'headers': {
                'x-api-key': 'your-composio-api-key'
            }
        }
    },
    system_prompt='You are a helpful assistant with access to Workday tools.',
    max_turns=10
)

async def main():
    async with ClaudeSDKClient(options=options) as client:
        await client.query('Get absence balance for employee ID 12345')
        async for message in client.receive_response():
            if hasattr(message, 'content'):
                for block in message.content:
                    if hasattr(block, 'text'):
                        print(block.text)

asyncio.run(main())
```

```typescript
import { openai } from '@ai-sdk/openai';
import { experimental_createMCPClient as createMCPClient } from '@ai-sdk/mcp';
import { generateText, stepCountIs } from 'ai';

const client = await createMCPClient({
  transport: {
    type: 'http',
    url: mcp.url,
    headers: { 'x-api-key': 'your-composio-api-key' }
  }
});

const tools = await client.tools();

const { text } = await generateText({
  model: openai('gpt-4o'),
  tools,
  messages: [{ role: 'user', content: 'Get absence balance for employee ID 12345' }],
  stopWhen: stepCountIs( 5 )
});

console.log(`Agent: ${text}`);
```

## Why Use Composio?

### 1. AI Native Workday Integration

- Supports both Workday MCP and direct API based integrations
- Structured, LLM-friendly schemas for reliable tool execution
- Rich coverage for reading, writing, and querying your Workday data

### 2. Managed Auth

- Built-in OAuth handling with automatic token refresh and rotation
- Central place to manage, scope, and revoke Workday access
- Per user and per environment credentials instead of hard-coded keys

### 3. Agent Optimized Design

- Tools are tuned using real error and success rates to improve reliability over time
- Comprehensive execution logs so you always know what ran, when, and on whose behalf

### 4. Enterprise Grade Security

- Fine-grained RBAC so you control which agents and users can access Workday
- Scoped, least privilege access to Workday resources
- Full audit trail of agent actions to support review and compliance

## Use Workday with any AI Agent Framework

Choose a framework you want to connect Workday with:

- [ChatGPT](https://composio.dev/toolkits/workday/framework/chatgpt)
- [OpenAI Agents SDK](https://composio.dev/toolkits/workday/framework/open-ai-agents-sdk)
- [Claude Agent SDK](https://composio.dev/toolkits/workday/framework/claude-agents-sdk)
- [Claude Code](https://composio.dev/toolkits/workday/framework/claude-code)
- [Claude Cowork](https://composio.dev/toolkits/workday/framework/claude-cowork)
- [Codex](https://composio.dev/toolkits/workday/framework/codex)
- [Cursor](https://composio.dev/toolkits/workday/framework/cursor)
- [VS Code](https://composio.dev/toolkits/workday/framework/vscode)
- [OpenCode](https://composio.dev/toolkits/workday/framework/opencode)
- [OpenClaw](https://composio.dev/toolkits/workday/framework/openclaw)
- [Hermes](https://composio.dev/toolkits/workday/framework/hermes-agent)
- [CLI](https://composio.dev/toolkits/workday/framework/cli)
- [Google ADK](https://composio.dev/toolkits/workday/framework/google-adk)
- [LangChain](https://composio.dev/toolkits/workday/framework/langchain)
- [Vercel AI SDK](https://composio.dev/toolkits/workday/framework/ai-sdk)
- [Mastra AI](https://composio.dev/toolkits/workday/framework/mastra-ai)
- [LlamaIndex](https://composio.dev/toolkits/workday/framework/llama-index)
- [CrewAI](https://composio.dev/toolkits/workday/framework/crew-ai)
- [Pydantic AI](https://composio.dev/toolkits/workday/framework/pydantic-ai)
- [AutoGen](https://composio.dev/toolkits/workday/framework/autogen)

## Related Toolkits

- [Ashby](https://composio.dev/toolkits/ashby) - Ashby is an applicant tracking system that handles job postings, candidate management, and hiring analytics.
- [Async interview](https://composio.dev/toolkits/async_interview) - Async interview is an on-demand video interview platform for streamlined hiring. Candidates record responses on their schedule, so employers can review anytime.
- [Bamboohr](https://composio.dev/toolkits/bamboohr) - BambooHR is a cloud-based HR management platform for small and mid-sized businesses. It streamlines employee data, HR workflows, and reporting in one easy interface.
- [Breathe HR](https://composio.dev/toolkits/breathehr) - Breathe HR is cloud-based HR software for SMEs to manage employee data, absences, and performance. It simplifies HR admin, making it easy to keep employee records accurate and up to date.
- [Connecteam](https://composio.dev/toolkits/connecteam) - Connecteam is a workforce management platform for deskless teams, streamlining operations, HR, and team communication. It helps businesses save time by automating scheduling, time tracking, and staff engagement tasks.
- [Lever](https://composio.dev/toolkits/lever) - Lever is an applicant tracking system that blends sourcing, CRM, and analytics for recruiting. It helps companies scale hiring with collaborative workflows and actionable insights.
- [Recruitee](https://composio.dev/toolkits/recruitee) - Recruitee is collaborative hiring software that centralizes recruitment tasks for teams. It streamlines sourcing, interviewing, and hiring so you can fill roles faster.
- [Remote retrieval](https://composio.dev/toolkits/remote_retrieval) - Remote retrieval is a logistics automation tool for managing laptop and monitor returns. It streamlines return tracking, saving time and hassle for IT and ops teams.
- [Sap successfactors](https://composio.dev/toolkits/sap_successfactors) - Sap successfactors is a cloud-based human capital management suite for HR, payroll, recruiting, and talent management. It helps organizations centralize employee data and streamline the entire employee lifecycle.
- [Talenthr](https://composio.dev/toolkits/talenthr) - TalentHR is an intuitive, all-in-one HR tool for managing employee records, leave, and HR workflows. It streamlines HR operations so businesses can focus on people, not paperwork.
- [Workable](https://composio.dev/toolkits/workable) - Workable is an all-in-one HR software platform that streamlines hiring, employee management, and payroll. It helps teams simplify recruiting, onboarding, and staff operations in one place.
- [Gmail](https://composio.dev/toolkits/gmail) - Gmail is Google's email service with powerful spam protection, search, and G Suite integration. It keeps your inbox organized and makes communication fast and reliable.
- [Google Calendar](https://composio.dev/toolkits/googlecalendar) - Google Calendar is a time management service for scheduling meetings, events, and reminders. It streamlines personal and team organization with integrated notifications and sharing options.
- [Google Drive](https://composio.dev/toolkits/googledrive) - Google Drive is a cloud storage platform for uploading, sharing, and collaborating on files. It's perfect for keeping your documents accessible and organized across devices.
- [Outlook](https://composio.dev/toolkits/outlook) - Outlook is Microsoft's email and calendaring platform for unified communications and scheduling. It helps users stay organized with powerful email, contacts, and calendar management.
- [Twitter](https://composio.dev/toolkits/twitter) - Twitter is a social media platform for sharing real-time updates, conversations, and news. Stay connected, informed, and engaged with communities worldwide.
- [Google Sheets](https://composio.dev/toolkits/googlesheets) - Google Sheets is a cloud-based spreadsheet tool for real-time collaboration and data analysis. It lets teams work together from anywhere, updating information instantly.
- [Supabase](https://composio.dev/toolkits/supabase) - Supabase is an open-source backend platform offering scalable Postgres databases, authentication, storage, and real-time APIs. It lets developers build modern apps without managing infrastructure.
- [Composio](https://composio.dev/toolkits/composio) - Composio is an integration platform that connects AI agents with hundreds of business tools. It streamlines authentication and lets you trigger actions across services—no custom code needed.
- [Notion](https://composio.dev/toolkits/notion) - Notion is a collaborative workspace for notes, docs, wikis, and tasks. It streamlines team knowledge, project tracking, and workflow customization in one place.

## Frequently Asked Questions

### Do I need my own developer credentials to use Workday with Composio?

Yes, Workday requires you to configure your own OAuth credentials. Once set up, Composio handles token storage, refresh, and lifecycle management for you.

### Can I use multiple toolkits together?

Yes! Composio's Tool Router enables agents to use multiple toolkits. [Learn more](https://docs.composio.dev/tool-router/overview).

### Is Composio secure?

Composio is SOC 2 and ISO 27001 compliant with all data encrypted in transit and at rest. [Learn more](https://trust.composio.dev).

### What if the API changes?

Composio maintains and updates all toolkit integrations automatically, so your agents always work with the latest API versions.

---
[See all toolkits](https://composio.dev/toolkits) · [Composio docs](https://docs.composio.dev/llms.txt)
