ProfitWell ACTION
Update Subscription
Upgrade/downgrade a subscription See docs here
- Action
- Writes data
- Destructive
- API key
- SDK
- MCP
IMPLEMENTATION
Call this tool
Connect a user's ProfitWell account once, then configure and run Update Subscription from your backend or agent.
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: "profitwell-update-subscription",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
profitwell: { authProvisionId: "apn_xxxxxxx" },
subscriptionIdOrAlias: "Subscription ID or Alias",
effectiveDate: "Effective Date",
},
})
console.log(result)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": "profitwell-update-subscription",
"configured_props": {
"profitwell": { "authProvisionId": "apn_xxxxxxx" },
"subscriptionIdOrAlias": "Subscription ID or Alias",
"effectiveDate": "Effective Date"
}
}'// 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": "profitwell",
},
},
},
)
const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)
const { tools } = await mcp.listTools()
// listTools() hands your model this tool's input schema, so it can
// fill the arguments itself:
const result = await mcp.callTool({
name: "profitwell-update-subscription",
arguments: {
subscriptionIdOrAlias: "Subscription ID or Alias",
effectiveDate: "Effective Date",
},
})SCHEMA
Inputs
Pipedream supplies the connected account. Your application provides the operation-specific values below. Dynamic inputs are resolved against that user's account.
| Property | Type | Description |
|---|---|---|
subscriptionIdOrAlias Subscription ID or Alias | string | Either the subscription_id or subscription_alias of the subscription Required |
effectiveDate Effective Date | string | UNIX timestamp (in seconds) of when this update takes effect.
You can also provide a valid date/time string and Pipedream will automatically convert it to a UNIX timestamp. Examples: 1644933600 2022-02-15 2022-02-15T14:00Z Required |
planId Plan ID | string | The ID of the plan that the user is on. For the sake of consistency (and the ability to later segment your data), this name should be consistent across everyone who is on this plan. Required |
planInterval Plan Interval | string | The billing cycle for this plan. Required |
value Value | integer | The amount that you bill your user, per billing period, in cents. Required |
REFERENCE
Tool details
Behavior hints are published with the component in the Pipedream registry and surface as MCP tool annotations, so an agent can reason about a tool before it calls it.
- Registry key
- profitwell-update-subscription
- Version
- 0.0.2
- App
- ProfitWell
- Authentication
- API key
- Read-only
- No
- Destructive
- Yes
- Open world
- Yes
- Source
- View on GitHub ↗