# Dayforce MCP connector

The Dayforce connector brings employee records, schedules, availability, candidate background screening and benefits carrier feed exports to Claude, ChatGPT, Cursor and the Elaichi Agent, with every request running as the signed-in person and recorded in an audit log.

Source: https://elaichi.ai/connectors/dayforce/

## Facts

| | |
| --- | --- |
| Application | Dayforce |
| Category | HRIS |
| AI tools | 100 |
| Authentication | Connects with an API key |
| Bring your own OAuth app | No |
| MCP endpoint | https://api.elaichi.ai/mcp |
| Works with | Claude, ChatGPT, Cursor, any MCP client, and the Elaichi Agent |
| Tools advertised by name | No. Connected tools are never listed one by one, however few there are. The endpoint advertises `search_tools` and `execute_tool` instead |

## What you can ask once Dayforce is connected

- Who on the warehouse team is available this Saturday afternoon?
- Update Priya Shah's manager to Daniel Moore in Dayforce.
- Which candidates still have a pending background screening status?

## Connect Dayforce in Elaichi

This happens once for the organization, before any client is involved.

1. Open Connections, choose Add connection, and pick Dayforce.
2. Optionally set Share with, then press Connect.
3. Paste a Dayforce API key. One person generates a token in Dayforce and pastes it once. Everyone else works through Share with, and never sees it.

Credentials are vaulted and nobody, including the AI, reads them back. The connection becomes a toolbox immediately, so you can curate which Dayforce tools are exposed, rename them, or freeze arguments before anyone points a client at it.

## Dayforce MCP connector for Claude

Endpoint: https://api.elaichi.ai/mcp

1. Open Customize, then Connectors.
2. Press Add.
3. Name it, paste the MCP server URL, then Continue.
4. Sign in and approve.

On Team and Enterprise, an Owner adds it once. Everyone else turns it on for themselves.

## Dayforce MCP connector for ChatGPT

Endpoint: https://api.elaichi.ai/mcp

1. Open Plugins, then press the + button.
2. Name it and paste the endpoint into Server URL.
3. Leave Authentication on OAuth, then tick the risk acknowledgement.
4. Press Create, then sign in and approve.

Works on the web today. The plugin directory lives at chatgpt.com/plugins.

## Dayforce MCP connector for Cursor

Endpoint: https://api.elaichi.ai/mcp

1. Open `~/.cursor/mcp.json`.
2. Add the endpoint under `mcpServers`.
3. Reload Cursor, then sign in and approve.

Set up per machine, so repeat it on each computer you work from.

## Connect Dayforce to any MCP client

Endpoint: https://api.elaichi.ai/mcp

1. Add the endpoint as a remote MCP server.
2. Sign in and approve.

The Elaichi Agent already has these tools, with nothing to set up.

## What the consent screen decides

Only Read is granted by default, which is not enough to call a Dayforce tool. Over MCP there is no trusted place to confirm a write in the moment, so the consent screen is the standing approval rather than a formality. Grant Read and Run tools. Think hard before granting Delete, which reaches into connected apps and cannot be undone.

## What teams do with Dayforce through Elaichi

### Catch an employee record up after a change

HR. When someone moves teams, changes manager or gets a new title, ask for the update in plain language and the Dayforce employee record is changed as you, with the change logged.

### Move a batch of candidates through screening

Recruiting. Update background screening status, adjudication outcome or right to work for a whole group of Dayforce candidates in one ask, instead of opening each candidate one at a time.

### Find out who can cover a shift

Operations. Ask who is available on Saturday afternoon and see Dayforce availability and schedules for the team, then record new availability when someone lets you know their hours have changed.

### Confirm carrier feed exports went out

Benefits. Check the ongoing and open enrollment carrier feed exports in Dayforce, including multi carrier feeds, before the carrier calls to ask why an enrollment is missing.

### Set up a new hire without retyping

People operations. Create the Dayforce employee record from the offer details you already have, then look it up by ID later to confirm the fields landed the way you expected.

### Keep screening packages and billing codes current

Talent acquisition. Add a new background screening package, billing code or provider status in Dayforce when a vendor changes its offering, and list what already exists before you create a duplicate.

## Frequently asked questions

### How do I connect Dayforce to Claude?

Connect Dayforce in Elaichi first, which asks for the API key from your Dayforce account, then paste the endpoint https://api.elaichi.ai/mcp into Claude under Customize, then Connectors, then Add. There is no OAuth application to register in Dayforce and no client ID or secret to generate. Once both steps are done, Claude can work with Dayforce employees, schedules and candidates as you.

