Smartsheet ACTION
Copy Rows
Copy rows from one sheet to another. The rows stay in the source sheet and are duplicated in the destination. Cell values and formatting always come across; attachments and comments only if you ask for them via Include. Columns the destination sheet is missing are created automatically, so it does not have to match the source first. Returns
rowMappings pairing each source row ID with its new ID in the destination. To move rows instead, removing them from the source, use Move Rows. See the documentation- Action
- Writes data
- OAuth
- SDK
- MCP
IMPLEMENTATION
Call this tool
Connect a user's Smartsheet account once, then configure and run Copy Rows 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: "smartsheet-copy-rows",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
smartsheet: { authProvisionId: "apn_xxxxxxx" },
sheetId: "Source Sheet ID or URL",
rowIds: "Row IDs",
},
})
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": "smartsheet-copy-rows",
"configured_props": {
"smartsheet": { "authProvisionId": "apn_xxxxxxx" },
"sheetId": "Source Sheet ID or URL",
"rowIds": "Row IDs"
}
}'// 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": "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-copy-rows",
arguments: {
sheetId: "Source Sheet ID or URL",
rowIds: "Row IDs",
},
})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 |
|---|---|---|
sheetId Source Sheet ID or URL | string | The sheet the rows are copied from. 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. Required |
rowIds Row IDs | string | Comma-separated list of row IDs to copy, or a JSON array. Example: 1234567890, 9876543210 or [1234567890, 9876543210]. Use Get Sheet to find row IDs. Required |
destinationSheetId Destination Sheet ID or URL | string | The sheet the rows are copied into. 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. Required |
include Include | string[] | Extra elements to carry across. Without this, only cell values and formatting are copied - attachments and comments are not. Optional |
ignoreRowsNotFound Ignore Rows Not Found | boolean | true to skip row IDs that do not exist in the source sheet. Default false, which fails the whole call with a 404 if any ID is missing. Optional |
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
- smartsheet-copy-rows
- Version
- 0.1.1
- App
- Smartsheet
- Authentication
- OAuth
- Read-only
- No
- Destructive
- No
- Open world
- Yes
- Source
- View on GitHub ↗