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

# Organização, workspaces e grupos

> Onde cada conteúdo do Brain mora e quem enxerga o quê: a organização, os workspaces, os grupos de cada time e o seu Meu Brain.

export const BrainWhereDoesItLive = ({intro = "", questions = [], yesLabel = "Sim", noLabel = "Não", restartLabel = "Recomeçar", answerLabel = "Onde guardar", fallback = null, badge = "Interativo · experimente"}) => {
  const [step, setStep] = useState(0);
  const [answer, setAnswer] = useState(null);
  const current = questions[step] || null;
  const choose = isYes => {
    if (!current) return;
    if (isYes) {
      setAnswer(current.destination);
      return;
    }
    const next = step + 1;
    if (next < questions.length) {
      setStep(next);
      return;
    }
    setAnswer(fallback);
  };
  const restart = () => {
    setStep(0);
    setAnswer(null);
  };
  return <div className="mo-brain not-prose">
      <div className="mo-brain-head">
        <span className="mo-brain-badge">
          <span aria-hidden="true" className="mo-brain-badge-dot" />
          {badge}
        </span>
      </div>

      {intro ? <p className="mo-brain-intro">{intro}</p> : null}

      {answer ? <div className="mo-brain-answer">
          <p className="mo-brain-eyebrow" style={{
    marginBottom: 0
  }}>
            {answerLabel}
          </p>
          <p className="mo-brain-answer-name">{answer.name}</p>
          <p className="mo-brain-answer-why">{answer.why}</p>
          <button type="button" onClick={restart} className="mo-brain-btn is-quiet" style={{
    marginTop: "1rem"
  }}>
            {restartLabel}
          </button>
        </div> : current ? <div className="mo-brain-panel" style={{
    marginTop: intro ? "1rem" : 0
  }}>
          <p className="mo-brain-step">{`${step + 1}/${questions.length}`}</p>
          <p className="mo-brain-question">{current.text}</p>
          <div className="mo-brain-actions">
            <button type="button" onClick={() => choose(true)} className="mo-brain-btn is-primary">
              {yesLabel}
            </button>
            <button type="button" onClick={() => choose(false)} className="mo-brain-btn">
              {noLabel}
            </button>
          </div>
        </div> : null}
    </div>;
};

