Asana ACTION
Create Task from Template
Creates a new Asana task by instantiating an existing task template. Use this when a team has a reusable task structure (e.g. a bug-report or onboarding template); for ad-hoc tasks use Create Task. Use List Task Templates to find the template GID. This kicks off an asynchronous job — the response is a job resource, not the finished task;
new_task.gid is available immediately but the task's fields may still be populating, so use Find Task by ID if you need to confirm it's ready. The new task's project and memberships are determined by the template itself, not by any project passed here. Example: call with taskTemplateId: '1205678901234567', name: 'Bug: Login page crash' → returns {gid: '1205555555555555', resource_type: 'job', new_task: {gid: '1206789012345678'}}. See the documentation- Action
- Writes data
- OAuth
- SDK
- MCP
IMPLEMENTATION
Call this tool
Connect a user's Asana account once, then configure and run Create Task from Template 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-create-task-from-template",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
asana: { authProvisionId: "apn_xxxxxxx" },
taskTemplateId: "Task Template",
name: "Name",
},
})
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-create-task-from-template",
"configured_props": {
"asana": { "authProvisionId": "apn_xxxxxxx" },
"taskTemplateId": "Task Template",
"name": "Name"
}
}'// 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-create-task-from-template",
arguments: {
taskTemplateId: "Task Template",
name: "Name",
},
})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 |
|---|---|---|
taskTemplateId Task Template | string | The GID of a task template, e.g. 1205678901234567. Use List Task Templates to find available template GIDs (the gid field). Required |
name Name | string | The name of the new task. If not provided, the name of the task template will be used. 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-create-task-from-template
- Version
- 1.0.0
- App
- Asana
- Authentication
- OAuth
- Read-only
- No
- Destructive
- No
- Open world
- Yes
- Source
- View on GitHub ↗