Use Asana with AI Agents

Tool to help teams organize, track, and manage their work.
🔗 Connect and Use Asana
1. 🔑 Connect your Asana account
2. ✅ Select an action
3. 🚀 Go live with the agent
What do you want to do?
Actions
Allocations
Attachments
Audit log API
Batch API
Custom field settings
Custom fields
Events
Goal relationships
Goals
Jobs
Memberships
Organization exports
Portfolio memberships
Portfolios
Project briefs
Project memberships
Project statuses
Project templates
Projects
Rules
Sections
Status updates
Stories
Tags
Task templates
Tasks
Team memberships
Teams
Time periods
Time tracking entries
Typeahead
User task lists
Users
Webhooks
Workspace memberships
Workspaces

API actions for Asana for AI assitants/agents

Language
JS
PYTHON

Allocations

Get An Allocation

Returns the complete allocation record for a single allocation.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ASANA_GET_AN_ALLOCATION])

Update An Allocation

An existing allocation can be updated by making a PUT request on the URL for that allocation. Only the fields provided in the `data` block will be updated; any unspecified fields will remain u
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ASANA_UPDATE_AN_ALLOCATION])

Delete An Allocation

A specific, existing allocation can be deleted by making a DELETE request on the URL for that allocation. Returns an empty data record.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ASANA_DELETE_AN_ALLOCATION])

Get Multiple Allocations

Returns a list of allocations filtered to a specific project or user.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ASANA_GET_MULTIPLE_ALLOCATIONS])

Create An Allocation

Creates a new allocation. Returns the full record of the newly created allocation.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ASANA_CREATE_AN_ALLOCATION])

Attachments

Get An Attachment

Get the full record for a single attachment.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ASANA_GET_AN_ATTACHMENT])

Delete An Attachment

Deletes a specific, existing attachment. Returns an empty data record.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ASANA_DELETE_AN_ATTACHMENT])

Get Attachments From An Object

Retrieves all attachments from a `project`, `project_brief`, or `task`. In a project, it includes files from "Key resources"; in a brief, inline files; in a task, associated files, including i
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ASANA_GET_ATTACHMENTS_FROM_AN_OBJECT])

Upload An Attachment

Upload attachments to an object in Asana either by URL or direct upload with a 100MB limit, excluding third-party services. Use multipart/form-data and follow HTTP/1.1 line terminators.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ASANA_UPLOAD_AN_ATTACHMENT])

Audit log API

Get Audit Log Events

Retrieve your domain's audit logs starting October 8th, 2021 through an API, limited to 1000 events per page with filters. Use `offset` for ongoing access. Events expire after 90 days; for per
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ASANA_GET_AUDIT_LOG_EVENTS])

Batch API

Submit Parallel Requests

Make multiple requests in parallel to Asana's API.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ASANA_SUBMIT_PARALLEL_REQUESTS])

Custom field settings

Get A Project S Custom Fields

Retrieves a list of compact custom field settings for a project. Use `opt_fields` in queries to collections to include additional data. Refer to Asana documentation for input/output details.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ASANA_GET_A_PROJECT_S_CUSTOM_FIELDS])

Get A Portfolio S Custom Fields

Returns a list of all of the custom fields settings on a portfolio, in compact form.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ASANA_GET_A_PORTFOLIO_S_CUSTOM_FIELDS])

Custom fields

Create A Custom Field

Creates a unique custom field in a specified workspace with a fixed type like text, enum, or number. Returns the field's full details; workspace assignment can't change after creation.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ASANA_CREATE_A_CUSTOM_FIELD])

Get A Custom Field

A custom field's metadata depends on its type, with each type having unique data and behavior. For example, 'enum_options' is specific to the enum type, outlining its possible choices.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ASANA_GET_A_CUSTOM_FIELD])

Update A Custom Field

Send a PUT request to update specific 'data' fields in a custom field without altering 'type' or 'enum_options'. Locked fields can only be updated by the locker. The response includes the upda
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ASANA_UPDATE_A_CUSTOM_FIELD])

Delete A Custom Field

A specific, existing custom field can be deleted by making a DELETE request on the URL for that custom field. Locked custom fields can only be deleted by the user who locked the field. Returns
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ASANA_DELETE_A_CUSTOM_FIELD])

Get A Workspace S Custom Fields

Returns a list of the compact representation of all of the custom fields in a workspace.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ASANA_GET_A_WORKSPACE_S_CUSTOM_FIELDS])

Create An Enum Option

Adds an enum option to a custom field's list, up to 500 options, usually at the end. Locked fields only permit additions by the locker. Returns the new enum's full record.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ASANA_CREATE_AN_ENUM_OPTION])

Reorder A Custom Field S Enum

Moves a particular enum option to be either before or after another specified enum option in the custom field. Locked custom fields can only be reordered by the user who locked the field.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ASANA_REORDER_A_CUSTOM_FIELD_S_ENUM])

Update An Enum Option