export const BrainVisibilitySimulator = ({personas = [], workspaces = [], orgSpace = null, labels = {}, badge = "Interativo · experimente"}) => {
  const [activeId, setActiveId] = useState(personas.length > 0 ? personas[0].id : null);
  const persona = personas.find(p => p.id === activeId) || personas[0];
  const t = {
    pick: "Escolha uma pessoa",
    sidebar: "O Brain como essa pessoa vê",
    personal: "Meu Brain",
    personalNote: "Só você vê",
    groups: "Grupos",
    org: "Organização",
    workspaceNote: "Workspace",
    hidden: "O que essa pessoa não vê",
    nothingHidden: "Nada: essa pessoa alcança todos os espaços compartilhados.",
    ofPreposition: "de",
    ...labels
  };
  if (!persona) return null;
  const seesGroup = group => Boolean(persona.orgAdmin) || (persona.groups || []).indexOf(group.id) !== -1;
  const seesWorkspace = workspace => persona.workspaceId === workspace.id;
  const visibleGroups = [];
  const hiddenNames = [];
  workspaces.forEach(workspace => {
    const isActive = seesWorkspace(workspace);
    if (isActive) {
      (workspace.groups || []).forEach(group => {
        if (seesGroup(group)) {
          visibleGroups.push(group);
        } else {
          hiddenNames.push(`${t.groups} · ${group.label}`);
        }
      });
      return;
    }
    if (!persona.orgAdmin) hiddenNames.push(`${t.workspaceNote} · ${workspace.label}`);
  });
  personas.forEach(other => {
    if (other.id !== persona.id) {
      hiddenNames.push(`${t.personal} ${t.ofPreposition} ${other.name}`);
    }
  });
  const activeWorkspace = workspaces.find(seesWorkspace) || null;
  return <div className="mo-brain not-prose">
      <div className="mo-brain-head">
        <span className="mo-brain-badge">
          <span aria-hidden="true" className="mo-brain-badge-dot" />
          {badge}
        </span>
      </div>

      <p className="mo-brain-eyebrow">{t.pick}</p>
      <div className="mo-brain-choices">
        {personas.map(p => <button key={p.id} type="button" onClick={() => setActiveId(p.id)} aria-pressed={p.id === persona.id} className="mo-brain-choice">
            <span className="mo-brain-choice-name">{p.name}</span>
            <span className="mo-brain-choice-role">{p.role}</span>
          </button>)}
      </div>

      <div className="mo-brain-grid" style={{
    marginTop: "1.25rem"
  }}>
        <div className="mo-brain-panel">
          <p className="mo-brain-eyebrow">{t.sidebar}</p>

          <div className="mo-brain-section">
            <span className="mo-brain-section-label">{t.personal}</span>
            <span className="mo-brain-section-note">{t.personalNote}</span>
          </div>
          {(persona.personalItems || []).map(item => <div key={item} className="mo-brain-row">
              <span aria-hidden="true" className="mo-brain-row-icon">
                ▸
              </span>
              <span>{item}</span>
            </div>)}

          {visibleGroups.length > 0 ? <div>
              <div className="mo-brain-section">
                <span className="mo-brain-section-label">{t.groups}</span>
              </div>
              {visibleGroups.map(group => <div key={group.id}>
                  <div className="mo-brain-row">
                    <span aria-hidden="true" className="mo-brain-row-icon">
                      ▾
                    </span>
                    <span>{group.label}</span>
                  </div>
                  {(group.items || []).map(item => <div key={item} className="mo-brain-row is-nested">
                      <span aria-hidden="true" className="mo-brain-row-icon">
                        ▸
                      </span>
                      <span>{item}</span>
                    </div>)}
                </div>)}
            </div> : null}

          {activeWorkspace ? <div>
              <div className="mo-brain-section">
                <span className="mo-brain-section-label">{activeWorkspace.label}</span>
                <span className="mo-brain-section-note">{t.workspaceNote}</span>
              </div>
              {(activeWorkspace.items || []).map(item => <div key={item} className="mo-brain-row">
                  <span aria-hidden="true" className="mo-brain-row-icon">
                    ▸
                  </span>
                  <span>{item}</span>
                </div>)}
            </div> : null}

          {orgSpace ? <div>
              <div className="mo-brain-section">
                <span className="mo-brain-section-label">{t.org}</span>
                {orgSpace.note ? <span className="mo-brain-section-note">{orgSpace.note}</span> : null}
              </div>
              {(orgSpace.items || []).map(item => <div key={item} className="mo-brain-row">
                  <span aria-hidden="true" className="mo-brain-row-icon">
                    ▸
                  </span>
                  <span>{item}</span>
                </div>)}
            </div> : null}
        </div>

        <div className="mo-brain-panel">
          <p className="mo-brain-eyebrow">{t.hidden}</p>
          {hiddenNames.length > 0 ? <ul className="mo-brain-hidden-list">
              {hiddenNames.map(name => <li key={name} className="mo-brain-hidden-item">
                  <span aria-hidden="true" className="mo-brain-hidden-mark">
                    ✕
                  </span>
                  <span>{name}</span>
                </li>)}
            </ul> : <p className="mo-brain-intro" style={{
    marginTop: "0.75rem"
  }}>
              {t.nothingHidden}
            </p>}
          {persona.note ? <p className="mo-brain-note">{persona.note}</p> : null}
        </div>
      </div>
    </div>;
};

export const BrainSpaceLadder = ({rungs = [], peopleTotal = 9, reachLabel = "Quem alcança", hint = "", badge = "Interativo · experimente"}) => {
  const [activeId, setActiveId] = useState(rungs.length > 0 ? rungs[0].id : null);
  const active = rungs.find(r => r.id === activeId) || rungs[0];
  const people = Array.from({
    length: peopleTotal
  }, (_, i) => i);
  return <div className="mo-brain not-prose">
      <div className="mo-brain-head">
        <span className="mo-brain-badge">
          <span aria-hidden="true" className="mo-brain-badge-dot" />
          {badge}
        </span>
      </div>

      <div className="mo-brain-rungs">
        {rungs.map((rung, index) => <button key={rung.id} type="button" onClick={() => setActiveId(rung.id)} aria-pressed={Boolean(active) && rung.id === active.id} className="mo-brain-rung" style={{
    marginLeft: `${index * 16}px`,
    marginRight: `${index * 16}px`
  }}>
            <span aria-hidden="true" className="mo-brain-bullet" />
            <span>
              <span className="mo-brain-rung-name">{rung.name}</span>
              <span className="mo-brain-rung-audience">{rung.audience}</span>
            </span>
          </button>)}
      </div>

      {active ? <div className="mo-brain-panel" style={{
    marginTop: "1.25rem"
  }}>
          <p className="mo-brain-eyebrow" style={{
    marginBottom: 0
  }}>
            {reachLabel}
          </p>
          <div className="mo-brain-people">
            {people.map(i => <span key={i} aria-hidden="true" className={i < active.reach ? "mo-brain-person is-on" : "mo-brain-person"} />)}
            <span className="mo-brain-people-note">{active.reachLabel}</span>
          </div>
          <p className="mo-brain-rule">{active.rule}</p>
        </div> : null}

      {hint ? <p className="mo-brain-hint">{hint}</p> : null}
    </div>;
};

