MULTI-APP TOOLKIT
Build with Mindbody + n8n.io
- Multi-app
- One MCP session
- 12 actions
- 0 triggers
- Managed auth
MCP
One MCP session, both toolsets
One session gives your product or agent every Mindbody and n8n.io tool at once — connect once, list tools, and call them like any single-app session.
// 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": "mindbody,n8n_io",
},
},
},
)
const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)
const { tools } = await mcp.listTools()
// One list, both toolsets: Mindbody and n8n.io tools arrive
// together, each keyed by its own app's slug.
// e.g. run Book Appointment:
const result = await mcp.callTool({
name: "mindbody-book-appointment",
arguments: {
clientId: "Client ID",
locationId: 10,
},
})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 externalUserId = "{external_user_id}" // any stable ID for this user in your system
const [mindbodyTools, n8nIoTools] =
await Promise.all([
pd.components.list({ app: "mindbody" }),
pd.components.list({ app: "n8n_io" }),
])
// One external user owns both connected accounts, so either app's tools
// run on their behalf with the same externalUserId.curl "https://api.pipedream.com/v1/connect/{project_id}/components?app=mindbody" \
-H "X-PD-Environment: production" \
-H "Authorization: Bearer {access_token}"
curl "https://api.pipedream.com/v1/connect/{project_id}/components?app=n8n_io" \
-H "X-PD-Environment: production" \
-H "Authorization: Bearer {access_token}"
# Connect both accounts to the same external_user_id, then
# configure and invoke either app's tools on that user's behalf.ARCHITECTURE
One user, two connected accounts
Your user connects each account once, under whatever ID they already have in your product. The two stay independent — either can be revoked on its own — and your code reaches both through that one user.
Your product
external_user_id
{external_user_id}Pipedream Connect
Managed identity
Auth · tools · routing
Mindbody
Connected account
n8n.io
Connected account
TOOLS
Mindbody tools
The Mindbody tools this pairing puts in reach, each one running on your user's own connected account.
Actions top 8 of 12
-
Book Appointment
actionBooks a client into a one-on-one service appointment (personal training, massage, etc.). All five core parameters are required:clientId,locationId,sessionTypeId,startDateTime, andstaffId. Use Search Clients to find the client ID, List Session Types to findsessionTypeId, and List Staff to findstaffId.startDateTimeformat: ISO 8601YYYY-MM-DDTHH:MM:SS(e.g.,2026-07-15T10:00:00). Location IDs are returned by Get Site Info. See the documentationWritev0.0.3 -
Cancel Appointment
actionCancels an existing appointment by setting its status to Cancelled. Requires the appointment ID — use Get Appointments to find the ID by client, date, or staff. See the documentationWritev0.0.3 -
Get Appointments
actionReturns staff appointments, optionally filtered by date range, client, or staff member. UseclientIdto show all appointments for a specific client — first use Search Clients to find their ID. UsestaffIdto filter by instructor. Date formats:YYYY-MM-DD(e.g.,2026-07-01). Without date filters, returns appointments from the current date forward (up tolimit). See the documentationRead-onlyv0.0.3 -
Get Classes
actionReturns upcoming group class sessions at the studio, including class name, start/end time, instructor, location, and remaining capacity. UsestartDateTimeandendDateTimeto filter by date range (ISO 8601 format, e.g.,2026-07-01T00:00:00). UsestaffIdto find classes taught by a specific instructor — see List Staff for IDs. UselocationIdto filter by studio location — see Get Site Info for location IDs. See the documentationRead-onlyv0.0.3 -
Get Client Details
actionReturns the complete profile for a client (member), including contact info, active memberships, purchased services, account balance, and visit history. Requires the client's numeric ID — use Search Clients first to look up the ID by name or email. See the documentationRead-onlyv0.0.3 -
Get Client Purchases
actionReturns the paginated list of purchases made by a specific Mindbody client, including amount/price fields. Sum the amounts across all pages to compute the client's lifetime spend. Requires the client's numeric ID - use Search Clients first to look up the ID by name or email. IMPORTANT: the API defaultsstartDateto today andendDateto end of today, so for true lifetime spend you MUST setstartDateto an early date (e.g.2000-01-01) and page through all results viaoffset. See the documentationRead-onlyv0.0.2 -
Get Client Visits
actionReturns the paginated list of visit records for a specific Mindbody client (member), each including its date/datetime (e.g.StartDateTime). Use this to derive retention metrics: visit count is the total record count across all pages and last visit date is the latestStartDateTime. Requires the client's numeric ID - use Search Clients first to look up the ID by name or email. Note: Get Client Details may already surface scalar visit-summary fields; use this action when you need the full per-visit history for precise date math or milestone detection. Iterateoffsetto page through the full history. IMPORTANT: the API defaultsstartDateto today andendDateto end of today, so for true lifetime spend you MUST setstartDateto an early date (e.g.2000-01-01) and page through all results viaoffset. See the documentationRead-onlyv0.0.2 -
Get Site Info
actionReturns identity and configuration details for the connected Mindbody site, including name, site ID, timezone, phone, and address. Use this as the identity anchor — call it first to discover the site name, ID, and timezone before querying other resources. Also provides location IDs needed by List Staff, Get Classes, and Book Appointment. See the documentationRead-onlyv0.0.3
Triggers
No Mindbody triggers are available yet.
TOOLS
n8n.io tools
The n8n.io tools this pairing puts in reach, each one running on your user's own connected account.
Actions
No n8n.io actions are available yet.
Triggers
No n8n.io triggers are available yet.
MULTI-APP
Works with more apps
The combinations customers connect alongside these two — nothing here is limited to a pair.
REFERENCE
Toolkit details
- x-pd-app-slug
- mindbody,n8n_io
- Primary app
- Mindbody (mindbody)
- Second app
- n8n.io (n8n_io)
- Authentication
- OAuth + API key
- Available actions
- 12
- Available triggers
- 0