Organograma

Sobre organogramas

Um organograma mapeia a estrutura formal de reporte de uma organização — quem gerencia quem, quais equipes ficam sob quais líderes, e onde se encaixam vagas em aberto e assessores externos. As equipes de RH recorrem a eles durante o planejamento de headcount; fundadores os usam antes de reuniões com o conselho; gerentes de operações os distribuem durante reestruturações. Ao contrário de um fluxograma genérico, um organograma trata pessoas (e cargos) como as entidades primárias, com a hierarquia codificada por indentação ou arestas explícitas.

O Schematex segue as convenções gerais de organograma com extensões para cargos em aberto/não preenchidos, reporte matricial (linha pontilhada) e relacionamentos de assessoria. Não há um padrão ISO único para organogramas; as convenções implementadas aqui são derivadas da prática de RH e normas do setor de software. Para o contexto acadêmico autoritativo, consulte Fayol (1916) e o artigo da Wikipedia sobre organogramas.

orgchart·§
↘ preview
100%
Acme Corp — Q3 2025 Organizational chart with 15 people and 12 relationships Acme Corp — Q3 2025 Jamie Torres CEO Raj Patel CTO Priya Nair Engineering Lead Alex Kim Senior Engineer Jordan Lee Engineer NEW open "TBH" Frontend Engineer Omar Hassan Engineering Lead Yuki Tanaka Staff Engineer draft "TBH" Senior Engineer $ Maria Santos CFO Nour Ahmed Finance Manager Ellen Wu CPO Tyler Brooks Product Lead Suki Ito Product Lead Dr. Alan Ford Board Advisor
UTF-8 · LF · 18 lines · 878 chars✓ parsed·1.2 ms·14.8 KB SVG

1. Seu primeiro organograma

O menor organograma útil: uma hierarquia de três níveis com um cargo em aberto.

orgchart·§
↘ preview
100%
Engineering Team Organizational chart with 4 people and 2 relationships Engineering Team Wei Zhang CTO Sam Obi Engineering Lead Ana Rossi Engineer open "TBH" Engineer
UTF-8 · LF · 5 lines · 209 chars✓ parsed·0.4 ms·6.1 KB SVG

Quatro regras cobrem 80% dos casos:

  1. Comece com a palavra-chave orgchart, opcionalmente seguida de um título entre aspas.
  2. Cada pessoa é um id: "Nome" | "Cargo" | "Departamento" [props]. O | separa os campos de nome, cargo e departamento.
  3. A indentação determina a hierarquia — cada dois (ou mais) espaços extras move um nó um nível mais fundo sob o nó menos indentado mais próximo acima dele.
  4. Declare cargos em aberto com open id: ou draft id:, e assessores externos com advisor id:.

Os comentários devem começar com # em sua própria linha (o // inline no final da linha também é removido).


2. Nós

Uma linha de nó tem a forma [tipo] id: campos [props]. O id deve corresponder a [A-Za-z][A-Za-z0-9_-]*.

2.1 Campos (separados por pipe)

A parte após : e antes do bloco opcional [props] é dividida em |:

alice: "Alice Zhang"                                # apenas nome
alice: "Alice Zhang" | "VP Engineering"             # nome + cargo
alice: "Alice Zhang" | "VP Eng" | "Platform"        # nome + cargo + departamento
alice: "Alice Zhang" | "VP Eng" | "Platform" | "x@co.com"  # + linha de informação
PosiçãoConteúdoObservações
NomeEntre aspas ou sem aspas
Cargo / nível de trabalhoOpcional
DepartamentoOpcional
Linha de informaçãoOpcional; também configurável via props note:, email:, phone:, location:
orgchart·§
↘ preview
100%
Field count demo Organizational chart with 4 people and 2 relationships Field count demo AL Alice BO Bob "CTO" CA Carol "Engineer" DA Dave "VP Sales" "dave@co.com"
UTF-8 · LF · 5 lines · 161 chars✓ parsed·0.4 ms·4.1 KB SVG

2.2 Tipos de nó

A palavra-chave de tipo opcional antes do id muda como o nó é renderizado:

