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

# heartbeat-content

> Heartbeat Content - Channels, threads, events, messages, courses, and documents

**Server path:** `/heartbeat-content` | **Type:** Application | **PCID required:** Yes

## Tools

| Tool                                                                                          | Description                                                  |
| --------------------------------------------------------------------------------------------- | ------------------------------------------------------------ |
| [`heartbeat_content_create_channel`](#heartbeat_content_create_channel)                       | Create a new channel                                         |
| [`heartbeat_content_create_channel_category`](#heartbeat_content_create_channel_category)     | Create a new channel category                                |
| [`heartbeat_content_create_comment`](#heartbeat_content_create_comment)                       | Create a comment on a thread                                 |
| [`heartbeat_content_create_direct_chat`](#heartbeat_content_create_direct_chat)               | Create or retrieve a direct chat between two users           |
| [`heartbeat_content_create_event`](#heartbeat_content_create_event)                           | Create a new event                                           |
| [`heartbeat_content_create_lesson`](#heartbeat_content_create_lesson)                         | Create a new lesson                                          |
| [`heartbeat_content_create_thread`](#heartbeat_content_create_thread)                         | Create a new thread in a channel                             |
| [`heartbeat_content_create_voice_channel`](#heartbeat_content_create_voice_channel)           | Create a new voice channel                                   |
| [`heartbeat_content_create_webhook`](#heartbeat_content_create_webhook)                       | Create a new webhook                                         |
| [`heartbeat_content_delete_channel`](#heartbeat_content_delete_channel)                       | Delete a channel                                             |
| [`heartbeat_content_delete_channel_category`](#heartbeat_content_delete_channel_category)     | Delete a channel category                                    |
| [`heartbeat_content_delete_webhook`](#heartbeat_content_delete_webhook)                       | Delete a webhook                                             |
| [`heartbeat_content_get_direct_messages`](#heartbeat_content_get_direct_messages)             | Get the 100 most recent messages from a DM conversation      |
| [`heartbeat_content_get_document`](#heartbeat_content_get_document)                           | Get a document by ID (includes content)                      |
| [`heartbeat_content_get_event`](#heartbeat_content_get_event)                                 | Get an event by ID                                           |
| [`heartbeat_content_get_event_attendance`](#heartbeat_content_get_event_attendance)           | Get attendance for the last 10 instances of an event         |
| [`heartbeat_content_get_event_instances`](#heartbeat_content_get_event_instances)             | Get all instances of a recurring event                       |
| [`heartbeat_content_get_lesson`](#heartbeat_content_get_lesson)                               | Get a lesson by ID                                           |
| [`heartbeat_content_get_thread`](#heartbeat_content_get_thread)                               | Get a thread by ID                                           |
| [`heartbeat_content_list_channel_categories`](#heartbeat_content_list_channel_categories)     | List all channel categories in the community                 |
| [`heartbeat_content_list_channels`](#heartbeat_content_list_channels)                         | List all channels in the community                           |
| [`heartbeat_content_list_courses`](#heartbeat_content_list_courses)                           | List all courses in the community                            |
| [`heartbeat_content_list_documents`](#heartbeat_content_list_documents)                       | List all documents (wiki posts) with cursor-based pagination |
| [`heartbeat_content_list_events`](#heartbeat_content_list_events)                             | List all events in the community                             |
| [`heartbeat_content_list_threads`](#heartbeat_content_list_threads)                           | List the 20 most recent threads in a channel                 |
| [`heartbeat_content_list_videos`](#heartbeat_content_list_videos)                             | List all native videos in the community                      |
| [`heartbeat_content_list_webhooks`](#heartbeat_content_list_webhooks)                         | List all webhooks                                            |
| [`heartbeat_content_send_chat_channel_message`](#heartbeat_content_send_chat_channel_message) | Send a message to a chat channel                             |
| [`heartbeat_content_send_direct_message`](#heartbeat_content_send_direct_message)             | Send a direct message to a user                              |
| [`heartbeat_content_update_channel`](#heartbeat_content_update_channel)                       | Update a channel                                             |
| [`heartbeat_content_update_channel_category`](#heartbeat_content_update_channel_category)     | Update a channel category                                    |
| [`heartbeat_content_update_lesson`](#heartbeat_content_update_lesson)                         | Update a lesson                                              |
| [`heartbeat_content_update_voice_channel`](#heartbeat_content_update_voice_channel)           | Update a voice channel                                       |

***

## heartbeat\_content\_create\_channel

Create a new channel

**Parameters:**

| Parameter           | Type      | Required | Default | Description                                   |
| ------------------- | --------- | -------- | ------- | --------------------------------------------- |
| `channelCategoryID` | string    | Yes      | —       | Category to place the channel in              |
| `channelType`       | string    | No       | —       | Channel type (defaults to POSTS)              |
| `description`       | string    | No       | —       | Channel description                           |
| `invitedGroups`     | string\[] | No       | —       | Group IDs for private channel access          |
| `invitedUsers`      | string\[] | No       | —       | Email addresses for private channel access    |
| `isPrivate`         | boolean   | Yes      | —       | Whether the channel is private                |
| `isReadOnly`        | boolean   | No       | —       | Restrict thread creation to admins/moderators |
| `name`              | string    | Yes      | —       | Channel name                                  |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "channelCategoryID": {
        "type": "string",
        "description": "Category to place the channel in"
      },
      "channelType": {
        "type": "string",
        "description": "Channel type (defaults to POSTS)",
        "enum": [
          "POSTS",
          "CHAT"
        ]
      },
      "description": {
        "type": "string",
        "description": "Channel description"
      },
      "invitedGroups": {
        "type": "array",
        "items": {
          "type": "string",
          "format": "uuid"
        },
        "description": "Group IDs for private channel access"
      },
      "invitedUsers": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "Email addresses for private channel access"
      },
      "isPrivate": {
        "type": "boolean",
        "description": "Whether the channel is private"
      },
      "isReadOnly": {
        "type": "boolean",
        "description": "Restrict thread creation to admins/moderators"
      },
      "name": {
        "type": "string",
        "description": "Channel name"
      }
    },
    "required": [
      "PCID",
      "channelCategoryID",
      "isPrivate",
      "name"
    ]
  }
  ```
</Expandable>

***

## heartbeat\_content\_create\_channel\_category

Create a new channel category

**Parameters:**

| Parameter | Type   | Required | Default | Description   |
| --------- | ------ | -------- | ------- | ------------- |
| `name`    | string | Yes      | —       | Category name |

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

***

## heartbeat\_content\_create\_comment

Create a comment on a thread

**Parameters:**

| Parameter         | Type   | Required | Default | Description                                                                                |
| ----------------- | ------ | -------- | ------- | ------------------------------------------------------------------------------------------ |
| `createdAt`       | string | No       | —       | ISO 8601 timestamp override                                                                |
| `parentCommentID` | string | No       | —       | Parent comment ID (omit or null for top-level reply, UUID for nested reply up to 2 levels) |
| `text`            | string | Yes      | —       | Comment content (supports rich text)                                                       |
| `threadID`        | string | Yes      | —       | Thread to comment on                                                                       |
| `userID`          | string | No       | —       | Author user ID (admin only, defaults to API key owner)                                     |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "createdAt": {
        "type": "string",
        "description": "ISO 8601 timestamp override"
      },
      "parentCommentID": {
        "type": "string",
        "description": "Parent comment ID (omit or null for top-level reply, UUID for nested reply up to 2 levels)"
      },
      "text": {
        "type": "string",
        "description": "Comment content (supports rich text)"
      },
      "threadID": {
        "type": "string",
        "description": "Thread to comment on"
      },
      "userID": {
        "type": "string",
        "description": "Author user ID (admin only, defaults to API key owner)"
      }
    },
    "required": [
      "PCID",
      "text",
      "threadID"
    ]
  }
  ```
</Expandable>

***

## heartbeat\_content\_create\_direct\_chat

Create or retrieve a direct chat between two users

**Parameters:**

| Parameter | Type   | Required | Default | Description    |
| --------- | ------ | -------- | ------- | -------------- |
| `userID1` | string | Yes      | —       | First user ID  |
| `userID2` | string | Yes      | —       | Second user ID |

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

***

## heartbeat\_content\_create\_event

Create a new event

**Parameters:**

| Parameter       | Type      | Required | Default | Description                                                                        |
| --------------- | --------- | -------- | ------- | ---------------------------------------------------------------------------------- |
| `description`   | string    | No       | —       | Event description                                                                  |
| `duration`      | number    | Yes      | —       | Event duration in minutes                                                          |
| `invitedGroups` | string\[] | No       | —       | Group IDs to invite (if both empty, all community members are invited)             |
| `invitedUsers`  | string\[] | No       | —       | Email addresses to invite                                                          |
| `location`      | string    | Yes      | —       | Where the event is held. Use 'HEARTBEAT' for in-app or 'ZOOM' for Zoom integration |
| `name`          | string    | Yes      | —       | Event name                                                                         |
| `startTime`     | string    | Yes      | —       | Event start time (ISO 8601)                                                        |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "description": {
        "type": "string",
        "description": "Event description"
      },
      "duration": {
        "type": "number",
        "description": "Event duration in minutes"
      },
      "invitedGroups": {
        "type": "array",
        "items": {
          "type": "string",
          "format": "uuid"
        },
        "description": "Group IDs to invite (if both empty, all community members are invited)"
      },
      "invitedUsers": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "Email addresses to invite"
      },
      "location": {
        "type": "string",
        "description": "Where the event is held. Use 'HEARTBEAT' for in-app or 'ZOOM' for Zoom integration"
      },
      "name": {
        "type": "string",
        "description": "Event name"
      },
      "startTime": {
        "type": "string",
        "description": "Event start time (ISO 8601)"
      }
    },
    "required": [
      "PCID",
      "duration",
      "location",
      "name",
      "startTime"
    ]
  }
  ```
</Expandable>

***

## heartbeat\_content\_create\_lesson

Create a new lesson

**Parameters:**

| Parameter  | Type   | Required | Default | Description                |
| ---------- | ------ | -------- | ------- | -------------------------- |
| `cohortID` | string | Yes      | —       | Cohort ID                  |
| `content`  | string | Yes      | —       | Lesson content in Markdown |
| `courseID` | string | Yes      | —       | Course ID                  |
| `moduleID` | string | Yes      | —       | Module ID                  |
| `title`    | string | Yes      | —       | Lesson title               |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "cohortID": {
        "type": "string",
        "description": "Cohort ID"
      },
      "content": {
        "type": "string",
        "description": "Lesson content in Markdown"
      },
      "courseID": {
        "type": "string",
        "description": "Course ID"
      },
      "moduleID": {
        "type": "string",
        "description": "Module ID"
      },
      "title": {
        "type": "string",
        "description": "Lesson title"
      }
    },
    "required": [
      "PCID",
      "cohortID",
      "content",
      "courseID",
      "moduleID",
      "title"
    ]
  }
  ```
</Expandable>

***

## heartbeat\_content\_create\_thread

Create a new thread in a channel

**Parameters:**

| Parameter   | Type      | Required | Default | Description                                            |
| ----------- | --------- | -------- | ------- | ------------------------------------------------------ |
| `channelID` | string    | Yes      | —       | Channel to post the thread in                          |
| `createdAt` | string    | No       | —       | ISO 8601 timestamp override                            |
| `embeds`    | string\[] | No       | —       | HTML embed codes containing iframes                    |
| `text`      | string    | Yes      | —       | Thread content (supports rich text formatting)         |
| `userID`    | string    | No       | —       | Author user ID (admin only, defaults to API key owner) |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "channelID": {
        "type": "string",
        "description": "Channel to post the thread in"
      },
      "createdAt": {
        "type": "string",
        "description": "ISO 8601 timestamp override"
      },
      "embeds": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "HTML embed codes containing iframes"
      },
      "text": {
        "type": "string",
        "description": "Thread content (supports rich text formatting)"
      },
      "userID": {
        "type": "string",
        "description": "Author user ID (admin only, defaults to API key owner)"
      }
    },
    "required": [
      "PCID",
      "channelID",
      "text"
    ]
  }
  ```
</Expandable>

***

## heartbeat\_content\_create\_voice\_channel

Create a new voice channel

**Parameters:**

| Parameter           | Type      | Required | Default | Description                    |
| ------------------- | --------- | -------- | ------- | ------------------------------ |
| `channelCategoryID` | string    | Yes      | —       | Category for the channel       |
| `description`       | string    | No       | —       | Voice channel description      |
| `invitedGroups`     | string\[] | No       | —       | Group IDs for access           |
| `invitedUsers`      | string\[] | No       | —       | Email addresses for access     |
| `isPrivate`         | boolean   | No       | —       | Whether the channel is private |
| `name`              | string    | Yes      | —       | Voice channel name             |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "channelCategoryID": {
        "type": "string",
        "description": "Category for the channel"
      },
      "description": {
        "type": "string",
        "description": "Voice channel description"
      },
      "invitedGroups": {
        "type": "array",
        "items": {
          "type": "string",
          "format": "uuid"
        },
        "description": "Group IDs for access"
      },
      "invitedUsers": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "Email addresses for access"
      },
      "isPrivate": {
        "type": "boolean",
        "description": "Whether the channel is private"
      },
      "name": {
        "type": "string",
        "description": "Voice channel name"
      }
    },
    "required": [
      "PCID",
      "channelCategoryID",
      "name"
    ]
  }
  ```
</Expandable>

***

## heartbeat\_content\_create\_webhook

Create a new webhook

**Parameters:**

| Parameter | Type   | Required | Default | Description                         |
| --------- | ------ | -------- | ------- | ----------------------------------- |
| `action`  | string | Yes      | —       | The trigger action for this webhook |
| `url`     | string | Yes      | —       | Webhook delivery URL                |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "action": {
        "type": "string",
        "description": "The trigger action for this webhook",
        "enum": [
          "USER_JOIN",
          "USER_UPDATE",
          "GROUP_JOIN",
          "ABANDONED_CART",
          "THREAD_CREATE",
          "MENTION",
          "DIRECT_MESSAGE",
          "COURSE_COMPLETED",
          "EVENT_CREATE",
          "EVENT_RSVP",
          "DOCUMENT_CREATE"
        ]
      },
      "url": {
        "type": "string",
        "description": "Webhook delivery URL"
      }
    },
    "required": [
      "PCID",
      "action",
      "url"
    ]
  }
  ```
</Expandable>

***

## heartbeat\_content\_delete\_channel

Delete a channel

**Parameters:**

| Parameter   | Type   | Required | Default | Description    |
| ----------- | ------ | -------- | ------- | -------------- |
| `channelID` | string | Yes      | —       | The channel ID |

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

***

## heartbeat\_content\_delete\_channel\_category

Delete a channel category

**Parameters:**

| Parameter           | Type   | Required | Default | Description             |
| ------------------- | ------ | -------- | ------- | ----------------------- |
| `channelCategoryID` | string | Yes      | —       | The channel category ID |

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

***

## heartbeat\_content\_delete\_webhook

Delete a webhook

**Parameters:**

| Parameter   | Type   | Required | Default | Description    |
| ----------- | ------ | -------- | ------- | -------------- |
| `webhookID` | string | Yes      | —       | The webhook ID |

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

***

## heartbeat\_content\_get\_direct\_messages

Get the 100 most recent messages from a DM conversation

**Parameters:**

| Parameter | Type   | Required | Default | Description                         |
| --------- | ------ | -------- | ------- | ----------------------------------- |
| `chatID`  | string | Yes      | —       | The chat ID (from createDirectChat) |

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

***

## heartbeat\_content\_get\_document

Get a document by ID (includes content)

**Parameters:**

| Parameter    | Type   | Required | Default | Description     |
| ------------ | ------ | -------- | ------- | --------------- |
| `documentID` | string | Yes      | —       | The document ID |

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

***

## heartbeat\_content\_get\_event

Get an event by ID

**Parameters:**

| Parameter | Type   | Required | Default | Description  |
| --------- | ------ | -------- | ------- | ------------ |
| `eventID` | string | Yes      | —       | The event ID |

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

***

## heartbeat\_content\_get\_event\_attendance

Get attendance for the last 10 instances of an event

**Parameters:**

| Parameter | Type   | Required | Default | Description  |
| --------- | ------ | -------- | ------- | ------------ |
| `eventID` | string | Yes      | —       | The event ID |

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

***

## heartbeat\_content\_get\_event\_instances

Get all instances of a recurring event

**Parameters:**

| Parameter | Type   | Required | Default | Description  |
| --------- | ------ | -------- | ------- | ------------ |
| `eventID` | string | Yes      | —       | The event ID |

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

***

## heartbeat\_content\_get\_lesson

Get a lesson by ID

**Parameters:**

| Parameter  | Type   | Required | Default | Description   |
| ---------- | ------ | -------- | ------- | ------------- |
| `lessonID` | string | Yes      | —       | The lesson ID |

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

***

## heartbeat\_content\_get\_thread

Get a thread by ID

**Parameters:**

| Parameter  | Type   | Required | Default | Description   |
| ---------- | ------ | -------- | ------- | ------------- |
| `threadID` | string | Yes      | —       | The thread ID |

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

***

## heartbeat\_content\_list\_channel\_categories

List all channel categories in the community

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

***

## heartbeat\_content\_list\_channels

List all channels in the community

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

***

## heartbeat\_content\_list\_courses

List all courses in the community

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

***

## heartbeat\_content\_list\_documents

List all documents (wiki posts) with cursor-based pagination

**Parameters:**

| Parameter       | Type    | Required | Default | Description                                                            |
| --------------- | ------- | -------- | ------- | ---------------------------------------------------------------------- |
| `startingAfter` | string  | No       | —       | Cursor for pagination — ID of the last document from the previous page |
| `limit`         | integer | No       | —       | Number of results per page (1-100, default 50)                         |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "startingAfter": {
        "type": "string",
        "description": "Cursor for pagination — ID of the last document from the previous page"
      },
      "limit": {
        "type": "integer",
        "description": "Number of results per page (1-100, default 50)"
      }
    },
    "required": [
      "PCID"
    ]
  }
  ```
</Expandable>

***

## heartbeat\_content\_list\_events

List all events in the community

**Parameters:**

| Parameter | Type   | Required | Default | Description                                   |
| --------- | ------ | -------- | ------- | --------------------------------------------- |
| `groupID` | string | No       | —       | Filter events to those assigned to this group |

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

***

## heartbeat\_content\_list\_threads

List the 20 most recent threads in a channel

**Parameters:**

| Parameter   | Type   | Required | Default | Description    |
| ----------- | ------ | -------- | ------- | -------------- |
| `channelID` | string | Yes      | —       | The channel ID |

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

***

## heartbeat\_content\_list\_videos

List all native videos in the community

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

***

## heartbeat\_content\_list\_webhooks

List all webhooks

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

***

## heartbeat\_content\_send\_chat\_channel\_message

Send a message to a chat channel

**Parameters:**

| Parameter   | Type   | Required | Default | Description                          |
| ----------- | ------ | -------- | ------- | ------------------------------------ |
| `channelID` | string | Yes      | —       | The chat channel ID                  |
| `createdAt` | string | No       | —       | ISO 8601 timestamp override          |
| `from`      | string | Yes      | —       | Sender user ID                       |
| `text`      | string | Yes      | —       | Message content (supports rich text) |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "channelID": {
        "type": "string",
        "description": "The chat channel ID"
      },
      "createdAt": {
        "type": "string",
        "description": "ISO 8601 timestamp override"
      },
      "from": {
        "type": "string",
        "description": "Sender user ID"
      },
      "text": {
        "type": "string",
        "description": "Message content (supports rich text)"
      }
    },
    "required": [
      "PCID",
      "channelID",
      "from",
      "text"
    ]
  }
  ```
</Expandable>

***

## heartbeat\_content\_send\_direct\_message

Send a direct message to a user

**Parameters:**

| Parameter | Type   | Required | Default | Description                                            |
| --------- | ------ | -------- | ------- | ------------------------------------------------------ |
| `from`    | string | No       | —       | Sender user ID (admin only, defaults to API key owner) |
| `text`    | string | Yes      | —       | Message content (supports rich text)                   |
| `to`      | string | Yes      | —       | Receiver user ID                                       |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "from": {
        "type": "string",
        "description": "Sender user ID (admin only, defaults to API key owner)"
      },
      "text": {
        "type": "string",
        "description": "Message content (supports rich text)"
      },
      "to": {
        "type": "string",
        "description": "Receiver user ID"
      }
    },
    "required": [
      "PCID",
      "text",
      "to"
    ]
  }
  ```
</Expandable>

***

## heartbeat\_content\_update\_channel

Update a channel

**Parameters:**

| Parameter     | Type    | Required | Default | Description                                   |
| ------------- | ------- | -------- | ------- | --------------------------------------------- |
| `channelID`   | string  | Yes      | —       | The channel ID                                |
| `description` | string  | No       | —       | Updated description                           |
| `isReadOnly`  | boolean | No       | —       | Restrict thread creation to admins/moderators |
| `name`        | string  | No       | —       | Updated channel name                          |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "channelID": {
        "type": "string",
        "description": "The channel ID"
      },
      "description": {
        "type": "string",
        "description": "Updated description"
      },
      "isReadOnly": {
        "type": "boolean",
        "description": "Restrict thread creation to admins/moderators"
      },
      "name": {
        "type": "string",
        "description": "Updated channel name"
      }
    },
    "required": [
      "PCID",
      "channelID"
    ]
  }
  ```
</Expandable>

***

## heartbeat\_content\_update\_channel\_category

Update a channel category

**Parameters:**

| Parameter           | Type   | Required | Default | Description             |
| ------------------- | ------ | -------- | ------- | ----------------------- |
| `channelCategoryID` | string | Yes      | —       | The channel category ID |
| `name`              | string | Yes      | —       | Updated category name   |

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

***

## heartbeat\_content\_update\_lesson

Update a lesson

**Parameters:**

| Parameter  | Type   | Required | Default | Description                |
| ---------- | ------ | -------- | ------- | -------------------------- |
| `lessonID` | string | Yes      | —       | The lesson ID              |
| `content`  | string | No       | —       | Lesson content in Markdown |
| `title`    | string | No       | —       | Lesson title               |

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

***

## heartbeat\_content\_update\_voice\_channel

Update a voice channel

**Parameters:**

| Parameter        | Type   | Required | Default | Description          |
| ---------------- | ------ | -------- | ------- | -------------------- |
| `voiceChannelID` | string | Yes      | —       | The voice channel ID |
| `description`    | string | No       | —       | Updated description  |
| `name`           | string | No       | —       | Updated name         |

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