> ## 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.

# hyperproof

> Compliance management

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

## Tools

| Tool                                                            | Description                                                                                                                                                                                                                |
| --------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [`hyperproof_controls`](#hyperproof_controls)                   | Manage compliance controls in Hyperproof. Controls represent specific security or compliance requirements that organizations must implement and monitor. Actions: list, get, create, update.                               |
| [`hyperproof_tasks`](#hyperproof_tasks)                         | Manage tasks in Hyperproof. Tasks represent action items that need to be completed as part of compliance workflows. Actions: list, get, create, update, list\_comments, create\_comment, update\_comment, delete\_comment. |
| [`hyperproof_risks`](#hyperproof_risks)                         | Manage organizational risks in Hyperproof. Risks represent potential threats or vulnerabilities that could impact compliance or security posture. Actions: list, get, create, update.                                      |
| [`hyperproof_issues`](#hyperproof_issues)                       | Manage compliance issues in Hyperproof. Issues represent identified problems or deficiencies that need resolution. Actions: list, get, create, update, list\_comments, create\_comment, update\_comment, delete\_comment.  |
| [`hyperproof_policies`](#hyperproof_policies)                   | Manage organizational policies in Hyperproof. Policies define the rules and procedures that govern compliance and security practices. Actions: list, get, create, update.                                                  |
| [`hyperproof_policy_versions`](#hyperproof_policy_versions)     | Manage policy versions in Hyperproof. Track different versions of policies over time as they are updated and revised. Actions: list, get, create, update.                                                                  |
| [`hyperproof_programs`](#hyperproof_programs)                   | Manage compliance programs in Hyperproof. Programs represent structured compliance initiatives like SOC 2, ISO 27001, or HIPAA compliance efforts. Actions: list, get, create, update.                                     |
| [`hyperproof_scopes`](#hyperproof_scopes)                       | Manage compliance scopes in Hyperproof. Scopes define boundaries for compliance activities, such as departments, locations, or systems. Actions: list, get, create, update.                                                |
| [`hyperproof_scope_assignments`](#hyperproof_scope_assignments) | Associate objects with hierarchical scopes in Hyperproof. Creates or updates scope assignments for controls, risks, or other compatible objects. Actions: create.                                                          |
| [`hyperproof_questionnaires`](#hyperproof_questionnaires)       | Manage compliance questionnaires in Hyperproof. Questionnaires are used to collect information from vendors or assess compliance status. Actions: list, get, create, update.                                               |
| [`hyperproof_test_results`](#hyperproof_test_results)           | Manage control test results in Hyperproof. Test results document the outcome of control effectiveness testing. Actions: list, get, create, update.                                                                         |
| [`hyperproof_proof`](#hyperproof_proof)                         | Manage proof documents in Hyperproof. Proof represents evidence (documents, screenshots, files) that demonstrate compliance with controls and requirements. Actions: list, get, create, update.                            |
| [`hyperproof_users`](#hyperproof_users)                         | View users in Hyperproof organization. Read-only access to user information. Actions: list, get\_me.                                                                                                                       |
| [`hyperproof_vendors`](#hyperproof_vendors)                     | Manage vendors and third-party organizations in Hyperproof. Track vendor relationships, risk assessments, and compliance status. Actions: list, get, create, update.                                                       |
| [`hyperproof_external_contacts`](#hyperproof_external_contacts) | Manage external contacts in Hyperproof. External contacts are individuals outside the organization, such as vendor representatives or auditors. Actions: list, get, create, update.                                        |
| [`hyperproof_labels`](#hyperproof_labels)                       | Manage labels in Hyperproof. Labels are tags used to categorize and organize compliance objects like controls, risks, and tasks. Actions: list, get, create, update.                                                       |
| [`hyperproof_groups`](#hyperproof_groups)                       | Manage user groups in Hyperproof. Groups allow organizing users for permissions and access control purposes. Actions: list, get, create, update.                                                                           |
| [`hyperproof_roles`](#hyperproof_roles)                         | View roles in Hyperproof. Read-only access to role definitions and permissions. Actions: list.                                                                                                                             |
| [`hyperproof_task_statuses`](#hyperproof_task_statuses)         | View task statuses in Hyperproof. Read-only access to task workflow states (e.g., Open, In Progress, Complete). Actions: list.                                                                                             |
| [`hyperproof_custom_fields`](#hyperproof_custom_fields)         | Manage custom fields in Hyperproof. Custom fields allow extending Hyperproof objects with organization-specific data fields. Actions: list, get, create, update.                                                           |
| [`hyperproof_custom_apps`](#hyperproof_custom_apps)             | Manage custom apps and integrations in Hyperproof. Custom apps allow extending Hyperproof functionality with custom integrations and workflows. Actions: list, get, create, update.                                        |

***

## hyperproof\_controls

Manage compliance controls in Hyperproof. Controls represent specific security or compliance requirements that organizations must implement and monitor. Actions: list, get, create, update.

**Parameters:**

| Parameter              | Type      | Required | Default | Description                                                                                                                                                                 |
| ---------------------- | --------- | -------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `action`               | string    | Yes      | —       | Control action: "list" = retrieve all controls with optional filters; "get" = retrieve single control by ID; "create" = add new control; "update" = modify existing control |
| `controlId`            | string    | No       | —       | Control ID (required for get, update). Example: "d88d505d-5199-11ee-a644-522476618ae8"                                                                                      |
| `controlIdentifier`    | string    | No       | —       | Unique identifier for the control (required for create)                                                                                                                     |
| `description`          | string    | No       | —       | Description of the control (required for create)                                                                                                                            |
| `owner`                | string    | No       | —       | User ID who owns the control (required for create)                                                                                                                          |
| `name`                 | string    | No       | —       | Name of the control                                                                                                                                                         |
| `scopeId`              | string    | No       | —       | Unique identifier of the scope associated with the control                                                                                                                  |
| `notes`                | string    | No       | —       | Additional notes about the control                                                                                                                                          |
| `domainName`           | string    | No       | —       | Name of the domain                                                                                                                                                          |
| `domainId`             | string    | No       | —       | Identifier of the domain (update only)                                                                                                                                      |
| `implementation`       | string    | No       | —       | Implementation status                                                                                                                                                       |
| `testingStatus`        | string    | No       | —       | Testing status                                                                                                                                                              |
| `automation`           | string    | No       | —       | Automation status                                                                                                                                                           |
| `groupId`              | string    | No       | —       | The unique identifier of the group assigned to the control                                                                                                                  |
| `customFields`         | object\[] | No       | —       | Array of custom field values                                                                                                                                                |
| `externalObjectIds`    | string\[] | No       | —       | Array of external object IDs                                                                                                                                                |
| `freshnessPolicy`      | string    | No       | —       | Freshness policy (update only)                                                                                                                                              |
| `freshForDuration`     | string    | No       | —       | Duration after which control becomes stale, ISO-8601 format (update only)                                                                                                   |
| `freshness`            | string    | No       | —       | Freshness status (update only)                                                                                                                                              |
| `freshAsOfDate`        | string    | No       | —       | Date when marked fresh (update only)                                                                                                                                        |
| `freshAsOfNote`        | string    | No       | —       | Note when marked fresh (update only)                                                                                                                                        |
| `resetFreshnessNote`   | string    | No       | —       | Note when freshness is reset (update only)                                                                                                                                  |
| `testingDeficiency`    | string\[] | No       | —       | List of deficiencies (update only)                                                                                                                                          |
| `health`               | string    | No       | —       | Health status (update only)                                                                                                                                                 |
| `overrideHealth`       | boolean   | No       | —       | Override computed health (update only)                                                                                                                                      |
| `computeTestingStatus` | boolean   | No       | —       | Compute testing status automatically (update only)                                                                                                                          |
| `clearDomain`          | boolean   | No       | —       | Clear domain association (update only)                                                                                                                                      |
| `clearGroupId`         | boolean   | No       | —       | Clear group assignment (update only)                                                                                                                                        |
| `status`               | string    | No       | —       | Object status (update only) or filter for list                                                                                                                              |
| `canLink`              | boolean   | No       | —       | Filter for list: if true, only returns controls user can link to                                                                                                            |
| `expandScopes`         | boolean   | No       | —       | For list: include scope controls as well as parent controls                                                                                                                 |
| `expandTeams`          | boolean   | No       | —       | For list: include team controls as well as parent controls                                                                                                                  |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "action": {
        "type": "string",
        "enum": [
          "list",
          "get",
          "create",
          "update"
        ],
        "description": "Control action: \"list\" = retrieve all controls with optional filters; \"get\" = retrieve single control by ID; \"create\" = add new control; \"update\" = modify existing control"
      },
      "controlId": {
        "type": "string",
        "description": "Control ID (required for get, update). Example: \"d88d505d-5199-11ee-a644-522476618ae8\""
      },
      "controlIdentifier": {
        "type": "string",
        "description": "Unique identifier for the control (required for create)"
      },
      "description": {
        "type": "string",
        "description": "Description of the control (required for create)"
      },
      "owner": {
        "type": "string",
        "description": "User ID who owns the control (required for create)"
      },
      "name": {
        "type": "string",
        "description": "Name of the control"
      },
      "scopeId": {
        "type": "string",
        "description": "Unique identifier of the scope associated with the control"
      },
      "notes": {
        "type": "string",
        "description": "Additional notes about the control"
      },
      "domainName": {
        "type": "string",
        "description": "Name of the domain"
      },
      "domainId": {
        "type": "string",
        "description": "Identifier of the domain (update only)"
      },
      "implementation": {
        "type": "string",
        "enum": [
          "unknown",
          "notStarted",
          "inProgress",
          "completed"
        ],
        "description": "Implementation status"
      },
      "testingStatus": {
        "type": "string",
        "enum": [
          "notTested",
          "inProgress",
          "effective",
          "ineffective"
        ],
        "description": "Testing status"
      },
      "automation": {
        "type": "string",
        "enum": [
          "notStarted",
          "partial",
          "fullyAutomated",
          "cantAutomate"
        ],
        "description": "Automation status"
      },
      "groupId": {
        "type": "string",
        "description": "The unique identifier of the group assigned to the control"
      },
      "customFields": {
        "type": "array",
        "items": {
          "type": "object",
          "additionalProperties": true
        },
        "description": "Array of custom field values"
      },
      "externalObjectIds": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "Array of external object IDs"
      },
      "freshnessPolicy": {
        "type": "string",
        "enum": [
          "none",
          "manual"
        ],
        "description": "Freshness policy (update only)"
      },
      "freshForDuration": {
        "type": "string",
        "description": "Duration after which control becomes stale, ISO-8601 format (update only)"
      },
      "freshness": {
        "type": "string",
        "enum": [
          "noFreshness",
          "fresh",
          "expired",
          "unknown"
        ],
        "description": "Freshness status (update only)"
      },
      "freshAsOfDate": {
        "type": "string",
        "description": "Date when marked fresh (update only)"
      },
      "freshAsOfNote": {
        "type": "string",
        "description": "Note when marked fresh (update only)"
      },
      "resetFreshnessNote": {
        "type": "string",
        "description": "Note when freshness is reset (update only)"
      },
      "testingDeficiency": {
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "design",
            "operation"
          ]
        },
        "description": "List of deficiencies (update only)"
      },
      "health": {
        "type": "string",
        "enum": [
          "critical",
          "atRisk",
          "healthy",
          "notAvailable"
        ],
        "description": "Health status (update only)"
      },
      "overrideHealth": {
        "type": "boolean",
        "description": "Override computed health (update only)"
      },
      "computeTestingStatus": {
        "type": "boolean",
        "description": "Compute testing status automatically (update only)"
      },
      "clearDomain": {
        "type": "boolean",
        "description": "Clear domain association (update only)"
      },
      "clearGroupId": {
        "type": "boolean",
        "description": "Clear group assignment (update only)"
      },
      "status": {
        "type": "string",
        "enum": [
          "active",
          "archived"
        ],
        "description": "Object status (update only) or filter for list"
      },
      "canLink": {
        "type": "boolean",
        "description": "Filter for list: if true, only returns controls user can link to"
      },
      "expandScopes": {
        "type": "boolean",
        "description": "For list: include scope controls as well as parent controls"
      },
      "expandTeams": {
        "type": "boolean",
        "description": "For list: include team controls as well as parent controls"
      }
    },
    "required": [
      "PCID",
      "action"
    ]
  }
  ```
</Expandable>

***

## hyperproof\_tasks

Manage tasks in Hyperproof. Tasks represent action items that need to be completed as part of compliance workflows. Actions: list, get, create, update, list\_comments, create\_comment, update\_comment, delete\_comment.

**Parameters:**

| Parameter              | Type    | Required | Default | Description                                                                                                                                                                                                                                                                                          |
| ---------------------- | ------- | -------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `action`               | string  | Yes      | —       | Task action: "list" = retrieve tasks with filters; "get" = retrieve single task by ID; "create" = add new task; "update" = modify task; "list\_comments" = get all comments on task; "create\_comment" = add comment to task; "update\_comment" = modify comment; "delete\_comment" = remove comment |
| `taskId`               | string  | No       | —       | Task ID (required for get, update, comment actions). Example: "ba50096d-bbfa-47af-94a7-092b0984cf35"                                                                                                                                                                                                 |
| `commentId`            | string  | No       | —       | Comment ID (required for update\_comment, delete\_comment)                                                                                                                                                                                                                                           |
| `commentTextFormatted` | string  | No       | —       | Comment text with formatting (required for create\_comment)                                                                                                                                                                                                                                          |
| `isInternalComment`    | boolean | No       | —       | Whether comment is internal only                                                                                                                                                                                                                                                                     |
| `commentObjectId`      | string  | No       | —       | Related object ID for comment                                                                                                                                                                                                                                                                        |
| `commentObjectType`    | string  | No       | —       | Related object type for comment                                                                                                                                                                                                                                                                      |
| `title`                | string  | No       | —       | Task title (required for create)                                                                                                                                                                                                                                                                     |
| `targetObjectId`       | string  | No       | —       | Target object ID (required for create)                                                                                                                                                                                                                                                               |
| `targetObjectType`     | string  | No       | —       | Target object type (required for create, e.g., control, risk)                                                                                                                                                                                                                                        |
| `description`          | string  | No       | —       | Task description                                                                                                                                                                                                                                                                                     |
| `assigneeId`           | string  | No       | —       | User ID of task assignee (also used as list filter)                                                                                                                                                                                                                                                  |
| `priority`             | string  | No       | —       | Task priority (also used as list filter)                                                                                                                                                                                                                                                             |
| `dueDate`              | string  | No       | —       | Due date (ISO-8601 format)                                                                                                                                                                                                                                                                           |
| `groupId`              | string  | No       | —       | Group ID assigned to the task                                                                                                                                                                                                                                                                        |
| `hasIntegration`       | boolean | No       | —       | Whether task has integration (create only)                                                                                                                                                                                                                                                           |
| `targetId`             | string  | No       | —       | Target object ID (update only)                                                                                                                                                                                                                                                                       |
| `targetType`           | string  | No       | —       | Target object type (update only)                                                                                                                                                                                                                                                                     |
| `taskStatusId`         | string  | No       | —       | Task status ID (update only)                                                                                                                                                                                                                                                                         |
| `clearGroupId`         | boolean | No       | —       | Clear group assignment (update only)                                                                                                                                                                                                                                                                 |
| `status`               | string  | No       | —       | For list: filter tasks by status                                                                                                                                                                                                                                                                     |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "action": {
        "type": "string",
        "enum": [
          "list",
          "get",
          "create",
          "update",
          "list_comments",
          "create_comment",
          "update_comment",
          "delete_comment"
        ],
        "description": "Task action: \"list\" = retrieve tasks with filters; \"get\" = retrieve single task by ID; \"create\" = add new task; \"update\" = modify task; \"list_comments\" = get all comments on task; \"create_comment\" = add comment to task; \"update_comment\" = modify comment; \"delete_comment\" = remove comment"
      },
      "taskId": {
        "type": "string",
        "description": "Task ID (required for get, update, comment actions). Example: \"ba50096d-bbfa-47af-94a7-092b0984cf35\""
      },
      "commentId": {
        "type": "string",
        "description": "Comment ID (required for update_comment, delete_comment)"
      },
      "commentTextFormatted": {
        "type": "string",
        "description": "Comment text with formatting (required for create_comment)"
      },
      "isInternalComment": {
        "type": "boolean",
        "description": "Whether comment is internal only"
      },
      "commentObjectId": {
        "type": "string",
        "description": "Related object ID for comment"
      },
      "commentObjectType": {
        "type": "string",
        "description": "Related object type for comment"
      },
      "title": {
        "type": "string",
        "description": "Task title (required for create)"
      },
      "targetObjectId": {
        "type": "string",
        "description": "Target object ID (required for create)"
      },
      "targetObjectType": {
        "type": "string",
        "description": "Target object type (required for create, e.g., control, risk)"
      },
      "description": {
        "type": "string",
        "description": "Task description"
      },
      "assigneeId": {
        "type": "string",
        "description": "User ID of task assignee (also used as list filter)"
      },
      "priority": {
        "type": "string",
        "enum": [
          "highest",
          "high",
          "medium",
          "low",
          "lowest"
        ],
        "description": "Task priority (also used as list filter)"
      },
      "dueDate": {
        "type": "string",
        "description": "Due date (ISO-8601 format)"
      },
      "groupId": {
        "type": "string",
        "description": "Group ID assigned to the task"
      },
      "hasIntegration": {
        "type": "boolean",
        "description": "Whether task has integration (create only)"
      },
      "targetId": {
        "type": "string",
        "description": "Target object ID (update only)"
      },
      "targetType": {
        "type": "string",
        "description": "Target object type (update only)"
      },
      "taskStatusId": {
        "type": "string",
        "description": "Task status ID (update only)"
      },
      "clearGroupId": {
        "type": "boolean",
        "description": "Clear group assignment (update only)"
      },
      "status": {
        "type": "string",
        "description": "For list: filter tasks by status"
      }
    },
    "required": [
      "PCID",
      "action"
    ]
  }
  ```
</Expandable>

***

## hyperproof\_risks

Manage organizational risks in Hyperproof. Risks represent potential threats or vulnerabilities that could impact compliance or security posture. Actions: list, get, create, update.

**Parameters:**

| Parameter                     | Type      | Required | Default | Description                                                                                                                   |
| ----------------------------- | --------- | -------- | ------- | ----------------------------------------------------------------------------------------------------------------------------- |
| `action`                      | string    | Yes      | —       | Risk action: "list" = retrieve all risks; "get" = retrieve single risk by ID; "create" = add new risk; "update" = modify risk |
| `riskId`                      | string    | No       | —       | Risk ID (required for get, update)                                                                                            |
| `riskRegisterId`              | string    | No       | —       | Risk register ID (required for create)                                                                                        |
| `riskIdentifier`              | string    | No       | —       | Human readable unique identifier (required for create)                                                                        |
| `description`                 | string    | No       | —       | Risk description (required for create)                                                                                        |
| `ownerId`                     | string    | No       | —       | Owner user ID (required for create)                                                                                           |
| `name`                        | string    | No       | —       | Name of the risk                                                                                                              |
| `category`                    | string    | No       | —       | Risk category                                                                                                                 |
| `response`                    | string    | No       | —       | Response to the risk                                                                                                          |
| `likelihoodLevel`             | number    | No       | —       | Inherent likelihood level (0-based index)                                                                                     |
| `likelihoodRationale`         | string    | No       | —       | Reasoning for likelihood level                                                                                                |
| `impactLevel`                 | number    | No       | —       | Inherent impact level (0-based index)                                                                                         |
| `impactRationale`             | string    | No       | —       | Reasoning for impact level                                                                                                    |
| `toleranceLevel`              | number    | No       | —       | Tolerance level (0-based index)                                                                                               |
| `groupId`                     | string    | No       | —       | Group ID assigned to risk                                                                                                     |
| `customFields`                | object\[] | No       | —       | Array of custom field values                                                                                                  |
| `residualLikelihoodLevel`     | number    | No       | —       | Residual likelihood level (update only)                                                                                       |
| `residualLikelihoodRationale` | string    | No       | —       | Reasoning for residual likelihood (update only)                                                                               |
| `residualImpactLevel`         | number    | No       | —       | Residual impact level (update only)                                                                                           |
| `residualImpactRationale`     | string    | No       | —       | Reasoning for residual impact (update only)                                                                                   |
| `clearGroupId`                | boolean   | No       | —       | Clear group assignment (update only)                                                                                          |
| `clearCategory`               | boolean   | No       | —       | Clear category (update only)                                                                                                  |
| `clearLikelihoodLevel`        | boolean   | No       | —       | Clear likelihood level (update only)                                                                                          |
| `clearImpactLevel`            | boolean   | No       | —       | Clear impact level (update only)                                                                                              |
| `clearToleranceLevel`         | boolean   | No       | —       | Clear tolerance level (update only)                                                                                           |
| `status`                      | string    | No       | —       | Object status (update only) or filter for list                                                                                |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "action": {
        "type": "string",
        "enum": [
          "list",
          "get",
          "create",
          "update"
        ],
        "description": "Risk action: \"list\" = retrieve all risks; \"get\" = retrieve single risk by ID; \"create\" = add new risk; \"update\" = modify risk"
      },
      "riskId": {
        "type": "string",
        "description": "Risk ID (required for get, update)"
      },
      "riskRegisterId": {
        "type": "string",
        "description": "Risk register ID (required for create)"
      },
      "riskIdentifier": {
        "type": "string",
        "description": "Human readable unique identifier (required for create)"
      },
      "description": {
        "type": "string",
        "description": "Risk description (required for create)"
      },
      "ownerId": {
        "type": "string",
        "description": "Owner user ID (required for create)"
      },
      "name": {
        "type": "string",
        "description": "Name of the risk"
      },
      "category": {
        "type": "string",
        "description": "Risk category"
      },
      "response": {
        "type": "string",
        "enum": [
          "mitigate",
          "accept",
          "transfer",
          "avoid",
          "notSet"
        ],
        "description": "Response to the risk"
      },
      "likelihoodLevel": {
        "type": "number",
        "description": "Inherent likelihood level (0-based index)"
      },
      "likelihoodRationale": {
        "type": "string",
        "description": "Reasoning for likelihood level"
      },
      "impactLevel": {
        "type": "number",
        "description": "Inherent impact level (0-based index)"
      },
      "impactRationale": {
        "type": "string",
        "description": "Reasoning for impact level"
      },
      "toleranceLevel": {
        "type": "number",
        "description": "Tolerance level (0-based index)"
      },
      "groupId": {
        "type": "string",
        "description": "Group ID assigned to risk"
      },
      "customFields": {
        "type": "array",
        "items": {
          "type": "object",
          "additionalProperties": true
        },
        "description": "Array of custom field values"
      },
      "residualLikelihoodLevel": {
        "type": "number",
        "description": "Residual likelihood level (update only)"
      },
      "residualLikelihoodRationale": {
        "type": "string",
        "description": "Reasoning for residual likelihood (update only)"
      },
      "residualImpactLevel": {
        "type": "number",
        "description": "Residual impact level (update only)"
      },
      "residualImpactRationale": {
        "type": "string",
        "description": "Reasoning for residual impact (update only)"
      },
      "clearGroupId": {
        "type": "boolean",
        "description": "Clear group assignment (update only)"
      },
      "clearCategory": {
        "type": "boolean",
        "description": "Clear category (update only)"
      },
      "clearLikelihoodLevel": {
        "type": "boolean",
        "description": "Clear likelihood level (update only)"
      },
      "clearImpactLevel": {
        "type": "boolean",
        "description": "Clear impact level (update only)"
      },
      "clearToleranceLevel": {
        "type": "boolean",
        "description": "Clear tolerance level (update only)"
      },
      "status": {
        "type": "string",
        "enum": [
          "active",
          "archived"
        ],
        "description": "Object status (update only) or filter for list"
      }
    },
    "required": [
      "PCID",
      "action"
    ]
  }
  ```
</Expandable>

***

## hyperproof\_issues

Manage compliance issues in Hyperproof. Issues represent identified problems or deficiencies that need resolution. Actions: list, get, create, update, list\_comments, create\_comment, update\_comment, delete\_comment.

**Parameters:**

| Parameter              | Type      | Required | Default | Description                                                                                                                                                                                                                                                                                        |
| ---------------------- | --------- | -------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `action`               | string    | Yes      | —       | Issue action: "list" = retrieve all issues; "get" = retrieve single issue by ID; "create" = add new issue; "update" = modify issue; "list\_comments" = get all comments on issue; "create\_comment" = add comment to issue; "update\_comment" = modify comment; "delete\_comment" = remove comment |
| `issueId`              | string    | No       | —       | Issue ID (required for get, update, comment actions)                                                                                                                                                                                                                                               |
| `commentId`            | string    | No       | —       | Comment ID (required for update\_comment, delete\_comment)                                                                                                                                                                                                                                         |
| `commentTextFormatted` | string    | No       | —       | Comment text with formatting (required for create\_comment)                                                                                                                                                                                                                                        |
| `isInternalComment`    | boolean   | No       | —       | Whether comment is internal only                                                                                                                                                                                                                                                                   |
| `commentObjectId`      | string    | No       | —       | Related object ID for comment                                                                                                                                                                                                                                                                      |
| `commentObjectType`    | string    | No       | —       | Related object type for comment                                                                                                                                                                                                                                                                    |
| `summary`              | string    | No       | —       | Issue summary (required for create)                                                                                                                                                                                                                                                                |
| `sourceObjectId`       | string    | No       | —       | Source object ID (required for create)                                                                                                                                                                                                                                                             |
| `sourceObjectType`     | string    | No       | —       | Source object type (required for create)                                                                                                                                                                                                                                                           |
| `description`          | string    | No       | —       | Issue description                                                                                                                                                                                                                                                                                  |
| `assigneeId`           | string    | No       | —       | Assignee user ID                                                                                                                                                                                                                                                                                   |
| `priority`             | string    | No       | —       | Issue priority                                                                                                                                                                                                                                                                                     |
| `dueDate`              | string    | No       | —       | Due date (ISO-8601 format)                                                                                                                                                                                                                                                                         |
| `customFields`         | object\[] | No       | —       | Array of custom field values                                                                                                                                                                                                                                                                       |
| `workItemStatus`       | string    | No       | —       | Work item status                                                                                                                                                                                                                                                                                   |
| `impact`               | string    | No       | —       | Impact level                                                                                                                                                                                                                                                                                       |
| `executiveSponsor`     | string    | No       | —       | Executive sponsor user ID                                                                                                                                                                                                                                                                          |
| `businessOwner`        | string    | No       | —       | Business owner user ID                                                                                                                                                                                                                                                                             |
| `actionPlan`           | string    | No       | —       | Action plan description                                                                                                                                                                                                                                                                            |
| `discoveredOn`         | string    | No       | —       | Date discovered (ISO-8601 format)                                                                                                                                                                                                                                                                  |
| `closedOn`             | string    | No       | —       | Date closed (ISO-8601 format)                                                                                                                                                                                                                                                                      |
| `effortLevel`          | string    | No       | —       | Effort level required                                                                                                                                                                                                                                                                              |
| `isPrivate`            | boolean   | No       | —       | Whether issue is private                                                                                                                                                                                                                                                                           |
| `groupId`              | string    | No       | —       | Group ID assigned to issue                                                                                                                                                                                                                                                                         |
| `clearDueDate`         | boolean   | No       | —       | Clear due date (update only)                                                                                                                                                                                                                                                                       |
| `clearGroupId`         | boolean   | No       | —       | Clear group assignment (update only)                                                                                                                                                                                                                                                               |
| `status`               | string    | No       | —       | Object status (update only) or filter for list                                                                                                                                                                                                                                                     |
| `severity`             | string    | No       | —       | For list: filter issues by severity                                                                                                                                                                                                                                                                |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "action": {
        "type": "string",
        "enum": [
          "list",
          "get",
          "create",
          "update",
          "list_comments",
          "create_comment",
          "update_comment",
          "delete_comment"
        ],
        "description": "Issue action: \"list\" = retrieve all issues; \"get\" = retrieve single issue by ID; \"create\" = add new issue; \"update\" = modify issue; \"list_comments\" = get all comments on issue; \"create_comment\" = add comment to issue; \"update_comment\" = modify comment; \"delete_comment\" = remove comment"
      },
      "issueId": {
        "type": "string",
        "description": "Issue ID (required for get, update, comment actions)"
      },
      "commentId": {
        "type": "string",
        "description": "Comment ID (required for update_comment, delete_comment)"
      },
      "commentTextFormatted": {
        "type": "string",
        "description": "Comment text with formatting (required for create_comment)"
      },
      "isInternalComment": {
        "type": "boolean",
        "description": "Whether comment is internal only"
      },
      "commentObjectId": {
        "type": "string",
        "description": "Related object ID for comment"
      },
      "commentObjectType": {
        "type": "string",
        "description": "Related object type for comment"
      },
      "summary": {
        "type": "string",
        "description": "Issue summary (required for create)"
      },
      "sourceObjectId": {
        "type": "string",
        "description": "Source object ID (required for create)"
      },
      "sourceObjectType": {
        "type": "string",
        "description": "Source object type (required for create)"
      },
      "description": {
        "type": "string",
        "description": "Issue description"
      },
      "assigneeId": {
        "type": "string",
        "description": "Assignee user ID"
      },
      "priority": {
        "type": "string",
        "enum": [
          "highest",
          "high",
          "medium",
          "low",
          "lowest"
        ],
        "description": "Issue priority"
      },
      "dueDate": {
        "type": "string",
        "description": "Due date (ISO-8601 format)"
      },
      "customFields": {
        "type": "array",
        "items": {
          "type": "object",
          "additionalProperties": true
        },
        "description": "Array of custom field values"
      },
      "workItemStatus": {
        "type": "string",
        "enum": [
          "notStarted",
          "inProgress",
          "remediated",
          "accepted"
        ],
        "description": "Work item status"
      },
      "impact": {
        "type": "string",
        "enum": [
          "highest",
          "high",
          "medium",
          "low",
          "lowest"
        ],
        "description": "Impact level"
      },
      "executiveSponsor": {
        "type": "string",
        "description": "Executive sponsor user ID"
      },
      "businessOwner": {
        "type": "string",
        "description": "Business owner user ID"
      },
      "actionPlan": {
        "type": "string",
        "description": "Action plan description"
      },
      "discoveredOn": {
        "type": "string",
        "description": "Date discovered (ISO-8601 format)"
      },
      "closedOn": {
        "type": "string",
        "description": "Date closed (ISO-8601 format)"
      },
      "effortLevel": {
        "type": "string",
        "enum": [
          "highest",
          "high",
          "medium",
          "low",
          "lowest"
        ],
        "description": "Effort level required"
      },
      "isPrivate": {
        "type": "boolean",
        "description": "Whether issue is private"
      },
      "groupId": {
        "type": "string",
        "description": "Group ID assigned to issue"
      },
      "clearDueDate": {
        "type": "boolean",
        "description": "Clear due date (update only)"
      },
      "clearGroupId": {
        "type": "boolean",
        "description": "Clear group assignment (update only)"
      },
      "status": {
        "type": "string",
        "enum": [
          "active",
          "archived"
        ],
        "description": "Object status (update only) or filter for list"
      },
      "severity": {
        "type": "string",
        "description": "For list: filter issues by severity"
      }
    },
    "required": [
      "PCID",
      "action"
    ]
  }
  ```
</Expandable>

***

## hyperproof\_policies

Manage organizational policies in Hyperproof. Policies define the rules and procedures that govern compliance and security practices. Actions: list, get, create, update.

**Parameters:**

| Parameter      | Type      | Required | Default | Description                                                                                                                              |
| -------------- | --------- | -------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| `action`       | string    | Yes      | —       | Policy action: "list" = retrieve all policies; "get" = retrieve single policy by ID; "create" = add new policy; "update" = modify policy |
| `policyId`     | string    | No       | —       | Policy ID (required for get, update)                                                                                                     |
| `name`         | string    | No       | —       | Policy name (required for create)                                                                                                        |
| `description`  | string    | No       | —       | Policy description                                                                                                                       |
| `ownerId`      | string    | No       | —       | Owner user ID                                                                                                                            |
| `customFields` | object\[] | No       | —       | Array of custom field values                                                                                                             |
| `status`       | string    | No       | —       | Object status (update only) or filter for list                                                                                           |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "action": {
        "type": "string",
        "enum": [
          "list",
          "get",
          "create",
          "update"
        ],
        "description": "Policy action: \"list\" = retrieve all policies; \"get\" = retrieve single policy by ID; \"create\" = add new policy; \"update\" = modify policy"
      },
      "policyId": {
        "type": "string",
        "description": "Policy ID (required for get, update)"
      },
      "name": {
        "type": "string",
        "description": "Policy name (required for create)"
      },
      "description": {
        "type": "string",
        "description": "Policy description"
      },
      "ownerId": {
        "type": "string",
        "description": "Owner user ID"
      },
      "customFields": {
        "type": "array",
        "items": {
          "type": "object",
          "additionalProperties": true
        },
        "description": "Array of custom field values"
      },
      "status": {
        "type": "string",
        "enum": [
          "active",
          "archived"
        ],
        "description": "Object status (update only) or filter for list"
      }
    },
    "required": [
      "PCID",
      "action"
    ]
  }
  ```
</Expandable>

***

## hyperproof\_policy\_versions

Manage policy versions in Hyperproof. Track different versions of policies over time as they are updated and revised. Actions: list, get, create, update.

**Parameters:**

| Parameter   | Type   | Required | Default | Description                                                                                                                                         |
| ----------- | ------ | -------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `action`    | string | Yes      | —       | Policy version action: "list" = retrieve all versions; "get" = retrieve single version by ID; "create" = add new version; "update" = modify version |
| `versionId` | string | No       | —       | Version ID (required for get, update)                                                                                                               |
| `policyId`  | string | No       | —       | Policy ID (for filtering versions of specific policy)                                                                                               |
| `data`      | object | No       | —       | Version data for create/update. Varies by policy                                                                                                    |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "action": {
        "type": "string",
        "enum": [
          "list",
          "get",
          "create",
          "update"
        ],
        "description": "Policy version action: \"list\" = retrieve all versions; \"get\" = retrieve single version by ID; \"create\" = add new version; \"update\" = modify version"
      },
      "versionId": {
        "type": "string",
        "description": "Version ID (required for get, update)"
      },
      "policyId": {
        "type": "string",
        "description": "Policy ID (for filtering versions of specific policy)"
      },
      "data": {
        "type": "object",
        "additionalProperties": true,
        "description": "Version data for create/update. Varies by policy"
      }
    },
    "required": [
      "PCID",
      "action"
    ]
  }
  ```
</Expandable>

***

## hyperproof\_programs

Manage compliance programs in Hyperproof. Programs represent structured compliance initiatives like SOC 2, ISO 27001, or HIPAA compliance efforts. Actions: list, get, create, update.

**Parameters:**

| Parameter                   | Type      | Required | Default | Description                                                                                                                                  |
| --------------------------- | --------- | -------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| `action`                    | string    | Yes      | —       | Program action: "list" = retrieve all programs; "get" = retrieve single program by ID; "create" = add new program; "update" = modify program |
| `programId`                 | string    | No       | —       | Program ID (required for get, update)                                                                                                        |
| `description`               | string    | No       | —       | Program description (required for create)                                                                                                    |
| `name`                      | string    | No       | —       | Program name (required for create)                                                                                                           |
| `sectionRootId`             | string    | No       | —       | Section root ID (required for create)                                                                                                        |
| `primaryContactId`          | string    | No       | —       | Primary contact user ID (required for create)                                                                                                |
| `workStatus`                | string    | No       | —       | Work status (required for create)                                                                                                            |
| `sourceTemplateId`          | string    | No       | —       | Source template ID (create only)                                                                                                             |
| `selectedBaselines`         | string\[] | No       | —       | Selected baselines                                                                                                                           |
| `jumpstartProgramIds`       | string\[] | No       | —       | Jumpstart program IDs (create only)                                                                                                          |
| `cloneProgramName`          | string    | No       | —       | Name of program to clone                                                                                                                     |
| `frameworkLicenseNotice`    | string    | No       | —       | Framework license notice                                                                                                                     |
| `overrideHealth`            | boolean   | No       | —       | Override health status (update only)                                                                                                         |
| `overrideHealthHealth`      | string    | No       | —       | Health status override value (update only)                                                                                                   |
| `overrideHealthBy`          | string    | No       | —       | User ID who overrode health (update only)                                                                                                    |
| `overrideHealthReason`      | string    | No       | —       | Reason for health override (update only)                                                                                                     |
| `baselineEnabled`           | boolean   | No       | —       | Whether baseline is enabled (update only)                                                                                                    |
| `frameworkVersionMappingId` | string    | No       | —       | Framework version mapping ID (update only)                                                                                                   |
| `removedRequirementIds`     | string\[] | No       | —       | Requirement IDs to remove (update only)                                                                                                      |
| `updatedRequirementIds`     | string\[] | No       | —       | Requirement IDs to update (update only)                                                                                                      |
| `isUpdateComplete`          | boolean   | No       | —       | Whether update is complete (update only)                                                                                                     |
| `status`                    | string    | No       | —       | For list: filter programs by status                                                                                                          |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "action": {
        "type": "string",
        "enum": [
          "list",
          "get",
          "create",
          "update"
        ],
        "description": "Program action: \"list\" = retrieve all programs; \"get\" = retrieve single program by ID; \"create\" = add new program; \"update\" = modify program"
      },
      "programId": {
        "type": "string",
        "description": "Program ID (required for get, update)"
      },
      "description": {
        "type": "string",
        "description": "Program description (required for create)"
      },
      "name": {
        "type": "string",
        "description": "Program name (required for create)"
      },
      "sectionRootId": {
        "type": "string",
        "description": "Section root ID (required for create)"
      },
      "primaryContactId": {
        "type": "string",
        "description": "Primary contact user ID (required for create)"
      },
      "workStatus": {
        "type": "string",
        "enum": [
          "defining",
          "operating"
        ],
        "description": "Work status (required for create)"
      },
      "sourceTemplateId": {
        "type": "string",
        "description": "Source template ID (create only)"
      },
      "selectedBaselines": {
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "low",
            "moderate",
            "high",
            "level1",
            "level2",
            "level3",
            "level4",
            "level5",
            "privacy",
            "security",
            "availability",
            "confidentiality",
            "processingIntegrity"
          ]
        },
        "description": "Selected baselines"
      },
      "jumpstartProgramIds": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "Jumpstart program IDs (create only)"
      },
      "cloneProgramName": {
        "type": "string",
        "description": "Name of program to clone"
      },
      "frameworkLicenseNotice": {
        "type": "string",
        "description": "Framework license notice"
      },
      "overrideHealth": {
        "type": "boolean",
        "description": "Override health status (update only)"
      },
      "overrideHealthHealth": {
        "type": "string",
        "enum": [
          "critical",
          "atRisk",
          "healthy",
          "notAvailable"
        ],
        "description": "Health status override value (update only)"
      },
      "overrideHealthBy": {
        "type": "string",
        "description": "User ID who overrode health (update only)"
      },
      "overrideHealthReason": {
        "type": "string",
        "description": "Reason for health override (update only)"
      },
      "baselineEnabled": {
        "type": "boolean",
        "description": "Whether baseline is enabled (update only)"
      },
      "frameworkVersionMappingId": {
        "type": "string",
        "description": "Framework version mapping ID (update only)"
      },
      "removedRequirementIds": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "Requirement IDs to remove (update only)"
      },
      "updatedRequirementIds": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "Requirement IDs to update (update only)"
      },
      "isUpdateComplete": {
        "type": "boolean",
        "description": "Whether update is complete (update only)"
      },
      "status": {
        "type": "string",
        "enum": [
          "active",
          "archived"
        ],
        "description": "For list: filter programs by status"
      }
    },
    "required": [
      "PCID",
      "action"
    ]
  }
  ```
</Expandable>

***

## hyperproof\_scopes

Manage compliance scopes in Hyperproof. Scopes define boundaries for compliance activities, such as departments, locations, or systems. Actions: list, get, create, update.

**Parameters:**

| Parameter      | Type      | Required | Default | Description                                                                                                                        |
| -------------- | --------- | -------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| `action`       | string    | Yes      | —       | Scope action: "list" = retrieve all scopes; "get" = retrieve single scope by ID; "create" = add new scope; "update" = modify scope |
| `scopeId`      | string    | No       | —       | Scope ID (required for get, update)                                                                                                |
| `name`         | string    | No       | —       | Scope name (required for create)                                                                                                   |
| `owner`        | string    | No       | —       | Owner user ID (required for create)                                                                                                |
| `description`  | string    | No       | —       | Scope description                                                                                                                  |
| `parentId`     | string    | No       | —       | Parent scope ID                                                                                                                    |
| `customFields` | object\[] | No       | —       | Array of custom field values                                                                                                       |
| `status`       | string    | No       | —       | Object status (update only)                                                                                                        |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "action": {
        "type": "string",
        "enum": [
          "list",
          "get",
          "create",
          "update"
        ],
        "description": "Scope action: \"list\" = retrieve all scopes; \"get\" = retrieve single scope by ID; \"create\" = add new scope; \"update\" = modify scope"
      },
      "scopeId": {
        "type": "string",
        "description": "Scope ID (required for get, update)"
      },
      "name": {
        "type": "string",
        "description": "Scope name (required for create)"
      },
      "owner": {
        "type": "string",
        "description": "Owner user ID (required for create)"
      },
      "description": {
        "type": "string",
        "description": "Scope description"
      },
      "parentId": {
        "type": "string",
        "description": "Parent scope ID"
      },
      "customFields": {
        "type": "array",
        "items": {
          "type": "object",
          "additionalProperties": true
        },
        "description": "Array of custom field values"
      },
      "status": {
        "type": "string",
        "enum": [
          "active",
          "archived"
        ],
        "description": "Object status (update only)"
      }
    },
    "required": [
      "PCID",
      "action"
    ]
  }
  ```
</Expandable>

***

## hyperproof\_scope\_assignments

Associate objects with hierarchical scopes in Hyperproof. Creates or updates scope assignments for controls, risks, or other compatible objects. Actions: create.

**Parameters:**

| Parameter     | Type      | Required | Default | Description                                                                                                              |
| ------------- | --------- | -------- | ------- | ------------------------------------------------------------------------------------------------------------------------ |
| `action`      | string    | Yes      | —       | Scope assignment action: "create" = create or update scope assignments (pass empty scopeIds array to remove assignments) |
| `assignments` | object\[] | Yes      | —       | Array of scope assignment objects (required for create)                                                                  |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "action": {
        "type": "string",
        "enum": [
          "create"
        ],
        "description": "Scope assignment action: \"create\" = create or update scope assignments (pass empty scopeIds array to remove assignments)"
      },
      "assignments": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "objectType": {
              "type": "string",
              "enum": [
                "audit",
                "connection",
                "control",
                "controlScope",
                "domain",
                "freshnessHistory",
                "exportFile",
                "label",
                "organization",
                "organizationUser",
                "policy",
                "program",
                "proof",
                "request",
                "requirement",
                "risk",
                "riskRegister",
                "section",
                "task",
                "scope",
                "template",
                "user"
              ],
              "description": "Type of object to associate"
            },
            "objectId": {
              "type": "string",
              "description": "Unique identifier of object to associate with scopes"
            },
            "scopeIds": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Array of scope IDs to associate (empty array removes assignments)"
            }
          }
        },
        "description": "Array of scope assignment objects (required for create)"
      }
    },
    "required": [
      "PCID",
      "action",
      "assignments"
    ]
  }
  ```
</Expandable>

***

## hyperproof\_questionnaires

Manage compliance questionnaires in Hyperproof. Questionnaires are used to collect information from vendors or assess compliance status. Actions: list, get, create, update.

**Parameters:**

| Parameter         | Type   | Required | Default | Description                                                                                                                                                                |
| ----------------- | ------ | -------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `action`          | string | Yes      | —       | Questionnaire action: "list" = retrieve all questionnaires; "get" = retrieve single questionnaire by ID; "create" = add new questionnaire; "update" = modify questionnaire |
| `questionnaireId` | string | No       | —       | Questionnaire ID (required for get, update)                                                                                                                                |
| `data`            | object | No       | —       | Questionnaire data. CREATE requires: name. CREATE optional: description, customFields. UPDATE optional: name, description, customFields, status (active\|archived)         |
| `status`          | string | No       | —       | For list: filter questionnaires by status                                                                                                                                  |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "action": {
        "type": "string",
        "enum": [
          "list",
          "get",
          "create",
          "update"
        ],
        "description": "Questionnaire action: \"list\" = retrieve all questionnaires; \"get\" = retrieve single questionnaire by ID; \"create\" = add new questionnaire; \"update\" = modify questionnaire"
      },
      "questionnaireId": {
        "type": "string",
        "description": "Questionnaire ID (required for get, update)"
      },
      "data": {
        "type": "object",
        "additionalProperties": true,
        "description": "Questionnaire data. CREATE requires: name. CREATE optional: description, customFields. UPDATE optional: name, description, customFields, status (active|archived)"
      },
      "status": {
        "type": "string",
        "description": "For list: filter questionnaires by status"
      }
    },
    "required": [
      "PCID",
      "action"
    ]
  }
  ```