Palavra-chave(s)TipoSignificado
(nenhuma)personPessoa comum
role, openroleCargo em aberto / não preenchido
draft, tbhdraftCargo planejado, não recrutando ativamente
advisor, externaladvisorAssessor externo, membro do conselho ou contratado
orgchart·§
↘ preview
100%
Node kinds Organizational chart with 5 people and 2 relationships Node kinds Jordan Kim CEO Priya Nair Engineering Lead TBH Senior Engineer HIRING TBH Staff Engineer Dr. Lee Board Advisor
UTF-8 · LF · 6 lines · 289 chars✓ parsed·0.4 ms·6.4 KB SVG

2.3 Propriedades dos nós

As propriedades ficam em [chave: valor, …] no final de uma linha de nó.

PropriedadeValoresEfeito
role:veja tabela abaixoÍcone de função exibido no avatar
icon:mesmo que role:Alias para role:
department:textoSubstitui o campo de departamento
status:new | leaving | on-leavePílula de status no cartão
avatar-color:cor hexadecimal (ex.: "#7B1FA2")Cor de fundo do avatar
gender:male | femaleSilhueta do avatar (usada quando nenhum ícone de função é definido)
note:textoLinha de informação (a primeira prevalece)
email:textoLinha de informação
phone:textoLinha de informação
location:textoLinha de informação
assistant-of:id do nóRenderiza este nó como assessor do nó nomeado
matrix:ids de nós separados por espaço ou vírgulaAdiciona linhas matriciais pontilhadas desses nós para este
reports:id do nóSubstituição explícita do pai (em vez de indentação)
open(flag simples)Marca o nó como em aberto; equivalente a usar a palavra-chave de tipo role
draft ou tbh(flag simples)Marca o nó como rascunho; equivalente à palavra-chave de tipo draft
external(flag simples)Marca o nó como externo; equivalente à palavra-chave de tipo advisor

Ícones de função — o valor de role: resolve para um ícone de exibição. Palavras-chave aceitas (sem distinção de maiúsculas/minúsculas):

Palavras-chaveÍcone
ceoCEO
ctoCTO
cfoCFO
cooCOO
cmoCMO
cpoCPO
vpVP
engineer, engineeringEngineer
designer, designDesigner
salesSales
hrHR
legalLegal
ops, operationsOps
marketingMarketing
productProduct
dataData
advisorAdvisor
internIntern
vacantVacant
orgchart·§
↘ preview
100%
People directory Organizational chart with 8 people and 3 relationships People directory Jamie Torres CEO Raj Patel CTO Priya Nair Staff Engineer NEW Jordan Lee Senior Engineer $ Maria Santos CFO Nour Ahmed Finance Manager ON LEAVE Dr. Alan Ford Board Advisor TBH General Counsel
UTF-8 · LF · 9 lines · 470 chars✓ parsed·0.6 ms·8.3 KB SVG

3. Hierarquia

A hierarquia é expressa por indentação — o padrão mais comum. Cada nó se torna filho do nó mais próximo acima dele com uma indentação menor. Tabulações são tratadas como dois espaços.

ceo: "CEO"
  cto: "CTO"           # filho de ceo (indent 2)
    eng: "Engineer"    # filho de cto (indent 4)
  cfo: "CFO"           # filho de ceo (indent 2, mesmo nível que cto)

Como alternativa, use a propriedade reports: para definir um pai explicitamente, independentemente da indentação:

orgchart "Flat file"
ceo: "CEO"
cto: "CTO" [reports: ceo]
eng: "Engineer" [reports: cto]
orgchart·§
↘ preview
100%
Series A Startup Organizational chart with 12 people and 8 relationships Series A Startup Lena Brandt CEO James Osei CTO Platform Lead Engineering Fatima Al-Rashid Backend Engineer Marco Ricci Backend Engineer Frontend Lead Engineering Yumi Tanaka Frontend Engineer NEW open "TBH" Frontend Engineer Diana Russo CPO Chris Obi Product Manager Kai Nakamura CMO draft "TBH" Growth Marketer
UTF-8 · LF · 13 lines · 647 chars✓ parsed·0.7 ms·12.4 KB SVG

4. Arestas

Existem dois tipos de arestas. A maioria das linhas de reporte vem automaticamente da hierarquia de indentação. Você também pode escrevê-las explicitamente — ou adicionar linhas matriciais (pontilhadas).

OperadorTipo de arestaSignificado
from -> toreportLinha de reporte sólida
from -.-> tomatrixLinha de reporte matricial pontilhada (indireta)

Arestas explícitas requerem que ambos os ids de nó já estejam declarados. Uma aresta report criada explicitamente não é duplicada se o mesmo relacionamento já estiver implícito pela indentação.

