Canny

Learn how to use Canny with Composio

Overview

SLUG: CANNY

Description

Canny is a customer feedback management platform that helps teams collect, analyze, and prioritize user feedback to build better products.

Authentication Details

generic_api_key
stringRequired

Connecting to Canny

Create an auth config

Use the dashboard to create an auth config for the Canny toolkit. This allows you to connect multiple Canny accounts to Composio for agents to use.

1

Select App

Navigate to Canny.

2

Configure Auth Config Settings

Select among the supported auth schemes of and configure them here.

3

Create and Get auth config ID

Click “Create Canny Auth Config”. After creation, copy the displayed ID starting with ac_. This is your auth config ID. This is not a sensitive ID — you can save it in environment variables or a database. This ID will be used to create connections to the toolkit for a given user.

Connect Your Account

Using API Key

1from composio import Composio
2
3# Replace these with your actual values
4canny_auth_config_id = "ac_YOUR_CANNY_CONFIG_ID" # Auth config ID created above
5user_id = "0000-0000-0000" # UUID from database/app
6
7composio = Composio()
8
9def authenticate_toolkit(user_id: str, auth_config_id: str):
10 # Replace this with a method to retrieve an API key from the user.
11 # Or supply your own.
12 user_api_key = input("[!] Enter API key")
13
14 connection_request = composio.connected_accounts.initiate(
15 user_id=user_id,
16 auth_config_id=auth_config_id,
17 config={"auth_scheme": "API_KEY", "val": user_api_key}
18 )
19
20 # API Key authentication is immediate - no redirect needed
21 print(f"Successfully connected Canny for user {user_id}")
22 print(f"Connection status: {connection_request.status}")
23
24 return connection_request.id
25
26
27connection_id = authenticate_toolkit(user_id, canny_auth_config_id)
28
29# You can verify the connection using:
30connected_account = composio.connected_accounts.get(connection_id)
31print(f"Connected account: {connected_account}")

Tools

Executing tools

To prototype you can execute some tools to see the responses and working on the Canny toolkit’s playground

Python
1from composio import Composio
2from openai import OpenAI
3import json
4
5openai = OpenAI()
6composio = Composio()
7
8# User ID must be a valid UUID format
9user_id = "0000-0000-0000" # Replace with actual user UUID from your database
10
11tools = composio.tools.get(user_id=user_id, toolkits=["CANNY"])
12
13print("[!] Tools:")
14print(json.dumps(tools))
15
16def invoke_llm(task = "What can you do?"):
17 completion = openai.chat.completions.create(
18 model="gpt-4o",
19 messages=[
20 {
21 "role": "user",
22 "content": task, # Your task here!
23 },
24 ],
25 tools=tools,
26 )
27
28 # Handle Result from tool call
29 result = composio.provider.handle_tool_calls(user_id=user_id, response=completion)
30 print(f"[!] Completion: {completion}")
31 print(f"[!] Tool call result: {result}")
32
33invoke_llm()

Tool List

Tool Name: Add Post Tag

Description

Tool to add a tag to a specific post. use when you need to categorize or group content by applying an existing tag.

Action Parameters

postID
stringRequired
tagID
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Change Post Status

Description

Tool to change a post's status. use when you need to update a post's workflow stage and optionally notify voters.

Action Parameters

changerID
stringRequired
commentImageURLs
array
commentValue
string
postID
stringRequired
shouldNotifyVoters
boolean
status
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Create Changelog Entry

Description

Tool to create and optionally publish a new changelog entry. use when you need to add a product update record, control publish timing, and notify users. example: "create changelog entry titled 'version 1.2' with details '...' and publish immediately.".

Action Parameters

details
stringRequired
labelIDs
array
notify
boolean
postIDs
array
published
boolean
publishedOn
string
scheduledFor
string
title
stringRequired
type
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Create Comment

Description

Tool to create a new comment on a post. use when you have the authorid and postid and want to submit feedback or replies.

Action Parameters

authorID
stringRequired
createdAt
string
imageURLs
array
internal
boolean
parentID
string
postID
stringRequired
shouldNotifyVoters
boolean
value
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Create or Update User

Description

