# List Employees — Peakon Employee Voice

> Lists employee records in Peakon. Use the filter parameters to narrow results by email, account ID, admin status, employee ID, manager status, or segment membership. Returns each employee's internal id, name, identifier (HR employee…

- Key: `peakon_employee_voice-list-employees`
- Type: Action (Read-only)
- Version: 0.0.2
- App: Peakon Employee Voice (`peakon_employee_voice`) — https://pipedream.com/apps/peakon-employee-voice.md
- This page (HTML): https://pipedream.com/apps/peakon-employee-voice/actions/list-employees
- Hints: read-only · open-world
- Source: https://github.com/PipedreamHQ/pipedream/blob/master/components/peakon_employee_voice/actions/list-employees/list-employees.mjs

## Description

Lists employee records in Peakon. Use the filter parameters to narrow results by email, account ID, admin status, employee ID, manager status, or segment membership. Returns each employee's internal `id`, name, identifier (HR employee number), employment status, and custom HR attributes (Department, Region, Job Level, etc.). The `id` field returned here is required by **Update Employee** and **Delete Employee**. Call this first whenever the user refers to an employee by name or attribute and you need their ID to perform an update or deletion. [See the Peakon API documentation](https://developer.peakon.com/reference/get_employees)

## Props

| Prop | Type | Required | Description |
|---|---|---|---|
| `filterEmail` | `string` | No | Filter employees by account email address. |
| `filterAccountId` | `integer` | No | Filter employees by their account ID. |
| `filterAdmin` | `boolean` | No | When true, returns only employees with admin access. |
| `filterEmployeeId` | `integer` | No | Filter by the employee's internal numeric ID. Options are loaded from the connected account. |
| `filterManager` | `boolean` | No | When true, returns only employees who are managers. |
| `filterSegmentIds` | `string` | No | Comma-separated list of segment IDs to filter by segment membership. Example: 1001,1002. Use List Segments to discover available segment IDs. |

## Run it

**MCP**

```ts
import { Client } from "@modelcontextprotocol/sdk/client/index.js"
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js"
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const accessToken = await pd.rawAccessToken

const transport = new StreamableHTTPClientTransport(
  new URL("https://remote.mcp.pipedream.net/v3"),
  {
    requestInit: {
      headers: {
        Authorization: `Bearer ${accessToken}`,
        "x-pd-project-id": process.env.PIPEDREAM_PROJECT_ID!,
        "x-pd-environment": "production",
        "x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
        "x-pd-app-slug": "peakon_employee_voice",
      },
    },
  },
)

const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)

const { tools } = await mcp.listTools()

// listTools() hands your model this tool's input schema, so it can
// fill the arguments itself:
const result = await mcp.callTool({
  name: "peakon_employee_voice-list-employees",
  arguments: {
    filterEmail: "Filter by Email",
    filterAccountId: 10,
  },
})
```

**TypeScript**

```ts
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const result = await pd.actions.run({
  id: "peakon_employee_voice-list-employees",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    peakon_employee_voice: { authProvisionId: "apn_xxxxxxx" },
    filterEmail: "Filter by Email",
    filterAccountId: 10,
  },
})

console.log(result)
```

**cURL**

```bash
curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
  -H "Content-Type: application/json" \
  -H "X-PD-Environment: production" \
  -H "Authorization: Bearer {access_token}" \
  -d '{
    "external_user_id": "{external_user_id}",
    "id": "peakon_employee_voice-list-employees",
    "configured_props": {
      "peakon_employee_voice": { "authProvisionId": "apn_xxxxxxx" },
      "filterEmail": "Filter by Email",
      "filterAccountId": 10
    }
  }'
```

---

- App: https://pipedream.com/apps/peakon-employee-voice.md · All apps: https://pipedream.com/apps
