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

# Ticket mirrors

> Ticket mirrors are interactive Ravenna ticket cards in Slack that update in real time as assignees, status, and priority change across systems.

Ticket mirrors are interactive representations of Ravenna tickets that appear directly in Slack using Slack work objects. They update automatically as changes occur, allowing you to track and manage tickets without leaving Slack.

<View title="Human" icon="user">
  ## How ticket mirrors work

  Ticket mirrors sync in real-time between Slack and Ravenna. When you add an assignee, update a status, or make any change to a ticket, the mirror immediately reflects this across all instances in Slack.

  ### Mirror routing

  Ticket mirrors appear in different locations based on how the ticket was created:

  <AccordionGroup>
    <Accordion title="Public tickets" icon="users">
      Tickets created in a Slack channel connected to a Ravenna Channel. The mirror appears in the thread of the original message and is visible to all Slack channel members.
    </Accordion>

    <Accordion title="Private tickets" icon="lock">
      Tickets created from DMs or Slack Home. The mirror is sent to DMs for the requester, assignee, followers, and approvers only.
    </Accordion>

    <Accordion title="Triage channel" icon="inbox">
      When triage forwarding is enabled, ticket mirrors are sent to the designated triage channel for team review.
    </Accordion>
  </AccordionGroup>

  ### Shared tickets

  When a ticket is shared across multiple Channels, the mirror routing behavior depends on the Channel configuration:

  * **Primary Channel mirror**: The ticket mirror appears in the primary Channel's configured location (public Slack channel, DM, or triage channel)
  * **Shared Channel mirrors**: Additional mirrors are sent to the triage channels of any Channels the ticket is shared with
  * **DM mirrors**: Assignees, followers, and approvers from all Channels receive DM mirrors regardless of which Channel they belong to

  <Info>
    Sharing tickets across Channels allows multiple teams to collaborate on the same ticket while maintaining visibility in their respective triage channels.
  </Info>

  <Callout icon="link" color="#6B7280">
    Learn more about [moving tickets between workspaces](/documentation/tickets/relations)
  </Callout>

  ***

  ## Configure ticket mirrors

  <AccordionGroup>
    <Accordion title="Ticket mirror fields" icon="list">
      Customize which fields appear on ticket mirrors and their display order across your workspace. Control visibility and ordering for status, priority, description, assignee, requester, approvers, source, and custom fields.

      <Steps>
        <Step title="Navigate to workspace settings">
          Go to **Settings > Workspace** in your Ravenna dashboard.
        </Step>

        <Step title="Open Slack settings">
          Click **Slack** in the left settings navigation.
        </Step>

        <Step title="Configure mirror fields">
          Select the **Mirrors** tab. Drag fields to reorder them and toggle visibility to customize what appears on ticket mirrors in Slack channels.
        </Step>
      </Steps>

      <Info>
        Field visibility and ordering settings apply workspace-wide. Ticket mirrors in Slack Home and flexpane views always show all fields regardless of these settings.
      </Info>

      <Callout icon="link" color="#6B7280">
        Learn more about [ticket mirror field configuration](/documentation/platform/workspaces/settings#ticket-mirrors)
      </Callout>
    </Accordion>

    <Accordion title="Public mirror actions" icon="mouse-pointer-click">
      Enable ticket actions for end users in request Slack channel ticket mirrors, allowing them to take actions like closing or updating tickets.

      <Steps>
        <Step title="Navigate to Channel settings">
          Go to **Channel > Settings** in your Ravenna dashboard.
        </Step>

        <Step title="Open Slack settings">
          Click **Slack** in the left settings navigation.
        </Step>

        <Step title="Configure public mirror actions">
          Configure your desired settings in the **Public Mirror Actions** card.
        </Step>
      </Steps>

      <Info>
        When enabled, ticket action buttons appear at the bottom of the ticket mirror in request channels, giving end users self-service options.
      </Info>
    </Accordion>

    <Accordion title="Silent mode" icon="volume-off">
      By default, Ravenna sends ticket mirrors for all tickets created in a request Slack channel. Disable this behavior by enabling silent mode in Channel settings.

      <Warning>
        When silent mode is enabled, Ravenna will not send ticket mirrors or turn @mentions into followers. However, you can still create tickets in the Slack channel and all thread messages will sync with your tickets.
      </Warning>
    </Accordion>
  </AccordionGroup>

  ***

  ## Ticket actions

  Ticket mirrors in triage channels include action buttons at the bottom, allowing admins to manage tickets directly from Slack. Actions vary based on your Channel configuration and include options like assigning, updating status, adding tags, and closing tickets.

  ***

  ## Link unfurls

  When you paste a Ravenna ticket URL in any Slack channel, DM, or thread, it automatically unfurls into a mirror with interactive ticket details and real-time updates — no special configuration required.

  <AccordionGroup>
    <Accordion title="How unfurls work" icon="link" defaultOpen>
      Paste any Ravenna ticket URL in Slack and it automatically expands to show:

      * Ticket title, status, and priority
      * Assignee and requester information
      * Interactive action buttons
      * Real-time updates as the ticket changes
    </Accordion>

    <Accordion title="Where unfurls appear" icon="slack">
      Ticket unfurls work in all Slack locations:

      * Public channels
      * Private channels
      * Direct messages
      * Threads
    </Accordion>

    <Accordion title="Real-time updates" icon="refresh-cw">
      Unfurled tickets update automatically when changes occur in Ravenna:

      * Status and priority changes
      * Assignee updates
      * New messages and comments
      * All ticket modifications sync immediately
    </Accordion>

    <Accordion title="Interactive actions" icon="mouse-pointer-click">
      Take actions directly from unfurled tickets:

      * Assign or reassign tickets
      * Update status and priority
      * Add tags and followers
      * Access full ticket details
    </Accordion>
  </AccordionGroup>

  <Info>
    Ticket unfurls are read from live ticket data and require the Ravenna Slack app to be installed in the workspace.
  </Info>
</View>

<View title="Agent" icon="bot">
  ## Mental model

  A ticket mirror is a real-time Slack representation of a Ravenna ticket. Mirrors use Slack work objects and update automatically when the ticket changes. They are read/write: users can take ticket actions (assign, close, update status) directly from the mirror.

  Mirrors are not copies. They are live views of the ticket. Changes made through a mirror propagate immediately to Ravenna and all other mirrors of the same ticket.

  ***

  ## Mirror routing

  Where a ticket mirror appears depends on how and where the ticket was created:

  | Ticket origin              | Mirror locations                                                          |
  | -------------------------- | ------------------------------------------------------------------------- |
  | **Public channel message** | Original message thread + triage channel (if forwarding enabled)          |
  | **DM with Ravenna**        | DM mirrors to requester, assignee, followers, approvers                   |
  | **Slack App Home**         | DM mirrors to relevant parties                                            |
  | **Web portal / email**     | Triage channel (if forwarding enabled) + DM mirrors to assignee/followers |

  When a ticket is **shared** across multiple channels:

  * The primary channel's mirror appears in its configured location.
  * Shared channels receive mirrors in their triage channels.
  * Assignees, followers, and approvers from all channels receive DM mirrors.

  ***

  ## Mirror configuration

  **Field visibility and ordering**: Workspace admins control which fields appear on ticket mirrors and their display order (status, priority, description, assignee, requester, approvers, source, custom fields). This applies workspace-wide to channel mirrors. App Home and flexpane mirrors always show all fields.

  **Public mirror actions**: Channel-level setting that enables ticket action buttons on mirrors in request channels. When enabled, end users can take actions (close, update) directly from the mirror.

  **Silent mode**: When enabled on a channel, ticket mirrors are not sent to the request Slack channel. Triage channel and DM mirrors still function. Thread messages still sync.

  ***

  ## Constraints and gotchas

  * Field visibility and ordering settings are workspace-wide. You cannot configure different field visibility or ordering for different channels.
  * App Home and flexpane mirrors always show all fields regardless of workspace mirror settings.
  * Silent mode suppresses request channel mirrors and @mention-to-follower conversion, but does not affect triage or DM mirrors.
  * Ticket mirrors update in real time. There is no sync delay.
  * When a ticket is moved to a different workspace, the original mirror updates with a "moved" indicator and a new mirror is created in the destination triage channel.
  * Mirror action buttons vary by context: triage channel mirrors have full actions, request channel mirrors have configurable actions.
  * Pasting a Ravenna ticket URL in any Slack channel, DM, or thread unfurls into a mirror automatically. Unfurls read from live ticket data, update in real time, and require the Ravenna Slack app to be installed in the workspace.
</View>