Tool to create or update a user in canny. use when you need to provision a new user or synchronize updates to an existing user profile. example: "create or update user with email user@example.com"

Action Parameters

alias
string
avatarURL
string
companies
array
created
string
customFields
object
email
string
id
string
name
stringRequired
userID
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Create Post

Description

Tool to create a new post on a board. use when you have the boardid and userid and need to submit new feedback.

Action Parameters

assigneeID
string
boardID
stringRequired
created
integer
details
string
isPrivate
boolean
tags
array
title
stringRequired
userID
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Create Tag

Description

Tool to create a new tag. use when you have the boardid and tag name and need to categorize posts.

Action Parameters

boardID
stringRequired
name
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Create Vote

Description

Tool to create a vote for a post. use when you need to record or migrate a user's vote on a post, optionally setting priority or original creation time. example: create a vote for postid abc123 with voterid user 456.

Action Parameters

byID
string
createdAt
string
postID
stringRequired
votePriority
integer
voterID
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Delete Comment

Description

Tool to delete a comment. use when moderation is required to remove a specific comment by its id. example: "delete the comment with id 553c3ef8b8cdcd1501ba1238."

Action Parameters

commentID
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Delete Post

Description

Tool to delete a post. use when you need to permanently remove a post by its id. example: "delete the post with id 553c3ef8b8cdcd1501ba1238."

Action Parameters

postID
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Delete User

Description

Tool to delete a user and their comments and votes. use when you need to fully remove a user's account and all associated data (e.g., gdpr compliance).

Action Parameters

id
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Delete Vote

Description

Tool to delete a vote. use when you need to remove a user's vote from a specific post by its id. example: "delete the vote from postid abc123 for voterid user 456."

Action Parameters

postID
stringRequired
voterID
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List Boards

Description

Tool to list all boards. use when you need to retrieve every board for your company after authentication.

Action Parameters

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List Categories

Description

Tool to list categories. use when fetching categories for a specific board by its id.

Action Parameters

boardID
string
limit
integer
skip
integer

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List Comments

Description

Tool to list comments for posts, boards, or authors. use after authentication to fetch comments with optional filters.

Action Parameters

authorID
string
boardID
string
companyID
string
limit
integerDefaults to 10
postID
string
skip
integer

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List Companies

Description

Tool to list companies associated with your canny account. use after authentication to retrieve companies with pagination support.

Action Parameters

cursor
string
limit
integer

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List Opportunities

Description

Tool to list opportunities linked to posts. use when you need to fetch customer opportunities synced from crm.

Action Parameters

limit
integer
skip
integer

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List Posts

Description

Tool to list posts with various filters. use after selecting a board or to search/filter posts.

Action Parameters

authorID
string
boardID
string
companyID
string
limit
integer
search
string
skip
integer
sort
string
status
string
tagIDs
array

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List Tags

Description

Tool to list tags. use when fetching tags optionally filtered by board id and handling pagination.

Action Parameters

boardID
string
limit
integer
skip
integer

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List Users

Description

Tool to list end-users in your workspace. use when you need to fetch and paginate through your workspace's users.

Action Parameters

cursor
string
limit
integerDefaults to 10

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List Votes

Description

Tool to list votes for a post. use after retrieving post details to view voters.

Action Parameters

boardID
string
limit
integerDefaults to 10
postID
string
skip
integer
voterID
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Retrieve Board

Description

Tool to retrieve details of a board by its id. use when you need metadata for a specific board.

Action Parameters

id
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Retrieve Tag

Description

Tool to retrieve details of a tag by its id. use after obtaining a valid tag id.

Action Parameters

id
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Retrieve User

Description

Tool to retrieve user details by canny user id, app user id, or email. use when you have exactly one identifier and need full user information. example: "retrieve user with email user@example.com"

Action Parameters

email
string
id
string
userID
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Update Post

Description

Tool to update post details. use when you need to change a post's title, details, eta, images, or custom fields.

Action Parameters

customFields
object
details
string
eta
string
etaPublic
boolean
imageURLs
array
postID
stringRequired
title
string

Action Response

data
objectRequired
error
string
successful
booleanRequired