Use attio with AI Agents

Attio is a fully customizable workspace for your team's relationships and workflows.
๐Ÿ”— Connect and Use attio
1. ๐Ÿ”‘ Connect your attio account
2. โœ… Select an action
3. ๐Ÿš€ Go live with the agent
What do you want to do?

API actions for attio for AI assitants/agents

Language
JS
PYTHON

Objects

LIST OBJECTS

Lists all system-defined and user-defined objects in your workspace. Required scopes: `object_configuration:read`.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ATTIO_LIST_OBJECTS])

CREATE AN OBJECT

Creates a new custom object in your workspace. Required scopes: `object_configuration:read-write`.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ATTIO_CREATE_AN_OBJECT])

GET AN OBJECT

Gets a single object by its `object_id` or slug. Required scopes: `object_configuration:read`.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ATTIO_GET_AN_OBJECT])

UPDATE AN OBJECT

Updates a single object. The object to be updated is identified by its `object_id`. Required scopes: `object_configuration:read-write`.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ATTIO_UPDATE_AN_OBJECT])

Attributes

LIST ATTRIBUTES

Lists all attributes defined on a specific object or list. Attributes are returned in the order that they are sorted by in the UI. Required scopes: `object_configuration:read`.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ATTIO_LIST_ATTRIBUTES])

CREATE AN ATTRIBUTE

Creates a new attribute on either an object or a list. To create an attribute on an object, you must also have the `object_configuration:read-write` scope. To create an attribute on a list, yo
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ATTIO_CREATE_AN_ATTRIBUTE])

GET AN ATTRIBUTE

Gets information about a single attribute on either an object or a list. Required scopes: `object_configuration:read`.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ATTIO_GET_AN_ATTRIBUTE])

UPDATE AN ATTRIBUTE

Updates a single attribute on a given object or list. Required scopes: `object_configuration:read-write`.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ATTIO_UPDATE_AN_ATTRIBUTE])

LIST SELECT OPTIONS

Lists all select options for a particular attribute on either an object or a list. Required scopes: `object_configuration:read`.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ATTIO_LIST_SELECT_OPTIONS])

CREATE A SELECT OPTION

Adds a select option to a select attribute on an object or a list. Required scopes: `object_configuration:read-write`.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ATTIO_CREATE_A_SELECT_OPTION])

UPDATE A SELECT OPTION

Updates a select option on an attribute on either an object or a list. Required scopes: `object_configuration:read-write`.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ATTIO_UPDATE_A_SELECT_OPTION])

LIST STATUSES

Lists all statuses for a particular status attribute on either an object or a list. Required scopes: `object_configuration:read`.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ATTIO_LIST_STATUSES])

CREATE A STATUS

Add a new status to a status attribute on either an object or a list. Required scopes: `object_configuration:read-write`.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ATTIO_CREATE_A_STATUS])

UPDATE A STATUS

Update a status on an status attribute on either an object or a list. Required scopes: `object_configuration:read-write`.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ATTIO_UPDATE_A_STATUS])

Records

LIST RECORDS

Lists people, company or other records, with the option to filter and sort results. Required scopes: `record_permission:read`, `object_configuration:read`.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ATTIO_LIST_RECORDS])

CREATE A RECORD

This endpoint creates new person, company, or record, throwing errors on unique attribute conflicts. For updates on conflicts, use the Assert record endpoint. Requires `record_permission:read-
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ATTIO_CREATE_A_RECORD])

ASSERT A RECORD

This endpoint creates/updates records based on a matching attribute, adding to multiselect attributes without deletion. Requires `record_permission:read-write` and `object_configuration:read`
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ATTIO_ASSERT_A_RECORD])

GET A RECORD

Gets a single person, company or other record by its `record_id`. Required scopes: `record_permission:read`, `object_configuration:read`.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ATTIO_GET_A_RECORD])

UPDATE A RECORD

This endpoint adds new multiselect values to records by `record_id` without deleting existing ones. Overwriting or removal is managed by the Assert record endpoint. It requires `record_permiss
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ATTIO_UPDATE_A_RECORD])