export const BrainVisualStyles = () => {
  const css = `
.mo-brain {
  --mo-bg: #fafafa;
  --mo-panel: #ffffff;
  --mo-border: #e4e4e7;
  --mo-border-strong: #d4d4d8;
  --mo-text: #27272a;
  --mo-text-soft: #52525b;
  --mo-text-faint: #a1a1aa;
  --mo-accent: #0073ff;
  --mo-accent-soft: #eaf3ff;
  --mo-accent-text: #0059c7;
  --mo-accent-ring: rgba(0, 115, 255, 0.35);
  --mo-hover: #f4f4f5;
  --mo-dim: #e4e4e7;
  margin: 1.5rem 0;
  border: 1px solid var(--mo-border);
  border-radius: 16px;
  background: var(--mo-bg);
  padding: 1.25rem;
  font-size: 14px;
  line-height: 1.5;
  color: var(--mo-text);
}
.dark .mo-brain {
  --mo-bg: rgba(24, 24, 27, 0.6);
  --mo-panel: #18181b;
  --mo-border: #27272a;
  --mo-border-strong: #3f3f46;
  --mo-text: #e4e4e7;
  --mo-text-soft: #a1a1aa;
  --mo-text-faint: #71717a;
  --mo-accent: #4da3ff;
  --mo-accent-soft: rgba(0, 115, 255, 0.16);
  --mo-accent-text: #93c5fd;
  --mo-accent-ring: rgba(77, 163, 255, 0.35);
  --mo-hover: rgba(63, 63, 70, 0.45);
  --mo-dim: #3f3f46;
}
.mo-brain * { box-sizing: border-box; }
.mo-brain-head { display: flex; justify-content: flex-end; margin: 0 0 0.75rem; }
.mo-brain-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  border: 1px solid var(--mo-border);
  border-radius: 999px;
  background: var(--mo-panel);
  padding: 0.1875rem 0.5rem;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--mo-text-faint);
}
.mo-brain-badge-dot {
  flex: 0 0 auto;
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background: var(--mo-accent);
}
/* The pulse is the only motion here, and it stops on its own: it tells a reader
   scrolling past that the block answers to a click. */
@media (prefers-reduced-motion: no-preference) {
  .mo-brain-badge-dot { animation: mo-brain-pulse 1.9s ease-out 3; }
}
@keyframes mo-brain-pulse {
  0% { box-shadow: 0 0 0 0 var(--mo-accent-ring); }
  70% { box-shadow: 0 0 0 7px rgba(0, 0, 0, 0); }
  100% { box-shadow: 0 0 0 0 rgba(0, 0, 0, 0); }
}
.mo-brain-eyebrow {
  margin: 0 0 0.75rem;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--mo-text-faint);
}
.mo-brain-panel {
  border: 1px solid var(--mo-border);
  border-radius: 12px;
  background: var(--mo-panel);
  padding: 1rem;
}
.mo-brain-grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: 1fr;
}
@media (min-width: 640px) {
  .mo-brain-grid { grid-template-columns: 1fr 1fr; }
}
.mo-brain-choices {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.mo-brain-choice {
  cursor: pointer;
  border: 1px solid var(--mo-border);
  border-radius: 12px;
  background: var(--mo-panel);
  padding: 0.5rem 0.75rem;
  text-align: left;
  transition: border-color 0.15s ease, background 0.15s ease;
}
.mo-brain-choice:hover { border-color: var(--mo-border-strong); background: var(--mo-hover); }
.mo-brain-choice:active { border-color: var(--mo-accent); }
.mo-brain-choice:focus-visible { outline: 2px solid var(--mo-accent); outline-offset: 2px; }
.mo-brain-choice[aria-pressed="true"] {
  border-color: var(--mo-accent);
  background: var(--mo-accent-soft);
}
.mo-brain-choice-name {
  display: block;
  font-weight: 600;
  color: var(--mo-text);
}
.mo-brain-choice[aria-pressed="true"] .mo-brain-choice-name { color: var(--mo-accent-text); }
.mo-brain-choice-role {
  display: block;
  font-size: 12px;
  color: var(--mo-text-soft);
}
.mo-brain-rungs { display: flex; flex-direction: column; gap: 0.5rem; align-items: stretch; }
/* No width here on purpose: the rung is stretched by the column flexbox, so the
   per-level inset margins shrink it symmetrically into a funnel instead of
   pushing it past the card's edges. */
.mo-brain-rung {
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 0.75rem;
  border: 1px solid var(--mo-border);
  border-radius: 12px;
  background: var(--mo-panel);
  padding: 0.75rem 1rem;
  text-align: left;
  transition: border-color 0.15s ease, background 0.15s ease;
}
.mo-brain-rung:hover { border-color: var(--mo-border-strong); background: var(--mo-hover); }
.mo-brain-rung:active { border-color: var(--mo-accent); }
.mo-brain-rung:focus-visible { outline: 2px solid var(--mo-accent); outline-offset: 2px; }
.mo-brain-rung[aria-pressed="true"] {
  border-color: var(--mo-accent);
  background: var(--mo-accent-soft);
}
.mo-brain-bullet {
  flex: 0 0 auto;
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: var(--mo-dim);
}
.mo-brain-rung[aria-pressed="true"] .mo-brain-bullet { background: var(--mo-accent); }
.mo-brain-rung-name { display: block; font-weight: 600; color: var(--mo-text); }
.mo-brain-rung[aria-pressed="true"] .mo-brain-rung-name { color: var(--mo-accent-text); }
.mo-brain-rung-audience { display: block; font-size: 12px; color: var(--mo-text-soft); }
.mo-brain-people {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  margin-top: 0.5rem;
}
.mo-brain-person {
  width: 18px;
  height: 18px;
  border-radius: 999px;
  background: var(--mo-dim);
}
.mo-brain-person.is-on { background: var(--mo-accent); }
.mo-brain-people-note {
  margin-left: 0.375rem;
  font-size: 12px;
  color: var(--mo-text-soft);
}
.mo-brain-rule { margin: 0.75rem 0 0; color: var(--mo-text); }
.mo-brain-hint { margin: 1rem 0 0; font-size: 12px; color: var(--mo-text-soft); }
.mo-brain-section {
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
  margin-top: 0.875rem;
}
.mo-brain-section:first-child { margin-top: 0; }
.mo-brain-section-label {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--mo-text-soft);
}
.mo-brain-section-note { font-size: 11px; color: var(--mo-text-faint); }
.mo-brain-row {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.25rem 0 0.25rem 1rem;
  color: var(--mo-text);
}
.mo-brain-row.is-nested { padding-left: 2rem; }
.mo-brain-row-icon { font-size: 10px; color: var(--mo-text-faint); }
.mo-brain-hidden-list { margin: 0.75rem 0 0; padding: 0; list-style: none; }
.mo-brain-hidden-item {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  padding: 0.1875rem 0;
  color: var(--mo-text-soft);
}
.mo-brain-hidden-mark { font-size: 11px; line-height: 1.6; }
.mo-brain-note {
  margin: 1rem 0 0;
  border-top: 1px solid var(--mo-border);
  padding-top: 0.75rem;
  color: var(--mo-text);
}
.mo-brain-answer {
  margin-top: 1rem;
  border: 1px solid var(--mo-accent);
  border-radius: 12px;
  background: var(--mo-accent-soft);
  padding: 1rem;
}
.mo-brain-answer-name {
  margin: 0.25rem 0 0;
  font-size: 16px;
  font-weight: 700;
  color: var(--mo-accent-text);
}
.mo-brain-answer-why { margin: 0.5rem 0 0; color: var(--mo-text); }
.mo-brain-question { margin: 0.25rem 0 0; font-size: 16px; font-weight: 600; color: var(--mo-text); }
.mo-brain-actions { display: flex; gap: 0.5rem; margin-top: 1rem; }
.mo-brain-btn {
  cursor: pointer;
  border-radius: 10px;
  border: 1px solid var(--mo-border-strong);
  background: var(--mo-panel);
  padding: 0.5rem 1rem;
  font-weight: 500;
  color: var(--mo-text);
  transition: border-color 0.15s ease, background 0.15s ease, filter 0.15s ease;
}
.mo-brain-btn:hover { border-color: var(--mo-accent); background: var(--mo-hover); }
.mo-brain-btn:focus-visible { outline: 2px solid var(--mo-accent); outline-offset: 2px; }
.mo-brain-btn.is-primary {
  border-color: var(--mo-accent);
  background: var(--mo-accent);
  color: #ffffff;
}
.mo-brain-btn.is-primary:hover { background: var(--mo-accent); filter: brightness(1.1); }
.mo-brain-btn.is-quiet { padding: 0.375rem 0.75rem; font-size: 13px; }
.mo-brain-intro { margin: 0; color: var(--mo-text-soft); }
.mo-brain-step { margin: 0; font-size: 11px; font-weight: 600; letter-spacing: 0.06em; color: var(--mo-text-faint); }
`;
  return <style>{css}</style>;
};