</Expandable>

***

## hyperproof\_test\_results

Manage control test results in Hyperproof. Test results document the outcome of control effectiveness testing. Actions: list, get, create, update.

**Parameters:**

| Parameter      | Type   | Required | Default | Description                                                                                                                                                                                                                                                                                             |
| -------------- | ------ | -------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `action`       | string | Yes      | —       | Test result action: "list" = retrieve all test results; "get" = retrieve single test result by ID; "create" = add new test result; "update" = modify test result                                                                                                                                        |
| `testResultId` | string | No       | —       | Test result ID (required for get, update)                                                                                                                                                                                                                                                               |
| `data`         | object | No       | —       | Test result data. CREATE requires: testParentObjectId, testParentObjectType, testDate. CREATE optional: outcome (passed\|failed\|needsReview\|inRemediation\|resolved), testFrequency, testNotes, testerId, effectiveDate, expirationDate, customFields. UPDATE optional: all CREATE fields plus status |
| `controlId`    | string | No       | —       | For list: filter test results by control ID                                                                                                                                                                                                                                                             |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "action": {
        "type": "string",
        "enum": [
          "list",
          "get",
          "create",
          "update"
        ],
        "description": "Test result action: \"list\" = retrieve all test results; \"get\" = retrieve single test result by ID; \"create\" = add new test result; \"update\" = modify test result"
      },
      "testResultId": {
        "type": "string",
        "description": "Test result ID (required for get, update)"
      },
      "data": {
        "type": "object",
        "additionalProperties": true,
        "description": "Test result data. CREATE requires: testParentObjectId, testParentObjectType, testDate. CREATE optional: outcome (passed|failed|needsReview|inRemediation|resolved), testFrequency, testNotes, testerId, effectiveDate, expirationDate, customFields. UPDATE optional: all CREATE fields plus status"
      },
      "controlId": {
        "type": "string",
        "description": "For list: filter test results by control ID"
      }
    },
    "required": [
      "PCID",
      "action"
    ]
  }
  ```
</Expandable>

***

## hyperproof\_proof

Manage proof documents in Hyperproof. Proof represents evidence (documents, screenshots, files) that demonstrate compliance with controls and requirements. Actions: list, get, create, update.

**Parameters:**

| Parameter          | Type   | Required | Default | Description                                                                                                                                         |
| ------------------ | ------ | -------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `action`           | string | Yes      | —       | Proof action: "list" = retrieve all proof items; "get" = retrieve single proof by ID; "create" = upload new proof; "update" = modify proof metadata |
| `proofId`          | string | No       | —       | Proof ID (required for get, update)                                                                                                                 |
| `data`             | object | No       | —       | Proof data. CREATE/UPDATE optional: filename, linkedObjectId, linkedObjectType, linkedObjectParentId, notes, isPrivate, nameOverride                |
| `linkedObjectId`   | string | No       | —       | For list: filter proof by linked object ID (control, risk, etc.)                                                                                    |
| `linkedObjectType` | string | No       | —       | For list: filter proof by linked object type                                                                                                        |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "action": {
        "type": "string",
        "enum": [
          "list",
          "get",
          "create",
          "update"
        ],
        "description": "Proof action: \"list\" = retrieve all proof items; \"get\" = retrieve single proof by ID; \"create\" = upload new proof; \"update\" = modify proof metadata"
      },
      "proofId": {
        "type": "string",
        "description": "Proof ID (required for get, update)"
      },
      "data": {
        "type": "object",
        "additionalProperties": true,
        "description": "Proof data. CREATE/UPDATE optional: filename, linkedObjectId, linkedObjectType, linkedObjectParentId, notes, isPrivate, nameOverride"
      },
      "linkedObjectId": {
        "type": "string",
        "description": "For list: filter proof by linked object ID (control, risk, etc.)"
      },
      "linkedObjectType": {
        "type": "string",
        "description": "For list: filter proof by linked object type"
      }
    },
    "required": [
      "PCID",
      "action"
    ]
  }
  ```
