Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Applies to: Dynamics 365 Customer Service
Note
- The tools and examples in this documentation illustrate current capabilities. Tool names, descriptions, parameters, response formats, and available functionality can change over time.
- When you build agents, integrations, or orchestration logic, don't hard-code dependencies on specific tool names, parameter structures, tool metadata, or response schemas. Instead, design your solution to discover and use available tools at runtime.
- As the platform evolves, Microsoft might add, remove, rename, or modify tools and tool metadata. Designing against capabilities rather than specific tool identifiers helps maintain compatibility across service updates.
Use this capability when you want to review Workforce Engagement Management (WEM) requests—time-off, shift-swap, and shift-bid—in chat without leaving the conversation.
What it does
The assistant shows a list of WEM requests that match your filters. It covers all three request types—time-off, shift-swap, and shift-bid. You can filter by:
- Request type (time-off, shift-swap, shift-bid). Name a type to see only that type; ask for "all requests" to see every type.
- Your own requests or accessible team requests.
- A date range, and whether the range applies to the requested window or the created date.
- Request status (draft, in review, canceled, approved, rejected, pending approval, accepted, fulfilled, expired).
- Result count.
By default, it shows all requests you can access, of every type, across all dates and statuses. Add a type, timeframe, status, or "my requests" to narrow them. Results appear in an interactive list inside chat.
Try prompts like
- Show all my pending requests (every type).
- Pending time-off requests.
- Open shift swaps for my team.
- My shift bids this month.
- Show approved requests for my team in August.
What you'll see in chat
The assistant displays an interactive request list as an app-in-chat component. The list shows matching requests with key details such as name, agent, request type, status, and created date.
Helpful tips
- By default you see all requests you can access; say "my requests" to narrow to only your own.
- Add a timeframe such as "this week," "next week," or "in August" to filter by the requested dates, or say "created in the last two weeks" to filter by submitted date.
- Add a status word (such as pending, approved, or rejected) to narrow the list; omit it to see all statuses.
Tip
After the list appears, select a row to open the full request form, or ask a follow-up question about any request shown.
What happens next
After the list appears, you can continue with prompts like:
- Open the first request.
- Show only pending approvals.
- Show these for my team instead.
- Show approved requests instead.
Does this change data?
No, listing requests doesn't change data.
The request list is read-only. Selecting a request from the list opens its record in a form view; the list itself doesn't modify data.
What you can do from the app-in-chat component
From the request list in chat, you can:
- Scan and review matching requests in a sortable grid.
- Select a request to open its full form view.
- Continue working with the request in chat using follow-up prompts.
Prerequisites
This tool is available on the Dynamics 365 CX MCP Server—Workforce Engagement Management. See the availability note at the top of this page for details. Workforce Engagement Management must be enabled, and the signed-in user must have read access to WEM requests.
Tool summary
| Property | Value |
|---|---|
| User-facing name | View Workforce Engagement Management requests |
| Internal tool name | list_wem_requests |
| Purpose | Lists Workforce Engagement Management requests (time-off, shift-swap, shift-bid) filtered by request type, scope, status, and date, and renders them in an interactive grid-style app-in-chat experience |
Tool behavior
Lists active Dataverse msdyn_wemrequest rows. When requestType is omitted, the tool returns all request types (time-off, shift-swap, shift-bid); when supplied, it filters to the named type(s). When neither from nor to is supplied, the tool applies no date filter (all dates), and when status is omitted it applies no status filter (all active statuses). It otherwise defaults to dateBasis: requested (which window field a supplied date range filters on—not a default date range), team scope (all requests the caller can access), and a maximum of 25 results. For scope: self, the query filters rows to the signed-in user (owner); for the default scope: team, it relies on Dataverse and WEM security to return only rows the caller can read.
Annotations
| Annotation | Value | Meaning |
|---|---|---|
readOnlyHint |
true |
This tool doesn't modify data. |
destructiveHint |
Not set | Not applicable (read-only tool). |
idempotentHint |
Not set | Not applicable (read-only tool). |
openWorldHint |
Not set | Uses default (queries Dataverse). |
Input concepts
Request type
| Input | Description | Required |
|---|---|---|
requestType |
Array of time_off, shift_swap, shift_bid. Omit to include all types (for example, "show all requests"); pass for example, ['time_off'] for time-off only, ['shift_swap'] for swaps. |
No |
Scope
| Input | Description | Required |
|---|---|---|
scope |
self or team. Defaults to team—everything you can access. A neutral "show requests" returns all accessible requests; only "my requests" narrows to self (requests you own). |
No |
Status
| Input | Description | Required |
|---|---|---|
status |
Array of draft, in_review, canceled, approved, rejected, pending_approval, accepted, fulfilled, expired. Omit to include all statuses. |
No |
Date range
| Input | Description | Required |
|---|---|---|
from, to |
Inclusive ISO 8601 datetimes. Omit both to apply no date filter (all dates); a single bound filters open-ended on the other side. | No |
dateBasis |
requested filters by the request's window; created filters by when the request was submitted. Defaults to requested. |
No |
Result limit
| Input | Description | Required |
|---|---|---|
top |
Integer maximum number of requests to return. Defaults to 25, capped at 200. | No |
Response and UI behavior
This tool renders an interactive app-in-chat request grid.
This MCP tool is supported by an MCP app.
Response type
Interactive grid (list view)
The grid displays name, agent, request type, status, and created date. Users can select a row to open the request's form view.
Routing notes
Use list_wem_requests for:
- my time-off requests, open shift swaps, my shift bids (pass
requestType). - show all my requests, pending requests for my team (omit
requestType→ all types). - Status- or date-based filtering of WEM requests.
Don't use list_wem_requests when the prompt asks for cases, accounts, or other non-WEM records.
Related tools
| Tool | Relationship |
|---|---|
| Entity-grid record view | Selecting a row opens the request's record in the entity-grid form view. |
Data mutation classification
Read-only.
The listing doesn't change data; opening a request shows its record in a form view.