CONNECT APP
Build with Wealthbox
CRM
- OAuth
MCP
Give your agent Wealthbox tools
Every Wealthbox 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 Wealthbox 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": "wealthbox",
},
},
},
)
const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)
const { tools } = await mcp.listTools()
// e.g. run Add Member To Household:
const result = await mcp.callTool({
name: "wealthbox-add-member-to-household",
arguments: {
householdId: "Household ID",
contactId: "Contact",
},
})# 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": "wealthbox",
}
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 Add Member To Household:
result = await session.call_tool("wealthbox-add-member-to-household", {
"householdId": "Household ID",
"contactId": "Contact",
})API PROXY
Call the Wealthbox API directly
For an endpoint with no pre-built tool, the Connect proxy forwards your request to the Wealthbox 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.crmworkspace.com/v1/me",
})
// Any allowed Wealthbox 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.crmworkspace.com/v1/me
curl "https://api.pipedream.com/v1/connect/{project_id}/proxy/aHR0cHM6Ly9hcGkuY3Jtd29ya3NwYWNlLmNvbS92MS9tZQ?external_user_id={external_user_id}&account_id=apn_xxxxxxx" \
-H "Authorization: Bearer {access_token}" \
-H "x-pd-environment: production"SDK
Run Wealthbox actions from your backend
Connect a user's Wealthbox account once, then run Add Member To Household 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: "wealthbox-add-member-to-household",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
wealthbox: { authProvisionId: "apn_xxxxxxx" },
householdId: "Household ID",
contactId: "Contact",
},
})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="wealthbox-add-member-to-household",
external_user_id="{external_user_id}", # any stable ID for this user in your system
configured_props={
"wealthbox": {"authProvisionId": "apn_xxxxxxx"},
"householdId": "Household ID",
"contactId": "Contact",
},
)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": "wealthbox-add-member-to-household",
"configured_props": {
"wealthbox": { "authProvisionId": "apn_xxxxxxx" },
"householdId": "Household ID",
"contactId": "Contact"
}
}'TOOLS
Wealthbox actions
On-demand operations your product or agent can configure and run on behalf of a connected user.
-
Add Member To Household
actionAdd an existing contact as a member of an existing household via POST /households/{household_id}/members. Run List Households to find household ids and List Contact Options to find contact ids. Example: add contact67890asSpouseto household12345; returns the household object includingidand amembersarray, each member withid,first_name,last_name,title, andtype. See the documentationWritev0.0.2 -
Create Contact
actionCreate a new contact in Wealthbox. ForPersontype, provide First Name and Last Name (both required). ForHousehold,Organization, orTrusttypes, the Name field is used as the entity name (the API accepts a top-levelnamefield for non-Person types). Example: create aPersoncontact with first nameJane, last nameSmith, emailjane@acme.com; returns the contact object includingid,first_name,last_name,email_addresses,type, andcontact_type. See the documentationWritev1.0.1 -
Create Event
actionCreate a new calendar event in Wealthbox. Supply a title, start/end timestamps (YYYY-MM-DD HH:MM AM/PM ±HHMM), and an optional state. Validstatevalues areunconfirmed,confirmed,tentative,completed, andcancelled. Example: create an event titledQ4 Portfolio Reviewstarting2026-12-15 10:00 AM -0500ending2026-12-15 11:00 AM -0500with stateconfirmed; returns the event object includingid,title,starts_at,ends_at, andstate. See the documentationWritev0.0.4 -
Create Note
actionCreate a note linked to a contact via POST /notes. Run List Contact Options to find the id of the contact to link the note to. Example: create a note with bodyCalled client to discuss Q3 portfolio reviewlinked to contact id67890; returns the note object includingid,content,linked_to,visible_to, andcreated_at. See the documentationWritev0.0.2 -
Create Opportunity
actionCreate a new opportunity in Wealthbox. Supply an opportunity name, target close date, probability (integer 0–100), amount type and value, and stage ID. Use List Stage Options to find valid stage IDs and List Contact Options to find the contact ID to link. Example: create opportunityQ4 AUM Expansionwith probability75, amount50000of typeAUM, target close2026-12-31 10:00 AM -0500; returns the opportunity object includingid,name,stage,probability,target_close, andamounts. See the documentationWritev0.0.4 -
Create Task
actionCreate a new task in Wealthbox. Supply a task name, due date (YYYY-MM-DD HH:MM AM/PM ±HHMM), and optional category and priority. Use List Category Options to find valid category IDs. Example: create a task namedSend Q4 Reportdue2026-12-31 5:00 PM -0500with priorityHigh; returns the task object includingid,name,due_date,category, andpriority. See the documentationWritev1.0.1 -
Find Contact
actionSearch Wealthbox contacts by name, email, and/or phone. Automatically paginates through all result pages (capped at 1,000 contacts total). At least one search parameter is required. Example: searchname='Jane Smith'; returns contact objects each includingid,first_name,last_name,email_addresses,phone_numbers,type, andcontact_type. Supply the optional Fields parameter (e.g.["id","first_name","last_name"]) to receive a trimmed response. See the documentationRead-onlyv0.0.2 -
List Category Options
actionList the task categories configured in Wealthbox (e.g.Follow Up,Meeting,Review) so agents and users can discover valid category IDs to pass to the Category prop in Create Task. Returns objects withlabel(category name) andvalue(numeric category ID). See the documentationRead-onlyv0.0.3 -
List Contact Options
actionList Wealthbox contacts (paginated, 25 per page) so agents and users can discover valid contact IDs to supply to other actions. Use this before any action that requires a Contact ID — for example Create Opportunity, Create Note, Add Member To Household, or Start Workflow. Returns objects withlabel(full name) andvalue(numeric contact ID, e.g.67890). Increment Page to load the next batch. See the documentationRead-onlyv0.0.3 -
List Households
actionCompanion list action for the free-form Household id prop. Returns household-type contacts via GET /contacts so agents/users can discover valid household ids for Add Member To Household. Paginates automatically up to the requested Limit. Example: returns household objects each includingid,name,type,email_addresses, andphone_numbers. Supply the optional Fields parameter (e.g.["id","name"]) to receive a trimmed response. See the documentationRead-onlyv0.0.2 -
List Stage Options
actionList the opportunity stages configured in Wealthbox (e.g.Prospect,Proposal,Closed Won) so agents and users can discover valid stage IDs to pass to the Stage prop in Create Opportunity. Returns objects withlabel(stage name) andvalue(numeric stage ID). See the documentationRead-onlyv0.0.3 -
List Type Options
actionList the user-defined contact type categories configured in Wealthbox (e.g.Client,Prospect,Vendor) so agents and users can discover valid values to pass to the Contact Type prop in Create Contact. Returns an array of type name strings. See the documentationRead-onlyv0.0.3 -
List Workflow Templates
actionCompanion list action for the free-form Workflow id prop. Returns available workflow templates via GET /workflow_templates so agents/users can discover valid template ids for Start Workflow. Paginates up to the requested Limit. Example: returns template objects each includingid,name, and workflow step configuration. Supply the optional Fields parameter (e.g.["id","name"]) to receive a trimmed response. See the documentationRead-onlyv0.0.2 -
Start Workflow
actionEnroll a contact in a workflow template via POST /workflows. Run List Workflow Templates to find the template id and List Contact Options to find the contact id to enroll. Example: enroll contact67890in template999starting2026-09-01T09:00:00Z; returns the workflow enrollment object includingid,workflow_template,linked_to, andstarts_at. See the documentationWritev0.0.2
EVENTS
Wealthbox triggers
Event sources your backend can deploy for users and receive through a webhook.
-
New Comment
triggerEmit new event for each new comment created in Wealthbox, deduplicated by comment id. Polls GET /comments and tracks bycreated_at. See the documentationv0.0.1 -
New Contact Created
triggerEmit new event for each contact created. See the documentationv0.0.2 -
New Event Created
triggerEmit new event for each event created. See the documentationv0.0.2 -
New Note
triggerEmit new event for each new note created in Wealthbox. Polls GET /notes ordered bycreated_at; the payload includes note id, content, and its linked resource. See the documentationv0.0.1 -
New Opportunity Created
triggerEmit new event for each opportunity created. See the documentationv0.0.2 -
New Task Created
triggerEmit new event for each task created. See the documentationv0.0.2 -
New Workflow Enrollment
triggerEmit new event for each new workflow enrollment created in Wealthbox. Polls GET /workflows and tracks bycreated_at. Note: this triggers on workflow ENROLLMENT instances (a template applied to a record), not on new workflow templates. See the documentationv0.0.1 -
Task Completed
triggerEmit new event each time a task transitions to complete. Polls GET /tasks including completed tasks, tracks byupdated_at, and post-filters to tasks whosecompleteis true. On deploy it backfills up to 25 recently completed tasks. See the documentationv0.0.1 -
Workflow Step Completed
triggerEmit new event each time workflow step activity is recorded in Wealthbox. The Wealthbox workflow step object has no completion flag of its own, so this polls the account Activity Stream (GET /activity) filtered to WorkflowStep-linked items. Deduplicates by activity stream item id (not step id), so reverting and re-completing the same step correctly emits a new event each time. See the documentationv0.0.1
- App slug
- wealthbox
- Authentication
- OAuth
- Categories
- CRM
- Actions
- 14
- Triggers
- 9
- API proxy
- Available
OAuth scopes
These are the scopes Pipedream's managed Wealthbox OAuth client requests when one of your users connects an account. Supply your own OAuth client to request a different set.
- login
- data