> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pinkfish.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# canny

> Canny Feedback Management

**Server path:** `/canny` | **Type:** Application | **PCID required:** Yes

## Tools

| Tool                                                                | Description                                                           |
| ------------------------------------------------------------------- | --------------------------------------------------------------------- |
| [`canny_add_tag_to_post`](#canny_add_tag_to_post)                   | Add a tag to a post                                                   |
| [`canny_change_post_board`](#canny_change_post_board)               | Move a post to a different board                                      |
| [`canny_change_post_category`](#canny_change_post_category)         | Change a post's category                                              |
| [`canny_change_post_status`](#canny_change_post_status)             | Change a post's status (open, planned, in progress, complete, closed) |
| [`canny_create_category`](#canny_create_category)                   | Create a new category on a board                                      |
| [`canny_create_changelog_entry`](#canny_create_changelog_entry)     | Create a new changelog entry                                          |
| [`canny_create_comment`](#canny_create_comment)                     | Create a new comment on a post                                        |
| [`canny_create_or_update_user`](#canny_create_or_update_user)       | Create a new user or update an existing one                           |
| [`canny_create_post`](#canny_create_post)                           | Create a new feedback post                                            |
| [`canny_create_tag`](#canny_create_tag)                             | Create a new tag on a board                                           |
| [`canny_create_vote`](#canny_create_vote)                           | Create a vote (upvote) on a post for a user                           |
| [`canny_delete_category`](#canny_delete_category)                   | Delete a category                                                     |
| [`canny_delete_comment`](#canny_delete_comment)                     | Delete a comment                                                      |
| [`canny_delete_company`](#canny_delete_company)                     | Delete a company and disassociate its users                           |
| [`canny_delete_idea`](#canny_delete_idea)                           | Delete an idea                                                        |
| [`canny_delete_post`](#canny_delete_post)                           | Delete a post                                                         |
| [`canny_delete_user`](#canny_delete_user)                           | Delete a user and their associated data                               |
| [`canny_delete_vote`](#canny_delete_vote)                           | Remove a vote from a post                                             |
| [`canny_list_boards`](#canny_list_boards)                           | List all boards for the company                                       |
| [`canny_list_categories`](#canny_list_categories)                   | List categories, optionally filtered by board                         |
| [`canny_list_changelog_entries`](#canny_list_changelog_entries)     | List changelog entries                                                |
| [`canny_list_comments`](#canny_list_comments)                       | List comments with optional filters                                   |
| [`canny_list_companies`](#canny_list_companies)                     | List all companies                                                    |
| [`canny_list_groups`](#canny_list_groups)                           | List all groups                                                       |
| [`canny_list_ideas`](#canny_list_ideas)                             | List ideas with filtering and sorting                                 |
| [`canny_list_insights`](#canny_list_insights)                       | List insights, optionally filtered by idea                            |
| [`canny_list_opportunities`](#canny_list_opportunities)             | List sales opportunities linked to feedback                           |
| [`canny_list_posts`](#canny_list_posts)                             | List posts (feedback) with filtering and sorting                      |
| [`canny_list_status_changes`](#canny_list_status_changes)           | List post status changes across the workspace                         |
| [`canny_list_tags`](#canny_list_tags)                               | List tags, optionally filtered by board                               |
| [`canny_list_users`](#canny_list_users)                             | List all users                                                        |
| [`canny_list_votes`](#canny_list_votes)                             | List votes, optionally filtered by post or user                       |
| [`canny_merge_ideas`](#canny_merge_ideas)                           | Merge one idea into another                                           |
| [`canny_merge_posts`](#canny_merge_posts)                           | Merge one post into another                                           |
| [`canny_remove_tag_from_post`](#canny_remove_tag_from_post)         | Remove a tag from a post                                              |
| [`canny_remove_user_from_company`](#canny_remove_user_from_company) | Remove a user from a company without deleting the user                |
| [`canny_retrieve_board`](#canny_retrieve_board)                     | Retrieve details of a specific board                                  |
| [`canny_retrieve_category`](#canny_retrieve_category)               | Retrieve details of a specific category                               |
| [`canny_retrieve_comment`](#canny_retrieve_comment)                 | Retrieve details of a specific comment                                |
| [`canny_retrieve_group`](#canny_retrieve_group)                     | Retrieve details of a specific group                                  |
| [`canny_retrieve_idea`](#canny_retrieve_idea)                       | Retrieve details of a specific idea                                   |
| [`canny_retrieve_insight`](#canny_retrieve_insight)                 | Retrieve details of a specific insight                                |
| [`canny_retrieve_post`](#canny_retrieve_post)                       | Retrieve details of a specific post                                   |
| [`canny_retrieve_tag`](#canny_retrieve_tag)                         | Retrieve details of a specific tag                                    |
| [`canny_retrieve_user`](#canny_retrieve_user)                       | Retrieve details of a specific user                                   |
| [`canny_retrieve_vote`](#canny_retrieve_vote)                       | Retrieve details of a specific vote                                   |
| [`canny_update_company`](#canny_update_company)                     | Update a company's properties                                         |
| [`canny_update_post`](#canny_update_post)                           | Update an existing post                                               |

***

## canny\_add\_tag\_to\_post

Add a tag to a post

**Parameters:**

| Parameter | Type   | Required | Default | Description       |
| --------- | ------ | -------- | ------- | ----------------- |
| `postID`  | string | Yes      | —       | The post ID       |
| `tagID`   | string | Yes      | —       | The tag ID to add |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "postID": {
        "type": "string",
        "description": "The post ID"
      },
      "tagID": {
        "type": "string",
        "description": "The tag ID to add"
      }
    },
    "required": [
      "PCID",
      "postID",
      "tagID"
    ]
  }
  ```
</Expandable>

***

## canny\_change\_post\_board

Move a post to a different board

**Parameters:**

| Parameter | Type   | Required | Default | Description         |
| --------- | ------ | -------- | ------- | ------------------- |
| `boardID` | string | Yes      | —       | The target board ID |
| `postID`  | string | Yes      | —       | The post ID to move |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "boardID": {
        "type": "string",
        "description": "The target board ID"
      },
      "postID": {
        "type": "string",
        "description": "The post ID to move"
      }
    },
    "required": [
      "PCID",
      "boardID",
      "postID"
    ]
  }
  ```
</Expandable>

***

## canny\_change\_post\_category

Change a post's category

**Parameters:**

| Parameter    | Type   | Required | Default | Description                                   |
| ------------ | ------ | -------- | ------- | --------------------------------------------- |
| `categoryID` | string | No       | —       | The new category ID (omit to remove category) |
| `postID`     | string | Yes      | —       | The post ID                                   |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "categoryID": {
        "type": "string",
        "description": "The new category ID (omit to remove category)"
      },
      "postID": {
        "type": "string",
        "description": "The post ID"
      }
    },
    "required": [
      "PCID",
      "postID"
    ]
  }
  ```
</Expandable>

***

## canny\_change\_post\_status

Change a post's status (open, planned, in progress, complete, closed)

**Parameters:**

| Parameter            | Type      | Required | Default | Description                                                            |
| -------------------- | --------- | -------- | ------- | ---------------------------------------------------------------------- |
| `changerID`          | string    | Yes      | —       | The user ID making the change                                          |
| `commentImageURLs`   | string\[] | No       | —       | Image URLs for the status change comment                               |
| `commentValue`       | string    | No       | —       | Optional comment to add with the status change                         |
| `postID`             | string    | Yes      | —       | The post ID                                                            |
| `shouldNotifyVoters` | boolean   | Yes      | —       | Whether to notify voters of the status change                          |
| `status`             | string    | Yes      | —       | New status: open, under review, planned, in progress, complete, closed |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "changerID": {
        "type": "string",
        "description": "The user ID making the change"
      },
      "commentImageURLs": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "Image URLs for the status change comment"
      },
      "commentValue": {
        "type": "string",
        "description": "Optional comment to add with the status change"
      },
      "postID": {
        "type": "string",
        "description": "The post ID"
      },
      "shouldNotifyVoters": {
        "type": "boolean",
        "description": "Whether to notify voters of the status change"
      },
      "status": {
        "type": "string",
        "description": "New status: open, under review, planned, in progress, complete, closed"
      }
    },
    "required": [
      "PCID",
      "changerID",
      "postID",
      "shouldNotifyVoters",
      "status"
    ]
  }
  ```
</Expandable>

***

## canny\_create\_category

Create a new category on a board

**Parameters:**

| Parameter         | Type    | Required | Default | Description                                 |
| ----------------- | ------- | -------- | ------- | ------------------------------------------- |
| `boardID`         | string  | Yes      | —       | The board ID to create the category on      |
| `name`            | string  | Yes      | —       | The name of the category                    |
| `parentID`        | string  | No       | —       | The parent category ID for nesting          |
| `subscribeAdmins` | boolean | No       | —       | Whether to subscribe admins to the category |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "boardID": {
        "type": "string",
        "description": "The board ID to create the category on"
      },
      "name": {
        "type": "string",
        "description": "The name of the category"
      },
      "parentID": {
        "type": "string",
        "description": "The parent category ID for nesting"
      },
      "subscribeAdmins": {
        "type": "boolean",
        "description": "Whether to subscribe admins to the category"
      }
    },
    "required": [
      "PCID",
      "boardID",
      "name"
    ]
  }
  ```
</Expandable>

***

## canny\_create\_changelog\_entry

Create a new changelog entry

**Parameters:**

| Parameter      | Type      | Required | Default | Description                         |
| -------------- | --------- | -------- | ------- | ----------------------------------- |
| `details`      | string    | Yes      | —       | Markdown body of the entry          |
| `labelIDs`     | string\[] | No       | —       | Label IDs to attach                 |
| `notify`       | boolean   | No       | —       | Whether to notify subscribers       |
| `postIDs`      | string\[] | No       | —       | Post IDs to link                    |
| `published`    | boolean   | No       | —       | Whether the entry is published      |
| `publishedOn`  | string    | No       | —       | ISO 8601 date for publish date      |
| `scheduledFor` | string    | No       | —       | ISO 8601 date for scheduled publish |
| `title`        | string    | Yes      | —       | Title of the changelog entry        |
| `type`         | string    | No       | —       | Type: new, improved, fixed          |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "details": {
        "type": "string",
        "description": "Markdown body of the entry"
      },
      "labelIDs": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "Label IDs to attach"
      },
      "notify": {
        "type": "boolean",
        "description": "Whether to notify subscribers"
      },
      "postIDs": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "Post IDs to link"
      },
      "published": {
        "type": "boolean",
        "description": "Whether the entry is published"
      },
      "publishedOn": {
        "type": "string",
        "description": "ISO 8601 date for publish date"
      },
      "scheduledFor": {
        "type": "string",
        "description": "ISO 8601 date for scheduled publish"
      },
      "title": {
        "type": "string",
        "description": "Title of the changelog entry"
      },
      "type": {
        "type": "string",
        "description": "Type: new, improved, fixed"
      }
    },
    "required": [
      "PCID",
      "details",
      "title"
    ]
  }
  ```
</Expandable>

***

## canny\_create\_comment

Create a new comment on a post

**Parameters:**

| Parameter            | Type      | Required | Default | Description                                 |
| -------------------- | --------- | -------- | ------- | ------------------------------------------- |
| `authorID`           | string    | Yes      | —       | The user ID of the comment author           |
| `createdAt`          | string    | No       | —       | ISO 8601 timestamp for backfill             |
| `imageURLs`          | string\[] | No       | —       | Image URLs to attach                        |
| `internal`           | boolean   | No       | —       | Whether the comment is internal (team-only) |
| `parentID`           | string    | No       | —       | Parent comment ID for replies               |
| `postID`             | string    | Yes      | —       | The post ID to comment on                   |
| `shouldNotifyVoters` | boolean   | No       | —       | Whether to notify post voters               |
| `value`              | string    | Yes      | —       | The comment body (HTML or plain text)       |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "authorID": {
        "type": "string",
        "description": "The user ID of the comment author"
      },
      "createdAt": {
        "type": "string",
        "description": "ISO 8601 timestamp for backfill"
      },
      "imageURLs": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "Image URLs to attach"
      },
      "internal": {
        "type": "boolean",
        "description": "Whether the comment is internal (team-only)"
      },
      "parentID": {
        "type": "string",
        "description": "Parent comment ID for replies"
      },
      "postID": {
        "type": "string",
        "description": "The post ID to comment on"
      },
      "shouldNotifyVoters": {
        "type": "boolean",
        "description": "Whether to notify post voters"
      },
      "value": {
        "type": "string",
        "description": "The comment body (HTML or plain text)"
      }
    },
    "required": [
      "PCID",
      "authorID",
      "postID",
      "value"
    ]
  }
  ```
</Expandable>

***

## canny\_create\_or\_update\_user

Create a new user or update an existing one

**Parameters:**

| Parameter   | Type   | Required | Default | Description                           |
| ----------- | ------ | -------- | ------- | ------------------------------------- |
| `avatarURL` | string | No       | —       | URL to user's avatar image            |
| `companyID` | string | No       | —       | Company ID to associate the user with |
| `created`   | string | No       | —       | ISO 8601 user creation date           |
| `email`     | string | No       | —       | User email address                    |
| `name`      | string | No       | —       | User display name                     |
| `userID`    | string | Yes      | —       | Unique user identifier in your system |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "avatarURL": {
        "type": "string",
        "description": "URL to user's avatar image"
      },
      "companyID": {
        "type": "string",
        "description": "Company ID to associate the user with"
      },
      "created": {
        "type": "string",
        "description": "ISO 8601 user creation date"
      },
      "email": {
        "type": "string",
        "description": "User email address"
      },
      "name": {
        "type": "string",
        "description": "User display name"
      },
      "userID": {
        "type": "string",
        "description": "Unique user identifier in your system"
      }
    },
    "required": [
      "PCID",
      "userID"
    ]
  }
  ```
</Expandable>

***

## canny\_create\_post

Create a new feedback post

**Parameters:**

| Parameter      | Type      | Required | Default | Description                                                |
| -------------- | --------- | -------- | ------- | ---------------------------------------------------------- |
| `authorID`     | string    | Yes      | —       | The user ID of the post author                             |
| `boardID`      | string    | Yes      | —       | The board ID to create the post on                         |
| `byID`         | string    | No       | —       | Admin user ID who created the post on behalf of the author |
| `categoryID`   | string    | No       | —       | Category ID to assign                                      |
| `createdAt`    | string    | No       | —       | ISO 8601 timestamp for backfill                            |
| `customFields` | object    | No       | —       | Custom field key-value pairs                               |
| `details`      | string    | Yes      | —       | The post body (HTML or plain text)                         |
| `eta`          | string    | No       | —       | Estimated completion date                                  |
| `etaPublic`    | boolean   | No       | —       | Whether the ETA is publicly visible                        |
| `imageURLs`    | string\[] | No       | —       | Image URLs to attach                                       |
| `ownerID`      | string    | No       | —       | The user ID of the post owner                              |
| `title`        | string    | Yes      | —       | The post title                                             |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "authorID": {
        "type": "string",
        "description": "The user ID of the post author"
      },
      "boardID": {
        "type": "string",
        "description": "The board ID to create the post on"
      },
      "byID": {
        "type": "string",
        "description": "Admin user ID who created the post on behalf of the author"
      },
      "categoryID": {
        "type": "string",
        "description": "Category ID to assign"
      },
      "createdAt": {
        "type": "string",
        "description": "ISO 8601 timestamp for backfill"
      },
      "customFields": {
        "type": "object",
        "description": "Custom field key-value pairs"
      },
      "details": {
        "type": "string",
        "description": "The post body (HTML or plain text)"
      },
      "eta": {
        "type": "string",
        "description": "Estimated completion date"
      },
      "etaPublic": {
        "type": "boolean",
        "description": "Whether the ETA is publicly visible"
      },
      "imageURLs": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "Image URLs to attach"
      },
      "ownerID": {
        "type": "string",
        "description": "The user ID of the post owner"
      },
      "title": {
        "type": "string",
        "description": "The post title"
      }
    },
    "required": [
      "PCID",
      "authorID",
      "boardID",
      "details",
      "title"
    ]
  }
  ```
</Expandable>

***

## canny\_create\_tag

Create a new tag on a board

**Parameters:**

| Parameter | Type   | Required | Default | Description                       |
| --------- | ------ | -------- | ------- | --------------------------------- |
| `boardID` | string | Yes      | —       | The board ID to create the tag on |
| `name`    | string | Yes      | —       | The tag name                      |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "boardID": {
        "type": "string",
        "description": "The board ID to create the tag on"
      },
      "name": {
        "type": "string",
        "description": "The tag name"
      }
    },
    "required": [
      "PCID",
      "boardID",
      "name"
    ]
  }
  ```
</Expandable>

***

## canny\_create\_vote

Create a vote (upvote) on a post for a user

**Parameters:**

| Parameter | Type   | Required | Default | Description                  |
| --------- | ------ | -------- | ------- | ---------------------------- |
| `postID`  | string | Yes      | —       | The post ID to vote on       |
| `voterID` | string | Yes      | —       | The user ID casting the vote |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "postID": {
        "type": "string",
        "description": "The post ID to vote on"
      },
      "voterID": {
        "type": "string",
        "description": "The user ID casting the vote"
      }
    },
    "required": [
      "PCID",
      "postID",
      "voterID"
    ]
  }
  ```
</Expandable>

***

## canny\_delete\_category

Delete a category

**Parameters:**

| Parameter    | Type   | Required | Default | Description               |
| ------------ | ------ | -------- | ------- | ------------------------- |
| `categoryID` | string | Yes      | —       | The category ID to delete |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "categoryID": {
        "type": "string",
        "description": "The category ID to delete"
      }
    },
    "required": [
      "PCID",
      "categoryID"
    ]
  }
  ```
</Expandable>

***

## canny\_delete\_comment

Delete a comment

**Parameters:**

| Parameter   | Type   | Required | Default | Description              |
| ----------- | ------ | -------- | ------- | ------------------------ |
| `commentID` | string | Yes      | —       | The comment ID to delete |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "commentID": {
        "type": "string",
        "description": "The comment ID to delete"
      }
    },
    "required": [
      "PCID",
      "commentID"
    ]
  }
  ```
</Expandable>

***

## canny\_delete\_company

Delete a company and disassociate its users

**Parameters:**

| Parameter   | Type   | Required | Default | Description              |
| ----------- | ------ | -------- | ------- | ------------------------ |
| `companyID` | string | Yes      | —       | The company ID to delete |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "companyID": {
        "type": "string",
        "description": "The company ID to delete"
      }
    },
    "required": [
      "PCID",
      "companyID"
    ]
  }
  ```
</Expandable>

***

## canny\_delete\_idea

Delete an idea

**Parameters:**

| Parameter | Type   | Required | Default | Description           |
| --------- | ------ | -------- | ------- | --------------------- |
| `id`      | string | Yes      | —       | The idea ID to delete |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "id": {
        "type": "string",
        "description": "The idea ID to delete"
      }
    },
    "required": [
      "PCID",
      "id"
    ]
  }
  ```
</Expandable>

***

## canny\_delete\_post

Delete a post

**Parameters:**

| Parameter | Type   | Required | Default | Description           |
| --------- | ------ | -------- | ------- | --------------------- |
| `postID`  | string | Yes      | —       | The post ID to delete |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "postID": {
        "type": "string",
        "description": "The post ID to delete"
      }
    },
    "required": [
      "PCID",
      "postID"
    ]
  }
  ```
</Expandable>

***

## canny\_delete\_user

Delete a user and their associated data

**Parameters:**

| Parameter | Type   | Required | Default | Description           |
| --------- | ------ | -------- | ------- | --------------------- |
| `userID`  | string | Yes      | —       | The user ID to delete |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "userID": {
        "type": "string",
        "description": "The user ID to delete"
      }
    },
    "required": [
      "PCID",
      "userID"
    ]
  }
  ```
</Expandable>

***

## canny\_delete\_vote

Remove a vote from a post

**Parameters:**

| Parameter | Type   | Required | Default | Description                         |
| --------- | ------ | -------- | ------- | ----------------------------------- |
| `postID`  | string | Yes      | —       | The post ID to remove the vote from |
| `voterID` | string | Yes      | —       | The user ID whose vote to remove    |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "postID": {
        "type": "string",
        "description": "The post ID to remove the vote from"
      },
      "voterID": {
        "type": "string",
        "description": "The user ID whose vote to remove"
      }
    },
    "required": [
      "PCID",
      "postID",
      "voterID"
    ]
  }
  ```
</Expandable>

***

## canny\_list\_boards

List all boards for the company

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      }
    },
    "required": [
      "PCID"
    ]
  }
  ```
</Expandable>

***

## canny\_list\_categories

List categories, optionally filtered by board

**Parameters:**

| Parameter | Type    | Required | Default | Description                                |
| --------- | ------- | -------- | ------- | ------------------------------------------ |
| `boardID` | string  | No       | —       | Filter categories by board ID              |
| `limit`   | integer | No       | —       | Number of categories to return (max 10000) |
| `skip`    | integer | No       | —       | Number of categories to skip               |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "boardID": {
        "type": "string",
        "description": "Filter categories by board ID"
      },
      "limit": {
        "type": "integer",
        "description": "Number of categories to return (max 10000)"
      },
      "skip": {
        "type": "integer",
        "description": "Number of categories to skip"
      }
    },
    "required": [
      "PCID"
    ]
  }
  ```
</Expandable>

***

## canny\_list\_changelog\_entries

List changelog entries

**Parameters:**

| Parameter  | Type      | Required | Default | Description                                             |
| ---------- | --------- | -------- | ------- | ------------------------------------------------------- |
| `labelIDs` | string\[] | No       | —       | Filter by label IDs                                     |
| `limit`    | integer   | No       | —       | Number of entries to return (max 10000)                 |
| `skip`     | integer   | No       | —       | Number of entries to skip                               |
| `sort`     | string    | No       | —       | Sort order: created, lastSaved, nonPublished, published |
| `type`     | string    | No       | —       | Filter by type: new, improved, fixed                    |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "labelIDs": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "Filter by label IDs"
      },
      "limit": {
        "type": "integer",
        "description": "Number of entries to return (max 10000)"
      },
      "skip": {
        "type": "integer",
        "description": "Number of entries to skip"
      },
      "sort": {
        "type": "string",
        "description": "Sort order: created, lastSaved, nonPublished, published"
      },
      "type": {
        "type": "string",
        "description": "Filter by type: new, improved, fixed"
      }
    },
    "required": [
      "PCID"
    ]
  }
  ```
</Expandable>

***

## canny\_list\_comments

List comments with optional filters

**Parameters:**

| Parameter   | Type    | Required | Default | Description                              |
| ----------- | ------- | -------- | ------- | ---------------------------------------- |
| `authorID`  | string  | No       | —       | Filter by comment author ID              |
| `boardID`   | string  | No       | —       | Filter by board ID                       |
| `companyID` | string  | No       | —       | Filter by company ID                     |
| `limit`     | integer | No       | —       | Number of comments to return (max 10000) |
| `postID`    | string  | No       | —       | Filter by post ID                        |
| `skip`      | integer | No       | —       | Number of comments to skip               |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "authorID": {
        "type": "string",
        "description": "Filter by comment author ID"
      },
      "boardID": {
        "type": "string",
        "description": "Filter by board ID"
      },
      "companyID": {
        "type": "string",
        "description": "Filter by company ID"
      },
      "limit": {
        "type": "integer",
        "description": "Number of comments to return (max 10000)"
      },
      "postID": {
        "type": "string",
        "description": "Filter by post ID"
      },
      "skip": {
        "type": "integer",
        "description": "Number of comments to skip"
      }
    },
    "required": [
      "PCID"
    ]
  }
  ```
</Expandable>

***

## canny\_list\_companies

List all companies

**Parameters:**

| Parameter | Type    | Required | Default | Description                               |
| --------- | ------- | -------- | ------- | ----------------------------------------- |
| `limit`   | integer | No       | —       | Number of companies to return (max 10000) |
| `search`  | string  | No       | —       | Search string to filter companies         |
| `skip`    | integer | No       | —       | Number of companies to skip               |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "limit": {
        "type": "integer",
        "description": "Number of companies to return (max 10000)"
      },
      "search": {
        "type": "string",
        "description": "Search string to filter companies"
      },
      "skip": {
        "type": "integer",
        "description": "Number of companies to skip"
      }
    },
    "required": [
      "PCID"
    ]
  }
  ```
</Expandable>

***

## canny\_list\_groups

List all groups

**Parameters:**

| Parameter | Type    | Required | Default | Description                |
| --------- | ------- | -------- | ------- | -------------------------- |
| `limit`   | integer | No       | —       | Number of groups to return |
| `skip`    | integer | No       | —       | Number of groups to skip   |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "limit": {
        "type": "integer",
        "description": "Number of groups to return"
      },
      "skip": {
        "type": "integer",
        "description": "Number of groups to skip"
      }
    },
    "required": [
      "PCID"
    ]
  }
  ```
</Expandable>

***

## canny\_list\_ideas

List ideas with filtering and sorting

**Parameters:**

| Parameter  | Type    | Required | Default | Description                                                     |
| ---------- | ------- | -------- | ------- | --------------------------------------------------------------- |
| `limit`    | integer | No       | —       | Number of ideas to return                                       |
| `parentID` | string  | No       | —       | Filter by parent idea ID                                        |
| `search`   | string  | No       | —       | Search string to filter ideas                                   |
| `skip`     | integer | No       | —       | Number of ideas to skip                                         |
| `sort`     | string  | No       | —       | Sort: relevance, newest, oldest, score, statusChanged, trending |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "limit": {
        "type": "integer",
        "description": "Number of ideas to return"
      },
      "parentID": {
        "type": "string",
        "description": "Filter by parent idea ID"
      },
      "search": {
        "type": "string",
        "description": "Search string to filter ideas"
      },
      "skip": {
        "type": "integer",
        "description": "Number of ideas to skip"
      },
      "sort": {
        "type": "string",
        "description": "Sort: relevance, newest, oldest, score, statusChanged, trending"
      }
    },
    "required": [
      "PCID"
    ]
  }
  ```
</Expandable>

***

## canny\_list\_insights

List insights, optionally filtered by idea

**Parameters:**

| Parameter | Type    | Required | Default | Description                  |
| --------- | ------- | -------- | ------- | ---------------------------- |
| `ideaID`  | string  | No       | —       | Filter insights by idea ID   |
| `limit`   | integer | No       | —       | Number of insights to return |
| `skip`    | integer | No       | —       | Number of insights to skip   |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "ideaID": {
        "type": "string",
        "description": "Filter insights by idea ID"
      },
      "limit": {
        "type": "integer",
        "description": "Number of insights to return"
      },
      "skip": {
        "type": "integer",
        "description": "Number of insights to skip"
      }
    },
    "required": [
      "PCID"
    ]
  }
  ```
</Expandable>

***

## canny\_list\_opportunities

List sales opportunities linked to feedback

**Parameters:**

| Parameter | Type    | Required | Default | Description                       |
| --------- | ------- | -------- | ------- | --------------------------------- |
| `limit`   | integer | No       | —       | Number of opportunities to return |
| `skip`    | integer | No       | —       | Number of opportunities to skip   |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "limit": {
        "type": "integer",
        "description": "Number of opportunities to return"
      },
      "skip": {
        "type": "integer",
        "description": "Number of opportunities to skip"
      }
    },
    "required": [
      "PCID"
    ]
  }
  ```
</Expandable>

***

## canny\_list\_posts

List posts (feedback) with filtering and sorting

**Parameters:**

| Parameter   | Type      | Required | Default | Description                                                                                      |
| ----------- | --------- | -------- | ------- | ------------------------------------------------------------------------------------------------ |
| `authorID`  | string    | No       | —       | Filter by author user ID                                                                         |
| `boardID`   | string    | No       | —       | Filter by board ID                                                                               |
| `companyID` | string    | No       | —       | Filter by company ID                                                                             |
| `limit`     | integer   | No       | —       | Number of posts to return (max 10000)                                                            |
| `search`    | string    | No       | —       | Search string to filter posts                                                                    |
| `skip`      | integer   | No       | —       | Number of posts to skip                                                                          |
| `sort`      | string    | No       | —       | Sort: newest, oldest, relevance, score, statusChanged, trending                                  |
| `status`    | string    | No       | —       | Filter by status: open, under review, planned, in progress, complete, closed, or any combination |
| `tagIDs`    | string\[] | No       | —       | Filter by tag IDs                                                                                |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "authorID": {
        "type": "string",
        "description": "Filter by author user ID"
      },
      "boardID": {
        "type": "string",
        "description": "Filter by board ID"
      },
      "companyID": {
        "type": "string",
        "description": "Filter by company ID"
      },
      "limit": {
        "type": "integer",
        "description": "Number of posts to return (max 10000)"
      },
      "search": {
        "type": "string",
        "description": "Search string to filter posts"
      },
      "skip": {
        "type": "integer",
        "description": "Number of posts to skip"
      },
      "sort": {
        "type": "string",
        "description": "Sort: newest, oldest, relevance, score, statusChanged, trending"
      },
      "status": {
        "type": "string",
        "description": "Filter by status: open, under review, planned, in progress, complete, closed, or any combination"
      },
      "tagIDs": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "Filter by tag IDs"
      }
    },
    "required": [
      "PCID"
    ]
  }
  ```
</Expandable>

***

## canny\_list\_status\_changes

List post status changes across the workspace

**Parameters:**

| Parameter | Type    | Required | Default | Description                        |
| --------- | ------- | -------- | ------- | ---------------------------------- |
| `limit`   | integer | No       | —       | Number of status changes to return |
| `skip`    | integer | No       | —       | Number of status changes to skip   |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "limit": {
        "type": "integer",
        "description": "Number of status changes to return"
      },
      "skip": {
        "type": "integer",
        "description": "Number of status changes to skip"
      }
    },
    "required": [
      "PCID"
    ]
  }
  ```
</Expandable>

***

## canny\_list\_tags

List tags, optionally filtered by board

**Parameters:**

| Parameter | Type    | Required | Default | Description                          |
| --------- | ------- | -------- | ------- | ------------------------------------ |
| `boardID` | string  | No       | —       | Filter tags by board ID              |
| `limit`   | integer | No       | —       | Number of tags to return (max 10000) |
| `skip`    | integer | No       | —       | Number of tags to skip               |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "boardID": {
        "type": "string",
        "description": "Filter tags by board ID"
      },
      "limit": {
        "type": "integer",
        "description": "Number of tags to return (max 10000)"
      },
      "skip": {
        "type": "integer",
        "description": "Number of tags to skip"
      }
    },
    "required": [
      "PCID"
    ]
  }
  ```
</Expandable>

***

## canny\_list\_users

List all users

**Parameters:**

| Parameter | Type    | Required | Default | Description                           |
| --------- | ------- | -------- | ------- | ------------------------------------- |
| `limit`   | integer | No       | —       | Number of users to return (max 10000) |
| `skip`    | integer | No       | —       | Number of users to skip               |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "limit": {
        "type": "integer",
        "description": "Number of users to return (max 10000)"
      },
      "skip": {
        "type": "integer",
        "description": "Number of users to skip"
      }
    },
    "required": [
      "PCID"
    ]
  }
  ```
</Expandable>

***

## canny\_list\_votes

List votes, optionally filtered by post or user

**Parameters:**

| Parameter | Type    | Required | Default | Description                           |
| --------- | ------- | -------- | ------- | ------------------------------------- |
| `limit`   | integer | No       | —       | Number of votes to return (max 10000) |
| `postID`  | string  | No       | —       | Filter votes by post ID               |
| `skip`    | integer | No       | —       | Number of votes to skip               |
| `userID`  | string  | No       | —       | Filter votes by user ID               |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "limit": {
        "type": "integer",
        "description": "Number of votes to return (max 10000)"
      },
      "postID": {
        "type": "string",
        "description": "Filter votes by post ID"
      },
      "skip": {
        "type": "integer",
        "description": "Number of votes to skip"
      },
      "userID": {
        "type": "string",
        "description": "Filter votes by user ID"
      }
    },
    "required": [
      "PCID"
    ]
  }
  ```
</Expandable>

***

## canny\_merge\_ideas

Merge one idea into another

**Parameters:**

| Parameter     | Type   | Required | Default | Description                             |
| ------------- | ------ | -------- | ------- | --------------------------------------- |
| `intoIdeaID`  | string | Yes      | —       | The idea ID to merge into (will remain) |
| `mergeIdeaID` | string | Yes      | —       | The idea ID to merge (will be removed)  |
| `mergerID`    | string | Yes      | —       | The user ID performing the merge        |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "intoIdeaID": {
        "type": "string",
        "description": "The idea ID to merge into (will remain)"
      },
      "mergeIdeaID": {
        "type": "string",
        "description": "The idea ID to merge (will be removed)"
      },
      "mergerID": {
        "type": "string",
        "description": "The user ID performing the merge"
      }
    },
    "required": [
      "PCID",
      "intoIdeaID",
      "mergeIdeaID",
      "mergerID"
    ]
  }
  ```
</Expandable>

***

## canny\_merge\_posts

Merge one post into another

**Parameters:**

| Parameter     | Type   | Required | Default | Description                             |
| ------------- | ------ | -------- | ------- | --------------------------------------- |
| `intoPostID`  | string | Yes      | —       | The post ID to merge into (will remain) |
| `mergePostID` | string | Yes      | —       | The post ID to merge (will be removed)  |
| `mergerID`    | string | Yes      | —       | The user ID performing the merge        |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "intoPostID": {
        "type": "string",
        "description": "The post ID to merge into (will remain)"
      },
      "mergePostID": {
        "type": "string",
        "description": "The post ID to merge (will be removed)"
      },
      "mergerID": {
        "type": "string",
        "description": "The user ID performing the merge"
      }
    },
    "required": [
      "PCID",
      "intoPostID",
      "mergePostID",
      "mergerID"
    ]
  }
  ```
</Expandable>

***

## canny\_remove\_tag\_from\_post

Remove a tag from a post

**Parameters:**

| Parameter | Type   | Required | Default | Description          |
| --------- | ------ | -------- | ------- | -------------------- |
| `postID`  | string | Yes      | —       | The post ID          |
| `tagID`   | string | Yes      | —       | The tag ID to remove |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "postID": {
        "type": "string",
        "description": "The post ID"
      },
      "tagID": {
        "type": "string",
        "description": "The tag ID to remove"
      }
    },
    "required": [
      "PCID",
      "postID",
      "tagID"
    ]
  }
  ```
</Expandable>

***

## canny\_remove\_user\_from\_company

Remove a user from a company without deleting the user

**Parameters:**

| Parameter   | Type   | Required | Default | Description                            |
| ----------- | ------ | -------- | ------- | -------------------------------------- |
| `companyID` | string | Yes      | —       | The company ID to remove the user from |
| `userID`    | string | Yes      | —       | The user ID                            |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "companyID": {
        "type": "string",
        "description": "The company ID to remove the user from"
      },
      "userID": {
        "type": "string",
        "description": "The user ID"
      }
    },
    "required": [
      "PCID",
      "companyID",
      "userID"
    ]
  }
  ```
</Expandable>

***

## canny\_retrieve\_board

Retrieve details of a specific board

**Parameters:**

| Parameter | Type   | Required | Default | Description                   |
| --------- | ------ | -------- | ------- | ----------------------------- |
| `id`      | string | Yes      | —       | The board's unique identifier |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "id": {
        "type": "string",
        "description": "The board's unique identifier"
      }
    },
    "required": [
      "PCID",
      "id"
    ]
  }
  ```
</Expandable>

***

## canny\_retrieve\_category

Retrieve details of a specific category

**Parameters:**

| Parameter | Type   | Required | Default | Description                      |
| --------- | ------ | -------- | ------- | -------------------------------- |
| `id`      | string | Yes      | —       | The category's unique identifier |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "id": {
        "type": "string",
        "description": "The category's unique identifier"
      }
    },
    "required": [
      "PCID",
      "id"
    ]
  }
  ```
</Expandable>

***

## canny\_retrieve\_comment

Retrieve details of a specific comment

**Parameters:**

| Parameter | Type   | Required | Default | Description                     |
| --------- | ------ | -------- | ------- | ------------------------------- |
| `id`      | string | Yes      | —       | The comment's unique identifier |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "id": {
        "type": "string",
        "description": "The comment's unique identifier"
      }
    },
    "required": [
      "PCID",
      "id"
    ]
  }
  ```
</Expandable>

***

## canny\_retrieve\_group

Retrieve details of a specific group

**Parameters:**

| Parameter | Type   | Required | Default | Description                   |
| --------- | ------ | -------- | ------- | ----------------------------- |
| `id`      | string | No       | —       | The group's unique identifier |
| `urlName` | string | No       | —       | The group's URL name          |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "id": {
        "type": "string",
        "description": "The group's unique identifier"
      },
      "urlName": {
        "type": "string",
        "description": "The group's URL name"
      }
    },
    "required": [
      "PCID"
    ]
  }
  ```
</Expandable>

***

## canny\_retrieve\_idea

Retrieve details of a specific idea

**Parameters:**

| Parameter | Type   | Required | Default | Description                  |
| --------- | ------ | -------- | ------- | ---------------------------- |
| `id`      | string | No       | —       | The idea's unique identifier |
| `urlName` | string | No       | —       | The idea's URL name          |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "id": {
        "type": "string",
        "description": "The idea's unique identifier"
      },
      "urlName": {
        "type": "string",
        "description": "The idea's URL name"
      }
    },
    "required": [
      "PCID"
    ]
  }
  ```
</Expandable>

***

## canny\_retrieve\_insight

Retrieve details of a specific insight

**Parameters:**

| Parameter | Type   | Required | Default | Description                     |
| --------- | ------ | -------- | ------- | ------------------------------- |
| `id`      | string | Yes      | —       | The insight's unique identifier |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "id": {
        "type": "string",
        "description": "The insight's unique identifier"
      }
    },
    "required": [
      "PCID",
      "id"
    ]
  }
  ```