</Expandable>

***

## hyperproof\_users

View users in Hyperproof organization. Read-only access to user information. Actions: list, get\_me.

**Parameters:**

| Parameter            | Type    | Required | Default | Description                                                                                                                                   |
| -------------------- | ------- | -------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
| `action`             | string  | Yes      | —       | User action: "list" = retrieve all users in organization; "get\_me" = retrieve current authenticated user info                                |
| `expand`             | string  | No       | —       | Comma-separated fields to expand. Supported: identityProviders, organizations (for get\_me); identityProviders, organizationRoleId (for list) |
| `includeDeactivated` | boolean | No       | —       | For list: include deactivated users in response                                                                                               |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "action": {
        "type": "string",
        "enum": [
          "list",
          "get_me"
        ],
        "description": "User action: \"list\" = retrieve all users in organization; \"get_me\" = retrieve current authenticated user info"
      },
      "expand": {
        "type": "string",
        "description": "Comma-separated fields to expand. Supported: identityProviders, organizations (for get_me); identityProviders, organizationRoleId (for list)"
      },
      "includeDeactivated": {
        "type": "boolean",
        "description": "For list: include deactivated users in response"
      }
    },
    "required": [
      "PCID",
      "action"
    ]
  }
  ```
</Expandable>

***

## hyperproof\_vendors

Manage vendors and third-party organizations in Hyperproof. Track vendor relationships, risk assessments, and compliance status. Actions: list, get, create, update.

**Parameters:**

| Parameter                    | Type      | Required | Default | Description                                                                                                                             |
| ---------------------------- | --------- | -------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| `action`                     | string    | Yes      | —       | Vendor action: "list" = retrieve all vendors; "get" = retrieve single vendor by ID; "create" = add new vendor; "update" = modify vendor |
| `vendorId`                   | string    | No       | —       | Vendor ID (required for get, update)                                                                                                    |
| `name`                       | string    | No       | —       | Vendor name (required for create)                                                                                                       |
| `ownerId`                    | string    | No       | —       | Owner user ID (required for create)                                                                                                     |
| `vendorStatus`               | string    | No       | —       | Vendor status (required for create)                                                                                                     |
| `category`                   | string    | No       | —       | Vendor category                                                                                                                         |
| `groupId`                    | string    | No       | —       | Group ID assigned to vendor                                                                                                             |
| `tolerance`                  | string    | No       | —       | Risk tolerance level                                                                                                                    |
| `contractStartDate`          | string    | No       | —       | Contract start date (ISO-8601 format)                                                                                                   |
| `contractEndDate`            | string    | No       | —       | Contract end date (ISO-8601 format)                                                                                                     |
| `contacts`                   | object\[] | No       | —       | Array of external contacts \{givenName, surname, email}                                                                                 |
| `customFields`               | object\[] | No       | —       | Array of custom field values                                                                                                            |
| `clearCategory`              | boolean   | No       | —       | Clear category (update only)                                                                                                            |
| `clearGroupId`               | boolean   | No       | —       | Clear group assignment (update only)                                                                                                    |
| `riskLevel`                  | string    | No       | —       | Risk level (update only)                                                                                                                |
| `riskLevelIsOverridden`      | boolean   | No       | —       | Whether risk level is overridden (update only)                                                                                          |
| `riskLevelOverrideReasoning` | string    | No       | —       | Reasoning for risk override (update only)                                                                                               |
| `clearContractStartDate`     | boolean   | No       | —       | Clear contract start date (update only)                                                                                                 |
| `clearContractEndDate`       | boolean   | No       | —       | Clear contract end date (update only)                                                                                                   |
| `freshnessPolicy`            | string    | No       | —       | Freshness policy (update only)                                                                                                          |
| `freshForDuration`           | string    | No       | —       | Duration after which vendor becomes stale (update only)                                                                                 |
| `freshness`                  | string    | No       | —       | Freshness status (update only)                                                                                                          |
| `freshAsOfDate`              | string    | No       | —       | Date marked fresh (update only)                                                                                                         |
| `freshAsOfNote`              | string    | No       | —       | Note when marked fresh (update only)                                                                                                    |
| `resetFreshnessNote`         | string    | No       | —       | Note when freshness reset (update only)                                                                                                 |
| `status`                     | string    | No       | —       | Object status (update only) or filter for list                                                                                          |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "action": {
        "type": "string",
        "enum": [
          "list",
          "get",
          "create",
          "update"
        ],
        "description": "Vendor action: \"list\" = retrieve all vendors; \"get\" = retrieve single vendor by ID; \"create\" = add new vendor; \"update\" = modify vendor"
      },
      "vendorId": {
        "type": "string",
        "description": "Vendor ID (required for get, update)"
      },
      "name": {
        "type": "string",
        "description": "Vendor name (required for create)"
      },
      "ownerId": {
        "type": "string",
        "description": "Owner user ID (required for create)"
      },
      "vendorStatus": {
        "type": "string",
        "enum": [
          "notSet",
          "preassessment",
          "approved",
          "active",
          "inactive",
          "expired",
          "rejected"
        ],
        "description": "Vendor status (required for create)"
      },
      "category": {
        "type": "string",
        "description": "Vendor category"
      },
      "groupId": {
        "type": "string",
        "description": "Group ID assigned to vendor"
      },
      "tolerance": {
        "type": "string",
        "enum": [
          "notSet",
          "veryHigh",
          "high",
          "moderate",
          "low",
          "veryLow"
        ],
        "description": "Risk tolerance level"
      },
      "contractStartDate": {
        "type": "string",
        "description": "Contract start date (ISO-8601 format)"
      },
      "contractEndDate": {
        "type": "string",
        "description": "Contract end date (ISO-8601 format)"
      },
      "contacts": {
        "type": "array",
        "items": {
          "type": "object",
          "additionalProperties": true
        },
        "description": "Array of external contacts {givenName, surname, email}"
      },
      "customFields": {
        "type": "array",
        "items": {
          "type": "object",
          "additionalProperties": true
        },
        "description": "Array of custom field values"
      },
      "clearCategory": {
        "type": "boolean",
        "description": "Clear category (update only)"
      },
      "clearGroupId": {
        "type": "boolean",
        "description": "Clear group assignment (update only)"
      },
      "riskLevel": {
        "type": "string",
        "enum": [
          "notSet",
          "veryHigh",
          "high",
          "moderate",
          "low",
          "veryLow"
        ],
        "description": "Risk level (update only)"
      },
      "riskLevelIsOverridden": {
        "type": "boolean",
        "description": "Whether risk level is overridden (update only)"
      },
      "riskLevelOverrideReasoning": {
        "type": "string",
        "description": "Reasoning for risk override (update only)"
      },
      "clearContractStartDate": {
        "type": "boolean",
        "description": "Clear contract start date (update only)"
      },
      "clearContractEndDate": {
        "type": "boolean",
        "description": "Clear contract end date (update only)"
      },
      "freshnessPolicy": {
        "type": "string",
        "enum": [
          "none",
          "manual"
        ],
        "description": "Freshness policy (update only)"
      },
      "freshForDuration": {
        "type": "string",
        "description": "Duration after which vendor becomes stale (update only)"
      },
      "freshness": {
        "type": "string",
        "enum": [
          "noFreshness",
          "fresh",
          "expired",
          "unknown"
        ],
        "description": "Freshness status (update only)"
      },
      "freshAsOfDate": {
        "type": "string",
        "description": "Date marked fresh (update only)"
      },
      "freshAsOfNote": {
        "type": "string",
        "description": "Note when marked fresh (update only)"
      },
      "resetFreshnessNote": {
        "type": "string",
        "description": "Note when freshness reset (update only)"
      },
      "status": {
        "type": "string",
        "enum": [
          "active",
          "archived"
        ],
        "description": "Object status (update only) or filter for list"
      }
    },
    "required": [
      "PCID",
      "action"
    ]
  }
  ```
