CONNECT APP
Build with Lucca
12 HR and administrative software programs
Human Resources
- API key
MCP
Give your agent Lucca tools
Every Lucca 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 Lucca 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": "lucca",
},
},
},
)
const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)
const { tools } = await mcp.listTools()
// e.g. run Approve Or Deny Leave Request:
const result = await mcp.callTool({
name: "lucca-approve-leave-request",
arguments: {
leaveRequestId: "Leave Request ID",
approved: true,
},
})# 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": "lucca",
}
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 Approve Or Deny Leave Request:
result = await session.call_tool("lucca-approve-leave-request", {
"leaveRequestId": "Leave Request ID",
"approved": True,
})SDK
Run Lucca actions from your backend
Connect a user's Lucca account once, then run Approve Or Deny Leave Request 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: "lucca-approve-leave-request",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
lucca: { authProvisionId: "apn_xxxxxxx" },
leaveRequestId: "Leave Request ID",
approved: true,
},
})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="lucca-approve-leave-request",
external_user_id="{external_user_id}", # any stable ID for this user in your system
configured_props={
"lucca": {"authProvisionId": "apn_xxxxxxx"},
"leaveRequestId": "Leave Request ID",
"approved": True,
},
)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": "lucca-approve-leave-request",
"configured_props": {
"lucca": { "authProvisionId": "apn_xxxxxxx" },
"leaveRequestId": "Leave Request ID",
"approved": true
}
}'TOOLS
Lucca actions
On-demand operations your product or agent can configure and run on behalf of a connected user.
-
Approve Or Deny Leave Request
actionApprove or Deny a pending leave request. See the documentationWritev0.0.2 -
List Department ID Options
actionRetrieves available options for the Department ID field.Read-onlyv0.0.1 -
List Leave Request ID Options
actionRetrieves available options for the Leave Request ID field.Read-onlyv0.0.1 -
List Legal Entity ID Options
actionRetrieves available options for the Legal Entity ID field.Read-onlyv0.0.1 -
List Nationality Options
actionRetrieves available options for the Nationality field.Read-onlyv0.0.1 -
List User ID Options
actionRetrieves available options for the User ID field.Read-onlyv0.0.1 -
Update User Info
actionUpdate profile or HR information for an existing user. See the documentationWritev0.0.2
-
New Expense Report Created
triggerEmit new event when a new expense report is created by an employee. Useful for automating approval or finance workflows. See the documentationv0.0.1 -
New Leave Request
triggerEmit new event when a new leave request is submitted by an employee. See the documentationv0.0.1 -
New User Created
triggerEmit new event when a new user (employee) is created in Lucca. See the documentationv0.0.1
MULTI-APP
Use Lucca with other popular apps
Most products don't stop at one integration. Pair Lucca with the other apps your users rely on, and ship use cases that span both.
- App slug
- lucca
- Authentication
- API key
- Categories
- Human Resources
- Actions
- 7
- Triggers
- 3
- API proxy
- Not available