Rótulos de arestas são suportados:

pm1 -.-> design [label: "product partnership"]
orgchart·§
↘ preview
100%
Matrix org Organizational chart with 5 people and 3 relationships Matrix org design partner Ellen Wu CPO Core PM Product Manager Growth PM Product Manager Suki Ito Design Lead Ben Park Data Lead
UTF-8 · LF · 10 lines · 378 chars✓ parsed·9.0 ms·5.4 KB SVG

5. Configuração

Linhas config: ajustam o layout e a orientação. Cada uma vai em sua própria linha.

Chave de configValoresPadrãoEfeito
directionTD, LRTDFluxo de cima para baixo ou da esquerda para a direita
layouttree, list, directory, compacttreeModo de layout visual

Notas sobre layout:

  • tree — árvore hierárquica padrão com conectores ramificados. Melhor para a maioria dos organogramas.
  • list / directory / compact — visualização de diretório indentado compacto. Bom para listas grandes de headcount onde a ramificação em árvore se torna complicada.

Layout em árvore (padrão) — cartões de avatar com conectores ramificados e codificação de cor por departamento. Melhor para equipes com até ~30 pessoas.

orgchart·§
↘ preview
100%
Acme Engineering — tree Organizational chart with 8 people and 5 relationships Acme Engineering — tree Wei Zhang CTO Platform Lead Engineering Amara Diallo Staff Engineer Ben Novak Senior Engineer draft "TBH" Engineer Growth Lead Engineering NEW Fatima Al-Rashid Senior Engineer Marco Ricci Engineer
UTF-8 · LF · 9 lines · 454 chars✓ parsed·0.7 ms·10.4 KB SVG

Layout em lista — linhas de diretório compactas com guias de indentação. Melhor para equipes grandes onde a ramificação em árvore se torna complicada.

orgchart·§
↘ preview
100%
Engineering Directory — list Organizational directory with 8 people and 5 reporting relationships Engineering Directory — list · Wei Zhang CTO PT Platform Team 3 reports · Amara Diallo Staff Eng · Ben Novak Senior Eng · draft "TBH" Engineer GT Growth Team 2 reports · Fatima Al-Rashid Senior Eng · Marco Ricci Engineer
UTF-8 · LF · 10 lines · 421 chars✓ parsed·1.0 ms·8.4 KB SVG

6. Rótulos e comentários

  • Título: orgchart "Acme Corp" — somente na primeira linha.
  • Campo de nome: primeiro campo delimitado por pipe após o dois-pontos; pode ser entre aspas ("Alice Zhang") ou sem aspas (Alice).
  • Campos de cargo/departamento: segundo e terceiro campos delimitados por pipe.
  • Linha de informação: quarto campo delimitado por pipe, ou definido via props note:, email:, phone: ou location:. O primeiro encontrado prevalece.
  • Comentários: # no início de uma linha (após espaço em branco inicial). O // inline também é removido.

7. Palavras reservadas e escape

Reservadas no início da linha: orgchart (cabeçalho), config:, role, open, draft, tbh, advisor, external.

Tokens de operador reservados — evite estas sequências dentro de ids: ->, -.->.

Regras de ID: deve corresponder a [A-Za-z][A-Za-z0-9_-]*. Nomes com espaços vão no campo de nome entre aspas, não no id.

Strings com espaços em valores de props (ex.: department: "Platform Eng") devem ser entre aspas duplas.


8. Erros comuns

O que você escreveuO parser dizCorreção
alice: Alice Zhang (nome sem aspas com espaço)Analisa Alice como nome; Zhang é perdido ou mal interpretadoColoque o nome entre aspas: alice: "Alice Zhang"
open1 open: "TBH"open após o id não é uma palavra-chave de tipo; falha no regex de idA palavra-chave de tipo vem primeiro: open open1: "TBH"
alice -> bob antes de qualquer nó ser declaradoOrgchartParseError: Edge references unknown nodeDeclare os nós primeiro, depois escreva as arestas no final
config: direction = top-downValor desconhecido ignorado; direction permanece TDUse TD ou LR
config: layout = compactAceito — mapeia para layout listCorreto; compact, directory e list funcionam
alice [matrix: bob charlie]Ids separados por espaço em matrix: — ambos são adicionadosTambém funciona com vírgulas: matrix: "bob, charlie"
Id de nó com espaço: fe leadO parser toma fe como id; lead falhaUse sublinhado: fe_lead
Id duplicadoOrgchartParseError: Duplicate node idCada nó precisa de um id único