### Does Dayforce work with ChatGPT and Cursor as well as Claude?

Yes. Once Dayforce is connected in Elaichi, the same endpoint, https://api.elaichi.ai/mcp, works in Claude, ChatGPT, Cursor, any other MCP client and the Elaichi Agent. You connect Dayforce once and every client you use picks it up.

### What can an AI agent actually do with my Dayforce data?

With Dayforce connected, an agent can look up an employee, update their record, create a new hire, check who is available and what the schedule looks like, move candidates through background screening in bulk, and review benefits carrier feed exports. Short concrete asks work best, such as who is available Friday evening or update this employee's manager. Anything it does runs as the person who signed in.

### Does connecting Dayforce give the AI access to every employee record?

No. Access follows the person who signed in, so an agent working through Dayforce sees only the employees, schedules and candidates that person can already see in Dayforce. Elaichi can narrow that further with restrictions, and it can never widen what Dayforce itself allows.

### Can my team share one Dayforce connection?

Yes. One person connects Dayforce in Elaichi and shares the connection with a team, and nobody else ever handles the Dayforce API key. Each teammate still signs in to Elaichi as themselves, so the audit log names the actual person behind every change to a Dayforce record.

### Can I stop an agent from deleting or changing things in Dayforce?

Yes. Restrictions in Elaichi work per action, so you can allow reading Dayforce employees and schedules while blocking updates, creating employees or bulk screening changes. A restricted action is never advertised to Claude, ChatGPT or any other client, so no prompt can reach it.

### What happens to a Dayforce connection when someone leaves?

Offboarding the person in Elaichi ends their access to Dayforce through every client at once. A Dayforce connection they shared keeps working for everyone else on the team. If you want Dayforce gone entirely, disconnecting it once in Elaichi removes it from Claude, ChatGPT, Cursor and every other client together.

### Does the Dayforce MCP connector work with Gemini, Codex, Claude Code or other MCP clients?

Yes. Dayforce is reached over the same MCP endpoint every client uses, so anything that speaks MCP can call it — Gemini, Codex, Claude Code, Windsurf, Cline, Zed and OpenCode among them — alongside Claude, ChatGPT, Cursor, and the Elaichi Agent. The tools on offer and the access behind them are identical whichever client asks. Only the setup screen differs.

## All 100 Dayforce tools

Every tool below is callable through https://api.elaichi.ai/mcp once Dayforce is connected, subject to the toolbox it is in and the restrictions on the caller.

