Asana ACTION
Add Task To Section
Moves a task into a specific section within an Asana project, removing it from any other section it currently occupies in that project. Use Search Sections to find the section GID and Search Tasks to find the task GID. Returns an empty object
{} on success. Example: call with project: '1204567890123456', task: '1202345678901234', section_gid: '1203456789012345' → task is moved into that section and returns {}. See the documentation- Action
- Writes data
- OAuth
- SDK
- MCP
IMPLEMENTATION
Call this tool
Connect a user's Asana account once, then configure and run Add Task To Section 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: "asana-add-task-to-section",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
asana: { authProvisionId: "apn_xxxxxxx" },
task: "Task",
section_gid: "Section GID",
},
})
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": "asana-add-task-to-section",
"configured_props": {
"asana": { "authProvisionId": "apn_xxxxxxx" },
"task": "Task",
"section_gid": "Section GID"
}
}'// 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": "asana",
},
},
},
)
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: "asana-add-task-to-section",
arguments: {
task: "Task",
section_gid: "Section GID",
},
})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 |
|---|---|---|
task Task | string | The task to add to this section (a task GID, e.g. 1202345678901234). Required |
section_gid Section GID | string | The globally unique identifier for the section. Required |
insert_before Insert Before | string | An existing task within this section before which the added task should be inserted. Cannot be provided together with insert_after. Optional |
insert_after Insert After | string | An existing task within this section after which the added task should be inserted. Cannot be provided together with insert_before. 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
- asana-add-task-to-section
- Version
- 1.0.0
- App
- Asana
- Authentication
- OAuth
- Read-only
- No
- Destructive
- No
- Open world
- Yes
- Source
- View on GitHub ↗