<BrainVisualStyles />

O [Brain](/morada-os/brain/index) funciona como as pastas do seu computador: cada conteúdo mora em **um lugar só**, e é esse lugar que decide quem enxerga ele.

Escolher bem esse lugar é o que faz o Brain ser útil sem virar bagunça. Esta página mostra os lugares disponíveis, a regra de cada um e como mudar de ideia depois.

***

## A escada de alcance

Os lugares vão do mais amplo ao mais restrito. Clique em cada degrau para ver quanta gente ele alcança.

<BrainSpaceLadder
  peopleTotal={9}
  reachLabel="Quem alcança"
  hint="Quanto mais alto o degrau, mais gente enxerga. Na dúvida entre dois, escolha o mais restrito: subir depois é fácil."
  rungs={[
{
  id: "org",
  name: "Organização",
  audience: "Todo mundo da empresa",
  reach: 9,
  reachLabel: "9 de 9 pessoas",
  rule: "É a sua empresa. O que vale para todo mundo mora aqui: tabela de preços oficial, política comercial, código de conduta. Quem administra a organização enxerga todos os espaços compartilhados.",
},
{
  id: "workspace",
  name: "Workspace",
  audience: "Quem é dessa marca",
  reach: 5,
  reachLabel: "5 de 9 pessoas",
  rule: "É uma empresa dentro da empresa: uma marca ou uma unidade de negócio, com o próprio administrador. Na maioria das empresas existe um só. Quem é do workspace compartilha o mesmo Brain e as mesmas conversas.",
},
{
  id: "grupo",
  name: "Grupo",
  audience: "Só os membros do grupo",
  reach: 3,
  reachLabel: "3 de 9 pessoas",
  rule: "É uma área da empresa: Comercial, Jurídico, Marketing, Financeiro. O que está no grupo só existe para quem é do grupo. Quem está de fora nem sabe que aquilo existe.",
},
{
  id: "meu",
  name: "Meu Brain",
  audience: "Só você",
  reach: 1,
  reachLabel: "1 de 9 pessoas",
  rule: "É o seu espaço pessoal. Rascunho, anotação, material em preparo. Nem um colega nem um administrador conseguem abrir.",
},
]}
/>

