# Update Subscription — ProfitWell

> Upgrade/downgrade a subscription See docs here

- Key: `profitwell-update-subscription`
- Type: Action (Write)
- Version: 0.0.2
- App: ProfitWell (`profitwell`) — https://pipedream.com/apps/profitwell.md
- This page (HTML): https://pipedream.com/apps/profitwell/actions/update-subscription
- Hints: destructive · open-world
- Source: https://github.com/PipedreamHQ/pipedream/blob/master/components/profitwell/actions/update-subscription/update-subscription.ts

## Description

Upgrade/downgrade a subscription [See docs here](https://profitwellapiv2.docs.apiary.io/#/reference/manually-added-customers/updating-subscriptions/upgrade-downgrade-a-subscription)

## Props

| Prop | Type | Required | Description |
|---|---|---|---|
| `subscriptionIdOrAlias` | `string` | Yes | Either the subscription_id or subscription_alias of the subscription |
| `effectiveDate` | `string` | Yes | 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 |
| `planId` | `string` | Yes | 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. |
| `planInterval` | `string` | Yes | The billing cycle for this plan. |
| `value` | `integer` | Yes | The amount that you bill your user, per billing period, in cents. |

## Run it

**MCP**

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

**TypeScript**

```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: "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**

```bash
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"
    }
  }'
```

---

- App: https://pipedream.com/apps/profitwell.md · All apps: https://pipedream.com/apps
