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

# Targets

> Learn about notification targets in Bodhveda

A **target** defines *who should get a notification* and *how it should be categorized*. It typically consists of:

* **Channel**: Broad category (e.g., `posts`)
* **Topic**: Subcategory or specific resource (e.g., `post_id_123`, `any`, or `none`)
* **Event**: What happened (e.g., `new_comment`)

Targets are used for both sending notifications and managing recipient preferences.

<Note>
  You can send any target out of the box. Giving a target a project-level preference — **cataloging** it — is what puts it on your recipients' settings screen so they can mute it. Once your catalog is stable you can turn on [strict targets](/docs/concepts/preferences#strict-targets) and an uncataloged target becomes a `400` instead.
</Note>

#### `any` and `none` have special meaning:

* `any` means **all topics under this channel/event**.
* `none` means **only the base channel/event**.
* `any` is **not** a valid `topic` when sending a notification, but both are valid for preferences.

A preference with the target `posts:any:new_comment` will match a notification with target `posts:post_id_123:new_comment`, but a preference with the target `posts:none:new_comment` will **only** match a notification with target `posts:none:new_comment`.

This applies to [strict targets](/docs/concepts/preferences#strict-targets) too, which is what makes per-resource targets practical: catalog `posts:any:new_comment` once and every `posts:post_id_123:new_comment` you send passes, however many post ids there turn out to be. One entry per post id is never the answer.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.