```mermaid theme={null}
flowchart TD
    O["Organização<br/>todo mundo da empresa"] --> W["Workspace<br/>quem é dessa marca"]
    W --> G1["Grupo Comercial<br/>só quem é do time"]
    W --> G2["Grupo Jurídico<br/>só quem é do time"]
    O -.-> M["Meu Brain<br/>só você"]
```

### Quantos workspaces a sua empresa precisa?

Na maioria dos casos, **um só**. A empresa inteira trabalha em um workspace, as áreas viram grupos, e o Morada OS nem mostra a escolha de workspace na tela.

Um segundo workspace aparece quando existem **empresas ou marcas distintas dentro da mesma organização**, cada uma com o próprio administrador e o próprio dia a dia.

<Columns cols={2}>
  <Card title="O caso mais comum" icon="building">
    Uma empresa, um workspace. Marketing, Tecnologia, Comercial e Financeiro são **grupos** dentro dele.
  </Card>

  <Card title="Quando entra um segundo workspace" icon="sitemap">
    Uma incorporadora com duas marcas, cada uma com o próprio administrador: um workspace para cada marca e, dentro de cada uma, os grupos Comercial, Jurídico e Marketing.
  </Card>
</Columns>

<Warning>
  Área da empresa nunca vira workspace. Marketing, Jurídico e Financeiro são **grupos**: é o grupo que reserva o conteúdo de um time sem cortar a empresa em duas.
</Warning>

<Note>
  Com um workspace só, o Morada OS junta os dois níveis de cima e mostra apenas **Organização** na barra lateral. Não muda nada na prática: é só uma tela mais simples para quem não precisa da separação.
</Note>

***

## Quem vê o quê, na prática

No exemplo abaixo, a organização é uma incorporadora com duas marcas: **Vila Verde** e **Alto da Serra**. Cada marca é um workspace, e dentro de cada uma as áreas são grupos. Escolha uma pessoa e veja o Brain exatamente como ele aparece para ela.