Updates an existing enum option. Enum custom fields require at least one enabled enum option. Locked custom fields can only be updated by the user who locked the field. Returns the full record
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ASANA_UPDATE_AN_ENUM_OPTION])

Events

Get Events On A Resource

Retrieve a full event log with a sync token via `GET` at `/[path_to_resource]/events`. Up to 100 events per token are allowed, with `has_more: true` signaling excess events. Returned resources
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ASANA_GET_EVENTS_ON_A_RESOURCE])

Goal relationships

Get A Goal Relationship

Returns the complete updated goal relationship record for a single goal relationship.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ASANA_GET_A_GOAL_RELATIONSHIP])

Update A Goal Relationship

Update an existing goal relationship via PUT request with a `data` block; unspecified fields remain unchanged. The response will include the full updated goal record.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ASANA_UPDATE_A_GOAL_RELATIONSHIP])

Get Goal Relationships

Returns compact goal relationship records.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ASANA_GET_GOAL_RELATIONSHIPS])

Add A Supporting Goal Relationship

Creates a goal relationship by adding a supporting resource to a given goal. Returns the newly created goal relationship record.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ASANA_ADD_A_SUPPORTING_GOAL_RELATIONSHIP])

Removes A Supporting Goal Relationship

Removes a goal relationship for a given parent goal.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ASANA_REMOVES_A_SUPPORTING_GOAL_RELATIONSHIP])

Goals

Get A Goal

Returns the complete goal record for a single goal.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ASANA_GET_A_GOAL])

Update A Goal

An existing goal can be updated by making a PUT request on the URL for that goal. Only the fields provided in the `data` block will be updated; any unspecified fields will remain unchanged. Re
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ASANA_UPDATE_A_GOAL])

Delete A Goal

A specific, existing goal can be deleted by making a DELETE request on the URL for that goal. Returns an empty data record.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ASANA_DELETE_A_GOAL])

Get Goals

Returns compact goal records.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ASANA_GET_GOALS])

Create A Goal

Creates a new goal in a workspace or team. Returns the full record of the newly created goal.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ASANA_CREATE_A_GOAL])

Create A Goal Metric

Creates and adds a goal metric to a specified goal. Note that this replaces an existing goal metric if one already exists.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ASANA_CREATE_A_GOAL_METRIC])

Update A Goal Metric

Updates a goal's existing metric's `current_number_value` if one exists, otherwise responds with a 400 status code. Returns the complete updated goal metric record.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ASANA_UPDATE_A_GOAL_METRIC])

Add A Collaborator To A Goal

Adds followers to a goal. Returns the goal the followers were added to. Each goal can be associated with zero or more followers in the system. Requests to add/remove followers, if successful,
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ASANA_ADD_A_COLLABORATOR_TO_A_GOAL])

Remove A Collaborator From A Goal

Removes followers from a goal, returning the updated goal. Goals may have multiple followers, and successful add/remove follower requests return the full updated goal information.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ASANA_REMOVE_A_COLLABORATOR_FROM_A_GOAL])

Get Parent Goals From A Goal

Returns a compact representation of all of the parent goals of a goal.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ASANA_GET_PARENT_GOALS_FROM_A_GOAL])

Jobs

Get A Job By Id

Returns the full record for a job.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ASANA_GET_A_JOB_BY_ID])

Memberships

Get Multiple Memberships

Returns compact `goal_membership` or `project_membership` records. The possible types for `parent` in this request are `goal` or `project`. An additional member (user GID or team GID) can be p
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ASANA_GET_MULTIPLE_MEMBERSHIPS])

Create A Membership

Creates a new membership in a `goal` or `project`. `Teams` or `users` can be a member of `goals` or `projects`. Returns the full record of the newly created membership.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ASANA_CREATE_A_MEMBERSHIP])

Get A Membership

Returns compact `project_membership` record for a single membership. `GET` only supports project memberships currently
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ASANA_GET_A_MEMBERSHIP])

Update A Membership

Update an existing membership by using a `PUT` request with specified fields in the `data` block. Unchanged fields remain as is. Updates applicable to both `goals` and `projects`, returning th
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ASANA_UPDATE_A_MEMBERSHIP])

Delete A Membership

A specific, existing membership for a `goal` or `project` can be deleted by making a `DELETE` request on the URL for that membership. Returns an empty data record.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ASANA_DELETE_A_MEMBERSHIP])

Organization exports

Create An Organization Export Request

This method creates a request to export an Organization. Asana will complete the export at some point after you create the request.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ASANA_CREATE_AN_ORGANIZATION_EXPORT_REQUEST])

Get Details On An Org Export Request

Returns details of a previously-requested Organization export.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ASANA_GET_DETAILS_ON_AN_ORG_EXPORT_REQUEST])

Portfolio memberships

Get Multiple Portfolio Memberships

Returns a list of portfolio memberships in compact representation. You must specify `portfolio`, `portfolio` and `user`, or `workspace` and `user`.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ASANA_GET_MULTIPLE_PORTFOLIO_MEMBERSHIPS])

