# Userflow — Pipedream Connect

> User onboarding software. Build product tours, checklists and more. No coding needed.

- API slug: `userflow` (use in MCP headers and tool keys)
- Auth: API key (Pipedream-managed)
- Categories: Web & App Development
- Website: https://userflow.com/
- This page (HTML): https://pipedream.com/apps/userflow
- Tools: 2 actions · 3 triggers

## Connect via MCP (recommended)

- Endpoint: `https://remote.mcp.pipedream.net/v3`
- Headers: `Authorization: Bearer <token>` · `x-pd-project-id` · `x-pd-environment` · `x-pd-external-user-id` · `x-pd-app-slug: userflow`

```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": "userflow",
      },
    },
  },
)

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

const { tools } = await mcp.listTools()

// e.g. run Create or Update User:
const result = await mcp.callTool({
  name: "userflow-create-update-user",
  arguments: {
    userId: "User ID",
    numberOfGroups: 10,
  },
})
```

Docs: [MCP guide](https://pipedream.com/docs/connect/mcp/developers.md)

## API proxy

For a Userflow endpoint with no pre-built tool, the proxy forwards your request with the connected user's credentials attached.

```bash
# The path segment is the target URL, URL-safe base64 encoded:
# https://api.userflow.com/users

curl "https://api.pipedream.com/v1/connect/{project_id}/proxy/aHR0cHM6Ly9hcGkudXNlcmZsb3cuY29tL3VzZXJz?external_user_id={external_user_id}&account_id=apn_xxxxxxx" \
  -H "Authorization: Bearer {access_token}" \
  -H "x-pd-environment: production"
```

Docs: [API proxy guide](https://pipedream.com/docs/connect/api-proxy.md)

## SDK

```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: "userflow-create-update-user",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    userflow: { authProvisionId: "apn_xxxxxxx" },
    userId: "User ID",
    numberOfGroups: 10,
  },
})
```

Docs: [Managed auth guide](https://pipedream.com/docs/connect/managed-auth/quickstart.md) · [Tools guide](https://pipedream.com/docs/connect/components.md)

## Actions (2)

### `userflow-create-update-user` — Create or Update User (Write)

Creates or updates a user in Userflow. If the user does not already exist in Userflow, it will be created. If it already exists, the given attributes will be merged into the existing user's attributes. See the documentation

Full schema: https://pipedream.com/apps/userflow/actions/create-update-user.md

### `userflow-find-user` — Find User (Read-only)

Finds an existing user by user ID or email, optionally filtering by group ID. See the documentation

Full schema: https://pipedream.com/apps/userflow/actions/find-user.md

## Triggers (3)

### `userflow-new-checklist-completed-instant` — New Checklist Completed (Instant) (Instant)

Emit new event when a user has completed all tasks in a checklist. See the documentation

Full schema: https://pipedream.com/apps/userflow/triggers/new-checklist-completed-instant.md

### `userflow-new-event-tracked-instant` — New Event Tracked (Instant) (Instant)

Emit new new event when an event is tracked in Userflow. See the documentation

Full schema: https://pipedream.com/apps/userflow/triggers/new-event-tracked-instant.md

### `userflow-new-flow-completed-instant` — New Flow Completed (Instant) (Instant)

Emit new event when a flow is completed by a user by reaching a goal step. See the documentation

Full schema: https://pipedream.com/apps/userflow/triggers/new-flow-completed-instant.md

---

- All apps: https://pipedream.com/apps — index: https://pipedream.com/llms.txt
- Pipedream docs for agents: https://pipedream.com/docs/llms.txt