<BrainVisibilitySimulator
  personas={[
{
  id: "ana",
  name: "Ana",
  role: "Comercial da Vila Verde",
  workspaceId: "vila-verde",
  groups: ["vv-comercial"],
  personalItems: ["Rascunho da proposta do Ed. Aurora"],
  note: "Ana é do grupo Comercial, então o espaço do time aparece no Brain dela. Os grupos Jurídico e Marketing não existem na tela dela: não aparecem na barra lateral, não saem na busca e não entram nas respostas da assistente.",
},
{
  id: "bruno",
  name: "Bruno",
  role: "Vila Verde, sem grupo",
  workspaceId: "vila-verde",
  groups: [],
  personalItems: ["Minhas anotações da semana"],
  note: "Bruno é do mesmo workspace que Ana, mas não entrou em nenhum grupo. Ele enxerga tudo o que é da marca e da organização, e nada do que as áreas reservaram para si.",
},
{
  id: "carla",
  name: "Carla",
  role: "Administra a organização",
  workspaceId: "vila-verde",
  groups: [],
  orgAdmin: true,
  personalItems: ["Minha lista de pendências"],
  note: "Quem administra a organização enxerga o conteúdo de todos os grupos da marca em que está: é o papel de zeladoria. A única coisa que nem essa pessoa abre é o Meu Brain de outra pessoa. Para ver o Brain do Alto da Serra, Carla troca de workspace.",
},
{
  id: "diego",
  name: "Diego",
  role: "Marketing do Alto da Serra",
  workspaceId: "alto-da-serra",
  groups: ["as-marketing"],
  personalItems: ["Ideias de campanha"],
  note: "Diego é de outra marca. Ele e a Ana são da mesma empresa e compartilham o espaço da Organização, mas o Brain da Vila Verde não chega até ele. Repare que Marketing é um grupo dentro do Alto da Serra, e não um workspace: cada marca tem as próprias áreas.",
},
]}
  workspaces={[
{
  id: "vila-verde",
  label: "Vila Verde",
  items: ["Metas do trimestre"],
  groups: [
    { id: "vv-comercial", label: "Comercial", items: ["Contorno de objeções"] },
    { id: "vv-juridico", label: "Jurídico", items: ["Minuta de permuta"] },
    { id: "vv-marketing", label: "Marketing", items: ["Calendário de lançamentos"] },
  ],
},
{
  id: "alto-da-serra",
  label: "Alto da Serra",
  items: ["Padrão de acabamento"],
  groups: [
    { id: "as-comercial", label: "Comercial", items: ["Argumentário da marca"] },
    { id: "as-marketing", label: "Marketing", items: ["Campanha de lançamento"] },
  ],
},
]}
  orgSpace={{ note: "Todo mundo", items: ["Tabela de preços oficial", "Política comercial"] }}
/>

***

## Grupos: as áreas dentro do workspace

Um **grupo** é uma área da empresa dentro de um workspace: Comercial, Jurídico, Pós-vendas, Marketing, Financeiro. Se o workspace é a empresa (ou a marca), os grupos são os workspaces do workspace.

A parte importante: **um grupo é um espaço, não um botão de permissão**. Ele tem a própria raiz na barra lateral do Brain, com as próprias pastas e páginas. Cada grupo que a sua empresa cria vira mais uma raiz debaixo de **Grupos**.

<img src="https://mintcdn.com/moradaai-f7bfc739/Z89N6chvTainfxWZ/images/morada-os/brain/brain-sidebar-grupos.png?fit=max&auto=format&n=Z89N6chvTainfxWZ&q=85&s=2a100d5c7264a5cdda68f7a425463a36" alt="Barra lateral do Brain mostrando a seção Grupos com os grupos Comercial e Jurídico" width="1080" height="664" data-path="images/morada-os/brain/brain-sidebar-grupos.png" />

<Info>
  Um grupo vazio mostra **"Nada por aqui ainda."** na barra lateral. Quem pode organizar o espaço vê também o convite para criar a primeira pasta do time.
</Info>

### Para quem está de fora, o conteúdo simplesmente não existe

Isso vale em todo lugar do produto, ao mesmo tempo:

<Columns cols={2}>
  <Card title="Barra lateral" icon="bars">
    A raiz do grupo não aparece. Não existe pasta cinza, cadeado nem "conteúdo restrito".
  </Card>

  <Card title="Busca" icon="magnifying-glass">
    As páginas do grupo não entram nos resultados de quem não é do time.
  </Card>

  <Card title="Fontes" icon="file-arrow-up">
    Os arquivos enviados para o grupo não aparecem no acervo de quem está de fora.
  </Card>

  <Card title="Respostas da assistente" icon="sparkles">
    A assistente não usa o conteúdo do grupo para responder a quem não é do time.
  </Card>
</Columns>

<Tip>
  Se alguém te mandar o link de uma pasta de um grupo do qual você não faz parte, a tela avisa que aquele conteúdo vive no espaço de um grupo e sugere pedir para alguém do time incluir você. Nada do conteúdo aparece.
</Tip>

***

## As três regras que resolvem quase tudo

### 1. Cada conteúdo mora em um lugar só

Como um arquivo mora em uma pasta só. Não existe "publicar no Comercial e também no Jurídico": ou o conteúdo é dos dois times, e aí ele sobe um degrau, ou ele é de um só.

### 2. O que dois times compartilham sobe um degrau

Se Comercial e Jurídico precisam da mesma minuta, ela não pertence a nenhum dos dois: ela é do workspace. Se todas as marcas da organização precisam, ela é da organização.

Esse é o teste rápido: **pergunte quem precisa e escolha o degrau exatamente suficiente**.

### 3. O container decide