- **List all Dayforce client metadata** (List). Get Dayforce client metadata for your organization, resolving the client- and version-specific API service URL to target for subsequent requests. Returns exactly two fields: ServiceVersion and ServiceUri. Call at minimum once a day if you store the returned URL.
- **List all Dayforce background screening billing codes** (List). List the background screening billing codes and their associated packages configured for the Dayforce background screening integration. Returns: BillingCodeId, Name, Description, AssociatedPackages.
- **Create a Dayforce background screening billing code** (Create). Send a list of background screening billing codes and their associated packages to Dayforce. Billing codes omitted from the request are treated as deleted or inactive. Returns: BillingCodeId, Name, Description, AssociatedPackages. Required: ProviderReference, BillingCodes.
- **List all Dayforce background screening packages** (List). List background screening packages configured in Dayforce, including each package's Right to Work flag and associated billing codes. Returns: PackageId, Name, Description, IncludeRTW, AssociatedBillingCodes.
- **Create a Dayforce background screening package** (Create). Create background screening packages in Dayforce by sending the provider's package list. Returns: PackageId, Name, Description, IncludeRTW, AssociatedBillingCodes. Required: ProviderReference, Packages. Packages omitted from the request are treated as deleted or inactive.
- **List all Dayforce background screening provider statuses** (List). List background screening provider statuses in Dayforce. Returns each record's ProviderReference plus its OrderStatuses, AdjudicationStatuses, and ResultStatuses lists.
- **Create a Dayforce background screening provider status** (Create). Send background screening provider statuses to Dayforce. The request body takes ProviderReference plus OrderStatuses, AdjudicationStatuses, and ResultStatuses string lists; each list is optional but at least one status list must be included. Returns an empty 204 response on success.
- **Dayforce candidate background screening bulk update** (Update). Update a candidate's background screening data in Dayforce — set the screening and adjudication status, the partner result URL, and candidate PII (date of birth, SSN/SIN, driver license). Returns the updated record: ScreeningRequestId, Url, ScreeningStatus, CandidatePII. Required: ScreeningRequestId. Properties set to null are cleared in Dayforce; omitted properties remain unchanged.
- **Candidate background screening right to work bulk update** (Update). Update the candidate right to work result for a Dayforce background screening. Returns the right to work record including WorkRightStatus, Status, DateIssued, PartnerIdentifier, and Documents. Required: ScreeningRequestId. WorkRightStatus must be one of UNLIMITED, LIMITED, or NONE.
- **Candidate background screening personal identifiable information** (Action). Update a candidate's background screening personal identifiable information (PII) in Dayforce. Returns the updated record with fields such as BioExempt, BirthDate, SocialSecurityNumber, HireDate, and DisplayName. Required: ScreeningRequestId and CandidatePII (with DateOfBirth, SocialSecurityNumber, SocialInsuranceNumber, DriverLicense).
- **Candidate background screening adjudication status bulk update** (Update). Update the adjudication status of a candidate background screening order in Dayforce. Returns the updated screening record with ScreeningRequestId plus AdjudicationStatus, ScreeningStatus, Url, and CandidatePII. Required: ScreeningRequestId and AdjudicationStatus in the body.
- **Dayforce candidate background screening status bulk update** (Update). Update the background screening order status for a candidate in Dayforce. Returns: ScreeningRequestId, ScreeningStatus, BioExempt, BirthDate, Culture, Gender, HireDate, HomePhone, OriginalHireDate, PhotoExempt, RequiresExitInterview, SocialSecurityNumber, StartDate, FirstTimeAccessEmailSentCount, FirstTimeAccessVerificationAttempts, SendFirstTimeAccessEmail, PreStartDate, PayrollKey, LoginId,…
- **List all Dayforce benefits carrier feed ongoing exports** (List). Retrieve ongoing Dayforce benefits carrier feed data for employees and dependents whose benefit elections are in effect across a defined look-back/look-forward period range, for regular transmission to a single carrier. Returns a JSON payload with Data (Header carrier/policy/employer metadata plus EmployeeRecords covering employee details, elections, dependents, beneficiaries and earning…
- **List all Dayforce benefits carrier feed open enrollment exports** (List). Retrieve Dayforce open enrollment data for employees and dependents whose benefit elections are in effect as of the plan year start date, intended for one-time transmission to a single carrier after an annual enrollment period. Returns the JSON feed payload (data). Required: carrierXRefCode, planStartDate, planEndDate, clientNamespace.
- **List all benefits carrier feed multi carrier ongoing exports** (List). Retrieve the Dayforce ongoing multi-carrier benefits export: employees and dependents with benefit elections in effect as of the defined period range, for regular transmission to multiple carriers. Returns: Data. Required: carrierXRefCode, planStartDate, planEndDate, clientNamespace.
- **List benefits carrier feed multi carrier open enrollment exports** (List). Retrieve Dayforce open enrollment benefits data for multiple carriers: employees and dependents whose benefit elections are in effect as of the plan year start date, typically sent once after an annual enrollment period. Returns Data with Header, EmployeeRecords (employee, election, dependent, beneficiary details) and ProcessResults. Required: carrierXRefCode, planStartDate, planEndDate,…
- **List all Dayforce employees** (List). List Dayforce employee XRefCodes — step one of the two-part retrieval pattern: query XRefCodes first, then request each employee's details. Accepts filters for employment status, org unit, hire/termination date ranges, and update windows. Returns records including XRefCode, DisplayName, and FirstName; results are subject to the 1,000-employee query governor limit.
- **Get single Dayforce employee by ID** (Get). Get a Dayforce employee's details by XRefCode, with an optional as-of context date and expand parameter for top-level child data. Returns: XRefCode, DisplayName, FirstName, LastName, Gender, BirthDate, HireDate, OriginalHireDate, StartDate, PreStartDate, HomePhone, SocialSecurityNumber, PayrollKey, LoginId, BioExempt, PhotoExempt, RequiresExitInterview, SendFirstTimeAccessEmail,…
- **Update a Dayforce employee by ID** (Update). Update an existing Dayforce employee record identified by XRefCode, sending the full employee data in the request body (same structure as the GET response). Returns the updated record's XRefCode. Required: id.
- **Create a Dayforce employee** (Create). Create a new employee record in Dayforce by posting the employee data. Returns the created employee record including XRefCode, FirstName, and LastName.
- **Dayforce employees partial update** (Update). Partially update a Dayforce employee by XRefCode — the request body uses the same structure as the GET response; include only the fields to change (for example HomePhone, LastName, MaidenName). Returns the updated employee record including XRefCode, DisplayName, FirstName, and LastName. Required: id.
- **List all Dayforce employee availability** (List). List availability data for a specific Dayforce employee over a date range. Returns: DateOfRequest, UnAvailable, IsDefault, StartTime1, EndTime1. Required: x_ref_code, filterAvailabilityStartDate, filterAvailabilityEndDate.
- **Create a Dayforce employee availability** (Create). Create a new availability record for a Dayforce employee. Returns availability data including DateOfRequest, IsDefault, UnAvailable, StartTime1, and EndTime1. Required: employee_x_ref_code. Pass isValidateOnly=true to run validations without committing changes.
- **List all Dayforce employee schedules** (List). List Dayforce employee schedules for a specific employee by x_ref_code. Returns: EmployeeScheduleXRefCode, EmployeeXRefCode, TimeStart, TimeEnd, NetHours, DepartmentXRefCode, JobXRefCode, PositionXRefCode, OrgUnitXRefCode, SiteOrgUnitXRefCode, OrgLocationTypeXRefCode, PayAdjCodeXRefCode, DocketXRefCode, ProjectXRefCode, Comment, Published, Breaks, Activities, Skills, LaborMetrics, Segments,…
- **Create a Dayforce employee schedule** (Create). Create a new employee schedule (shift) in Dayforce. Returns the created schedule record including EmployeeScheduleXRefCode, EmployeeXRefCode, TimeStart, TimeEnd, NetHours, Published, Breaks, and Segments. Requires a requester-generated EmployeeScheduleXRefCode in the request body.
- **Update a Dayforce employee schedule by ID** (Update). Update an existing Dayforce employee schedule by id (the schedule's EmployeeScheduleXRefCode); the body only needs the entities being updated. Returns the updated schedule record including EmployeeScheduleXRefCode, TimeStart, TimeEnd, NetHours, Published, Breaks, and Segments. Required: id.
- **List all Dayforce employee time away from work** (List). List an employee's time away from work (TAFW) requests in Dayforce, optionally filtered by start/end date and request status. Returns each request's TAFWXRefCode, DateOfRequest, TimeStart, TimeEnd, NetHours, ReasonName, AllDay/HalfDay flags, and employee/manager comments. Required: x_ref_code.
- **List all Dayforce documents** (List). List Dayforce document metadata for a specific employee. Returns metadata records including DocumentGUID, DocumentName, DocumentType, FileName, UploadedDate, and UploadedBy — document content is not included; use the DocumentGUID with the get endpoint to fetch content. Required: EmployeeXRefCode.
- **Get single Dayforce document by ID** (Get). Get a single Dayforce document by its DocumentGUID, returning both the document metadata and its content. Returns: DocumentGroup, SourceReportUniqueId, PublishDateTime, Title, PageCount, CultureId, Contents, FileName, SizeBytes. Required: id (DocumentGUID).
- **List all Dayforce employee punches** (List). List employee punch time entries in dayforce. Returns each punch's PunchXRefCode, EmployeeXRefCode, TimeStart, TimeEnd, Quantity, MealBreaks, Transfers, and PunchLaborMetrics. Filter by EmployeeXRefCode and UTC transaction time range; pagination is supported.
- **Create a Dayforce employee punch** (Create). Create an employee punch (time entry) in dayforce. Returns the created punch with PunchXRefCode, EmployeeXRefCode, TimeStart, TimeEnd, meal breaks, transfers, and labor metrics.
- **Update a Dayforce employee punch by ID** (Update). Update an employee punch (time entry) in dayforce by id. Returns the updated punch with PunchXRefCode, EmployeeXRefCode, TimeStart, TimeEnd, meal breaks, transfers, and labor metrics. Required: id (the punch's XRefCode).
- **Dayforce employee punches bulk delete** (Delete). Delete an employee punch (time entry) in dayforce. The employeePunchXRefCode must be an exact match or a 400 error is returned, and all linked tardy pay adjustments, labor metrics, transfers, meals, and breaks are removed with it. Returns an empty 204 response on success. Required: employeePunchXRefCode.
- **Create a Dayforce employee raw punch** (Create). Create employee raw clock entries (raw punches) in Dayforce. Returns the processed punch entry with fields including RawPunchXRefCode, PunchState, RawPunchTime, IsDuplicate, and RejectedReason. Set IsValidateOnly=true to run validations without committing changes.
- **List all Dayforce org units** (List). List Dayforce org unit XRefCodes. Returns one record per org unit with its XRefCode (for example, Corporate or Shop1); org units without XRefCodes aren't returned. Pass an XRefCode as the id to retrieve full org unit details.
- **Get single Dayforce org unit by ID** (Get). Get full details for a single Dayforce org unit by id (its XRefCode). Returns: XRefCode, ShortName, LongName, OrgLevel, OrgUnitLegalEntities, OrgUnitParents, ChildOrgUnits. Data is returned as of the requested as-of date; the full org unit history isn't included. Required: id.
- **Create a Dayforce org unit** (Create). Create an org unit in Dayforce. Returns: requestId, processResults. Required: XRefCode — a unique requester-generated identifier sent in the body; Dayforce returns an error if the XRefCode already matches an existing org unit (resubmit as an update instead).
- **Update a Dayforce org unit by ID** (Update). Update an existing Dayforce org unit by id (its XRefCode), including creating new effective-dated subordinate records (OrgUnitParents, OrgUnitLegalEntities). Returns: requestId, processResults. Required: id. The body needs only the entities being changed; XRefCode, if included in the body, must match the id.
- **List all Dayforce departments** (List). List the XRefCodes of all departments configured in Dayforce. Returns: XRefCode. Departments without an XRefCode are excluded; pass each XRefCode as the id for the department detail, create, and update calls.
- **Get single Dayforce department by ID** (Get). Get the full detail of a single Dayforce department by id (its XRefCode). Returns: OrgLevel, OrgUnitLegalEntities, OrgUnitParents, ChildOrgUnits, XRefCode, ShortName, LongName. Required: id.
- **Create a Dayforce department** (Create). Create a department in Dayforce. The request body uses the same JSON structure as the department detail response and must include a requester-generated unique XRefCode (duplicates return an error — resubmit as an update instead). Returns: OrgLevel, OrgUnitLegalEntities, OrgUnitParents, ChildOrgUnits, XRefCode, ShortName, LongName. Required: XRefCode. Supports IsValidateOnly=true to validate…
- **Update a Dayforce department by ID** (Update). Update an existing Dayforce department by id (its XRefCode); send only the entities and elements to change, in the same JSON structure as the department detail response. Returns: OrgLevel, OrgUnitLegalEntities, OrgUnitParents, ChildOrgUnits, XRefCode, ShortName, LongName. Required: id. Supports IsValidateOnly=true to validate without committing.
- **List all Dayforce jobs** (List). List the XRefCodes of all jobs configured in the Dayforce organization. Returns the job xref_code; jobs without an XRefCode are excluded. Pass each XRefCode as id to the job details GET to retrieve the full job record.
- **Get single Dayforce job by ID** (Get). Get the details of a single Dayforce job by its XRefCode. Returns the job xref_code. Required: id (the job XRefCode).
- **Create a Dayforce job** (Create). Create a job record in Dayforce. Returns the job xref_code. Required: xref_code — a requester-generated identifier that must be unique across jobs; Dayforce returns an error if it already exists, in which case resubmit as an update. Pass is_validate_only=true to run validations without committing changes.
- **Update a Dayforce job by ID** (Update). Update an existing Dayforce job identified by its XRefCode; the body needs only the entities and elements being changed, using the same JSON structure returned by the job details GET. Returns the job xref_code. Required: id (the job XRefCode). Pass is_validate_only=true to validate without committing.
- **List all Dayforce positions** (List). List the XRefCodes of every position configured in the Dayforce organization — the first step of the two-step position retrieval pattern. Returns position records including XRefCode, PositionAssignments, DepartmentXRefCode, JobXRefCode, OrgUnitXRefCode, and Published. Positions without an XRefCode are not returned.
- **Get single Dayforce position by ID** (Get). Get a Dayforce position's details by id (the position's XRefCode); the response reflects data as of the request date rather than the full position history. Returns: XRefCode, PositionAssignments, DateOfRequest, UnAvailable, IsDefault, StartTime1, EndTime1, TimeStart, TimeEnd, NetHours, DepartmentXRefCode, JobXRefCode, OrgUnitXRefCode, Published, Breaks, Activities, Skills, LaborMetrics,…
- **Create a Dayforce position** (Create). Create a Dayforce position with a caller-assigned unique XRefCode; the request body uses the same JSON structure as the position details response. Returns: XRefCode. Duplicate XRefCodes are rejected — resubmit the change as an update instead. Required: XRefCode.
- **Update a Dayforce position by ID** (Update). Update an existing Dayforce position by id (its XRefCode); the body needs only the data entities and elements being changed. Returns: XRefCode. Required: id.
- ...and 50 more tools. Call `tools/list` via the MCP endpoint, or see the full catalog via the API, for the complete set.