DELETE A RECORD

Deletes a single record (e.g. a company or person) by ID. Required scopes: `object_configuration:read`, `record_permission:read-write`.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ATTIO_DELETE_A_RECORD])

LIST RECORD ATTRIBUTE VALUES

Gets all values for a given attribute on a record. If the attribute is historic, this endpoint has the ability to return all historic values using the `show_historic` query param. Required sco
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ATTIO_LIST_RECORD_ATTRIBUTE_VALUES])

LIST RECORD ENTRIES

List all entries, across all lists, for which this record is the parent. Required scopes: `record_permission:read`, `object_configuration:read`, `list_entry:read`.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ATTIO_LIST_RECORD_ENTRIES])

Lists

LIST ALL LISTS

List all lists that your access token has access to. lists are returned in the order that they are sorted in the sidebar. Required scopes: `list_configuration:read`.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ATTIO_LIST_ALL_LISTS])

CREATE A LIST

Use APIs to manage lists: add attributes/records, set 'parent_object', and control access via 'workspace_access' or 'member_access'. Ensure full access to prevent '403' errors. Required scope:
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ATTIO_CREATE_A_LIST])

GET A LIST

Gets a single list in your workspace that your access token has access to. Required scopes: `list_configuration:read`.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ATTIO_GET_A_LIST])

UPDATE A LIST

Updates an existing list, managing permissions for full access. May face a `403` error for insufficient plan access. API can't modify the list's parent objectโ€”use UI. Needs `list_configuration
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ATTIO_UPDATE_A_LIST])

Entries

LIST ENTRIES

Lists entries in a given list, with the option to filter and sort results. Required scopes: `list_entry:read`, `list_configuration:read`.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ATTIO_LIST_ENTRIES])

CREATE AN ENTRY ADD RECORD TO LIST

Adds a record to a list as a new list entry. This endpoint will throw on conflicts of unique attributes. Multiple list entries are allowed for the same parent record Required scopes: `list_ent
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ATTIO_CREATE_AN_ENTRY_ADD_RECORD_TO_LIST])

ASSERT A LIST ENTRY BY PARENT

This endpoint manages list entries for a parent record, updating or creating new ones. It handles multi-select attributes and requires `list_entry:read-write` and `list_config:read` scopes. Er
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ATTIO_ASSERT_A_LIST_ENTRY_BY_PARENT])

GET A LIST ENTRY

Gets a single list entry by its `entry_id`. Required scopes: `list_entry:read`, `list_configuration:read`.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ATTIO_GET_A_LIST_ENTRY])

UPDATE A LIST ENTRY APPEND MULTISELECT VALUES

Use the endpoint with `entry_id` to update list entries, appending new multiselect values. To overwrite or remove these, use `PUT`. Required scopes: `list_entry:read-write`, `list_configuratio
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ATTIO_UPDATE_A_LIST_ENTRY_APPEND_MULTISELECT_VALUES])

UPDATE A LIST ENTRY OVERWRITE MULTISELECT VALUES

Update list entries via `entry_id` using this endpoint. Updating multiselect attributes overwrites existing values. Use `PATCH` to add to multiselect attributes without deletion. Required scop
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ATTIO_UPDATE_A_LIST_ENTRY_OVERWRITE_MULTISELECT_VALUES])

DELETE A LIST ENTRY

Deletes a single list entry by its `entry_id`. Required scopes: `list_entry:read-write`, `list_configuration:read`.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ATTIO_DELETE_A_LIST_ENTRY])

LIST ATTRIBUTE VALUES FOR A LIST ENTRY

Gets all values for a given attribute on a list entry. If the attribute is historic, this endpoint has the ability to return all historic values using the `show_historic` query param. Required
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ATTIO_LIST_ATTRIBUTE_VALUES_FOR_A_LIST_ENTRY])

Workspace members

LIST WORKSPACE MEMBERS

Lists all workspace members in the workspace. Required scopes: `user_management:read`.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ATTIO_LIST_WORKSPACE_MEMBERS])

GET A WORKSPACE MEMBER

Gets a single workspace member by ID. Required scopes: `user_management:read`.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ATTIO_GET_A_WORKSPACE_MEMBER])

Notes

LIST NOTES

List notes for all records or for a specific record. Required scopes: `note:read`, `object_configuration:read`, `record_permission:read`.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ATTIO_LIST_NOTES])

CREATE A NOTE

Creates a new note for a given record. At present, notes can only be created from plaintext without formatting. Required scopes: `note:read-write`, `object_configuration:read`, `record_permiss
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ATTIO_CREATE_A_NOTE])

