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

# Creating tickets

> Create Ravenna tickets directly from Slack using emoji reactions, slash commands, message shortcuts, request channels, and the App Home tab.

Ravenna offers multiple ways to create tickets directly from Slack, making it easy for both your team and customers to get support.

<View title="Human" icon="user">
  <Info>
    **One ticket per thread:** Ravenna follows a one ticket per Slack thread model. If you apply the ticket emoji to multiple messages in the same thread, only one ticket will be created for that thread.
  </Info>

  ## Request channels

  Request channels are Slack channels where tickets are created from messages. Use any public or private Slack channel as a request channel.

  <Steps>
    <Step title="Add Ravenna to a channel">
      Type `/invite @ravenna` in the Slack channel you want to use.
    </Step>

    <Step title="Connect the channel">
      Ravenna will prompt you to set up this Slack channel as a request channel. Click **Connect** and select your <Tooltip headline="Channels" tip="Organize tickets by team, topic, or workflow" cta="Learn about channels" href="/documentation/platform/channels">Ravenna channel</Tooltip>.
    </Step>
  </Steps>

  <Info>
    Multiple Slack channels can connect to a single Ravenna channel. All connected Slack channels share the same channel settings and automation rules.
  </Info>

  ***

  ## Methods

  <Tabs>
    <Tab title="Emoji reactions">
      Create tickets by reacting to messages with emojis in connected Slack channels.

      <Warning>
        Emoji reactions only work on messages posted directly in a channel, not on replies within a thread. To create a ticket using an emoji, react to the original channel message rather than a threaded reply.
      </Warning>

      <AccordionGroup>
        <Accordion title="Ticket emoji (🎫)" defaultOpen>
          The simplest way to create a ticket is by adding the 🎫 emoji to any message.

          <Steps>
            <Step title="Add the emoji">
              React to any message with the 🎫 emoji in a connected Slack channel.
            </Step>

            <Step title="Ticket created">
              Ravenna automatically creates a ticket from that message and thread.
            </Step>
          </Steps>
        </Accordion>

        <Accordion title="Shushing face emoji (🤫)">
          The 🤫 emoji creates a new ticket and immediately marks it as **private**. If a ticket already exists for the thread, it converts the existing ticket to private. The reactor is assigned as the ticket owner.
        </Accordion>

        <Accordion title="Lock emoji (🔒)">
          The 🔒 emoji creates a **private Slack channel** for an existing ticket. After reacting, you'll see a confirmation button. Once confirmed, Ravenna creates a dedicated private channel and invites the requester, assignee, followers, and approvers.
        </Accordion>

        <Accordion title="Custom emoji actions">
          Additional emojis can be configured via your workspace's Emoji Actions settings to trigger ticket creation.
        </Accordion>
      </AccordionGroup>

      <Callout icon="link" color="#6B7280">
        Learn more about [emoji actions](/documentation/platform/notifications).
      </Callout>
    </Tab>

    <Tab title="AI creation">
      When an Agent is connected to your channel, create tickets through natural conversation.

      <AccordionGroup>
        <Accordion title="Direct command" defaultOpen>
          Type **"Create a ticket: \[your message]"** and your Agent will automatically create a ticket for you.
        </Accordion>

        <Accordion title="Agent prompt">
          If your Agent cannot answer a question, it will prompt you to create a ticket. Click the button to proceed with ticket creation.
        </Accordion>

        <Accordion title="Attach a file or screenshot">
          Drag and drop files or screenshots into the same Slack message you send to the Agent. The Agent reads the attached document (PDFs, images, and text files) and uses its contents to answer your question or prefill form fields when creating a ticket.

          Learn more about [file handling in agents](/documentation/automate/agents/customize#slack-behavior).
        </Accordion>
      </AccordionGroup>
    </Tab>

    <Tab title="Slash command">
      Create tickets quickly using the Ravenna slash command.

      <Steps>
        <Step title="Type the command">
          Type `/rav create` (or `/help`) in any Slack channel.
        </Step>

        <Step title="Follow the flow">
          Complete the guided ticket creation flow.
        </Step>
      </Steps>

      <Callout icon="link" color="#6B7280">
        Learn more about [slash commands](/integrations/slack/triage-channel).
      </Callout>
    </Tab>

    <Tab title="Message shortcut">
      Use the message shortcut as an alternative to emojis.

      <Steps>
        <Step title="Open message menu">
          Hover over any message and click the message menu button (three dots).
        </Step>

        <Step title="Select option">
          Select **"Create a ticket"** from the options.
        </Step>

        <Step title="Select acknowledgement (optional)">
          When you create a ticket from a DM or from a channel that isn't a connected request channel, the modal shows a **Publicly acknowledge that a ticket was created?** checkbox. Leave it checked to post a confirmation in the original thread, or uncheck it to receive a private, ephemeral confirmation only you can see.

          The default state of this checkbox comes from the **Shortcut Public Acknowledgement** setting on the [form](/documentation/tickets/forms/overview#ticket-defaults) used to create the ticket.
        </Step>
      </Steps>

      <Info>
        Message shortcuts work inside **any channel, thread, or DM**, even if Ravenna is not present. This makes them ideal for quickly creating tickets from messages in private conversations or channels where Ravenna is not installed. Emoji actions require Ravenna to be a member of the channel.
      </Info>

      <Info>
        If the form is marked **Private** and the shortcut is triggered from a public channel, Ravenna creates the ticket in DMs and posts a link in the original thread instead of the standard confirmation, so the conversation can continue without leaking ticket details.
      </Info>
    </Tab>

    <Tab title="App Home">
      Create tickets from the Ravenna App Home tab in Slack.

      <Steps>
        <Step title="Open App Home">
          Click the Ravenna app in your Slack sidebar to open the App Home tab.
        </Step>

        <Step title="Click Create Ticket">
          Click the **"Create a new ticket"** button to open the ticket creation modal.
        </Step>
      </Steps>

      <Callout icon="link" color="#6B7280">
        Learn more about [App Home](/integrations/slack/ai-assistant) features.
      </Callout>
    </Tab>

    <Tab title="Form link">
      Paste a Ravenna form URL into any Slack channel, DM, or thread to share it as an unfurled card with an **Open Form** button. Click the button to open the form as a Slack modal and submit a request without leaving Slack.

      <Steps>
        <Step title="Copy a form URL">
          From Ravenna, copy the URL of the form you want to share (for example, `https://app.ravenna.ai/{workspace}/forms/{formId}`). Both `/forms/{formId}` and legacy `/request-types/{formId}` URLs are supported.
        </Step>

        <Step title="Paste in Slack">
          Paste the URL in any Slack channel, DM, or thread. Slack unfurls the link into a card showing the form's name, emoji, and description (or a default prompt to submit a request).
        </Step>

        <Step title="Open the form">
          Click **Open Form** to launch the form as a Slack modal. Submit it to create a ticket without leaving Slack.
        </Step>
      </Steps>

      <Info>
        Tickets created this way are routed using the standard fallback chain: the queue connected to the current Slack channel, then the workspace's default queue. Users only see forms they have access to — if a user is not allowed to submit a form, the modal does not open.
      </Info>

      <Callout icon="lightbulb" color="#6B7280">
        Share form URLs in team channels, onboarding messages, or help threads to give teammates a one-click way to open the right form.
      </Callout>

      <Callout icon="link" color="#6B7280">
        Learn more about [forms](/documentation/tickets/forms/overview).
      </Callout>
    </Tab>

    <Tab title="Workflows">
      Create custom workflows that trigger when a certain emoji is added to a message in a channel. For example, you could set up a workflow that creates a ticket and assigns it to a specific team based on the emoji used.

      <Callout icon="link" color="#6B7280">
        Learn more about [Workflows](/documentation/automate/workflows/overview).
      </Callout>
    </Tab>
  </Tabs>

  ***

  ## Ticket privacy

  Ravenna provides flexible privacy controls to protect sensitive information while maintaining collaboration.

  ### Privacy behavior

  <AccordionGroup>
    <Accordion title="Direct Messages (DMs)" icon="lock" defaultOpen>
      Tickets created from Slack DMs are **always private**, regardless of any other settings. This guarantees that sensitive one-on-one conversations remain confidential.

      <Note>
        DM privacy cannot be overridden. This is a security feature to protect sensitive communications.
      </Note>
    </Accordion>

    <Accordion title="Form Privacy" icon="shield-check">
      Forms can be configured with a **Private** toggle that sets the default privacy for tickets created with that form.

      When a form has privacy enabled:

      * Tickets created in **public channels** will be private
      * Tickets created in **DMs** remain private (DM rule always applies)

      <Callout icon="link" color="#6B7280">
        Learn more about [form configuration](/documentation/tickets/forms/custom-fields).
      </Callout>
    </Accordion>

    <Accordion title="Privacy Priority" icon="list-ordered">
      When multiple privacy settings could apply, Ravenna follows this priority order:

      <Steps>
        <Step title="DM Context">
          If the ticket is created from a DM, it's **always private**
        </Step>

        <Step title="Form Setting">
          If the form has privacy enabled, the ticket is private
        </Step>

        <Step title="Default">
          Otherwise, the ticket is public within the workspace
        </Step>
      </Steps>
    </Accordion>
  </AccordionGroup>

  ### Who can see private tickets

  Private tickets are only visible to:

  * The ticket requester
  * Assigned team members
  * Followers explicitly added to the ticket
  * Workspace administrators

  <Warning>
    Private tickets cannot be shared across channels. The share functionality is disabled for private tickets to maintain confidentiality.
  </Warning>

  <Info>
    If you reply in the original public request thread of a private ticket, Ravenna sends you a one-time ephemeral warning reminding you to continue the conversation in DMs. This prevents accidental information leakage in public channels.
  </Info>
</View>

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

  Tickets can be created from Slack through multiple methods. The method determines the ticket's initial context, privacy, and routing.

  ***

  ## Ticket creation methods

  | Method                  | Trigger                                  | Where it works                                      | Notes                                                                                                                             |
  | ----------------------- | ---------------------------------------- | --------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
  | **Ticket emoji (🎫)**   | React with 🎫 on a channel message       | Connected request channels only                     | Only works on top-level messages, not thread replies                                                                              |
  | **Shushing emoji (🤫)** | React with 🤫 on a channel message       | Connected request channels                          | Creates ticket (or converts existing) and marks it private. Assigns reactor as owner                                              |
  | **Lock emoji (🔒)**     | React with 🔒 on a channel message       | Connected request channels                          | Creates a private Slack channel for an existing ticket (with confirmation). Invites requester, assignee, followers, and approvers |
  | **Custom emoji**        | React with configured emoji              | Connected request channels                          | Configured via Emoji Actions settings                                                                                             |
  | **AI agent**            | User sends message, agent creates ticket | Channels with agent connected                       | Agent collects info conversationally, uses forms                                                                                  |
  | **Slash command**       | `/rav create` or `/help`                 | Any Slack channel                                   | Guided ticket creation flow                                                                                                       |
  | **Message shortcut**    | Three-dot menu on any message            | Any channel, thread, or DM                          | Works everywhere, even without Ravenna in the channel                                                                             |
  | **App Home**            | "Create a new ticket" button             | Ravenna App Home tab                                | Direct creation from the Slack sidebar                                                                                            |
  | **Form link**           | Paste a Ravenna form URL                 | Any Slack channel, DM, or thread                    | Unfurls to an "Open Form" card; routes by Slack channel → workspace default queue                                                 |
  | **Auto-create**         | Any message in channel                   | Connected request channels with auto-create enabled | Every message becomes a ticket automatically                                                                                      |

  Key distinction: emoji reactions and auto-create only work in connected request channels where Ravenna is a member. Message shortcuts work everywhere in Slack.

  ***

  ## One ticket per thread

  Ravenna enforces a one-ticket-per-thread model. If a ticket emoji is applied to multiple messages in the same Slack thread, only one ticket is created. Subsequent messages in the thread sync to the existing ticket.

  ***

  ## Privacy rules for Slack-created tickets

  Privacy is determined by a priority chain:

  1. **DM context**: Tickets created from Slack DMs with Ravenna are always private. This cannot be overridden.
  2. **Form privacy**: If the form used has the "Private" toggle enabled, the ticket is private.
  3. **Default**: Otherwise, the ticket is public within the workspace.

  Private tickets are visible only to the requester, assignee, followers, approvers, and workspace admins/members.

  ***

  ## Constraints and gotchas

  * Emoji reactions only work on top-level channel messages, not on thread replies.
  * Emoji actions require Ravenna to be a member of the Slack channel. Message shortcuts do not.
  * The shushing emoji (🤫) creates a ticket (or converts an existing one) and marks it private. The reactor becomes the assignee.
  * The lock emoji (🔒) creates a private Slack channel for an existing ticket after user confirmation. This is the only creation method that creates a Slack channel.
  * Auto-create converts every message to a ticket. This should not be combined with an AI agent on the same channel, as auto-create bypasses the agent's conversational flow.
  * Private tickets created from Slack cannot be shared across channels.
  * Replies in the public request thread of a private ticket are not processed as ticket messages. The user receives a one-time ephemeral warning to continue in DMs.
  * Multiple Slack channels can connect to a single Ravenna channel. All connected Slack channels share the same channel settings and automation rules.
  * The message shortcut modal exposes a **Publicly acknowledge that a ticket was created?** checkbox when triggered from a DM or from a channel that isn't a connected request channel. Its default value comes from the form's **Shortcut Public Acknowledgement** setting. Checked posts a threaded confirmation; unchecked sends an ephemeral confirmation only the submitter sees. Connected request channels always post a public confirmation regardless of the setting.
  * When a private form is submitted via the message shortcut from a public channel, Ravenna creates the ticket in DMs with the requester and posts a link to the DM thread in the original public thread instead of the standard confirmation.
</View>
