# Workspace Presence Feeds

<figure><img src="/files/zl4d0WbIJ9ax8d648xTg" alt=""><figcaption></figcaption></figure>

### Setting Up Presence Feed

1. **Open Your Workspace**\
   Log in to the Panora Dashboard and select your workspace. Navigate to the **Presence Feed** tab from the sidebar.
2. **Configure Join Settings**\
   Enable join messages and customize how new members are welcomed, including channel selection and message formatting.
3. **Configure Leave Settings**\
   Enable leave messages and customize how departures are announced, including channel selection and message formatting.
4. **Test Your Settings**\
   Have someone join or leave your server to confirm that messages display correctly.

***

### Configuration Breakdown

#### Join Settings

| Field                | Type    | Description                       | Default / Example                 |
| -------------------- | ------- | --------------------------------- | --------------------------------- |
| **Join Enabled**     | boolean | Enable/disable join messages      | `false`                           |
| **Join Channel**     | string  | Discord channel for join messages | `#welcome`                        |
| **Join Content**     | string  | Text content for join messages    | `Welcome to {server}, {user}! 🎉` |
| **Join Embed**       | boolean | Enable embed formatting           | `false`                           |
| **Join Title**       | string  | Embed title                       | `Welcome to the Server!`          |
| **Join Description** | string  | Embed description                 | `{user} has joined {server}!`     |

#### Leave Settings

| Field                 | Type    | Description                        | Default / Example                                           |
| --------------------- | ------- | ---------------------------------- | ----------------------------------------------------------- |
| **Leave Enabled**     | boolean | Enable/disable leave messages      | `false`                                                     |
| **Leave Channel**     | string  | Discord channel for leave messages | `#departures`                                               |
| **Leave Content**     | string  | Text content for leave messages    | `Goodbye {username}, thanks for being part of {server}! 👋` |
| **Leave Embed**       | boolean | Enable embed formatting            | `false`                                                     |
| **Leave Title**       | string  | Embed title                        | `Goodbye!`                                                  |
| **Leave Description** | string  | Embed description                  | `{user} has left {server}. We'll miss you!`                 |

***

### Custom Messages

Use dynamic variables to personalize messages:

| Variable        | Description                       |
| --------------- | --------------------------------- |
| `{user}`        | Mentions the user joining/leaving |
| `{username}`    | User’s username                   |
| `{avatar}`      | User avatar URL                   |
| `{server}`      | Server name                       |
| `{serverIcon}`  | Server icon URL                   |
| `{channel}`     | Current channel name              |
| `{memberCount}` | Current member count              |
| `{&role}`       | Dynamically mention a role        |
| `{#channel}`    | Dynamically mention a channel     |
| `{everyone}`    | Mentions @everyone                |
| `{here}`        | Mentions @here                    |

**Message Types:**

* **Content Only:** Simple text messages using variables
* **Embed Messages:** Rich embedded messages with titles, descriptions, colors, and timestamps
* **Combined:** Use both content and embeds together

**Example Join Messages:**

* Simple Content:\
  `Welcome to {server}, {user}! 🎉 Check out {#rules} and grab your roles in {#role-selection}!`
* Embed Description:
* ```
  {user} has joined our amazing community! 
  Welcome to {server}! We're excited to have you here. 
  • Read the {#rules}  
  • Introduce yourself in {#introductions}  
  • Get your roles from {#role-selection}  
  Enjoy your stay! 🚀
  ```

**Example Leave Message:**

`{username} has left {server}. Thanks for being part of our community! 👋`

***

### Presence Feed Logic

* **Join Events:** Triggered automatically when a new member joins.
* **Leave Events:** Triggered automatically when a member leaves.
* **Channel Targeting:** Messages are sent to the configured channels.
* **Embed Support:** Enable for visually enhanced messages.

***

### Message Formatting

* **Variable Replacement:** All variables are replaced with actual Discord mentions and server info.
* **Role & Channel Resolution:** `{&role}` and `{#channel}` are automatically resolved.
* **Fallback Handling:** If roles or channels are not found, the original text is preserved.

***

### Error Handling

* Skips messages if a configured channel doesn’t exist.
* Disabled presence feed results in no messages being sent.
* Invalid configurations are handled gracefully without affecting other bot functions.

***

### Summary

The **Presence Feed Module** is a powerful tool for welcoming and farewelling members in your Discord community. It supports **dynamic messaging, embeds, role mentions, and channel targeting**, making every member feel valued and connected to your server.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.panora.cc/workspaces/overview/presence.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