GET A NOTE

Get a single note by ID. Required scopes: `note:read`, `object_configuration:read`, `record_permission:read`.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ATTIO_GET_A_NOTE])

DELETE A NOTE

Delete a single note by ID. Required scopes: `note:read-write`.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ATTIO_DELETE_A_NOTE])

Tasks

LIST TASKS

List all tasks. Results are sorted by creation date, from oldest to newest. Required scopes: `task:read`, `object_configuration:read`, `record_permission:read`, `user_management:read`.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ATTIO_LIST_TASKS])

CREATE A TASK

Creates a new task. At present, tasks can only be created from plaintext without record reference formatting. Required scopes: `task:read-write`, `object_configuration:read`, `record_permissio
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ATTIO_CREATE_A_TASK])

GET A TASK

Get a single task by ID. Required scopes: `task:read`, `object_configuration:read`, `record_permission:read`, `user_management:read`.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ATTIO_GET_A_TASK])

UPDATE A TASK

Updates a task by `task_id`, allowing changes to `deadline_at`, `is_completed`, `linked_records`, and `assignees`. Requires four scopes: task & object config read-write, record permission, and
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ATTIO_UPDATE_A_TASK])

DELETE A TASK

Delete a task by ID. Required scopes: `task:read-write`.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ATTIO_DELETE_A_TASK])

Threads

LIST THREADS

To view comment threads on records or list entries, specific scopes are needed: `object_configuration:read` and `record_permission:read` for records, `list_configuration:read` and `list_entry:
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ATTIO_LIST_THREADS])

GET A THREAD

To view all comments in a thread, required scopes include `object_configuration:read`, `record_permission:read` for record threads, `list_configuration:read`, `list_entry:read` for list entrie
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ATTIO_GET_A_THREAD])

Comments

CREATE A COMMENT

The text details the process and necessary permissions (`object_configuration:read`, `record_permission:read`, `list_configuration:read`, `list_entry:read`, `comment:read-write`) to create com
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ATTIO_CREATE_A_COMMENT])

GET A COMMENT

To view a comment by ID, required scopes include `comment:read`, with additional scopes (`object_configuration:read`, `record_permission:read`) for record comments, and (`list_configuration:re
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ATTIO_GET_A_COMMENT])

DELETE A COMMENT

Deletes a comment by ID. If deleting a comment at the head of a thread, all messages in the thread are also deleted. Required scopes: `comment:read-write`.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.ATTIO_DELETE_A_COMMENT])

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 attio?

Composio.dev seamlessly integrates with attio, allowing you to leverage its capabilities within the Composio.dev platform. You can utilize attio 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 attio?

With attio, 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 attio into my project?

Composio.dev provides a seamless integration for attio, making it super easy to incorporate this powerful framework into your projects. You can leverage the Composio.dev API to call functions from attio, 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 attio into your projects seamlessly.

What is the pricing for attio?

attio 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 attio without worrying about breaking the bank.

What kind of authentication is supported for attio?

attio 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 attio 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 attio to my project?

Absolutely! You can easily incorporate attio into your project by utilizing the Composio.dev API. This API allows you to call functions from attio, 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 attio to your project with ease.

What is the accuracy of attio?

attio 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. attio'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 attio?

attio 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, attio can help you bring your ideas to life.

How does attio handle data privacy and security?

Data privacy and security are crucial considerations when working with AI systems, and attio 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. attio 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 attio 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๐Ÿงช