</Expandable>

***

## hyperproof\_external\_contacts

Manage external contacts in Hyperproof. External contacts are individuals outside the organization, such as vendor representatives or auditors. Actions: list, get, create, update.

**Parameters:**

| Parameter    | Type   | Required | Default | Description                                                                                                                                           |
| ------------ | ------ | -------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
| `action`     | string | Yes      | —       | Contact action: "list" = retrieve all external contacts; "get" = retrieve single contact by ID; "create" = add new contact; "update" = modify contact |
| `contactId`  | string | No       | —       | Contact ID (required for get, update)                                                                                                                 |
| `givenName`  | string | No       | —       | Given name (required for create)                                                                                                                      |
| `surname`    | string | No       | —       | Surname (required for create)                                                                                                                         |
| `email`      | string | No       | —       | Email address (required for create)                                                                                                                   |
| `objectType` | string | No       | —       | Object type to associate with (required for create)                                                                                                   |
| `objectId`   | string | No       | —       | Object ID to associate with (required for create)                                                                                                     |
| `vendorId`   | string | No       | —       | For list: filter contacts by vendor ID                                                                                                                |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "action": {
        "type": "string",
        "enum": [
          "list",
          "get",
          "create",
          "update"
        ],
        "description": "Contact action: \"list\" = retrieve all external contacts; \"get\" = retrieve single contact by ID; \"create\" = add new contact; \"update\" = modify contact"
      },
      "contactId": {
        "type": "string",
        "description": "Contact ID (required for get, update)"
      },
      "givenName": {
        "type": "string",
        "description": "Given name (required for create)"
      },
      "surname": {
        "type": "string",
        "description": "Surname (required for create)"
      },
      "email": {
        "type": "string",
        "description": "Email address (required for create)"
      },
      "objectType": {
        "type": "string",
        "enum": [
          "vendor",
          "risk"
        ],
        "description": "Object type to associate with (required for create)"
      },
      "objectId": {
        "type": "string",
        "description": "Object ID to associate with (required for create)"
      },
      "vendorId": {
        "type": "string",
        "description": "For list: filter contacts by vendor ID"
      }
    },
    "required": [
      "PCID",
      "action"
    ]
  }
  ```
</Expandable>

***

## hyperproof\_labels

Manage labels in Hyperproof. Labels are tags used to categorize and organize compliance objects like controls, risks, and tasks. Actions: list, get, create, update.

**Parameters:**

| Parameter            | Type      | Required | Default | Description                                                                                                                        |
| -------------------- | --------- | -------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| `action`             | string    | Yes      | —       | Label action: "list" = retrieve all labels; "get" = retrieve single label by ID; "create" = add new label; "update" = modify label |
| `labelId`            | string    | No       | —       | Label ID (required for get, update)                                                                                                |
| `name`               | string    | No       | —       | Label name (required for create)                                                                                                   |
| `description`        | string    | No       | —       | Label description                                                                                                                  |
| `freshnessPolicy`    | string    | No       | —       | Freshness policy (update only)                                                                                                     |
| `freshForDuration`   | string    | No       | —       | Duration after which label becomes stale (update only)                                                                             |
| `freshness`          | string    | No       | —       | Freshness status (update only)                                                                                                     |
| `freshAsOfDate`      | string    | No       | —       | Date marked fresh (update only)                                                                                                    |
| `freshAsOfNote`      | string    | No       | —       | Note when marked fresh (update only)                                                                                               |
| `resetFreshnessNote` | string    | No       | —       | Note when freshness reset (update only)                                                                                            |
| `customFields`       | object\[] | No       | —       | Array of custom field values (update only)                                                                                         |
| `status`             | string    | No       | —       | Object status (update only)                                                                                                        |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "action": {
        "type": "string",
        "enum": [
          "list",
          "get",
          "create",
          "update"
        ],
        "description": "Label action: \"list\" = retrieve all labels; \"get\" = retrieve single label by ID; \"create\" = add new label; \"update\" = modify label"
      },
      "labelId": {
        "type": "string",
        "description": "Label ID (required for get, update)"
      },
      "name": {
        "type": "string",
        "description": "Label name (required for create)"
      },
      "description": {
        "type": "string",
        "description": "Label description"
      },
      "freshnessPolicy": {
        "type": "string",
        "enum": [
          "none",
          "manual"
        ],
        "description": "Freshness policy (update only)"
      },
      "freshForDuration": {
        "type": "string",
        "description": "Duration after which label becomes stale (update only)"
      },
      "freshness": {
        "type": "string",
        "enum": [
          "noFreshness",
          "fresh",
          "expired",
          "unknown"
        ],
        "description": "Freshness status (update only)"
      },
      "freshAsOfDate": {
        "type": "string",
        "description": "Date marked fresh (update only)"
      },
      "freshAsOfNote": {
        "type": "string",
        "description": "Note when marked fresh (update only)"
      },
      "resetFreshnessNote": {
        "type": "string",
        "description": "Note when freshness reset (update only)"
      },
      "customFields": {
        "type": "array",
        "items": {
          "type": "object",
          "additionalProperties": true
        },
        "description": "Array of custom field values (update only)"
      },
      "status": {
        "type": "string",
        "enum": [
          "active",
          "archived"
        ],
        "description": "Object status (update only)"
      }
    },
    "required": [
      "PCID",
      "action"
    ]
  }
  ```
