# Update Sheet — Smartsheet

> Rename an existing sheet, leaving its rows, columns, attachments, and sharing untouched. Only the properties you supply are changed, and at least one must be supplied. Returns the updated sheet under result. To change a sheet's location…

- Key: `smartsheet-update-sheet`
- Type: Action (Write)
- Version: 0.1.1
- App: Smartsheet (`smartsheet`) — https://pipedream.com/apps/smartsheet.md
- This page (HTML): https://pipedream.com/apps/smartsheet/actions/update-sheet
- Hints: open-world
- Source: https://github.com/PipedreamHQ/pipedream/blob/master/components/smartsheet/actions/update-sheet/update-sheet.mjs

## Description

Rename an existing sheet, leaving its rows, columns, attachments, and sharing untouched. Only the properties you supply are changed, and at least one must be supplied. Returns the updated sheet under `result`. To change a sheet's location instead, use **Move Sheet**; to change its columns, use **Update Column**. Use **Search** or **List Sheets** to find the sheet ID first. [See the documentation](https://developers.smartsheet.com/api/smartsheet/openapi/sheets/updatesheet)

## Props

| Prop | Type | Required | Description |
|---|---|---|---|
| `sheetId` | `string` | Yes | The sheet to act on. Accepts a numeric sheet ID (e.g. 1234567890123456), or a Smartsheet sheet URL, which is resolved to the ID for you. Use List Sheets to enumerate sheets, or Search to find one by name. |
| `name` | `string` | No | The new name for the sheet. |

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

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: "smartsheet-update-sheet",
  arguments: {
    sheetId: "Sheet ID or URL",
    name: "New Name",
  },
})
```

**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: "smartsheet-update-sheet",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    smartsheet: { authProvisionId: "apn_xxxxxxx" },
    sheetId: "Sheet ID or URL",
    name: "New Name",
  },
})

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": "smartsheet-update-sheet",
    "configured_props": {
      "smartsheet": { "authProvisionId": "apn_xxxxxxx" },
      "sheetId": "Sheet ID or URL",
      "name": "New Name"
    }
  }'
```

---

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