CONNECT APP
Build with Peakon Employee Voice
Human Resources
- OAuth
MCP
Give your agent Peakon Employee Voice tools
Every Peakon Employee Voice action is exposed as an MCP tool on Pipedream's remote server. Point a client at it with your end user's ID and Connect resolves that user's Peakon Employee Voice account for each tool call — you store no tokens.
// accessToken: mint a short-lived token with the Connect SDK — see the MCP guide
const transport = new StreamableHTTPClientTransport(
new URL("https://remote.mcp.pipedream.net/v3"),
{
requestInit: {
headers: {
Authorization: `Bearer ${accessToken}`,
"x-pd-project-id": "{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()
// e.g. run Create Employee:
const result = await mcp.callTool({
name: "peakon_employee_voice-create-employee",
arguments: {
firstName: "First Name",
lastName: "Last Name",
},
})# access_token: mint a short-lived token with the Connect SDK — see the MCP guide
headers = {
"Authorization": f"Bearer {access_token}",
"x-pd-project-id": "{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",
}
async with streamablehttp_client("https://remote.mcp.pipedream.net/v3", headers=headers) as (read, write, _):
async with ClientSession(read, write) as session:
await session.initialize()
tools = await session.list_tools()
# e.g. run Create Employee:
result = await session.call_tool("peakon_employee_voice-create-employee", {
"firstName": "First Name",
"lastName": "Last Name",
})API PROXY
Call the Peakon Employee Voice API directly
For an endpoint with no pre-built tool, the Connect proxy forwards your request to the Peakon Employee Voice API with the connected user's credentials attached. You store no tokens and write no refresh logic.
const resp = await pd.proxy.get({
externalUserId: "{external_user_id}", // any stable ID for this user in your system
accountId: "apn_xxxxxxx",
url: "https://api.example.com/v1/me",
})
// Any allowed Peakon Employee Voice endpoint works here. Pipedream attaches the
// connected account's credentials to the outgoing request.# The path segment is the target URL, URL-safe base64 encoded:
# https://api.example.com/v1/me
curl "https://api.pipedream.com/v1/connect/{project_id}/proxy/aHR0cHM6Ly9hcGkuZXhhbXBsZS5jb20vdjEvbWU?external_user_id={external_user_id}&account_id=apn_xxxxxxx" \
-H "Authorization: Bearer {access_token}" \
-H "x-pd-environment: production"SDK
Run Peakon Employee Voice actions from your backend
Connect a user's Peakon Employee Voice account once, then run Create Employee on their behalf from your own code — TypeScript, Python, or plain HTTP.
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-create-employee",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
peakon_employee_voice: { authProvisionId: "apn_xxxxxxx" },
firstName: "First Name",
lastName: "Last Name",
},
})from pipedream import Pipedream
pd = Pipedream(
client_id="{oauth_client_id}",
client_secret="{oauth_client_secret}",
project_id="{project_id}",
project_environment="production",
)
result = pd.actions.run(
id="peakon_employee_voice-create-employee",
external_user_id="{external_user_id}", # any stable ID for this user in your system
configured_props={
"peakon_employee_voice": {"authProvisionId": "apn_xxxxxxx"},
"firstName": "First Name",
"lastName": "Last Name",
},
)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-create-employee",
"configured_props": {
"peakon_employee_voice": { "authProvisionId": "apn_xxxxxxx" },
"firstName": "First Name",
"lastName": "Last Name"
}
}'TOOLS
Peakon Employee Voice actions
On-demand operations your product or agent can configure and run on behalf of a connected user.
-
Create Employee
actionCreates a new employee record in Peakon. RequiresfirstName,lastName, andidentifier(the HR employee number, e.g.E001— must be unique). Optional standard fields:email,employeeType(permanent/contractor/temporary/volunteer/other),employmentStatus. Custom HR attributes such as Department, Region, and Job Level can be set viacustomAttributesas a JSON object — e.g.{"Department": "Sales", "Region": "North America"}. Returns the new employee record including the internalid, which can be used with Update Employee or Delete Employee. See the Peakon API documentationWritev0.0.2 -
Delete Employee
actionPermanently deletes an employee record from Peakon. This action is irreversible — the employee and all associated survey data will be removed. Use List Employees to find the employee'sidfirst. Returns a confirmation when deletion succeeds. See the Peakon API documentationWritev0.0.2 -
Get Driver Scores
actionReturns engagement scores broken down by Peakon's 14 core drivers: Accomplishment, Autonomy, Environment, Freedom of Opinions, Goal-Setting, Growth, Manager Support, Meaningful Work, Organizational Fit, Peer Relationships, Recognition, Reward, Strategy, and Workload. Each driver includes a score (0–10), grade (positive/neutral/negative), impact rating, and classification (e.g. strength, priority). Pass acontextIdformatted ascompany_[companyId]for company-wide scores orsegment_[segmentId]to scope to a specific segment — use List Segments to discover IDs. Use when the user asks 'which drivers are lowest?', 'how is recognition scoring?', or 'what are the priority areas to focus on?'. See the Peakon API documentationRead-onlyv0.0.2 -
Get Engagement Overview
actionReturns the engagement score, response rate, NPS breakdown, and favorability data for a company or specific segment context. Pass acontextIdformatted ascompany_[companyId]for company-wide metrics orsegment_[segmentId]for a specific segment — use List Segments to discover segment IDs. Use when the user asks 'what is our overall engagement score?', 'how engaged is [segment]?', or 'what is the response rate?'. Returns: engagement score (0–10 scale), NPS score, favorable/neutral/unfavorable split, response count, and last survey date. See the Peakon API documentationRead-onlyv0.0.2 -
List Employees
actionLists 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 internalid, name, identifier (HR employee number), employment status, and custom HR attributes (Department, Region, Job Level, etc.). Theidfield 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 documentationRead-onlyv0.0.2 -
List Segments
actionLists all demographic and organizational segments configured in Peakon. Each segment includes acontextIdthat can be passed to Get Engagement Overview and Get Driver Scores to scope analytics to a specific population (e.g. a department, region, or tenure band). Call this first whenever the user asks about a specific team, department, or demographic group and needs analytics scoped to it. See the Peakon API documentationRead-onlyv0.0.2 -
Update Employee
actionPartially updates an existing employee's attributes using their internal ID. Only the fields you provide will be updated — omitted fields are left unchanged. Use List Employees to find the employee'sidfirst. Standard fields:firstName,lastName,identifier,employmentStatus. Custom HR attributes (Department, Region, Job Level, etc.) can be updated viacustomAttributesas a JSON object — e.g.{"Department": "Engineering"}. Enum attribute values are accepted as plain strings; Peakon resolves option IDs internally. See the Peakon API documentationWritev0.0.2
EVENTS
Peakon Employee Voice triggers
Event sources your backend can deploy for users and receive through a webhook.
No Peakon Employee Voice triggers are available yet.
REFERENCE
App details
Reference metadata for the Peakon Employee Voice connector in the Pipedream registry.
- App slug
- peakon_employee_voice
- Authentication
- OAuth
- Categories
- Human Resources
- Actions
- 7
- Triggers
- 0
- API proxy
- Available