</Expandable>

***

## hyperproof\_groups

Manage user groups in Hyperproof. Groups allow organizing users for permissions and access control purposes. Actions: list, get, create, update.

**Parameters:**

| Parameter        | Type      | Required | Default | Description                                                                                                                        |
| ---------------- | --------- | -------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| `action`         | string    | Yes      | —       | Group action: "list" = retrieve all groups; "get" = retrieve single group by ID; "create" = add new group; "update" = modify group |
| `groupId`        | string    | No       | —       | Group ID (required for get, update)                                                                                                |
| `name`           | string    | No       | —       | Group name (required for create)                                                                                                   |
| `groupLeadId`    | string    | No       | —       | Group lead user ID                                                                                                                 |
| `userIds`        | string\[] | No       | —       | Array of user IDs (create only)                                                                                                    |
| `clearGroupLead` | boolean   | No       | —       | Clear group lead (update only)                                                                                                     |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "action": {
        "type": "string",
        "enum": [
          "list",
          "get",
          "create",
          "update"
        ],
        "description": "Group action: \"list\" = retrieve all groups; \"get\" = retrieve single group by ID; \"create\" = add new group; \"update\" = modify group"
      },
      "groupId": {
        "type": "string",
        "description": "Group ID (required for get, update)"
      },
      "name": {
        "type": "string",
        "description": "Group name (required for create)"
      },
      "groupLeadId": {
        "type": "string",
        "description": "Group lead user ID"
      },
      "userIds": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "Array of user IDs (create only)"
      },
      "clearGroupLead": {
        "type": "boolean",
        "description": "Clear group lead (update only)"
      }
    },
    "required": [
      "PCID",
      "action"
    ]
  }
  ```
</Expandable>

***

## hyperproof\_roles

View roles in Hyperproof. Read-only access to role definitions and permissions. Actions: list.

**Parameters:**

| Parameter | Type   | Required | Default | Description                              |
| --------- | ------ | -------- | ------- | ---------------------------------------- |
| `action`  | string | Yes      | —       | Role action: "list" = retrieve all roles |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "action": {
        "type": "string",
        "enum": [
          "list"
        ],
        "description": "Role action: \"list\" = retrieve all roles"
      }
    },
    "required": [
      "PCID",
      "action"
    ]
  }
  ```