</Expandable>

***

## canny\_retrieve\_post

Retrieve details of a specific post

**Parameters:**

| Parameter | Type   | Required | Default | Description                  |
| --------- | ------ | -------- | ------- | ---------------------------- |
| `boardID` | string | No       | —       | Required if using urlName    |
| `id`      | string | No       | —       | The post's unique identifier |
| `urlName` | string | No       | —       | The post's URL name          |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "boardID": {
        "type": "string",
        "description": "Required if using urlName"
      },
      "id": {
        "type": "string",
        "description": "The post's unique identifier"
      },
      "urlName": {
        "type": "string",
        "description": "The post's URL name"
      }
    },
    "required": [
      "PCID"
    ]
  }
  ```
</Expandable>

***

## canny\_retrieve\_tag

Retrieve details of a specific tag

**Parameters:**

| Parameter | Type   | Required | Default | Description                 |
| --------- | ------ | -------- | ------- | --------------------------- |
| `id`      | string | Yes      | —       | The tag's unique identifier |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "id": {
        "type": "string",
        "description": "The tag's unique identifier"
      }
    },
    "required": [
      "PCID",
      "id"
    ]
  }
  ```
</Expandable>

***

## canny\_retrieve\_user

Retrieve details of a specific user

**Parameters:**

| Parameter | Type   | Required | Default | Description                  |
| --------- | ------ | -------- | ------- | ---------------------------- |
| `id`      | string | Yes      | —       | The user's unique identifier |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "id": {
        "type": "string",
        "description": "The user's unique identifier"
      }
    },
    "required": [
      "PCID",
      "id"
    ]
  }
  ```
</Expandable>

***

## canny\_retrieve\_vote

Retrieve details of a specific vote

**Parameters:**

| Parameter | Type   | Required | Default | Description                  |
| --------- | ------ | -------- | ------- | ---------------------------- |
| `id`      | string | Yes      | —       | The vote's unique identifier |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "id": {
        "type": "string",
        "description": "The vote's unique identifier"
      }
    },
    "required": [
      "PCID",
      "id"
    ]
  }
  ```