9. Gramática (EBNF)

document       = header (blank | comment | config | edge | node)*

header         = "orgchart" ( WS quoted-string )? NEWLINE
quoted-string  = '"' any-char-but-quote* '"'

config         = "config" WS ":" WS key WS "=" WS value NEWLINE
key            = "direction" | "layout"

node           = INDENT* kind? id ":" WS fields ( "[" node-attrs "]" )? NEWLINE
kind           = "role" | "open" | "draft" | "tbh" | "advisor" | "external" | "person"
fields         = field ( "|" field )*
field          = quoted-string | unquoted-text
node-attrs     = node-attr ("," node-attr)*
node-attr      = "role:" role-keyword
               | "icon:" role-keyword
               | "department:" text
               | "status:" ( "new" | "leaving" | "on-leave" )
               | "avatar-color:" quoted-hex
               | "gender:" ( "male" | "female" )
               | "note:" text
               | "email:" text
               | "phone:" text
               | "location:" text
               | "assistant-of:" id
               | "matrix:" id-list
               | "reports:" id
               | bare-flag

bare-flag      = "open" | "draft" | "tbh" | "external"

edge           = id WS edge-op WS id ( "[" edge-attrs "]" )? NEWLINE
edge-op        = "->" | ".->"  // -.-> for matrix
edge-attrs     = "label:" quoted-string

id             = [A-Za-z] [A-Za-z0-9_-]*
comment        = ( "#" | "//" ) any NEWLINE

Fonte autoritativa: src/diagrams/orgchart/parser.ts. Se houver divergência com o parser, o parser prevalece — por favor, abra uma issue.


10. Roadmap

Planejado — ainda não analisável pelo parser. Não use estes itens em DSL gerada hoje; o parser irá rejeitá-los ou armazená-los como propriedades personalizadas não utilizadas.

  • Renderização visual de assistant-of: — a propriedade é analisada e armazenada na AST, mas o renderizador ainda não desenha o conector de cotovelo do assessor.
  • Config coloring — temas de cores baseados em departamento (coloring: department).
  • Tamanhos de compact em config — controle explícito do tamanho do cartão (size: small | medium | large).
  • span: de largura de nó — expansão de um nó por múltiplas colunas irmãs no layout em árvore.
  • URL de foto / avataravatar: "https://…" para exibir uma foto real.
  • Exportação para formatos HRIS — saída estruturada em JSON/CSV junto com o SVG.

Acompanhe nas issues do GitHub se você precisar de algum desses recursos mais cedo.


Exemplos relacionados

Cenários prontos para uso da galeria de exemplos:

orgchart·§ HR convention
Acme — Series A Team Organizational chart with 15 people and 13 relationships Acme — Series A Team Jamie Torres CEO Raj Patel CTO Priya Nair Eng Lead Alex Kim Senior Engineer Jordan Lee Engineer NEW open "TBH" Frontend Engineer Omar Hassan Eng Lead Yuki Tanaka Staff Engineer draft "TBH" Senior Engineer Ellen Wu CPO Tyler Brooks Product Lead Suki Ito Product Lead Maria Santos COO Nour Ahmed Finance Manager Dr. Alan Ford Board Advisor
Series-A tech startup org
Three-level org chart for a ~30-person Series-A startup — CEO with engineering, product, and ops directs, showing open roles and a board advisor.
saas
orgchart·§ HR convention
Scaleup — Matrixed Product Lines Organizational chart with 14 people and 17 relationships Scaleup — Matrixed Product Lines Jamie Torres CEO Raj Patel CTO Priya Nair Eng Lead Alex Kim Senior Engineer Jordan Lee Engineer Omar Hassan Eng Lead Yuki Tanaka Staff Engineer Maya Patel Engineer Ellen Wu CPO Tyler Brooks PM Suki Ito PM Liu Wei CDO Ana Rossi Designer Kai Park Designer
Scale-up with matrix reporting
Org chart for a 60-person scale-up with two product lines — solid-line functional reporting plus dotted-line product-manager reporting into each engineering lead.
saas

Found this useful?

Schematex is free, fully open source, and zero-dependency. A star helps other developers discover it.