O que é criado ou enviado **dentro** da árvore de um grupo já nasce daquele grupo, automaticamente. Você não marca nada, não escolhe permissão, não confere depois. Igual a salvar um arquivo dentro de uma pasta: ele fica onde você salvou.

<BrainWhereDoesItLive
  intro="Na dúvida, responda estas perguntas na ordem."
  answerLabel="Onde guardar"
  restartLabel="Recomeçar"
  yesLabel="Sim"
  noLabel="Não"
  fallback={{
name: "Organização",
why: "Se o conteúdo vale para a organização inteira, e não só para uma marca, ele é da organização.",
}}
  questions={[
{
  text: "É rascunho, ou material que só interessa a você?",
  destination: {
    name: "Meu Brain",
    why: "Ninguém mais precisa abrir, nem um administrador. Quando estiver pronto para compartilhar, você move para um espaço compartilhado.",
  },
},
{
  text: "Só um time específico precisa disso?",
  destination: {
    name: "O grupo desse time",
    why: "O grupo é o espaço do time. Se um segundo time começar a precisar, aí sim o conteúdo sobe para o workspace.",
  },
},
{
  text: "Vale para todo mundo do seu workspace?",
  destination: {
    name: "Workspace",
    why: "É o espaço compartilhado por todo mundo que trabalha nessa marca.",
  },
},
]}
/>

```mermaid theme={null}
flowchart TD
    A{"Quem precisa<br/>desse conteúdo?"} -->|"Só eu"| B["Meu Brain"]
    A -->|"Um time"| C["O grupo do time"]
    A -->|"Todo o meu workspace"| D["Workspace"]
    A -->|"A empresa inteira"| E["Organização"]
    C --> F{"Um segundo time<br/>passou a precisar?"}
    F -->|"Sim"| D
    F -->|"Não"| C
```

***

## Levar uma pasta que já existe para um grupo

Às vezes o time se organiza depois do conteúdo. Uma pasta que hoje está no workspace pode ser levada para o espaço de um grupo.

Na pasta, abra o menu de ações e escolha **Mover para um grupo**. Assim que você escolhe o grupo, o Morada OS mostra o tamanho da mudança antes de qualquer coisa acontecer:

<img src="https://mintcdn.com/moradaai-f7bfc739/Z89N6chvTainfxWZ/images/morada-os/brain/mover-pasta-para-grupo.png?fit=max&auto=format&n=Z89N6chvTainfxWZ&q=85&s=3899760327baf7401af240a018483c6a" alt="Diálogo Mover para um grupo mostrando quantas páginas e fontes vão junto" width="1080" height="664" data-path="images/morada-os/brain/mover-pasta-para-grupo.png" />

O aviso diz quantas páginas e quantas fontes vão junto, e para qual grupo. Só depois de confirmar é que a pasta muda de lugar, com tudo o que está dentro dela.

<Warning>
  A ida é fácil, a volta não. Uma pasta que passou a viver no espaço de um grupo não é trazida de volta para o workspace pela interface. Confira o aviso antes de confirmar: quem não é do grupo deixa de enxergar aquele conteúdo na mesma hora.
</Warning>

Alguns casos em que o Morada OS não deixa mover, sempre explicando o motivo:

<AccordionGroup>
  <Accordion title="A pasta não é uma pasta raiz">
    Só uma pasta raiz muda de espaço. Uma subpasta acompanha a pasta que está acima dela.
  </Accordion>

  <Accordion title="Você não faz parte do grupo de destino">
    Administrar o workspace não coloca você dentro do time. Entre no grupo, ou peça a quem administra a organização.
  </Accordion>

  <Accordion title="A pasta tem propostas esperando aprovação">
    Uma proposta guarda o espaço de quando ela foi feita e deixaria de valer com a mudança. Aprove ou descarte as pendentes antes de mover.
  </Accordion>
</AccordionGroup>

<Note>
  **Mover para** e **Mover para um grupo** são coisas diferentes. "Mover para" reorganiza a pasta dentro do mesmo espaço, sem mexer em quem enxerga. "Mover para um grupo" é o que muda a audiência.
</Note>

***

## Enviar uma fonte para um grupo

Ao enviar um arquivo, os grupos aparecem como destino, no mesmo nível dos outros espaços. Cada opção explica em uma linha quem vai enxergar:

<img src="https://mintcdn.com/moradaai-f7bfc739/Z89N6chvTainfxWZ/images/morada-os/brain/enviar-fonte-destino.png?fit=max&auto=format&n=Z89N6chvTainfxWZ&q=85&s=af6a8d431ac7d6764ba0844e926b7b34" alt="Diálogo Enviar fonte com os grupos entre os destinos possíveis" width="1440" height="900" data-path="images/morada-os/brain/enviar-fonte-destino.png" />