</Expandable>

***

## hyperproof\_task\_statuses

View task statuses in Hyperproof. Read-only access to task workflow states (e.g., Open, In Progress, Complete). Actions: list.

**Parameters:**

| Parameter | Type   | Required | Default | Description                                             |
| --------- | ------ | -------- | ------- | ------------------------------------------------------- |
| `action`  | string | Yes      | —       | Task status action: "list" = retrieve all task statuses |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "action": {
        "type": "string",
        "enum": [
          "list"
        ],
        "description": "Task status action: \"list\" = retrieve all task statuses"
      }
    },
    "required": [
      "PCID",
      "action"
    ]
  }
  ```
</Expandable>

***

## hyperproof\_custom\_fields

Manage custom fields in Hyperproof. Custom fields allow extending Hyperproof objects with organization-specific data fields. Actions: list, get, create, update.

**Parameters:**

| Parameter    | Type   | Required | Default | Description                                                                                                                                                                                                                                                                                                                                                                                                                           |
| ------------ | ------ | -------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `action`     | string | Yes      | —       | Custom field action: "list" = retrieve all custom fields; "get" = retrieve single field by ID; "create" = add new custom field; "update" = modify field definition                                                                                                                                                                                                                                                                    |
| `fieldId`    | string | No       | —       | Field ID (required for get, update)                                                                                                                                                                                                                                                                                                                                                                                                   |
| `data`       | object | No       | —       | Field data. CREATE requires: name, type (text\|number\|date\|user\|textSingleSelect\|textMultiSelect), availableOn (array of object types). CREATE optional: icon, isRequired, defaultTextValue, defaultDateValue, defaultNumberValue, numberFormat (decimal\|percentage), options. UPDATE optional: name, icon, isRequired, defaultTextValue, defaultDateValue, defaultNumberValue, numberFormat, options, status (active\|archived) |
| `objectType` | string | No       | —       | For list: filter custom fields by object type (control, risk, task, etc.)                                                                                                                                                                                                                                                                                                                                                             |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "action": {
        "type": "string",
        "enum": [
          "list",
          "get",
          "create",
          "update"
        ],
        "description": "Custom field action: \"list\" = retrieve all custom fields; \"get\" = retrieve single field by ID; \"create\" = add new custom field; \"update\" = modify field definition"
      },
      "fieldId": {
        "type": "string",
        "description": "Field ID (required for get, update)"
      },
      "data": {
        "type": "object",
        "additionalProperties": true,
        "description": "Field data. CREATE requires: name, type (text|number|date|user|textSingleSelect|textMultiSelect), availableOn (array of object types). CREATE optional: icon, isRequired, defaultTextValue, defaultDateValue, defaultNumberValue, numberFormat (decimal|percentage), options. UPDATE optional: name, icon, isRequired, defaultTextValue, defaultDateValue, defaultNumberValue, numberFormat, options, status (active|archived)"
      },
      "objectType": {
        "type": "string",
        "description": "For list: filter custom fields by object type (control, risk, task, etc.)"
      }
    },
    "required": [
      "PCID",
      "action"
    ]
  }
  ```
