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

# HR and People desk

> Set up a People Operations desk in Ravenna where requests are private by default, using private forms, DM intake, private notes, and scoped knowledge.

An HR desk is an IT desk with the privacy assumptions inverted. On the IT desk, a public thread is a feature: colleagues see the answer and stop asking. On the People desk, a public thread is a liability.

This playbook sets up a workspace where the default is private and going public is a deliberate act.

<Info icon="list-check">
  **Prerequisites:** the [Day one](/guides/day-one/overview) track, so you know how workspaces, channels, forms, and agents fit together.
</Info>

## Give People Ops its own workspace

Do not add an HR channel to the IT workspace. A separate workspace gives you separate members, separate knowledge, its own agent, and its own reporting, and it means an IT responder cannot stumble into a grievance ticket.

<Callout icon="link" color="#6B7280">Learn more about [workspaces](/documentation/platform/workspaces/overview) and [roles and access](/documentation/platform/roles-access)</Callout>

## Understand what makes a ticket private

Two things make a ticket private, and neither of them is the channel being private:

* **A DM to Ravenna.** Tickets created from a Slack direct message are always private, whatever else is configured.
* **A form marked private.** Every ticket from that form is private, even when someone opens the form in a public channel. Ravenna posts a short confirmation in the thread with a deep link to the requester's DM, then moves the whole conversation there.

A private ticket is visible only to the requester, workspace admins and members, the assignee, followers, and approvers. Followers and approvers lose access when removed from the role.

<Warning>
  A private Slack channel is not the same thing as a private ticket. Channel privacy controls who can see the Slack channel. Ticket privacy controls who can see the ticket. Get this wrong and a "private" HR channel still produces tickets visible across the workspace.
</Warning>

<Callout icon="link" color="#6B7280">Learn more about [private tickets](/documentation/tickets/private-tickets)</Callout>

## Mark the sensitive forms private

Start with these, all private:

* Leave request
* Payroll or pay query
* Benefits change
* Report a concern
* Personal detail change

Two consequences of marking a form private, both wanted:

* The agent will not fill it conversationally. Private forms always show the real form UI, so sensitive values are typed into fields rather than into a channel.
* Auto-submit is disabled regardless of your agent settings, so the requester always reviews before it is created.

Keep a small number of forms public: policy questions, how-do-I requests, anything where a visible answer helps the next person.

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

## Use private notes for the internal conversation

Everything your team says to each other about a case belongs in a private note, not a reply. Use the dropdown next to **Send** and choose **Send private**. Notes carry a lock icon, only workspace members can send them, and guests never see them.

Make it a habit on day one. Teams that start with public replies and try to retrofit discipline later leak something eventually.

<Callout icon="link" color="#6B7280">Learn more about [private notes](/documentation/tickets/private-notes)</Callout>

## Scope knowledge to this workspace only

Your HR knowledge folder should be scoped, not global. In the folder's Details panel, turn off **Knowledge to all channels** and select the People channels, then restrict it to the People agent.

Both layers apply. An agent reaches a folder only when the channel and the agent are both permitted, which is exactly what you want for a compensation policy.

<Callout icon="link" color="#6B7280">Learn more about [scoping knowledge](/documentation/automate/knowledge/overview#scoping-knowledge)</Callout>

## Set up the agent differently

Same product, different instincts:

* **Escalate earlier.** Write escalation instructions that hand off rather than persist. A wrong answer about parental leave costs more than a slow one.
* **Answer policy, not cases.** Rules should cover documented policy questions. Anything about an individual's situation goes to a human.
* **Keep tools read-only, or approval-gated.** There is rarely a good reason for an agent to write to an HRIS unprompted.

<Prompt description="For any question about an individual's pay, performance, or a complaint about another person, do not attempt an answer. Create a ticket with @Report a concern and tell the requester that a member of the People team will follow up privately today.">
  For any question about an individual's pay, performance, or a complaint about
  another person, do not attempt an answer. Create a ticket with
  @Report a concern and tell the requester that a member of the People team
  will follow up privately today.
</Prompt>

<Callout icon="link" color="#6B7280">Learn more about [escalation instructions](/documentation/automate/agents/configure#escalation-instructions) and [writing agent rules](/guides/best-practices/writing-agent-rules)</Callout>

## Reach the people who are not in Slack

Frontline, retail, warehouse, and factory staff often have no Slack account, and they are frequently the people with the most urgent HR questions.

The Portal is the answer, but read [Portal and privacy](/guides/best-practices/portal-and-privacy) before you turn it on. Enabling the Portal for a workspace makes that workspace visible to every organization member, even if the workspace itself is private. Ticket visibility does not change, but presence does, and that surprises people.

<Callout icon="link" color="#6B7280">Learn more in [launch the Portal](/guides/playbooks/launch-the-portal)</Callout>

## Where teams get this wrong

<AccordionGroup>
  <Accordion title="Assuming a private channel means private tickets">
    It does not. Mark the forms private.
  </Accordion>

  <Accordion title="Discussing a case in replies">
    Use private notes from the first ticket.
  </Accordion>

  <Accordion title="Sharing knowledge folders across workspaces">
    Scope every HR folder to HR channels and the HR agent.
  </Accordion>

  <Accordion title="Letting the agent try too hard">
    On this desk, escalating quickly is the correct behavior.
  </Accordion>
</AccordionGroup>

## Next

<CardGroup cols={2}>
  <Card title="Employee onboarding" icon="user-plus" href="/guides/playbooks/hr/employee-onboarding" horizontal>
    The process People Ops and IT run together.
  </Card>

  <Card title="Portal and privacy" icon="shield" href="/guides/best-practices/portal-and-privacy" horizontal>
    Read this before enabling the Portal here.
  </Card>
</CardGroup>


## Related topics

- [Portal and privacy](/guides/best-practices/portal-and-privacy.md)
- [HR and People](/guides/playbooks/hr/overview.md)
- [Playbooks](/guides/playbooks/overview.md)
- [Employee onboarding](/guides/playbooks/hr/employee-onboarding.md)
- [PeopleHR](/integrations/peoplehr/overview.md)