Se você tentar enviar para uma pasta de um grupo do qual não faz parte, o Morada OS avisa e sugere pedir a inclusão a um gestor do grupo.

***

## Pedir para a assistente anotar no grupo

A assistente conhece os grupos dos quais **você** faz parte e sabe arquivar neles quando você diz o nome:

> anota no Brain do Comercial: desconto máximo sem aprovação da diretoria é 4% na tabela, e 6% quando o cliente fecha à vista.

O caminho continua sendo o mesmo do resto do Brain: ela prepara a página, mostra o destino no cartão e espera o seu ok.

<img src="https://mintcdn.com/moradaai-f7bfc739/Z89N6chvTainfxWZ/images/morada-os/brain/proposta-destino-grupo.png?fit=max&auto=format&n=Z89N6chvTainfxWZ&q=85&s=035e0f1332da00ae3ec267b43586516f" alt="Cartão de proposta no chat mostrando o destino Comercial" width="1440" height="900" data-path="images/morada-os/brain/proposta-destino-grupo.png" />

<Tip>
  Sem citar um time, a assistente propõe no workspace. Se você citar um grupo que não existe ou do qual você não participa, ela avisa e diz quais são os seus grupos, em vez de escolher por conta própria.
</Tip>

***

## Criar e administrar grupos

Grupos são administrados em **Configurações**, na seção **Grupos** do workspace. Quem administra a organização, e quem administra aquele workspace, pode criar, renomear, desativar e definir quem participa.

<img src="https://mintcdn.com/moradaai-f7bfc739/Z89N6chvTainfxWZ/images/morada-os/brain/configuracoes-grupos.png?fit=max&auto=format&n=Z89N6chvTainfxWZ&q=85&s=2d70c50447f0c4100553b076d00994dc" alt="Tela de configurações com a lista de grupos do workspace" width="1440" height="900" data-path="images/morada-os/brain/configuracoes-grupos.png" />

<Steps>
  <Step title="Criar o grupo">
    Clique em **Criar grupo** e dê um nome. O nome é a única informação necessária, e é por ele que a assistente reconhece o time quando alguém pede para anotar alguma coisa.
  </Step>

  <Step title="Incluir as pessoas">
    Abra o grupo e use **Adicionar membro**. Só aparecem pessoas que já estão no workspace. Cada pessoa entra como **Membro** ou **Gestor**.
  </Step>

  <Step title="Criar a primeira pasta">
    No Brain, na raiz do grupo, crie a primeira pasta do time. Daí em diante, tudo o que nascer ali dentro já é do grupo.
  </Step>
</Steps>

### Membro e gestor

| Papel      | O que faz                                                                                          |
| ---------- | -------------------------------------------------------------------------------------------------- |
| **Membro** | Enxerga e consulta o conteúdo do grupo, e contribui propondo alterações para um gestor aprovar.    |
| **Gestor** | Cuida do espaço do grupo: cria e edita pastas e páginas, e aprova as propostas destinadas ao time. |

<Note>
  Desativar um grupo esconde as pastas dele de quem estava no time, mas não apaga nada: as pessoas continuam registradas no grupo e ele pode ser reativado depois.
</Note>

***

## Perguntas frequentes

<AccordionGroup>
  <Accordion title="Qual a diferença entre um workspace e um grupo?">
    O workspace é uma empresa dentro da empresa: uma marca ou uma unidade de negócio, com o próprio administrador. O grupo é uma área dentro dela: Comercial, Jurídico, Marketing, Financeiro. Uma área nunca vira workspace, e na maioria das empresas existe um workspace só.
  </Accordion>

  <Accordion title="Alguém que administra a organização lê o meu Meu Brain?">
    Não. Essa é a única exceção que vale para todo mundo: o Meu Brain é da pessoa. O que precisa ser compartilhado, você move para um espaço compartilhado quando quiser.
  </Accordion>

  <Accordion title="Posso participar de mais de um grupo?">
    Sim. Cada grupo do qual você participa vira uma raiz na seção **Grupos** do seu Brain.
  </Accordion>

  <Accordion title="Coloquei uma pasta no grupo errado. E agora?">
    Fale com quem administra a organização. Trazer o conteúdo de volta ou levá-lo para outro grupo ainda não é feito pela interface, e por isso o aviso de confirmação mostra o tamanho da mudança antes de você confirmar.
  </Accordion>

  <Accordion title="Por que não vejo a seção Grupos?">
    Ela aparece quando existe pelo menos um grupo que você enxerga. Se a sua empresa ainda não criou grupos, ou se você não entrou em nenhum, a seção fica oculta.
  </Accordion>
</AccordionGroup>

***

<Card title="Voltar para o Brain" icon="brain" href="/morada-os/brain/index">
  Fontes, páginas, aprovação de propostas e busca no acervo.
</Card>