</Expandable>

***

## hyperproof\_custom\_apps

Manage custom apps and integrations in Hyperproof. Custom apps allow extending Hyperproof functionality with custom integrations and workflows. Actions: list, get, create, update.

**Parameters:**

| Parameter | Type   | Required | Default | Description                                                                                                                                                            |
| --------- | ------ | -------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `action`  | string | Yes      | —       | Custom app action: "list" = retrieve all custom apps; "get" = retrieve single app by ID; "create" = add new custom app; "update" = modify app configuration            |
| `appId`   | string | No       | —       | App ID (required for get, update)                                                                                                                                      |
| `data`    | object | No       | —       | App data. CREATE requires: name, appType (webhook\|api). CREATE optional: description, config, isActive. UPDATE optional: name, appType, description, config, isActive |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "action": {
        "type": "string",
        "enum": [
          "list",
          "get",
          "create",
          "update"
        ],
        "description": "Custom app action: \"list\" = retrieve all custom apps; \"get\" = retrieve single app by ID; \"create\" = add new custom app; \"update\" = modify app configuration"
      },
      "appId": {
        "type": "string",
        "description": "App ID (required for get, update)"
      },
      "data": {
        "type": "object",
        "additionalProperties": true,
        "description": "App data. CREATE requires: name, appType (webhook|api). CREATE optional: description, config, isActive. UPDATE optional: name, appType, description, config, isActive"
      }
    },
    "required": [
      "PCID",
      "action"
    ]
  }
  ```
</Expandable>