</Expandable>

***

## canny\_update\_company

Update a company's properties

**Parameters:**

| Parameter      | Type   | Required | Default | Description                     |
| -------------- | ------ | -------- | ------- | ------------------------------- |
| `created`      | string | No       | —       | ISO 8601 creation date          |
| `customFields` | object | No       | —       | Custom field key-value pairs    |
| `id`           | string | Yes      | —       | The company's unique identifier |
| `monthlySpend` | number | No       | —       | Monthly spend amount            |
| `name`         | string | No       | —       | Company name                    |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "created": {
        "type": "string",
        "description": "ISO 8601 creation date"
      },
      "customFields": {
        "type": "object",
        "description": "Custom field key-value pairs"
      },
      "id": {
        "type": "string",
        "description": "The company's unique identifier"
      },
      "monthlySpend": {
        "type": "number",
        "description": "Monthly spend amount"
      },
      "name": {
        "type": "string",
        "description": "Company name"
      }
    },
    "required": [
      "PCID",
      "id"
    ]
  }
  ```
</Expandable>

***

## canny\_update\_post

Update an existing post

**Parameters:**

| Parameter      | Type      | Required | Default | Description                          |
| -------------- | --------- | -------- | ------- | ------------------------------------ |
| `customFields` | object    | No       | —       | Updated custom field key-value pairs |
| `details`      | string    | No       | —       | Updated post body                    |
| `eta`          | string    | No       | —       | Updated ETA date                     |
| `etaPublic`    | boolean   | No       | —       | Whether ETA is publicly visible      |
| `imageURLs`    | string\[] | No       | —       | Updated image URLs                   |
| `postID`       | string    | Yes      | —       | The post ID to update                |
| `title`        | string    | No       | —       | Updated post title                   |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "customFields": {
        "type": "object",
        "description": "Updated custom field key-value pairs"
      },
      "details": {
        "type": "string",
        "description": "Updated post body"
      },
      "eta": {
        "type": "string",
        "description": "Updated ETA date"
      },
      "etaPublic": {
        "type": "boolean",
        "description": "Whether ETA is publicly visible"
      },
      "imageURLs": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "Updated image URLs"
      },
      "postID": {
        "type": "string",
        "description": "The post ID to update"
      },
      "title": {
        "type": "string",
        "description": "Updated post title"
      }
    },
    "required": [
      "PCID",
      "postID"
    ]
  }
  ```
</Expandable>