Get A Portfolio Membership

Returns the complete portfolio record for a single portfolio membership.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ASANA_GET_A_PORTFOLIO_MEMBERSHIP])

Get Memberships From A Portfolio

Returns the compact portfolio membership records for the portfolio.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ASANA_GET_MEMBERSHIPS_FROM_A_PORTFOLIO])

Portfolios

Get Multiple Portfolios

Returns a list of the portfolios in compact representation that are owned by the current API user.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ASANA_GET_MULTIPLE_PORTFOLIOS])

Create A Portfolio

Creates a new portfolio in a specified Asana workspace without the default "Priority" field, allowing custom initial states via the API.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ASANA_CREATE_A_PORTFOLIO])

Frequently asked questions

What is Composio.dev?

Composio.dev is a platform for building AI applications, designed to make the process of developing AI solutions super easy and fun! It provides a comprehensive set of tools and libraries that simplify the process of developing AI solutions, allowing you to focus on the creative aspects of your project without getting bogged down by the technical details.

How does Composio.dev support Asana?

Composio.dev seamlessly integrates with Asana, allowing you to leverage its capabilities within the Composio.dev platform. You can utilize Asana to call functions across various platforms, including Google, GitHub, and others, making it a breeze to incorporate different services into your AI applications. Additionally, it supports user authentication via OAuth2 and can work in conjunction with other popular frameworks like LangChain and CrewAI, giving you the flexibility to build truly innovative AI solutions.

What models can I use with Asana?

With Asana, you have access to a wide range of state-of-the-art language models, including GPT-4o (OpenAI), GPT-3.5 (OpenAI), GPT-4 (OpenAI), Claude (Anthropic), PaLM (Google), LLaMA and LLaMA 2 (Meta), Gemini, and many others. This flexibility allows you to choose the model that best suits your specific use case, whether you're building a chatbot, a content creation tool, or any other AI-powered application. You can experiment with different models and find the one that delivers the best performance for your project.

How can I integrate Asana into my project?

Composio.dev provides a seamless integration for Asana, making it super easy to incorporate this powerful framework into your projects. You can leverage the Composio.dev API to call functions from Asana, allowing you to tap into its capabilities with just a few lines of code. The SDK is available in Python, JavaScript, and TypeScript, so you can work with your preferred programming language and integrate Asana into your projects seamlessly.

What is the pricing for Asana?

Asana is completely free to use, with a generous free tier that allows up to 1000 requests per month. This makes it accessible for developers and organizations of all sizes to explore and experiment with this powerful tool without any upfront costs. Whether you're a student working on a personal project or a startup building the next big thing, you can get started with Asana without worrying about breaking the bank.

What kind of authentication is supported for Asana?

Asana supports OAuth2 authentication, ensuring secure and authorized access to its functionalities. You can leverage the Composio.dev API to handle authentication and call functions from Asana seamlessly. The SDK is available in Python, JavaScript, and TypeScript for your convenience, making it easy to integrate authentication into your projects and keep your users' data safe and secure.

Can I add Asana to my project?

Absolutely! You can easily incorporate Asana into your project by utilizing the Composio.dev API. This API allows you to call functions from Asana, enabling you to leverage its capabilities within your application. The SDK is available in Python, JavaScript, and TypeScript to facilitate integration, so you can work with the language you're most comfortable with and add Asana to your project with ease.

What is the accuracy of Asana?

Asana is designed to provide highly accurate and reliable results, ensuring that your AI applications perform at their best. The integration with Composio.dev ensures precise function calls, enabling you to build robust and powerful AI applications with confidence. Asana's comprehensive framework and the ability to leverage state-of-the-art models ensure reliable and accurate outcomes for your AI development needs, whether you're working on a chatbot, a content creation tool, or any other AI-powered project.

What are some common use cases for Asana?

Asana can be used for a wide range of AI applications, making it a versatile tool for developers and creators alike. Some common use cases include natural language processing, text generation, question answering, sentiment analysis, and more. It's particularly useful for building chatbots, virtual assistants, content creation tools, and other AI-powered applications that can help you automate tasks, engage with users, and create compelling content. Whether you're working on a personal project or building a product for your startup, Asana can help you bring your ideas to life.

How does Asana handle data privacy and security?

Data privacy and security are crucial considerations when working with AI systems, and Asana takes these issues seriously. It follows industry best practices and adheres to strict data protection regulations, ensuring that your data is kept safe and secure. Asana provides robust security measures, such as encryption and access controls, to ensure the confidentiality and integrity of your data. You can rest assured that your sensitive information is protected when using Asana for your AI development needs.
+ Integrate seamlessly with your agentic frameworks
Composio Works with All Shapes and SizesComposio Works with All Shapes and SizesComposio Works with All Shapes and SizesComposio Works with All Shapes and SizesComposio Works with All Shapes and Sizes
Building for AI across continents🧪