Hanzo Team docs: port + rebrand from upstream, Fumadocs static site

- Standalone Fumadocs (Next 16 static export) app, same stack as hanzo-docs org
- 79 pages ported from upstream Huly docs, fully rebranded to Hanzo Team
- Removed lead/inventory; added Account & billing (orgs/workspaces, usage, agents)
- Login updated to Continue with Hanzo (hanzo.id) + Google/GitHub + email
- CF Pages deploy workflow (org CF creds) -> docs.hanzo.team
This commit is contained in:
hanzo-dev
2026-07-21 10:34:45 -07:00
commit 589b25bdca
120 changed files with 8312 additions and 0 deletions
+86
View File
@@ -0,0 +1,86 @@
name: Deploy Team Docs
on:
push:
branches: [main]
paths:
- 'content/**'
- 'app/**'
- 'lib/**'
- 'public/**'
- '*.ts'
- '*.tsx'
- '*.mjs'
- '*.json'
- '.github/workflows/deploy.yml'
workflow_dispatch:
concurrency:
group: deploy-team-docs
cancel-in-progress: true
jobs:
deploy:
runs-on: hanzo-docs-build-linux-amd64
permissions:
contents: read
deployments: write
env:
# Org-level Cloudflare deploy credentials (hanzo-docs org secrets,
# provisioned from Hanzo KMS). Same creds the rest of the docs org uses.
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
with:
node-version: 22
cache: pnpm
- run: pnpm install --frozen-lockfile
- run: pnpm build
env:
NEXT_PUBLIC_SITE_URL: https://docs.hanzo.team
NODE_OPTIONS: '--max-old-space-size=8192'
- name: Create Cloudflare Pages project (if needed)
continue-on-error: true
run: pnpm dlx wrangler pages project create team-docs --production-branch=main
- name: Deploy to Cloudflare Pages
run: pnpm dlx wrangler pages deploy out --project-name=team-docs --commit-dirty=true --branch=main
- name: Attach docs.hanzo.team domain + DNS
continue-on-error: true
run: |
set +e
echo "=== Attach custom domain to Pages project ==="
curl -s -X POST "https://api.cloudflare.com/client/v4/accounts/${CLOUDFLARE_ACCOUNT_ID}/pages/projects/team-docs/domains" \
-H "Authorization: Bearer ${CLOUDFLARE_API_TOKEN}" \
-H "Content-Type: application/json" \
-d '{"name":"docs.hanzo.team"}' | jq '{success:.success, errors:.errors}'
echo "=== Ensure DNS CNAME docs.hanzo.team -> team-docs.pages.dev ==="
ZONE_ID=$(curl -s "https://api.cloudflare.com/client/v4/zones?name=hanzo.team" \
-H "Authorization: Bearer ${CLOUDFLARE_API_TOKEN}" | jq -r '.result[0].id // empty')
if [ -z "$ZONE_ID" ]; then
echo "::warning::No Cloudflare zone for hanzo.team in this account. Manual step: add the hanzo.team zone, then create CNAME docs -> team-docs.pages.dev (proxied)."
exit 0
fi
DNS=$(curl -s "https://api.cloudflare.com/client/v4/zones/${ZONE_ID}/dns_records?name=docs.hanzo.team" \
-H "Authorization: Bearer ${CLOUDFLARE_API_TOKEN}")
RECORD_ID=$(echo "$DNS" | jq -r '.result[0].id // empty')
BODY='{"type":"CNAME","name":"docs","content":"team-docs.pages.dev","proxied":true}'
if [ -n "$RECORD_ID" ]; then
curl -s -X PATCH "https://api.cloudflare.com/client/v4/zones/${ZONE_ID}/dns_records/${RECORD_ID}" \
-H "Authorization: Bearer ${CLOUDFLARE_API_TOKEN}" -H "Content-Type: application/json" \
-d "$BODY" | jq '{success:.success, content:.result.content}'
else
curl -s -X POST "https://api.cloudflare.com/client/v4/zones/${ZONE_ID}/dns_records" \
-H "Authorization: Bearer ${CLOUDFLARE_API_TOKEN}" -H "Content-Type: application/json" \
-d "$BODY" | jq '{success:.success, content:.result.content}'
fi
+32
View File
@@ -0,0 +1,32 @@
# Dependencies
node_modules/
.pnpm-store/
# Build
.next/
.turbo/
out/
dist/
.source/
# IDE
.idea/
*.swp
*.swo
# OS
.DS_Store
Thumbs.db
# Env
.env
.env.local
.env.*.local
# Logs
*.log
npm-debug.log*
# Types
*.tsbuildinfo
next-env.d.ts
+277
View File
@@ -0,0 +1,277 @@
Eclipse Public License - v 2.0
THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION
OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
1. DEFINITIONS
"Contribution" means:
a) in the case of the initial Contributor, the initial content
Distributed under this Agreement, and
b) in the case of each subsequent Contributor:
i) changes to the Program, and
ii) additions to the Program;
where such changes and/or additions to the Program originate from
and are Distributed by that particular Contributor. A Contribution
"originates" from a Contributor if it was added to the Program by
such Contributor itself or anyone acting on such Contributor's behalf.
Contributions do not include changes or additions to the Program that
are not Modified Works.
"Contributor" means any person or entity that Distributes the Program.
"Licensed Patents" mean patent claims licensable by a Contributor which
are necessarily infringed by the use or sale of its Contribution alone
or when combined with the Program.
"Program" means the Contributions Distributed in accordance with this
Agreement.
"Recipient" means anyone who receives the Program under this Agreement
or any Secondary License (as applicable), including Contributors.
"Derivative Works" shall mean any work, whether in Source Code or other
form, that is based on (or derived from) the Program and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship.
"Modified Works" shall mean any work in Source Code or other form that
results from an addition to, deletion from, or modification of the
contents of the Program, including, for purposes of clarity any new file
in Source Code form that contains any contents of the Program. Modified
Works shall not include works that contain only declarations,
interfaces, types, classes, structures, or files of the Program solely
in each case in order to link to, bind by name, or subclass the Program
or Modified Works thereof.
"Distribute" means the acts of a) distributing or b) making available
in any manner that enables the transfer of a copy.
"Source Code" means the form of a Program preferred for making
modifications, including but not limited to software source code,
documentation source, and configuration files.
"Secondary License" means either the GNU General Public License,
Version 2.0, or any later versions of that license, including any
exceptions or additional permissions as identified by the initial
Contributor.
2. GRANT OF RIGHTS
a) Subject to the terms of this Agreement, each Contributor hereby
grants Recipient a non-exclusive, worldwide, royalty-free copyright
license to reproduce, prepare Derivative Works of, publicly display,
publicly perform, Distribute and sublicense the Contribution of such
Contributor, if any, and such Derivative Works.
b) Subject to the terms of this Agreement, each Contributor hereby
grants Recipient a non-exclusive, worldwide, royalty-free patent
license under Licensed Patents to make, use, sell, offer to sell,
import and otherwise transfer the Contribution of such Contributor,
if any, in Source Code or other form. This patent license shall
apply to the combination of the Contribution and the Program if, at
the time the Contribution is added by the Contributor, such addition
of the Contribution causes such combination to be covered by the
Licensed Patents. The patent license shall not apply to any other
combinations which include the Contribution. No hardware per se is
licensed hereunder.
c) Recipient understands that although each Contributor grants the
licenses to its Contributions set forth herein, no assurances are
provided by any Contributor that the Program does not infringe the
patent or other intellectual property rights of any other entity.
Each Contributor disclaims any liability to Recipient for claims
brought by any other entity based on infringement of intellectual
property rights or otherwise. As a condition to exercising the
rights and licenses granted hereunder, each Recipient hereby
assumes sole responsibility to secure any other intellectual
property rights needed, if any. For example, if a third party
patent license is required to allow Recipient to Distribute the
Program, it is Recipient's responsibility to acquire that license
before distributing the Program.
d) Each Contributor represents that to its knowledge it has
sufficient copyright rights in its Contribution, if any, to grant
the copyright license set forth in this Agreement.
e) Notwithstanding the terms of any Secondary License, no
Contributor makes additional grants to any Recipient (other than
those set forth in this Agreement) as a result of such Recipient's
receipt of the Program under the terms of a Secondary License
(if permitted under the terms of Section 3).
3. REQUIREMENTS
3.1 If a Contributor Distributes the Program in any form, then:
a) the Program must also be made available as Source Code, in
accordance with section 3.2, and the Contributor must accompany
the Program with a statement that the Source Code for the Program
is available under this Agreement, and informs Recipients how to
obtain it in a reasonable manner on or through a medium customarily
used for software exchange; and
b) the Contributor may Distribute the Program under a license
different than this Agreement, provided that such license:
i) effectively disclaims on behalf of all other Contributors all
warranties and conditions, express and implied, including
warranties or conditions of title and non-infringement, and
implied warranties or conditions of merchantability and fitness
for a particular purpose;
ii) effectively excludes on behalf of all other Contributors all
liability for damages, including direct, indirect, special,
incidental and consequential damages, such as lost profits;
iii) does not attempt to limit or alter the recipients' rights
in the Source Code under section 3.2; and
iv) requires any subsequent distribution of the Program by any
party to be under a license that satisfies the requirements
of this section 3.
3.2 When the Program is Distributed as Source Code:
a) it must be made available under this Agreement, or if the
Program (i) is combined with other material in a separate file or
files made available under a Secondary License, and (ii) the initial
Contributor attached to the Source Code the notice described in
Exhibit A of this Agreement, then the Program may be made available
under the terms of such Secondary Licenses, and
b) a copy of this Agreement must be included with each copy of
the Program.
3.3 Contributors may not remove or alter any copyright, patent,
trademark, attribution notices, disclaimers of warranty, or limitations
of liability ("notices") contained within the Program from any copy of
the Program which they Distribute, provided that Contributors may add
their own appropriate notices.
4. COMMERCIAL DISTRIBUTION
Commercial distributors of software may accept certain responsibilities
with respect to end users, business partners and the like. While this
license is intended to facilitate the commercial use of the Program,
the Contributor who includes the Program in a commercial product
offering should do so in a manner which does not create potential
liability for other Contributors. Therefore, if a Contributor includes
the Program in a commercial product offering, such Contributor
("Commercial Contributor") hereby agrees to defend and indemnify every
other Contributor ("Indemnified Contributor") against any losses,
damages and costs (collectively "Losses") arising from claims, lawsuits
and other legal actions brought by a third party against the Indemnified
Contributor to the extent caused by the acts or omissions of such
Commercial Contributor in connection with its distribution of the Program
in a commercial product offering. The obligations in this section do not
apply to any claims or Losses relating to any actual or alleged
intellectual property infringement. In order to qualify, an Indemnified
Contributor must: a) promptly notify the Commercial Contributor in
writing of such claim, and b) allow the Commercial Contributor to control,
and cooperate with the Commercial Contributor in, the defense and any
related settlement negotiations. The Indemnified Contributor may
participate in any such claim at its own expense.
For example, a Contributor might include the Program in a commercial
product offering, Product X. That Contributor is then a Commercial
Contributor. If that Commercial Contributor then makes performance
claims, or offers warranties related to Product X, those performance
claims and warranties are such Commercial Contributor's responsibility
alone. Under this section, the Commercial Contributor would have to
defend claims against the other Contributors related to those performance
claims and warranties, and if a court requires any other Contributor to
pay any damages as a result, the Commercial Contributor must pay
those damages.
5. NO WARRANTY
EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT
PERMITTED BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN "AS IS"
BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR
IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF
TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR
PURPOSE. Each Recipient is solely responsible for determining the
appropriateness of using and distributing the Program and assumes all
risks associated with its exercise of rights under this Agreement,
including but not limited to the risks and costs of program errors,
compliance with applicable laws, damage to or loss of data, programs
or equipment, and unavailability or interruption of operations.
6. DISCLAIMER OF LIABILITY
EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT
PERMITTED BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS
SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST
PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE
EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
7. GENERAL
If any provision of this Agreement is invalid or unenforceable under
applicable law, it shall not affect the validity or enforceability of
the remainder of the terms of this Agreement, and without further
action by the parties hereto, such provision shall be reformed to the
minimum extent necessary to make such provision valid and enforceable.
If Recipient institutes patent litigation against any entity
(including a cross-claim or counterclaim in a lawsuit) alleging that the
Program itself (excluding combinations of the Program with other software
or hardware) infringes such Recipient's patent(s), then such Recipient's
rights granted under Section 2(b) shall terminate as of the date such
litigation is filed.
All Recipient's rights under this Agreement shall terminate if it
fails to comply with any of the material terms or conditions of this
Agreement and does not cure such failure in a reasonable period of
time after becoming aware of such noncompliance. If all Recipient's
rights under this Agreement terminate, Recipient agrees to cease use
and distribution of the Program as soon as reasonably practicable.
However, Recipient's obligations under this Agreement and any licenses
granted by Recipient relating to the Program shall continue and survive.
Everyone is permitted to copy and distribute copies of this Agreement,
but in order to avoid inconsistency the Agreement is copyrighted and
may only be modified in the following manner. The Agreement Steward
reserves the right to publish new versions (including revisions) of
this Agreement from time to time. No one other than the Agreement
Steward has the right to modify this Agreement. The Eclipse Foundation
is the initial Agreement Steward. The Eclipse Foundation may assign the
responsibility to serve as the Agreement Steward to a suitable separate
entity. Each new version of the Agreement will be given a distinguishing
version number. The Program (including Contributions) may always be
Distributed subject to the version of the Agreement under which it was
received. In addition, after a new version of the Agreement is published,
Contributor may elect to Distribute the Program (including its
Contributions) under the new version.
Except as expressly stated in Sections 2(a) and 2(b) above, Recipient
receives no rights or licenses to the intellectual property of any
Contributor under this Agreement, whether expressly, by implication,
estoppel or otherwise. All rights in the Program not expressly granted
under this Agreement are reserved. Nothing in this Agreement is intended
to be enforceable by any entity that is not a Contributor or Recipient.
No third-party beneficiary rights are created under this Agreement.
Exhibit A - Form of Secondary Licenses Notice
"This Source Code may also be made available under the following
Secondary Licenses when the conditions for such availability set forth
in the Eclipse Public License, v. 2.0 are satisfied: {name license(s),
version(s), and exceptions or additional permissions here}."
Simply including a copy of this Agreement, including this Exhibit A
is not sufficient to license the Source Code under Secondary Licenses.
If it is not possible or desirable to put the notice in a particular
file, then You may include the notice in a location (such as a LICENSE
file in a relevant directory) where a recipient would be likely to
look for such a notice.
You may add additional accurate notices of copyright ownership.
+14
View File
@@ -0,0 +1,14 @@
Hanzo Team Documentation
Copyright 2026 Hanzo AI, Inc.
This product documents Hanzo Team, built on the open-source platform by Hanzo AI
(https://github.com/hanzoai/team).
Portions of this documentation are adapted from the upstream Huly documentation
(https://github.com/hcengineering/huly-docs) and describe features derived from
the Huly Platform (https://github.com/hcengineering/platform). Those upstream
works are Copyright Hardcore Engineering Inc. and the Huly contributors, and are
licensed under the Eclipse Public License 2.0 (see LICENSE).
The "Huly" name and marks are the property of their respective owners and are
referenced here solely for attribution as required by the upstream license.
+41
View File
@@ -0,0 +1,41 @@
# Hanzo Team Docs
Product documentation for **Hanzo Team** — the all-in-one workspace for project
tracking, documents, chat, planning, and drive. Published at
**[docs.hanzo.team](https://docs.hanzo.team)**.
Built on the house docs stack: **[Fumadocs](https://fumadocs.dev)** + Next.js
(static export) + Tailwind, the same toolchain as the rest of the `hanzo-docs`
org. Deployed to **Cloudflare Pages** by self-hosted CI (Cloudflare credentials
are pulled from Hanzo KMS — never hard-coded).
## Develop
```bash
pnpm install
pnpm dev # http://localhost:3007
```
## Build
```bash
pnpm build # static export to ./out
```
## Structure
```
content/docs/ # MDX docs (one folder per section, meta.json = sidebar order)
app/ # Next.js app router + Fumadocs layouts
lib/ # source loader, shared layout options, metadata
source.config.ts # Fumadocs MDX collections
```
Add a page: drop an `.mdx` file under `content/docs/<section>/` and list its slug
in that folder's `meta.json`. Push to `main` and CI redeploys to
docs.hanzo.team.
## Attribution
Adapted from the upstream Huly documentation under the Eclipse Public License
2.0. See [`NOTICE`](./NOTICE) and [`LICENSE`](./LICENSE).
+7
View File
@@ -0,0 +1,7 @@
import { HomeLayout } from 'fumadocs-ui/layouts/home';
import type { ReactNode } from 'react';
import { baseOptions } from '@/lib/layout.shared';
export default function Layout({ children }: { children: ReactNode }) {
return <HomeLayout {...baseOptions()}>{children}</HomeLayout>;
}
+84
View File
@@ -0,0 +1,84 @@
import Link from 'next/link';
import {
CheckSquare,
FileText,
MessageSquare,
CalendarClock,
HardDrive,
Users,
ArrowRight,
Bot,
} from 'lucide-react';
const apps = [
{ icon: CheckSquare, title: 'Tracker', body: 'Projects, issues, milestones, and sub-issues — plan and ship work.', href: '/docs/task-tracking/creating-projects' },
{ icon: FileText, title: 'Documents', body: 'Teamspaces and collaborative, real-time editing for your knowledge base.', href: '/docs/knowledge-management/documents' },
{ icon: MessageSquare, title: 'Chat', body: 'Channels, direct messages, threads, and an inbox that unifies activity.', href: '/docs/communication/sending-messages' },
{ icon: CalendarClock, title: 'Planner', body: 'Turn action items into a personal schedule and plan your day.', href: '/docs/team-resources/team-planner' },
{ icon: HardDrive, title: 'Drive', body: 'Store, organize, and share files alongside the rest of your work.', href: '/docs/knowledge-management/drive' },
{ icon: Users, title: 'Contacts & HR', body: 'People, teams, employees, time off, and org structure in one place.', href: '/docs/people-contacts/managing-contacts' },
];
export default function HomePage() {
return (
<main className="flex flex-1 flex-col">
{/* Hero */}
<section className="mx-auto w-full max-w-5xl px-6 pt-24 pb-16 text-center">
<p className="mb-4 text-xs font-mono uppercase tracking-[0.3em] text-fd-muted-foreground">
Hanzo Team
</p>
<h1 className="text-balance text-4xl font-semibold sm:text-5xl">
One workspace to run your team
</h1>
<p className="mx-auto mt-5 max-w-2xl text-balance text-lg text-fd-muted-foreground">
Project tracking, documents, chat, planning, and drive a single
open-source workspace, signed in with your Hanzo account.
</p>
<div className="mt-9 flex flex-wrap justify-center gap-3">
<Link
href="/docs"
className="inline-flex items-center gap-2 rounded-lg bg-fd-primary px-5 py-2.5 text-sm font-medium text-fd-primary-foreground transition hover:opacity-90"
>
Read the docs <ArrowRight className="h-4 w-4" />
</Link>
<Link
href="/docs/getting-started/introduction"
className="inline-flex items-center gap-2 rounded-lg border border-fd-border bg-fd-card px-5 py-2.5 text-sm font-medium transition hover:bg-fd-muted"
>
Get started
</Link>
</div>
</section>
{/* App grid */}
<section className="mx-auto w-full max-w-5xl px-6 pb-24">
<div className="grid gap-4 sm:grid-cols-2 lg:grid-cols-3">
{apps.map(({ icon: Icon, title, body, href }) => (
<Link
key={title}
href={href}
className="group rounded-xl border border-fd-border bg-fd-card p-5 transition hover:border-fd-primary/40 hover:bg-fd-muted"
>
<Icon className="mb-3 h-6 w-6 text-fd-primary" />
<h3 className="mb-1 font-semibold">{title}</h3>
<p className="text-sm text-fd-muted-foreground">{body}</p>
</Link>
))}
</div>
<Link
href="/docs/account/agents-bots"
className="mt-4 flex items-center gap-3 rounded-xl border border-fd-border bg-fd-card p-5 transition hover:border-fd-primary/40 hover:bg-fd-muted"
>
<Bot className="h-6 w-6 shrink-0 text-fd-primary" />
<div>
<h3 className="font-semibold">Agents &amp; bots</h3>
<p className="text-sm text-fd-muted-foreground">
Put Hanzo AI to work inside your workspace automations, summaries, and assistants.
</p>
</div>
</Link>
</section>
</main>
);
}
+8
View File
@@ -0,0 +1,8 @@
import { source } from '@/lib/source';
import { createFromSource } from 'fumadocs-core/search/server';
// Static search index for the `output: export` build. Fumadocs serves this as a
// pre-rendered JSON file that the client-side search reads.
export const revalidate = false;
export const { staticGET: GET } = createFromSource(source);
+37
View File
@@ -0,0 +1,37 @@
import { source } from '@/lib/source';
import { DocsPage, DocsBody, DocsDescription, DocsTitle } from 'fumadocs-ui/page';
import { notFound } from 'next/navigation';
import { getMDXComponents } from '@/mdx-components';
export default async function Page(props: { params: Promise<{ slug?: string[] }> }) {
const params = await props.params;
const page = source.getPage(params.slug);
if (!page) notFound();
const MDX = page.data.body;
return (
<DocsPage toc={page.data.toc} full={page.data.full}>
<DocsTitle>{page.data.title}</DocsTitle>
<DocsDescription>{page.data.description}</DocsDescription>
<DocsBody>
<MDX components={getMDXComponents()} />
</DocsBody>
</DocsPage>
);
}
export async function generateStaticParams() {
return source.generateParams();
}
export async function generateMetadata(props: { params: Promise<{ slug?: string[] }> }) {
const params = await props.params;
const page = source.getPage(params.slug);
if (!page) notFound();
return {
title: page.data.title,
description: page.data.description,
};
}
+12
View File
@@ -0,0 +1,12 @@
import { DocsLayout } from 'fumadocs-ui/layouts/docs';
import type { ReactNode } from 'react';
import { source } from '@/lib/source';
import { baseOptions } from '@/lib/layout.shared';
export default function Layout({ children }: { children: ReactNode }) {
return (
<DocsLayout tree={source.pageTree} {...baseOptions()}>
{children}
</DocsLayout>
);
}
+47
View File
@@ -0,0 +1,47 @@
@import 'tailwindcss';
@import 'fumadocs-ui/css/neutral.css';
@import 'fumadocs-ui/css/preset.css';
@source '../node_modules/fumadocs-ui/dist/**/*.js';
@theme {
/* ── Hanzo Team — monochrome base, indigo primary, dark ────── */
--color-fd-background: #0a0a0a;
--color-fd-foreground: #fafafa;
--color-fd-card: #111111;
--color-fd-card-foreground: #fafafa;
--color-fd-muted: #161616;
--color-fd-muted-foreground: #8c8c8c;
--color-fd-popover: #0d0d0d;
--color-fd-popover-foreground: #f0f0f0;
--color-fd-border: rgba(255, 255, 255, 0.10);
--color-fd-primary: #6366f1;
--color-fd-primary-foreground: #ffffff;
--color-fd-secondary: #1a1a1a;
--color-fd-secondary-foreground: #ebebeb;
--color-fd-accent: rgba(99, 102, 241, 0.10);
--color-fd-accent-foreground: #e5e5e5;
--color-fd-ring: #6366f1;
--color-fd-overlay: rgba(0, 0, 0, 0.5);
}
html {
scrollbar-gutter: stable;
color-scheme: dark;
}
body {
background-color: var(--color-fd-background);
color: var(--color-fd-foreground);
}
#nd-sidebar {
--color-fd-muted: #161616;
--color-fd-secondary: #1a1a1a;
--color-fd-muted-foreground: #8c8c8c;
}
::selection {
background-color: rgba(99, 102, 241, 0.25);
color: white;
}
+4
View File
@@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
<rect width="32" height="32" rx="7" fill="#6366f1"/>
<path d="M10 8v16M22 8v16M10 16h12" stroke="#fff" stroke-width="2.6" stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 242 B

+41
View File
@@ -0,0 +1,41 @@
import './global.css';
import type { Viewport } from 'next';
import { baseUrl, createMetadata } from '@/lib/metadata';
import { RootProvider } from 'fumadocs-ui/provider/next';
import type { ReactNode } from 'react';
export const metadata = createMetadata({
title: {
template: '%s | Hanzo Team',
default: 'Hanzo Team Documentation',
},
description:
'Hanzo Team is the all-in-one workspace for project tracking, documents, chat, planning, and drive — one place to run your team.',
metadataBase: baseUrl,
});
export const viewport: Viewport = {
themeColor: [
{ media: '(prefers-color-scheme: dark)', color: '#0a0a0a' },
{ media: '(prefers-color-scheme: light)', color: '#ffffff' },
],
};
export default function Layout({ children }: { children: ReactNode }) {
return (
<html lang="en" className="dark" suppressHydrationWarning>
<head>
<script
defer
src="https://analytics.hanzo.ai/script.js"
data-website-id="hanzo-team-docs"
data-do-not-track="true"
data-exclude-search="true"
/>
</head>
<body className="antialiased">
<RootProvider search={{ options: { type: 'static' } }}>{children}</RootProvider>
</body>
</html>
);
}
+29
View File
@@ -0,0 +1,29 @@
import Link from 'next/link';
export default function NotFound() {
return (
<main className="flex min-h-screen flex-col items-center justify-center px-4 text-center">
<p className="mb-4 text-xs font-mono uppercase tracking-[0.3em] text-fd-muted-foreground">
404
</p>
<h1 className="mb-3 text-3xl font-semibold">Page not found</h1>
<p className="mb-10 max-w-sm text-fd-muted-foreground">
This page doesn&apos;t exist, or it may have moved. Try the documentation or head home.
</p>
<div className="flex flex-wrap justify-center gap-3">
<Link
href="/"
className="inline-flex items-center gap-2 rounded-lg bg-fd-primary px-4 py-2 text-sm font-medium text-fd-primary-foreground transition hover:opacity-90"
>
Go home
</Link>
<Link
href="/docs"
className="inline-flex items-center gap-2 rounded-lg border border-fd-border bg-fd-background px-4 py-2 text-sm font-medium transition hover:bg-fd-muted"
>
Documentation
</Link>
</div>
</main>
);
}
+29
View File
@@ -0,0 +1,29 @@
---
title: Agents & bots
description: Put Hanzo AI to work inside your Hanzo Team workspace.
---
Hanzo Team includes an **AI Assistant** — an AI-powered assistant that helps organize, automate, and streamline your work across the platform. It is powered by [Hanzo AI](https://hanzo.ai) and metered through the same [usage ledger](/docs/account/usage-billing#one-usage-ledger) as the rest of your account.
## The AI Assistant
Enable the AI Assistant from **Settings → Integrations**. Once connected, it can work across your apps to:
- **Summarize** long documents, issues, and channel threads.
- **Draft** replies, issue descriptions, and documents.
- **Automate** routine follow-ups — for example, turning a discussion into action items.
- **Answer** questions about the content in your workspace.
You interact with the assistant as a participant in [chat](/docs/communication/sending-messages): mention it in a channel or open a direct message, and it responds inline.
## Transcription
In the [virtual office](/docs/communication/virtual-office), meetings can be transcribed by AI. [Live transcription](/docs/communication/live-transcription) turns conversations into searchable text and can produce summaries and action items after a call.
## Usage
AI features — assistant responses, transcription, and summaries — consume tokens and transcription time that count against your plan's included AI usage. Track consumption under **Settings → Billing → Resource usage** (the **AI** section). See [Usage & billing](/docs/account/usage-billing) for how the unified ledger works.
## Privacy
The assistant operates within your workspace's permissions — it can only see content you can see. Administrators control whether AI features are enabled for a workspace under **Settings**.
+4
View File
@@ -0,0 +1,4 @@
{
"title": "Account & billing",
"pages": ["organizations-workspaces", "usage-billing", "agents-bots"]
}
@@ -0,0 +1,28 @@
---
title: Organizations & workspaces
description: How organizations and workspaces relate, and how to switch between them.
---
Hanzo Team follows a Slack-style model for structuring teams: you sign in once with your Hanzo account and can belong to many places at once.
## The model
- **Organization** — the top-level container for a company or group. Billing, plan, and org-wide membership live here.
- **Workspace** — a space inside an organization that holds projects, documents, channels, and everything else. An organization can have several workspaces (for example, one per department or product).
- **Member** — a person, identified by their Hanzo account, who belongs to one or more workspaces with a [role](/docs/advanced-settings/roles) in each.
Your single Hanzo identity spans every organization and workspace you're part of — there are no separate logins to juggle.
## Switching
Use the **account switcher** at the top of the left sidebar to move between organizations and workspaces. Switching is instant and does not sign you out — your session carries across all of them, the same way you'd switch between Slack workspaces.
## Joining and leaving
- **Join** — open an invite link and sign in, or accept an invitation sent to your email. See [Workspace setup](/docs/getting-started/workspace-setup#invite-your-team).
- **Guests** — people outside your organization can be invited as guests to specific content without full membership.
- **Leave** — you can leave a workspace from the account switcher; an administrator can also remove members in **Settings → Members**.
## Administration
Workspace administrators manage members, roles, and enabled modules under **Settings**. Organization owners additionally manage the [plan and billing](/docs/account/usage-billing) that apply across the organization's workspaces.
+31
View File
@@ -0,0 +1,31 @@
---
title: Usage & billing
description: Plans, seats, and how usage is metered in Hanzo Team.
---
Billing for a workspace lives under **Settings → Billing**. From there you can see your active plan, compare plans, and review resource usage.
## Plans and seats
Hanzo Team is priced per **seat** — you pay for the members in your organization, with a small minimum team size. Plans set your limits for storage, meeting time and bandwidth, and included AI usage. Upgrading a plan or adding seats takes effect immediately.
For current plan tiers and pricing, see the [Hanzo Team pricing page](https://hanzo.team/pricing). Because Hanzo Team shares one identity and billing account with the rest of Hanzo, a seat and its included AI usage carry across the Hanzo product suite rather than being billed separately per tool.
## Resource usage
The **Billing → Resource usage** panel shows what your workspace has consumed against your plan's limits:
- **Files** — total size and count stored in [Drive](/docs/knowledge-management/drive) and attachments.
- **Meetings** — voice/video time and bandwidth used in the [virtual office](/docs/communication/virtual-office).
- **Recording** — time spent recording meetings.
- **AI** — transcription time and total tokens used by [agents and bots](/docs/account/agents-bots), transcription, and other AI features.
## One usage ledger
All metered usage — storage, meetings, and AI — is recorded in a single unified usage ledger for your account. That means AI you use inside Hanzo Team draws from the same balance as AI used elsewhere in Hanzo, and you get one consolidated view of consumption instead of a separate bill per surface.
## Managing your subscription
- **Change plan** — pick a different tier under **Billing → Subscriptions**.
- **Add or remove seats** — adjust membership under **Settings → Members**; billing follows seat count.
- **Invoices and payment** — managed through your Hanzo billing account, shared across Hanzo products.
@@ -0,0 +1,4 @@
{
"title": "Additional modules",
"pages": ["test-management", "recruiting", "surveys", "trainings"]
}
@@ -0,0 +1,105 @@
---
title: Recruiting
description: Learn how to leverage the recruiting module in Hanzo Team to manage job vacancies, applications and talents.
---
Hanzo Team's recruiting module can be used to manage job vacancies, applications and talents within your workspace. Like other Hanzo Team modules, recruiting is interwoven with the rest of your workspace, allowing you to connect your recruiting data to your task tracker and chats.
> **Note:** The recruiting module is disabled by default for new workspaces, as this feature set is not relevant for many users. If you'd like to enable the recruiting module, please contact our support team through <a href="https://github.com/hanzoai/team/discussions" target="_blank">Slack</a>.
### Creating vacancies
To create a vacancy for a job position, navigate to Vacancies in the left sidebar and click `+ Vacancy` in the upper right corner.
Add a title and description for the vacancy. You can also add a due date, location (remote, or the name of a city, for example), and any attachments needed. You may also wish to select members who will be responsible for managing the vacancy. Once you've finished, click `Create`.
### Managing vacancies
Once you've created a vacancy, you'll be able to see several additional options, including:
* **Auto join** - automatically adds new workspace members to the space
* **Company** - connect the vacancy to a company
* **Collaborators** - collaborators will receive notifications related to any activity on the vacancy (learn more about [collaborators](/docs/task-tracking/issue-collaborators))
You'll also find the following sections on the vacancy page:
* **Applications** - Add an existing application or create a new one.
* **Surveys (in development)** - Attach an existing survey or create a new one.
* **Related issues** - See all issues from your Tracker that are related to the vacancy, or create a new related issue (learn more about [related issues](/docs/task-tracking/related-issues)).
* **Activity** - See a record of all activity related to the vacancy.
### Creating talents and applications
In Hanzo Team, **talents** are a type of contact. Talents can be connected to **vacancies** through **applications**.
Talents can be created in 3 ways:
1. Converting an existing contact to a talent by creating an application
2. Creating a new talent at the time of creating an application
3. Creating a new talent from the recruitment module without any applications
#### 1. Converting an existing contact to a talent by creating an application
To convert an existing contact to a talent, you'll need to create an application for that contact. In the **contacts** module, navigate to the contact's page, open the settings menu and click `New Application`.
From here, you can select a vacancy to submit the application to. You can choose an assigned recruiter, set a status for the application, and indicate a start date if applicable. If you choose to add a description, this will appear as a comment on the application page.
After creating the application, you'll notice that the `Talent` label is applied to the contact. You'll see their contact page has expanded to include several additional profile sections.
#### 2. Creating a new talent when creating an application
If you do not already have a contact for a talent, you can create a contact for them at the same time that you create their application.
In the **recruiting** module, navigate to any vacancy page and click the `+` button in the `Applications` section. Click the block for talent on the left side, then click the `+` to create a new talent.
Fill out talent details, such as name, title, location, social links, onsite vs. remote availability, and resume. You'll also be able to select skills from the dropdown menu (more on skills below). Click `Create`.
Now, if you navigate back to your **contacts** module, you'll see a contact has been added with the `Talent` label.
#### 3. Creating a new talent from the recruiting module
It's possible to create a new talent without attaching any application at all. In the **recruiting** module, select `Talents` in the left sidebar and click `+ Talent` in the upper right corner.
Here, you'll see all the same fields for creating a talent. Click `Create` and notice that your talent appears both in the **recruiting** module *and* the **contacts** module.
## Managing talents
The talent details page is different from a typical contact page because it includes additional sections for `Applications`, `Skills`, `Reviews`, and `Surveys`, in addition to contact page sections `Attachments`, `Related issues` and `Activity`. In combination, all of these sections allow you to track everything you need related to talents within the recruiting module.
Let's take a look at each of these sections:
### Applications
Here are listed all of the applications submitted for a talent. Here, you can see the application number, vacancy name, company, state and comments. You can also add a new application using the `+` button.
### Skills
Skills can be used for filtering, sorting and searching through talents, in addition to providing a quick overview of the talent's skills when browsing their contact page.
You can add skills by clicking the `+` button. If you've already created skills, you can search for them or select from the dropdown menu. To create a new skill, click `+`. Provide a title and optional description and color for the skill and select the category from the dropdown menu. Then, click `Create`.
Skills can be managed by selecting `Skills` in the left sidebar. Here, you can filter, edit and delete skills.
### Reviews
Reviews are used to schedule review of a candidate's application. To create a review, click `+` and enter a title and optional location and description for the review. You can also enter the company, application and participants, and select a date for review. Then, click `Create`.
After creating a review, you can find additional fields to add notes to the review. Most importantly, you can enter a `Verdict` on the review to indicate an overall impression.
### Surveys
Surveys are still in development. Check back soon for more information!
### Managing applications
Applications can be managed in a similar way to tracking tasks. Select list or kanban views, filter by status, and sort by any column.
Each application also has several useful sections on its details page. You can find sections for `All talent reviews`, `Attachments`, `Surveys`, `Related issues` and `Activity`, which can all be used to add information and connect to other parts of the workspace.
### Customizing properties for vacancies, applications and talents
You can add any additional properties you need to your vacancies, applications and talents. For example, you may wish to include a salary range or target start date for a vacancy, or a preferred contact method for a talent.
To add your own custom properties, navigate to your workspace settings and select `Classes` from the left sidebar. Then, select the class that you'd like to customize.
From here you can add any properties you'd like. For more on how to add properties to classes, see [Classes and enums](/docs/advanced-settings/classes-enums).
@@ -0,0 +1,40 @@
---
title: Surveys
description: Learn about the Surveys module in Hanzo Team.
---
Surveys are new to Hanzo Team and still in experimental development. In the future, you'll be able to use surveys for many purposes, such as gathering feedback from team members and creating trainings and onboarding processes. There may be many more use cases for surveys in Hanzo Team, and we welcome any ideas or input you have at this early stage.
For now, surveys can be used for:
* Brainstorming ideas for surveys you might use in the future
* Drafting survey questions to share with your team for feedback
* Discussing drafts of surveys using the Activity section below the survey
Below is an example of a survey in preview mode:
## Creating a survey
Select `Survey Forms` in the left side menu of the Survey module, then click the `+ Survey` button in the top right corner. Enter a title for your survey an click `Create`. After opening your survey, you can optionally add a description below the title.
## Adding questions
Begin by typing a question in the Questions area and press Enter. From here, you can select the type of question you want to add:
* Simple answer (text field)
* Select an option (single-select radio buttons)
* Select several options (multi-select checkboxes)
You can also set whether the field will be mandatory, and if you want to allow for a write-in custom option (only available for single-select and multi-select questions).
In the current implementation, it is not yet possible to indicate correct and incorrect answers, but this will be added in a future version.
## Previewing the survey
Click the `Preview` button in the top right corner to see how your survey would look.
For now, there is no option to share surveys directly; however, you may choose to send a link to team members and have discussions in the Activity section below the survey.
***
As you explore, feel free to share your feedback with us to help shape the direction of this feature for future development! The best way to get in touch with us is through our [Slack community](https://github.com/hanzoai/team/discussions).
@@ -0,0 +1,26 @@
---
title: Test management
description: Learn how to create, manage and run tests in Hanzo Team.
---
Hanzo Team's test management module enables you to efficiently create, organize, and run tests within your workspace. With this module, you can track test statuses, view results, link tests to issues in the Tracker, and generate work tickets for assignees.
## Setting up tests
Click the `+` button in the left sidebar to start a new test project. For now, test projects are isolated within the test management module; however, there are plans to connect test management with other workspace projects in the near future.
### Creating a test suite
Open the dropdown menu in the top left corner and select `Create test suite`. Provide a name and an optional description for your test suite.
### Creating a test case
Within your test suite, add test cases by clicking `+ New test case`. Enter a name and optional description for your test case. Select a status (e.g., Ready, In Progress), and attach any relevant files or images. Then, click `Create`.
### Running tests
Use the checkboxes next to each test case to choose which ones to include in the test run. Then, click `Run`.
Provide a title and description for your test run. Your test run can include details such as environment setup, execution instructions, and expected results.
Once the test has been run, you can change the status from `Untested` to `Passed`, `Failed` or `Blocked`, and add an assignee to review.
You'll also see an Activity section where you can have discussions, link to isses and documents, and add attachments.
@@ -0,0 +1,48 @@
---
title: Trainings
description: Learn how to create and manage trainings.
---
The Trainings module is enabled by default in [Hanzo Team](/docs/getting-started/introduction) workspaces. Trainings consist of custom questions and answers that can be used to assess the knowledge of employees on a specific topic, and can be assigned to individuals or groups.
To learn how to create and assign trainings, watch Trainings Part 1:
To learn how to take a training that's been assigned to you, and how to monitor the results of the trainings you've assigned, watch Trainings Part 2:
## Creating a training
To create a training, open the `My trainings` sub-menu in the Trainings module and click the `+ Training` button in the top right corner. Enter a name for your training and click `Create`.
Once your training is created, you'll have access to additional settings and customizations. You can add a description of your training and add any supporting attachments needed, such as videos or presentations.
### Adding questions
Navigate to the `Questions` tab of your training and click the `+` button to begin adding questions. You can add single-choice, multiple-choice and ordering questions. Select the correct answers for each question.
### Setting a passing score
Click on the green score bar at the top of your questions to set a passing score for your training, indicating the number of questions the trainee must answer correctly to pass.
### Releasing a training
Once you've finished creating questions, setting the passing score, and adding any description or supporting attachments needed, click `Release` in the top right corner to finalize your training. Trainings cannot be assigned until they are released.
## Assigning a training
Trainings can be assigned on their own from the Trainings module, or attached to a controlled document.
### From the Trainings module
Click `Assign request`. From here, you'll be able to select which roles and members to assign the training to, as well as a due date and maximum number of attempts allowed.
### From a controlled document
Navigate to the document you'd like to attach the training to and open the `Release` tab. Toggle the Training setting and select the training you'd like to attach. From here, you can select the roles and members to assign the training to, and set the due date and maximum number of attempts allowed.
Once the document approval process has been completed and the document status is `Effective`, the training requests will be sent to the trainees. For more on this process, see our guide on [review and approval](/docs/controlled-documents/review-approval).
## Taking a training
Assignees will receive training requests in their email and inbox. Assigned training requests can also be found in the Trainings module under the `My requests` sub-menu. Begin taking a training by clicking on it to open.
> **Note:** If a trainee fails the max attempts allowed, a new training request will need to be sent.
@@ -0,0 +1,39 @@
---
title: Classes and enums
description: Learn how to use classes and enums to manage object properties.
---
Hanzo Team offers a high degree of configurability through Classes. A class is a set or category of things having some property in common. In other words, classes are a way to group objects together based on shared properties.
To access class settings, navigate to settings and click `Classes` in the `WORKSPACE SETTINGS` menu. You'll see a list of all the classes in your workspace. Clicking on any class will display its properties.
## Customizing class properties
Currently, only the `Contact` and `Task` classes can be customized.
To add a property, click the `+` button. Choose from the following property types:
- URL
- String - for single-line text
- Boolean - select Yes, No, or N/A
- Number
- Date
- Ref - (not yet implemented)
- Array - (not yet implemented)
- Enum - select from a list of options (see below)
You'll see that your new property will now appear on any object belonging to that class.
To remove a property, open the settings menu to the left of the property and click `Remove`. You can also hide a property here as well by clicking `Hide attribute`.
## Enums
Enums are a type of property that allows you to select from a list of options. For example, you could add a property called "How we met" to your contacts and use options like "Conference", "Mutual friend", "Cold call" etc.
To create an enum, navigate to Settings > Enums and click the `+ Create enum` button. Add options and click `Save`.
You can also create enums directly from the Classes settings. After creating a new property with the type `enum`, use the `+` button to create a new enum for that class.
## Example use-case
Check out this video to see an example of how classes and enums are used for managing contacts:
+4
View File
@@ -0,0 +1,4 @@
{
"title": "Advanced settings",
"pages": ["space-types", "roles", "task-types", "classes-enums", "text-templates"]
}
+65
View File
@@ -0,0 +1,65 @@
---
title: Roles and permissions
description: Learn how to manage roles and permissions.
---
Roles and permissions can be used to restrict access to spaces and allow additional permissions to select members. Permissions can be controlled at various levels:
1. **Workspace owners and maintainers** - high-level control over who can make major changes like deleting the workspace and adding/removing team members.
2. **Global admins** - extended permissions for members to archive and delete projects in the workspace.
3. **Space type roles** - specific roles that can be used to toggle update, archive and delete permissions for users, customized by space type.
4. **Space members** - permissions for each individual space — simply add members and toggle privacy settings to determine exactly who can access which spaces in your workspace.
## Workspace owners and maintainers
Navigate to Settings and select `Owners` from the `WORKSPACE SETTINGS` menu.
From here, you can select a role for each team member:
- **Owner** - The workspace owner has full control over the workspace. They can remove team members and manage workspace settings. A workspace can have multiple owners.
- **Maintainer** - Maintainers have the same permissions as owners, except they cannot delete the workspace, remove owners, or remove team members. Maintainers cannot change their own role in the system. Maintainers can manage workspace settings.
- **User** - Users cannot manage workspace settings, change their own role, or remove team members.
- **Guest** - Guests have limited access to the workspace. They can only create, update, or delete content in spaces that explicitly allow Guest access level. Guests cannot manage workspace settings, change roles, remove team members, or access most workspace features.
- **Readonly** - Readonly users have view-only access to the workspace. They cannot create, update, or delete any content. Readonly users are blocked from all write operations and can only view content that has been shared with them.
> **Note:** [Hanzo Team](/docs/getting-started/introduction) workspaces come with additional roles: `Qualified User`, `Manager`, and `QARA`. These roles are used to manage permissions for controlled documents, products, product documents and trainings.
## Spaces admins
You can also set admins globally for all spaces within the workspace. Global admins have full permissions when it comes to spaces themselves, such as archiving and deleting projects, but they cannot delete the workspace, remove the workspace owner, or manage workspace settings (unless granted Owner or Maintainer permissions at the workspace level - see above).
To set a global admin, navigate to `WORKSPACE SETTINGS` in Settings and select `Spaces`. From here, you can add or remove admins.
## Space type roles
Roles can also be set for a space type. In Settings under the `SPACE TYPES` menu, navigate to the space type you'd like to manage and find the `Roles` section. Then, click the `+` button. Enter a name for your role and click `Create`. Then, click on your role to select specific permissions.
Once your roles have been created, you'll be able to assign roles to team members for spaces using that space type.
[Hanzo Team](/docs/getting-started/introduction) workspaces come with some special permission built in. The default roles of `Qualified User`, `Manager`, and `QARA` can be customized for your specific needs. Navigate to your workspace settings and open the space that you want to customize — Default Documents, Default Trainings or Default Products. From here, you can add or delete roles and edit their names, and add or remove permissions.
## Space members
Permissions can also be set for individual spaces, such as projects, teamspaces, drives, and more.
All spaces with a `Make private` toggle can be restricted to allow only members to view the space. This toggle can be set at the time of creating the space, or when editing the settings later.
In order to restrict access to only members, ensure `Make private` is toggled on, and select the members you'd like to have access to the space.
In the example below, you can see that this project space is set to private, and 7 members have been selected to have access to the space.
If a space is not set to private, any member of your workspace will be able to join the space. This means that you don't need to manually add members to the space when creating it. However, if members are not added to the space, they will not see it in their left side menu by default — they will have to find the space on the list of spaces and join it themselves. For this reason, you may want to consider adding members to the space when creating it to ensure it automatically appears in each member's left side menu.
> **Note:** If `Auto join` is toggled on, new workspace members will be automatically added to your private space, even if you haven't specifically added them to the list of members. If you'd like to restrict access to only the members you've selected, ensure `Auto join` is toggled off.
## Assigning roles
How you choose to assign roles to your users will depend on the kind of module you're working with, and the steps are slightly different for each. Continue reading to see how roles can be assigned for Controlled Documents, Products, and Trainings.
**Controlled Documents:** Open the settings menu for any document space and select `Edit documents space`. From here, you can first add members to the space and then assign members to each of the available roles.
**Products:** Roles can be assigned when creating a product by selecting members from each role dropdown menu.
To assign roles from a product that's already been created, use the right side panel to add members to each role.
**Trainings:** Open your workspace settings and select `Trainings`. From there, you can assign roles to team members using the dropdown menus.
@@ -0,0 +1,32 @@
---
title: Space types
description: Learn how to customize your workspace with space types.
---
## What are space types?
Space types are the highest level of customization in Hanzo Team. They define the structure of your workspace by applying a shared set of roles and task types to all spaces created with that type.
The tracker in Hanzo Team is based on the `Classic project` space type. This space type comes with no preset roles, and one task type (`Issue`) with process states of `Backlog`, `Todo`, `In Progress`, `Done` and `Canceled`. By default, new projects created in the tracker will use this space type.
However, you may wish to create your own space types to model different types of processes that you'll be tracking in your workspace. For example, you could create space types for "Client projects", "Internal projects" and "Bug tracking", each of which could have its own [roles](/docs/advanced-settings/roles) and [task types](/docs/advanced-settings/task-types).
## Customizing default space types
You can find all of the settings for your space types under `Settings` in the left sidebar menu. Click on `SPACE TYPES` to see a list of all space types available in your workspace. Click on any space type to view and edit its settings.
Some properties and attributes for spaces are not currently customizable. Settings in the first block cannot be changed, but you can customize each space type's [roles](/docs/advanced-settings/roles) and task types [here](/docs/advanced-settings/task-types).
## Creating custom space types
To create a new space type, click the `+` button next to `SPACE TYPES` in the left sidebar menu of your settings.
In the top left corner, select what kind of space you'd like to create a space type for. If you choose `Tracker`, you'll also have the option to base your space type on the `Classic project`.
Once your custom space type has been created, you can add [roles](/docs/advanced-settings/roles) and task types [here](/docs/advanced-settings/task-types).
## Using your custom space type
Custom space types cannot be used for existing projects. To use your custom space type, you'll need to create a new project and select your custom space type from the `Space type` dropdown menu.
If you've added roles, you'll be able to add members to each role when you create your project.
@@ -0,0 +1,57 @@
---
title: Task types
description: Learn how to customize your workspace with task types.
---
Hanzo Team is designed to be highly configurable to any kind of workflow. While some customization features are still being developed, there are several options already available for you to configure your workspace to your specific needs.
## What are task types?
Task types define the kinds of tasks inside your projects. A task type can have its own special properties and process states.
To take a look at the default task type used in your Tracker, navigate to Settings and select `Classic project` from the `SPACE TYPES` area in the left sidebar menu. `Classic project` is the default [space type](/docs/advanced-settings/space-types) used in Hanzo Team.
Notice in the `TASK TYPES` section that one task types are listed: `Issue`. Opening this task type will reveal its properties and process states.
The `Issue` task type has process states of `Backlog`, `Todo`, `In Progress`, `Done` and `Canceled`.
> **Note:** If you've already connected your workspace to GitHub, you'll also see a `Pull request` task type. These tasks are synced with GitHub, so they have their own unique properties and process states.
## Process states
Process states are the stages that a task goes through in its lifecycle. Each task type can have its own set of process states. The Hanzo Team system will automatically move tasks between these states based on user actions. The following actions will trigger automatic state changes:
1. **Scheduling an action item** - When the issue assignee schedules an [action item](/docs/task-tracking/creating-action-items) connected to that issue, the issue status will change from "Todo" to "In Progress".
2. **Completing a scheduled action item** - When the issue assignee checks off an [action item](/docs/task-tracking/creating-action-items) as complete (after scheduling it in their Planner), the issue status will change to "Done".
Even if you customize your process states to use different names (see below), the system will still recognize these actions based on the `Status category` of the process state. For example, you could change the name of the process state from "In Progress" to "Actively Working" and as long as the `Status category` is set to "Active", the system will still recognize this state as the one that triggers the automatic state change.
## Creating custom task types
In order to use your own customized task types and process states, you can either modify the default task types on the Classic Project, or create a new [space type](/docs/advanced-settings/space-types). Either way, this can only be done by the workspace owner or maintainer.
To create a new space type, navigate to settings and click the `+` button next to `SPACE TYPES` in the left sidebar menu.
Select the space type you'll be basing your new space type on; in this case, you'll select `Tracker`. From here, you can enter a name for your space type (for example, "Custom Tracker"), and choose whether or not to base your space type on the `Classic project` (recommended). Then, click `Create`.
Find your new space type in the left sidebar menu. From here, you can add members to the space type and toggle whether new workspace members will be automatically added to this space type.
Click the `+` button in the `TASK TYPES` section. Enter a name for your new task type (for example, "Issue" or "Task"), choose whether this type can be used for sub-tasks, and click `Create`.
The steps for creating and modifying task types in the Classic Project are the same.
## Creating custom process states
Open your new task types to create your custom process states. You'll see placeholders for each category, each of which can be edited to your specific needs.
Click on any process state to edit it. You can change the name of the state, the color associated with it, and the status category. The status category is used to trigger automatic state changes based on user actions.
You can also create new process states. For example, within the "Active" status category, you may wish to add more states, such as "Started" "In progress", "Submitted for review" and "Under review". You might also want to add more specific states to the "Done status/lost" category, such as "Cancelled", "On hold" or "Blocked".
## Using your custom task types
In order to use your custom task types, you'll need to create a new project based on your new space type. At this time, it is not possible to change the space type used for an existing project.
When creating a new project, select your custom task types from the `Project type` dropdown menu.
Now, when creating new issues within your project, you'll find all of your custom task types and process states available to use.
@@ -0,0 +1,46 @@
---
title: Text Templates
description: Learn how to use text templates for reusable content.
---
## What are text templates?
Text templates can help you save time and maintain consistency across your workspace. With text templates, you can create predefined text structures that can be used for task descriptions, chats, comments and more.
Text templates allow you to define reusable content structures that can be used across various features in your workspace. These templates can help ensure consistency, reduce repetitive typing, and improve collaboration by providing clear, standardized formats.
> **Note:** The `Field` option is still in development, so it is recommended to instead create your own "blanks" in your template to fill in when you use them.
## Creating and managing text templates
To create and manage text templates, navigate to Settings and select `Text Templates` from the `WORKSPACE SETTINGS` area in the left sidebar menu. Here, you can create new templates or edit existing ones.
To create a new text template, click the `Create template` button. Enter a title for the template, define the structure, formatting and placeholders, and save the template to a folder.
By default, new templates are saved to the `Public templates` folder, where they can be accessed by anyone in the workspace. To make your templates private, create a new template group and toggle the privacy setting.
## Using text templates
Once created, text templates can be accessed from chat messages, comments, issue descriptions, and anywhere else the text template icon is available. Simply click the text template icon and select the template you'd like to use.
There are many areas of your workspace where text templates are useful. Here are a few examples of use cases:
- **Recurring task descriptions:** Define specific formatting for recurring tasks, or just create basic reusable styling for your content.
- **Quick chat replies**: Use predefined responses for common questions or updates.
- **Meeting invites**: Standardize recurring meeting announcements:
**_Example:_**
```
Reminder: Our [Meeting Name] is scheduled for [Date and Time].
Please review the agenda here: [Link].
```
- **Code Reviews**: Use templates to standardize feedback on code:
**_Example:_**
```
Code: [File/Line reference]
Observation: [Issue/Feedback]
Suggested change: [Proposed solution]
```
+41
View File
@@ -0,0 +1,41 @@
---
title: Introduction to Cards
description: Learn how to leverage Cards for advanced knowledge management.
---
## Understanding Cards
Cards are a flexible framework for structuring information efficiently.
While our initial implementation of Cards is focused on knowledge management, Cards will also serve as the foundation for many other features on the platform, including process management and threads. With Cards, you'll be able to build your own custom applications within Hanzo Team, such as a CRM, CMS, project management system and more.
This guide explains the core components of the Cards system: **Types**, **Tags**, **Relations** and **Cards**, providing an overview of the entire system. We also have more in-depth guides on each element so you can learn how to use them in your own workspace, which are linked in the sections below.
## Core elements of the Cards system
The following elements make up the Cards system. Click on any guide to learn more:
* [**Types**](/docs/cards/types/types-overview) define the structure of information within the system. You can think of a Type like a blueprint with specific instructions for what details you'll need to store for each piece of information.
* [**Tags**](/docs/cards/tags/tags-overview) are used to add additional properties or behaviors to a Type. Tags allow you to define a specific set of properties that can be applied to multiple Types.
* [**Cards**](/docs/cards/creating-cards) are "instances" of a Type — the real information that you're storing in your knowledge management system. Each Card is a unique piece of information that follows the structure defined by its Type.
* [**Relations**](/docs/cards/relations/relations-overview) define the connections between different Types and Tags, allowing you to link related information together with Cards.
## Using Cards for knowledge management
Cards provide a structured and scalable way to organize knowledge. Unlike traditional document-based systems, where information can become scattered and difficult to navigate, Cards allow for dynamic connections, filtering, and categorization.
This approach offers several advantages:
* **Structured organization** - Each Card follows a defined Type, ensuring consistency.
* **Easy navigation** - Relations between Cards create a web of interconnected knowledge, making it easy to find associated information.
* **Scalability** - The modular nature of Cards allows you to expand your system at scale.
* **Collaborative editing** - The rich text editor and activity tracking allow teams to work together collaboratively.
Continue through the guides to learn how to put these concepts into practice, creating your own knowledge management system with Cards.
<div style={{ height: "7px" }}></div>
<div className="rounded-box">
<h5><strong>Let's build a game design system with Cards! 🎮</strong></h5>
<p>In the following guides, we'll look at how to design an adventure game system using Cards. Game designers need to store information about **game components**, **documents** and **files**, keeping track of how everything is connected. We'll use this example to illustrate how Cards can be used to create a comprehensive knowledge management system.</p>
</div>
+46
View File
@@ -0,0 +1,46 @@
---
title: Cards vs. Documents
description: Learn when to use Cards and when to use Documents.
---
You can use Cards to completely replace [Documents](/docs/knowledge-management/documents) in your workspace — or use them both simultaneously for different purposes. Lets take a look at the key similarities and differences between Documents and Cards.
#### Similarities
- Content is created with the same text editor
- Activity section records change history and includes area for commenting
- Set roles, permissions and privacy at the space level
#### Differences
There are a few important differences between Cards and Documents, which are summarized in the table below:
| **Feature** | **Documents** | **Cards** |
|--------------------------|---------------------------------------------------------------------------|--------------------------------------------------------------------------------------------|
| **Attributes** | Attributes are defined by the system (title, content, created by, etc.) and cannot be changed | In addition to the default attributes defined by the system, you can also define as many **custom attributes** as you want |
| **Sorting and filtering**| Cannot be sorted or filtered by attributes | Can be sorted and filtered by attributes |
| **Attachments** | No designated area for file attachments (you can only send attachments with a comment in the Activity section) | Designated area for attachments |
| **Organizational structure** | Nested, where documents can be nested within other documents | Organized by Type, where Cards of the same Type are grouped together |
| **Relations** | Can be linked together in a 1:1 relation through @ mentions and backlinks | Can be linked through parent-child relations, and using References and Relations defined on their Type |
> **Note:** While our initial implementation of Cards is focused on knowledge management, Cards will also serve as the foundation for many other features on the platform, including process management and threads. With Cards, you'll be able to build your own custom applications within Hanzo Team, such as a CRM, CMS, project management system and more. Stay tuned for more updates soon!
---
#### Okay, that was a lot of information … so which should I choose?
Lets keep it simple!
##### Use **Cards** if:
- You need to add custom attributes to your docs, like “client”, “document type” or “status”
- You need to be able to sort and filter your content by attributes
- You need to define specific _relations_ between types of entities; for example: `Contract ←→ Client`
- You plan to build processes and workflows around your Cards in the future
##### Use **Documents** if:
- Your docs organization is simple, where the nested document structure is sufficient
- You need to jot down some quick notes, without needing to store them in a structured format
Of course, the best way to find out which system is right for you is to try them both and see what works. Happy exploring! 🚀
+71
View File
@@ -0,0 +1,71 @@
---
title: Creating Cards
description: Learn how to create Cards.
---
<div className="rounded-box">
<h5><strong>What is a Card?</strong></h5>
<p>A Card is an instance of a Type, representing a specific piece of structured information. It follows the properties defined by its Type and can include rich text, attachments, relations, and tags, making it a flexible building block.</p>
</div>
To use Cards effectively in Hanzo Team, its important to first understand their relationship with Types.
Think of a **Type** as a blueprint and **Cards** as the structures built from that blueprint. If your blueprint defines a "house" as a structure with four windows and one door, then every house created from that blueprint will always have four windows and one door, regardless of color or furnishings.
If you haven't already, check out our guide on [Creating Types](/docs/cards/types/creating-types) — then return here to learn how to create Cards from the Types you've made.
## Creating a space
A space is like a container for your Cards. You can set permissions at the space level to determine who can access the Cards within that space.
To create a new space, click the `+ Create Space` button in the top left corner of the Cards module. Here, you can enter a name, select they Types that will be used in that space, and set owners, members and privacy settings. Setting the space to "Private" will prevent anyone other than the members listed from accessing the Cards in that space.
Spaces for Cards act like any other space in Hanzo Team, meaning you can leave, join and archive spaces, and global admin roles will apply. For more on managing permissions at the workspace and space level, see our guide on [Roles and Permissions](/docs/advanced-settings/roles).
## Creating Cards
Click `+ Create Card` in the top left corner of the Cards module.
The following elements make up a Card:
1. **Title** - a name for your Card
2. **Type** - the Type that defines the properties of your Card (see [Creating Types](/docs/cards/types/creating-types))
4. **Properties** - the details of your Card, as defined by the Type
5. **Rich text editor** - a collaborative text editing area that supports markdown formatting, images, tables and more
6. **Children** - an area for adding child Cards (see [Parent-child Cards](/docs/cards/parent-child-cards))
7. **Attachments** - an area for uploading files
8. **Activity** - a log of all changes made to the Card and area for commenting
> **Note:** Cards created from the `File` Type will have an additional area above the rich text editor for uploading files. To learn more about managing files with the `File` Type, see [File Types](/docs/cards/types/file-types).
Beyond these basic elements, Cards can also include:
* **[Relations](/docs/cards/relations/relations-overview)** - connections to other Cards
* **[Tags](/docs/cards/tags/tags-overview)** - optional properties that can be applied to Cards of different types
Relations and Tags are set at the Type level. In other words, when you want to create a new Relation or Tag for a Card, you'll need to define this on the Type in Settings. To see how, check out these guides on [Defining Relations](/docs/cards/relations/defining-relations) and [Creating Tags](/docs/cards/tags/creating-tags).
### Example: Creating an NPC Character Card
To create a Card, first make sure you've selected the correct Type from the left side menu, then click the `+ Create Card` button.
From here, you can enter information in all of the attributes you [defined on your Type](/docs/cards/types/creating-types). Below is an example of a Card for an NPC character in our **game design system**:
Note that this `NPC` Card has several [Relations](/docs/cards/relations/relations-overview), defined on the `Character` Type from which it was derived:
* **`Item`** - a `Character` possesses `Items`
* **`Environment`** - a `Character` exists in an `Environment`
* **`Game Narrative`** - a `Character` is included in a `Game Narrative`
## Adding Card attribbutes
To add an attribute to a Card, simply click the `+` icon next to the Type or Tag you want to add to. Adding an attribute on one Card will add the field to all existing Cards with that Type or Tag.
## Learn more
To further explore working with Cards, check out these guides:
* [Relating Cards](/docs/cards/relations/relating-cards) - Define structured relationships between Cards.
* [File Types](/docs/cards/types/file-types) - Manage images, videos, PDFs, and other media within Hanzo Team's default `File` Type.
* [Tags](/docs/cards/tags/tags-overview) - Apply additional attributes across different Types.
By understanding and structuring Cards effectively, you can build a powerful and flexible knowledge management system in Hanzo Team.
+14
View File
@@ -0,0 +1,14 @@
{
"title": "Cards",
"pages": [
"cards-overview",
"creating-cards",
"parent-child-cards",
"view-sort-filter-cards",
"cards-vs-documents",
"use-cases",
"types",
"tags",
"relations"
]
}
+28
View File
@@ -0,0 +1,28 @@
---
title: Parent-child Cards
description: Learn how to create parent-child Cards and their use cases.
---
Cards can be connected through a parent-child relationship, where the child Card is best understood in the context of its parent Card. This is useful for creating a hierarchical structure of knowledge and information.
## Creating a child Card
To create a new child Card, click the `+ Create child` button on the parent Card. A new blank Card will be opened, where you can enter any information you want. The child Card will automatically be linked to the parent Card.
## Connecting existing Cards as parent-child
To connect an existing Card to a parent, right-click on the Card in the list or table view, or open the settings menu on the Card's page. Select `Set parent` from the list, then select a Card for the parent.
## Disconnecting parent-child Cards
Any child Card can be disconnected from its parent by right-clicking or opening the settings menu and selecting `Unset parent`.
## Parent-child vs. Relations
While both Relations and parent-child connections allow you to link Cards, they serve different purposes and are used in distinct scenarios.
Here are some general guidelines:
* Use **parent-child** relationships when one entity (the "child") is dependent on another entity (the "parent") and logically belongs under it, or when a hierarchical structure is needed.
* Use **[Relations](/docs/cards/relations/relations-overview)** when both entities exist independently but need to be linked to reflect their interaction or connection. Relations don't imply a hierarchical structure, just that the entities are related in some way.
@@ -0,0 +1,57 @@
---
title: Defining Relations
description: Learn how to define Relations between Types.
---
To define Relations between Types, navigate to Settings and open the Type you want to add a Relation to. Click the `+` button in the Relations area.
## Naming Relations
When defining a Relation, you'll need to give it a clear and descriptive name on both sides. The names should be human-readable and indicate the nature of the relationship between the two entities.
Let's look at some examples of Relations on our `Character` Type:
* **Possessed by** (`Character`) - **Possesses** (`Item`)
* *Meaning: A Character **possesses** an Item; an Item is **possessed by** a Character.*
* **Inhabited by** (`Character`) - **Exists in** (`Environment`)
* *Meaning: A Character **exists in** an Environment; an Environment is **inhabited by** a Character.*
* **Features** (`Character`) - **Included in** (`Game Narrative`)
* *Meaning: A Character is **included in** a Game Narrative; a Game Narrative **features** a Character*
These names describe how two Types are connected, allowing the system to establish their relationships clearly and logically.
## Selecting the kind of Relation
When creating a Relation, you must specify the kind of relationship between the entities. There are three kinds to choose from:
#### 1:1 Relation
**Definition**: One entity of the first type is related to exactly one entity of the second type.
**Example**: An `Item` has only one `Audio Asset`, and an `Audio Asset` is only used by one Item.
**Use case**: This type of relation is ideal for cases where a single instance of one entity is paired with a single instance of another. For instance, each `Item` may have a unique `Audio Asset` associated with it.
#### 1:N Relation
**Definition**: One entity of the first type is related to multiple entities of the second type.
**Example**: A `Quest` can have multiple `Objectives`, but each `Objective` belongs to only one `Quest`.
**Use case**: This relation type is commonly used when a single entity (like a `Quest`) can be linked to multiple related entities (like `Objectives`), but each related entity (an `Objective`) is only connected to that one instance of the first entity.
#### N:N Relation
**Definition**: Multiple entities of the first type are related to multiple entities of the second type.
**Example**: A `Character` can have multiple `Items`, and an `Item` can be used by multiple `Characters`.
**Use case**: This relation type is useful when many instances of one entity (e.g., `Character`) can be associated with many instances of another entity (e.g., `Items`). It reflects a more dynamic, interconnected system, like a character inventory or shared assets.
By defining clear and meaningful Relations between your Types, you can create a system where entities are connected in ways that mirror their real-world interactions. This adds depth to your data structure, making it easier to navigate, manage, and scale as your system grows.
## Using Relations with Cards
Check out our guide on [Relating Cards](/docs/cards/relations/relating-cards) to learn how to connect Cards using the Relations you've defined.
+4
View File
@@ -0,0 +1,4 @@
{
"title": "Relations",
"pages": ["relations-overview", "defining-relations", "relating-cards", "relations-vs-references"]
}
@@ -0,0 +1,26 @@
---
title: Relating Cards
description: Learn how to connect Cards by Relations.
---
After setting up [Relations](/docs/cards/relations/defining-relations), you can start relating Cards to each other.
Navigate to any Card created from a Type that has Relations. Near the bottom of the Card, you'll find all of the Relations you defined in Settings.
## Adding a Relation
Click the `+` button to add a Card. You'll see a dropdown menu of all available Cards of the related Type. Select a Card to establish the connection.
In our **game design** example, we've defined Relations between `Character`, `Item`, `Environment` and `Game Narrative` Types. Here, we can see the name of each Relation and all of its related Cards.
> **Note:** It is currently possible to create a relation to a Person or Company in your Hanzo Team workspace. Soon, Persons will be replaced with Cards, allowing you to seamlessly manage your contacts within the Cards system.
## Removing a Relation
To remove a related Card, simply right-click on the Card name and select `Remove relation`. This will break the connection between the two Cards.
To delete the Relation entirely, navigate back to Settings, open the Relation and click the trash icon. This will break the relations for all associated Cards.
## Parent-child Cards
In some cases you may want to connect parent-child Cards instead of using Relations. For more on this, see [Parent-child Cards](/docs/cards/parent-child-cards).
@@ -0,0 +1,18 @@
---
title: What are Relations?
description: Learn about Relations in the Cards system.
---
<div className="rounded-box">
<h5><strong>What is a Relation?</strong></h5>
<p>A Relation defines a connection between Cards, linking information across the system. Relations are created between Types in Settings before any Cards exist, establishing predefined associations. Once Cards are created, they can be connected through these Relations, forming a structured and interconnected knowledge base.</p>
</div>
Relations allow you to connect Cards and define their interactions in a way that reflects real-world relationships. This allows you to:
* **Build networks of interconnected data** - Relations help create a web of linked information, allowing you to easily explore how various entities relate to one another. This interconnectedness makes it possible to visualize complex systems and understand the structure of information.
* **Optimize data navigation** - Relations make it easy to navigate between associated Cards, making it easier to find relevant information quickly.
In our **game design** example, a `Character` Card may be related to an `Item` Card that the character posesses, or a `Game Asset` Card could be related to a `Game Component` that it's used for.
To learn how these relationships work in practice, check out our guides on [Defining Relations](/docs/cards/relations/defining-relations) and [Relating Cards](/docs/cards/relations/relating-cards).
@@ -0,0 +1,57 @@
---
title: Relations vs. References
description: Learn the differences between Relations and References and best use cases for each.
---
In some cases, you may want to connect Cards together using References instead of Relations.
Relations are bi-directional, meaning that a Relation will appear on both Cards involved the relationship. In our example of a `Character` possessing an `Item`, the Relation will appear on both the `Character` and the `Item` Card.
> **Below:** The `Item` is shown on the `Character` Card
> **Below:** The `Character` is shown on the `Item` Card
References, on the other hand, are one-directional. A Reference will only appear on the ***Referring*** Card, and a Reference is a type of attribute. Instead of using a Relation to define the association between `Character` and `Item`, you can add a Reference attribute to the `Character` Type that references the `Item` Type. This can be a single-select or multi-select attribute, depending on your use case. In this case, the `Item` Card will not show which `Character` possesses it.
> **Below:** Add a reference attribute to the `Character` Type in Settings
> **Below:** Select `Item` Cards on the `Character` Card using the Reference attribute
## Deciding whether to use a Relation or Reference
The decision to use a Relation or Reference depends on your use case and how you'd like to design your own system. Here are a few things to consider with regard to functionality and presentation of your data.
> **Note:** We will diverge here from our game design example to illustrate the difference between Relations and References using a more general example of `Person` and `Meeting`. Soon, Persons in Hanzo Team will be replaced with Cards, allowing you to manage your contacts in a more robust and customized database system. The examples in this section demonstrate the differences between Relations and References on a large scale, considering a case of a team managing thousands of contacts and meetings.
##### Visibility and navigation
Relations are visible on both Cards, making it easy to navigate between related entities. This bi-directional visibility is useful when you want to maintain a clear and reciprocal connection between two entities. For example, if you have a `Person` that is related to a `Meeting`, both the `Person` Card and the `Meeting` Card will show this relationship, allowing easy navigation in both directions.
##### Scalability
As your system grows, consider how each option will scale.
For example, let's say you want to create Cards for **meeting minutes**. You may want to create a Relation:
- `Meeting` N:N `Person`
* **Attended** (`Meeting`) - **Attendees** (`Person`)
* *Meaning: A Meeting has **attendees**; a Person **attended** Meetings.*
This may seem convenient at first — you can see all of the attendees in the Relations section of each `Meeting` Card, and you can see which meetings everyone attended on the `Person` Cards.
However, as the number of meetings grows, each `Person` may end up with an overwhelming number of meetings on their Card, making it difficult to navigate. In this case, a better solution might be to use a Reference attribute on the `Meeting` Type; for example:
- **`Meeting Minutes`** (Type)
- Date
- Topic
- Attendees (Reference to `Person`)
In this case, you can add many `Person` Cards to the `Meeting` Card without cluttering the `Person` Cards themselves.
##### Sorting and filtering
References are a type of attribute, so you can sort and filter your Cards based on the Reference value. If you might want to sort or filter your Cards by a specific attribute, consider using a Reference instead of a Relation. In our example of `Person` and `Meeting`, if `Person` is a Reference attribute on the `Meeting` Type, you can easily create filtered views for meetings attended by different groups of people.
## Designing your own knowledge system
Ultimately, how you design your system is up to you! There are advantages and disadvanteges to every kind of setup, and there's no "correct" way other than the way that works best for you.
+16
View File
@@ -0,0 +1,16 @@
---
title: Applying Tags to Cards
description: Learn how to apply Tags to Cards.
---
Now that we've learned about [Tags](/docs/cards/tags/tags-overview) and how to [create](/docs/cards/tags/creating-tags) them, let's explore how to apply them to our Cards. First, you'll need to create a Card from a Type that has Tags. If you haven't already, check out our guides on [creating Cards](/docs/cards/creating-cards).
## Adding a Tag to a Card
To add a Tag to a Card, click the `+` icon beside the Type. You'll be able to select from any Tags that have been created for that Type.
For our **game design** example, we're applying the `Flying` and `Wizard` Tags to an `Enemy` Card (derived from `Game Component` / `Character` / `Enemy` Types). These Tags provide additional properties that define how the character interacts with the game.
## Removing a Tag from a Card
To remove a Tag from a Card, simply click the `x` icon beside the Tag name. This will remove the Tag and all its associated properties from the Card.
+20
View File
@@ -0,0 +1,20 @@
---
title: Creating Tags
description: Learn how to create Tags.
---
In the previous guide, we learned about Tags and how they can be used to define behaviors or attributes that extend a Cards functionality. Now, let's put that knowledge into practice and create some Tags.
## Creating a Tag
Navigate to Settings and select the Type you want to add Tags to; then, click the `+` button in the Tags area. Add a name for your Tag and click `Create`.
## Adding Tag properties
Click on any Tag to open it. To add a property to a Tag, click the `+` button in the properties section. Adding properties to a Tag is the same as adding properties to a Type (see [this guide](/docs/cards/types/creating-types/#adding-properties)). These properties will only be available on Cards using that Tag.
In our **game design** example, we've added a custom property "Flying speed" that exists on the `Flying` Tag:
To the `Wizard` Tag, we've added a property "mana":
Check out the next guide on [Applying Tags](/docs/cards/tags/applying-tags) to learn how to use this Tag on a Card.
+4
View File
@@ -0,0 +1,4 @@
{
"title": "Tags",
"pages": ["tags-overview", "creating-tags", "applying-tags"]
}
+22
View File
@@ -0,0 +1,22 @@
---
title: What are Tags?
description: Learn about Tags in the Cards system.
---
<div className="rounded-box">
<h5><strong>What is a Tag?</strong></h5>
<p>A Tag is a set of additional properties that can be applied to a Card, allowing you to define behaviors or attributes that extend a Cards functionality. Tags provide flexibility by enabling shared properties across different Types without requiring new Types.</p>
</div>
We've seen how we can [create variations of a Type](/docs/cards/types/creating-types/#creating-derived-types). But what if we want to define some kind of behavior or functionality without altering the core structure of the Type itself?
Tags allow you to add multiple additional attributes to a single Card. In our game design example, we can create Tags like `Flying` and `Wizard` added to the `Character` Type, so any `Character` Card we create could have access to these attributes:
In our next guide, we'll learn how to create the Tags we just described. Check out [Creating Tags](/docs/cards/tags/creating-tags) to get started!
## Tags vs. Types
> *__But wait__, couldn't I just create separate Types for Flying Characters and Wizards?*
**Yes, you absolutely can!** Creating separate Types for each variation is a valid approach. However, the benefit of using Tags is flexibility — you dont need to create a new Type for every possible combination of behaviors or attributes. Instead, Tags allow you to mix and match properties based on the unique needs of each Card. On the other hand, creating new Types might be more appropriate if the differences between variations are fundamental to the design or behavior of the Card.
Both methods have their pros and cons. Its up to you, as the system designer, to experiment and choose the approach that best suits your needs.
@@ -0,0 +1,75 @@
---
title: Creating Types
description: Learn how to create Types.
---
To create a Type, navigate to Settings, find `TYPES` in the left side menu, and click the `+` button that appears when hovering over the header. Enter a name for your Type and click `Create`.
## Adding properties
Next, add some properties for your Type. **Properties** are anything that will be shared by all Cards of this Type.
To add a property, click the `+` button in the properties section. Select from the following:
* URL
* Text
* Checkbox
* Number
* Date
* Reference (link to an Object in your workspace)
* Multi-select (select multiple Objects or dropdown values)
* Select (select one dropdown value)
In our example, we know that all Game Components will have a `Name` and `Description`, so we'll add these on the `Game Component` Type as `Text` properties.
> **Note:** Properties can also be added directly to Cards — see [Creating Cards](/docs/cards/creating-cards).
##### Creating dropdown menus (enums)
If you chose to add a property of type "Multi-select" or "Select", you can create a dropdown menu with options. Click the `+` button to add a new select menu (called an "**enum**"). Enter a title and options for the menu and click `Save`. Then, select your menu from the "Select" dropdown to use it for this property.
In our example, we've created a Type `Character` and added a "Multi-select" property `Movement modes` with a dropdown menu of options: `🏃 Ground`, `🦅 Air`, and `🌊 Water`:
## Creating derived Types
We mentioned that the `Game Component` Type will have a "Name" and "Description" property. But what if we want to create different kinds of `Game Components`, each with their own unique properties?
Types can be derived from other Types to define variations that have their own unique properties. To create a derived Type, find the `TYPES` section on the main Type page and click the `+` button.
From here, the steps for creating a derived Type are the same as creating any other Type. Note that the derived Type will automatically inherit all properties of the Type from which it was derived.
In our example, we can derive several new Types from the `Game Component` Type, such as `Character`, `Item` and `Environment`, each with their own set of properties.
We can create as many levels of derivation as is needed. In the example below, we've derived Types `Player`, `Enemy` and `NPC` from Type `Character`.
We can define properties on each Type, like this:
- **`Game Component`**
- Name
- Description
- **`😶 Character`**
- Speed (m/s)
- Jump height (m)
- Movement modes (ground, air, water)
- Max health
- Stamina
- **`🤺 Player`**
- Abilities (jump, attack, talk, etc.)
- XP
- **`👿 Enemy`**
- Attack patterns (claw swipe, fireball, charge attack)
- **`🧑 NPC`**
- Affiliation (friendly, neutral, hostile)
- Essential? (yes/no)
- Respawn? (yes/no)
- **`🎒 Item`**
- Item type (weapon, consumable, key item)
- Effect
- Rarity (common, rare, legendary)
- **`🌎 Environment`**
- Size (small, medium, large)
- Interactive? (yes/no)
## Deleting a Type
To delete a Type, navigate to the Type page in Settings and click the trash icon in the top right corner. Note that deleting a Type will also delete all Cards of that Type, and this action cannot be undone.
+60
View File
@@ -0,0 +1,60 @@
---
title: File Types
description: Learn how to manage Files using the default File Type.
---
The Hanzo Team Cards system comes with a special default Type called **`File`**. This basic Type allows you to manage files, such as images, videos, PDFs and other media.
The `File` Type behaves the same as any other Type, with a few key differences:
1. The `File` Type **cannot be deleted**.
2. Cards created from the `File` Type (or derivations of the `File` Type) include a **designated area for uploading files**.
You can think of the `File` Type as the foundation for an advanced file drive system. Rather than uploading files to a single drive and organizing them into folders, you can create a Type for each category of files you want to manage and define their shared properties.
## Deriving Types from `File`
To create new Types derived from `File`, navigate to Settings, select `File` under `TYPES` in the left sidebar, and click the `+` button in the `Types` area.
Creating a Type derived from `File` is the same as creating any other derived Type (see steps for [Creating derived Types](/docs/cards/types/creating-types/#creating-derived-types)).
In our **game design** example, we'll create two Types derived from `File` to manage different categories of game assets, each with their own properties:
- **`File`**
- **`Game Asset`**
- Name
- Description
- Formats
- **`🖼️ Image Asset`**
- Dimensions (px)
- Transparency? (yes/no)
- **`🔊 Audio Asset`**
- Purpose (soundtrack, sound effect)
- Duration (s)
- Looping? (yes/no)
## Creating Cards from `File` Types
Creating Cards from `File` Types is the same as creating Cards from any other Type (see our guide for [Creating Cards](/docs/cards/creating-cards)) — when you create a Card from a `File` Type, however, you'll see a designated area for uploading files.
Here, you can click the upload button or drop your files into the upload area.
Below is an example of a Card created from the `Audio Asset` Type:
> **WARNING:** Once uploaded, a file **cannot be deleted** from the Card.
## Tips for using the `File` Type
The `File` Type is a powerful tool for managing files in your Hanzo Team workspace. Here are some tips for getting the most out of it:
* **Create your custom file system** - Create different Types for various categories of files to ensure everything is neatly organized in one place.
* **Collaborate on media assets** - Use the `File` Type to store media that you may need to discuss with the team or add context to within the editor.
* **[Relations](/docs/cards/relations/relations-overview)** - Link your files to other Cards in your knowledge management system to establish connections between related resources.
* **Track metadata** - Define useful properties for each Type, such as dimensions, duration, or format, to make it easier to filter and organize files based on their characteristics.
## Other ways to connect files to Cards
In addition to using the `File` Type, there are several other ways to link files and media to Cards. There are advantages to each method, so choose the combination that works best for you!
* **Card attachments** - Attach files to any Card, regardless of its Type, by adding them directly to the Cards interface (see [Creating Cards](/docs/cards/creating-cards) for an example). This is a great way to quickly attach a file that doesn't need its own dedicated Card.
* **Inline embeds** - Use the `/` shortcut in the collaborative editor to embed images directly within the content. This is useful for adding visual elements to text-based Cards.
* **Comment attachments** - You can also attach files to specific comments within the activity section, which is handy when you need to send a resource or snapshot with your message.
+4
View File
@@ -0,0 +1,4 @@
{
"title": "Types",
"pages": ["types-overview", "creating-types", "file-types"]
}
@@ -0,0 +1,21 @@
---
title: What are Types?
description: Learn about Types as part of the Cards system.
---
<div className="rounded-box">
<h5><strong>What is a Type?</strong></h5>
<p>A Type is a blueprint that defines the structure and properties of a Card. It specifies the attributes each Card will have, ensuring consistency and organization across the system. Types can also be derived to create variations with unique properties.</p>
</div>
Types define the structure of information within the system. Think of a Type as a blueprint that outlines the specific details you'll need to store for each piece of information.
In our **game design** example, we have three core Types:
2. **`Game Component`** - Physical or digital elements in the game world
3. **`Document`** - Written design, technical and narrative information. This is a default system `Document` Type.
4. **`File`** - Digital files used in the game, such as images, sounds, textures and 3D models. This is a default system `File` Type (see [File Types](/docs/cards/types/file-types)).
Each **Type** has a set of **properties** that define the specific details we want to capture for each piece of information.
We can also derive Types to define variations that have their own unique properties. To learn how to create Types and derived Types in practice, check out our next guide on [Creating Types](/docs/cards/types/creating-types).
+159
View File
@@ -0,0 +1,159 @@
---
title: Use cases for Cards
description: Learn about some common use cases for Cards.
---
This guide provides examples of common ways to use Cards for knowledge management. Each example includes suggested [Type](/docs/cards/types/types-overview) structures and [Relations](/docs/cards/relations/relations-overview) that you can use as inspiration and adapt to your own workspace.
---
## 📚 Dive into real-world use cases
Cards are a versatile solution for managing many different kinds of knowledge in your workspace. Click on each section below to see an example of Types and Relations for each use case based on real-world knowledge systems. You'll find that some of these examples can also be interconnected, allowing you to create a network of knowledge spanning all areas of your organization.
<details>
<summary><strong>Knowledge Base Articles</strong> — build a structured knowledge base to organize articles like how-to guides, FAQs, and release notes.</summary>
##### Types and sub-types
>Articles come in many formats, and different kinds of articles can have different properties. Here are some examples of Types you might use in a knowledge base and their unique attributes:
- **`Knowledge Base Article`**
- Summary (string)
- Category (select)
- Audience (multi-select)
- Last updated (date)
- Product area (select)
- **`How-To Guide`** (Sub-type)
- Prerequisites (multi-select)
- Estimated time (number)
- **`FAQ Entry`** (Sub-type)
- Question (string)
- Answer (string)
- Related topics (multi-select: reference to `Topic` Cards)
- **`Release Note`** (Sub-type)
- Release version (string)
- Release date (date)
##### Relations
- Related articles (`Knowledge Base Article` ↔ `Knowledge Base Article`)
- Supports feature (`Knowledge Base Article` → `Product Feature`)
- Explains concept (`Knowledge Base Article` → `Glossary Term`)
</details>
<details>
<summary><strong>Meeting Notes</strong> — keep track of discussions from meetings across teams.</summary>
##### Types and sub-types
> Depending on how many different kinds of meetings your team operates, you may wish to organize your meeting notes into different Types. Here are some examples:
- **`Meeting Note`**
- Topic (string)
- Date (date)
- Participants (multi-select: reference to Employees)
- Summary (string)
- **`Team Meeting`** (Sub-type)
- Department (select: reference to `Department` Card)
- Recurrence (select: weekly, bi-weekly, monthly)
- **`Project Meeting`** (Sub-type)
- Related project (reference: `Project` Card)
##### Relations
> In some cases, you may want to use Relations instead of References to link your meeting notes. Check out [this guide](/docs/cards/relations/relations-vs-references) to determine which is best for you! Here are a few example Relations you might use:
- Related to project (`Meeting Note` → `Project`)
- Related to department (`Meeting Note` → `Department`)
</details>
<details>
<summary><strong>Feature Specs</strong> — document detailed plans for product features.</summary>
##### Types and sub-types
- **`Feature Spec`**
- Feature (string)
- Status (select: Draft, Approved, In Development, Released)
- Owner (reference: Employee)
- **`UI Feature`** (Sub-type)
- Screens affected (multi-select)
- Design link (url)
- **`Backend Feature`** (Sub-type)
- API changes required (checkbox)
- Data model changes (checkbox)
##### Relations
- Depends on (`Feature Spec` → `Feature Spec`)
- Implements (`Feature Spec` → `Product Feature`)
- Informed by (`Feature Spec` → `Research Summary`)
</details>
<details>
<summary><strong>Research Summaries</strong> — record findings from studies, interviews, and experiments.</summary>
##### Types and sub-types
- **`Research Summary`**
- Research method (select: Survey, Interview, Usability Test, Experiment)
- Date conducted (date)
- Related product area (select)
- **`User Interview Summary`** (Sub-type)
- Interviewee (reference: Person)
- Interviewer (reference: Employee)
##### Relations
- Informs (`Research Summary` → `Feature Spec`)
- References (`Research Summary` →`Research Summary`)
</details>
<details>
<summary><strong>Process Documentation</strong> — map out operational workflows, standard procedures, and playbooks.</summary>
##### Types and sub-types
- **`Process Guide`**
- Process name (string)
- Trigger event (string)
- Owner (reference: Employee)
- **`Standard Operating Procedure`** (Sub-type)
- Compliance Requirement (select)
- Review Cycle (Months) (number)
- **`Playbook`** (Sub-Type)
- Scenario (string)
##### Relations
- Related Processes (Process Guide ↔ Process Guide)
- Supports (Process Guide → Department or Team Card)
</details>
<details>
<summary><strong>Marketing Campaign Plans</strong> — organize campaign briefs, timelines, and strategies in one place.</summary>
##### Types and sub-types
- **`Campaign Plan`**
- Campaign name (string)
- Objective summary (string)
- Launch date (date)
- Channels (multi-select: Email, Social, Paid Ads, Web)
- Target Audience (multi-select)
- **`Product Launch Campaign`** (Sub-type)
- Related product (reference: `Product` Card)
- **`Seasonal Campaign`** (Sub-type)
- Seasonal theme (string)
##### Relations
> You can relate a campaign to a product by a reference attribute (in the example above), or by using a Relation. Check out [this guide](/docs/cards/relations/relations-vs-references) to determine which is best for you! Here are some examples of Relations you might use:
- Related product (`Campaign Plan` → `Product`)
- Supported by content items (`Campaign Plan` → `Content`)
</details>
---
## 💡 Tips for designing your own Cards system
While it's helpful to look at example use cases when considering how to use Cards in your own workspace, you are ultimately the architect of your own knowledge management system, and it's up to you how to prefer to structure your information. Here are some tips to help you design your own Cards system:
1. **Start simple:** Begin with a few core Types that cover your most important information. You can always expand later as your needs grow. It's also possible to change the Type of a Card after it's been created — so no worries if you decide to re-organize later!
2. **Keep processes in mind:** If you read the [Introduction to Cards](/docs/cards/cards-overview) doc, you already know that we are currently building a new process management system entirely based on Cards. You'll be able to build processes like customized leads funnels, agile workflows, customer management systems and more — all from a foundation built with Cards. If you think you'd like to leverage Cards for your processes in the future, we suggest building your information architecture with this in mind.
3. **Connect Cards to the rest of your workspace:** From any Card, you can create a Reference attribute to point to any person or company already in your Contacts. You can also link to Cards from anywhere — including chats and issue descriptions — using @ mention syntax. Try it out!
4. **Reach out for support and inspiration!** Join our [community](https://github.com/hanzoai/team/discussions) to ask questions, share your use cases, and provide feedback and feature requests for our team. We're happy to help you get started with Cards and would love to work with you to make this system as useful as possible.
@@ -0,0 +1,32 @@
---
title: View, sort and filter Cards
description: Learn how to manage Cards with sorting, search and filtered views.
---
Viewing, sorting, and filtering Cards in the game design system allows you to manage complex, interrelated pieces of information more efficiently than plain documents in Hanzo Team. While documents are static and typically organized in a linear fashion, Cards offer a dynamic, flexible way to organize and access content based on various attributes, relationships, and tags. This approach enables you to quickly locate relevant information, prioritize tasks, and track connections Cards.
## How Cards are organized
In the Cards module, you'll notice that the left side navigation displays all of your Types. Cards are grouped together by Type, so you can easily view all Cards that share the same structure. Click on any Type in the sidebar to view its Cards.
## Viewing Cards
Within a Type, there are two ways to view Cards:
##### Table view
The table displays Cards in a spreadsheet-like format, with columns for each property defined by the Type.
##### List view
The list view displays Cards grouped by their Type. In list view, you can also group Cards by the user who created or modified them.
## Sorting Cards
In the table view, you can sort most columns by clicking on the column heading. Use the toggle icon to further customize the view by selecting which columns to display in the table.
## Creating filtered view
Click the `Filter` button to create a view with specific criteria. You can filter Cards by as many criteria as you like.
To save your filtered view for easy access later, click `Save as` and enter a name for your filtered view. Your view will be saved to the sidebar, where you can then select whether to make it public (visible to others) or private (visible only to you).
@@ -0,0 +1,30 @@
---
title: Activity tracking in chat
description: Learn how to keep track of workspace activity within chat.
---
In Hanzo Team Chat, your team can communicate through direct messaging and group chat channels and collaborate on projects and resources. This guide covers how to view and track workspace activity within chat, including documents, issues, pull requests and other workspace objects. For more on sending chat messages through channels and DMs, see our guide on [sending messages](/docs/communication/sending-messages).
## Viewing workspace activity in chat
Documents, issues and other workspace objects appear in Chat for all associated team members, so members can see updates, discuss details and make decisions alongside the rest of their chat conversations.
In the left sidebar of your chat, you'll find sections labeled `Documents`, `Issues`, and any other task types you've created. These sections will display all of the associated objects that you've either created, been assigned, or been mentioned in.
Outside of Chat, you'll notice that many objects in Hanzo Team (like issues and documents) have an Activity section where you can have discussions through comments. Comments that are added here in the Activity section will also appear in the chat associated with that object.
### Filtering activity
After opening a workspace object in Chat, use the filter button in the top right corner to filter for the specific activity you want to see. For example, you can filter to only see comments to create a chat-like view of all of the discussion related to that object. Or, filter by attributes to only see changes to the object details without comments.
### Viewing object details
Open the right sidebar to view the details of the object you're viewing. This provides a quick overview of the object's status, assignee, due date and other relevant details without leaving the chat view. From here, you can click the expand icon to open a full view of the object.
### Syncing with GitHub
If you've connected a project to GitHub, you'll see a special `Pull Requests` section in your chat sidebar. This section will display all of the pull requests associated with your project, and you can open any pull request to see the activity history and comments. Just like comments and activity on the task itself, anything added here in the chat will sync with GitHub.
## Mentioning Hanzo Team objects in Chat
When you use the `@` symbol to mention an object in a Hanzo Team chat channel or DM, your message will automatically appear in the Activity section of that object. These mentioned issues will only be visible to the members of the chat channel or DM, and will not be visible to other members of the workspace. For example, if you and a colleague have a private chat about an issue in your DMs, you'll see the messages that include the `@` tag in the Activity section of that issue, but other members of the workspace will won't be able to see it.
+29
View File
@@ -0,0 +1,29 @@
---
title: Inbox
description: Learn how to read and filter messages in your inbox.
---
Access your inbox by clicking on the bell icon in the left sidebar. A red dot at the corner of the bell icon indicates unread notifications.
Several kinds of notifications can be found in your inbox, and you can sort these notificiations by selecting from the following categories in the top menu:
* **All** - all messages and notifications
* **Issues** - notifications for tasks related to you
* **Documents** - notifications for changes related to your documents and documents you've been mentioned in
* **Direct messages** - messages sent directly (not in channels)
* **Messages** - all messages, including comments on issues, files and other workspace objects
Hover over any message in your inbox for the following options:
* **Reactions** - reply to a message with an emoji
* **Save for later** - save a message (adds the message to your saved messages in the chat view)
* **Pin** - pins the message to the top of the chat
* **Reply to thread** - reply to the message in a thread
Hovering over a chat message will allow you to peek at the message without marking it as "Read" in your inbox.
## Organizing your inbox
Selecting the settings icon on the top right of the inbox sidebar opens a dialog for toggling `Unreads` and `Archived`, allowing you to filter messages in your inbox by only unread or archived messages.
The next icon with the three dots opens a dialog for bulk actions, allowing you to mark all messages as read or unread, or archive all of your messages.
You can also click the circular checkbox next to any message to archive it. Additionally, you can click the three vertical dots to open a dialog with options to mark it as unread, archive it or unsubscribe from notifications about that thread, document or issue.
@@ -0,0 +1,42 @@
---
title: Inline comments
description: Learn how to add and manage inline comments on documents and issue descriptions.
---
Inline comments offer a way to add notes, feedback or questions to specific parts of documents, issue descriptions, or anywhere else the comment icon is available in the toolbar.
Inline comments are different from comments found in the Activity section at the bottom of a document, issue or other Hanzo Team object. These are the key differences:
* **Purpose:** Comments in the Activity section are more useful when adding notes or feedback to the document or object as a whole. Inline comments are more useful when you need to point to a specific word, phrase or section of content.
* **Chat integration:** Comments in the Activity section are also linked to Chat, Inbox and other parts of the platform. Inline comments are not linked to any other part of the workspace.
* **Permanence:** Comments in the Activity section are better suited for discussions that you'll want to hang on to, because they're usually part of the activity surrounding the object they're attached to. Inline comments are better for quick notes, feedback or questions, which can be deleted completely once they're resolved.
## Adding inline comments
To add an inline comment, highlight any text and click the comment icon in the floating toolbar (it looks like a speech bubble). Enter your comment and submit.
To reply to a comment, simply enter your reply and submit. Your comment will be added to the thread.
> **Note:** At this time, inline comments are not linked to system notifications. Check back for updates as this feature continues to be developed.
## Viewing inline comments
Text that has an associated comment will appear highlighted on the page.
#### Documents
The appearance of inline comments depends on the window size. When the window is wide enough, you'll see all of the comments on a document on the right side of the page. When the window is narrower, you'll need to click on the highlighted text to see the associated comments.
#### Issue descriptions
To view inline comments on issue descriptions, click on the highlighted text.
## Resolving inline comments
To resolve a comment thread, hover over the parent comment (at the top of the thread) and click the checkmark icon.
> **Note:** Resolving a comment will permanently delete all comments in the thread.
## Editing and deleting inline comments
To edit or delete your own comment, hover over the comment and click on the breadcrumb menu. Then, select `Edit` or `Delete`.
@@ -0,0 +1,40 @@
---
title: Live transcription
description: Learn how the Hanzo Team AI Assistant can transcribe your meetings in real time.
---
The [AI Assistant](/docs/account/agents-bots) can transcribe meetings in real time, saved as a chat correspondence in which you can react, reply, and bookmark messages as you would in any other chat.
Live transcription is one of several ways the AI Assistant works across your workspace to help you get more done — see [Agents & bots](/docs/account/agents-bots) for the full picture.
## Live transcription
When a meeting begins, you'll notice that meeting participants appear in the right side panel while the live transcription appears on the main screen in the `Activity` section. You'll be able to see your transcription appear in real time during the meeting. Select the language for transcription in the bottom left corner of the meeting menu.
If you navigate away during the meeting to another part of your workspace, you can still access your live transcription by clicking on the video icon in the right side menu and selecting the `Transcription` tab.
## Disabling live transcription
Live transcription can either be disabled by default for the entire meeting room, or can be disabled for a specific meeting during the call.
To disable the default live transcription for a meeting room, open the room and navigate to `Settings`. Here, you can toggle the default transcription setting on or off.
When transcription is enabled during a meeting, you'll see the quill icon in the bottom menu of your meeting appears red. To disable transcription for a meeting, click the quill icon at the bottom menu (labeled `Stop transcription`).
> **Note**: Meetings are also recorded by default, and this can be disabled in the same way as transcription — either in the meeting room settings, or for a specific meeting. To disable recording during a meeting, click the recording icon in the bottom menu (labeled `Stop recording`). The icon will appear red if the meeting is being recorded.
## Viewing past transcriptions
You can see any previously saved transcriptions by navigating to your virtual office and selecting the `Meeting minutes` icon in the top left corner. Here, you'll see a list of all of the transcriptions from your previous meetings. You can also delete transcriptions that you don't want saved in your workspace.
You can also view the transcriptions for a specific room. Click on any meeting room in the office and find the transcription in the `Meeting minutes` secton.
## Privacy
During this early stage of development of this feature, live transcriptions are visible to everyone in the workspace. The best way to keep meetings private is to disable transcription (and recording) at the beginning of your meeting, or for the entire meeting room.
We are planning to introduce chat security settings, which will most likely begin with settings to control access to virtual office rooms, making transcriptions private to only those with permission to view them. In the near future, we plan to implement end-to-end encryption, which will also enhance security. In the meantime, you can understand how Hanzo Team uses your data in our [Privacy Policy](https://hanzo.team/legal/privacy). Please feel free to reach out to our team if further clarification is needed.
## Beyond transcription
Transcription is one capability of the AI Assistant. It can also summarize the main points of a meeting, create action items and documents from what was discussed, and help schedule follow-ups. Operating within the permissions you grant it, the assistant works across your workspace to reduce busywork and automate repetitive tasks. See [Agents & bots](/docs/account/agents-bots) for more.
+12
View File
@@ -0,0 +1,12 @@
{
"title": "Communication",
"pages": [
"sending-messages",
"inline-comments",
"chat-activity",
"inbox",
"notifications",
"virtual-office",
"live-transcription"
]
}
@@ -0,0 +1,14 @@
---
title: Notifications
description: Learn how to control the kinds of notifications you'll receive from Hanzo Team.
---
Access your notification settings by clicking your profile icon in the bottom left corner and selecting `Settings`. From the settings menu, select `Notifications`.
## Sound and appearance
At the top of the settings menu, select `Sound and appearance` to set some global settings for notifications. Here, you can toggle notification sound, icon bounce and badge, or turn off all notifications entirely.
## Notification settings
For more granular control over the kinds of notifications you'll receive, select a space or object from the list in the left sidebar. There, you can select which kinds of updates you'd like to receive notifications for, as well as how you'd like to receive them — in your Hanzo Team inbox, by email, and/or push.
@@ -0,0 +1,67 @@
---
title: Sending messages
description: Learn how to exchange messages with team members through direct messages, group chats and channels.
---
Hanzo Team offers many options for team members to communicate directly within the Hanzo Team without the need for an external app. Hanzo Teams chat functionality allows team members to exchange messages in real time through direct messaging and shared channels.
This guide covers how to exchange messages with your team using Chat. Chat is also integrated with the rest of your workspace, so documents, issues, pull requests and other workspace objects can be accessed alongside your other conversations. For more on how Chat integrates other workspace activity, see our guide on [activity tracking in chat](/docs/communication/chat-activity).
## Ways to chat
There are a few different ways to chat with team members on Hanzo Team:
* **Channels** - Public or private chatrooms based on topics or themes
* **Direct messages** - Instant messaging between individuals or groups
* **Other workspace objects** - From Chat, you can access all activity on documents, issues, files and more. Read more in our guide on [activity tracking in chat](/docs/communication/chat-activity).
**Icons and indicators:**
* A red dot beside the chat indicates an unread message.
* A green dot next to a user's avatar indicates that they are online and have their Hanzo Team workspace open.
## Managing chat channels
Create a new channel by clicking the `+` button at the top of the Chat sidebar and selecting `New channel`. Enter a name and topic for your channel and select either `Public` or `Private` for visibility. Click `Create`.
> **Note:** Channels set to `Private` are still visible in the channels list, but users will need to request access to join. To create chats that are not visible to the rest of the team, create a group direct message with the included members (see below).
After you've created your channel, there will be a few additional settings available in the right sidebar:
* **Name** - Set the name for the channel.
* **Private** - Private channels are visible to members only.
* **Auto join** - Toggle this setting to automatically add all new workspace members to this channel. This will not add existing workspace members; only members who join _after_ this setting is enabled will be added to the channel.
* **Members** - Add or remove members from the channel.
* **Topic** - Edit the topic (description) for the channel.
To leave a channel, hover over the channel name in the sidebar and click the settings menu, then click `Leave channel`, or navigate to "Channels", right-click on the channel name and select `Leave`.
To archive a channel, you must be owner or creator of the workspace. Archive a channel either by selecting `Archive channel` from the settings menu, or right-clicking the channel name in "Channels" and selecting `Archive channel`.
> **Note:** Two channels are created by the system when you create the workspace: `#general` and `#random`. In order to archive these system-generated channels, you must be a Spaces Admin. For more on permissions, including how to set Spaces Admins, see our guide on [roles](/docs/advanced-settings/roles).
Star a channel by selecting `Star` in the settings menu. Starred channels will appear at the top of the list in the left sidebar.
## Creating direct and group messages
Create a new direct message by clicking the `+` button at the top of the Chat sidebar and selecting `New direct chat`. Select the user you'd like to chat with and click `Create`. Selecting more than one user will create a group chat.
To close a direct or group message and remove it from your sidebar, hover over the chat in the sidebar and open the settings menu, then click `Close conversation`. Closing the conversation does not remove the message history, so your existing messages will still be available when you reopen the chat.
## Chat options
Like everywhere else in your Hanzo Team workspace, chat messages support markdown formatting, attachments, mentions, emojis and text templates.
Hover over any message to add a reaction, pin it to the top of the chat, or reply in a chat thread:
Bookmark any message to save it for later. See all saved messages in the `Saved` tab in the Chat sidebar:
## Translating messages
To translate a message, simply hover over the message and click the translate icon. This will translate the message into the language you have selected for your workspace.
To restore the original message, hover again and click 'Show original'.
## Chatting in the sidebar
Any chat can be moved to the right sidebar by clicking the "Open in sidebar" button in the top right corner of the chat. You can open multiple threads, channels and DMs here for easy access as you navigate the platform. The chat panel can be hidden by clicking the chat icon in the far right menu.
Your calendar and virtual office can also be accessed through the right sidebar. Check it out!
@@ -0,0 +1,70 @@
---
title: Virtual office
description: Learn how to use Hanzo Team's virtual office for voice and video conferencing.
---
The Hanzo Team offers the ability for team members to meet through built-in voice and video conferencing. To access the Live Office Virtual Environment, click the building icon in the left sidebar.
## Navigating your virtual office
The virtual office contains three kinds of rooms:
- **Individual offices** - Each team member has their own office space. Other users are required to knock before entering. Audio and screen sharing are available.
- **Team rooms** - These rooms are for voice calls only, support screen sharing, and do not require knocking to enter, although this setting can be overridden. Team rooms are ideal for quick meetings with more than 2 team members.
- **Meeting rooms** - These rooms are for video conferencing. Audio-only is also possible, and screen sharing is supported. Meeting rooms do not require knocking to enter, although this setting can be overridden. Meeting rooms are perfect for larger meetings or presentations.
## Individual offices
At the bottom of the screen, you can choose the privacy setting for your own personal office:
- **Knock required** - Others must request access by knocking before entering.
- **Do not disturb** - Others are unable to request access to your office.
To enter someone else's office, click on any team member's office to request to enter. You'll see a dialog indicating that you are knocking on their virtual office door, and you'll need to wait to be allowed to enter.
When someone is requesting to enter your office, you'll see a popup with their image and name. Select `Accept` to begin a voice call, or `Decline`.
You can end the meeting at any time by selecting the meeting in the top status bar and clicking `End meeting`. This will effectively kick the visiting participant out of your office.
## Team and meeting rooms
Team and meeting rooms are available for meetings with more than 2 participants. Team rooms allow for audio only, while meeting rooms support video conferencing. Both room types allow for screen sharing and various access settings.
Click on any meeting room to enter. If you're the first one in the meeting room, you'll see a `Start meeting` button. If the meeting room is already in use, you'll see a `Join meeting` button instead.
During the meeting, a few options are available at the bottom of the screen:
* **Change access** - Select either open, knock required or do not disturb.
* **Audio** - Mute or unmute, and change settings for speaker, microphone and noise cancellation.
* **Video** - Turn camera on or off, and change settings for which camera to use and how much to blur the background.
* **Share** - Share all or part of your screen with everyone in the room. To include system audio when sharing your screen, open the settings menu next to the screen share icon and and toggle "include system audio". Restart the screen share to apply the changes.
* **Record** - Toggle meeting recording on or off. Recordings are automatically saved to your Drive and are visible to anyone with access to the Drive space.
* **Transcription** - Toggle transcription on or off. For more on how the Hanzo Team AI Assistant transcribes meetings in real time, see [Live transcription](/docs/communication/live-transcription).
* **Full-screen mode** - Open the call in full screen.
* **More options** - Copy guest link (in development), and Settings (for setting the room language, as well as recording and transcription defaults).
* **Leave room** - Exit the meeting room.
## Navigating the platform during a call
You'll notice that meetings are automatically opened in the right sidebar. You can navigate the platform while in a call, and the call will remain open in the sidebar. From the sidebar, you can switch between the video, chat, and transcription tabs.
## Editing your office space
While Hanzo Team's virtual office comes with default offices and meeting rooms, teams may wish to customize the number of rooms and office layout to best suit their needs. Only the creator of the Workspace is able to edit the office space.
Click the `Edit office` button in the top right corner. A few options are available for editing:
- Rename offices and rooms by clicking on their names.
- Delete offices and rooms by clicking the trash bin icon.
- Arrange offices and rooms by clicking and dragging their edges or dragging them to a new place in the layout.
- Add a new office or room by clicking the `+` button in the top right corner.
When you have finished editing your office space, click `Finalize editing` in the top right corner to save your changes.
### Adding floors
Large teams may find that the default layout may not have sufficient space for their offices and rooms. Additional floors can be added to the virtual office by clicking the `+` button on the Floors sidebar.
If the Floors sidebar is not visible, either collapse the Main view by clicking the icon in the top left corner, or click on the two horizontal lines below your Workspace icon at the top of the left sidebar.
To add a new Floor, click the `+` icon in the top right corner of the Floors sidebar. Enter a name for the new Floor and click `Add a floor`.
## Office preview
At any time, from any view in the Hanzo Team, you can glance at your virtual office space by selecting the `Office` icon in the far right sidebar. This opens a preview of your virtual office in the sidebar, where you can see which team members are in which areas. You can join a meeting room or visit someone's office from here as well.
@@ -0,0 +1,10 @@
---
title: Filtering documents
description: Learn how to filter documents and create saved filtered views.
---
To create a filtered view of your documents, navigate to the `Library` sub-menu of the Controlled Documents module. From here, click the `Filter` button at the top toolbar and select the criteria you'd like to filter by. For example, you may wish to create a view of documents created by a specific person, or documents created within a certain date range.
After setting your filters, click the `Save as` button in the top right corner. Give your filtered view a name, decide if you'd like your view to be private or public, and click `Save`.
Saved filtered views are accessible from the left sidebar.
@@ -0,0 +1,38 @@
---
title: Additional document settings
description: Learn what settings are available for all Controlled Documents.
---
## Settings within documents
There are several settings available for Controlled Documents, found in the navigational tabs at the top of the document as well as in the right side panel. These settings are the same for all types of Controlled Documents, including templates, quality documents and technical documentation.
- **Reason & Impact:** Under the `Reason & Impact` tab, you can provide information on changes. This section is used to explain why the document was created or changed, and what impact it will have. The `Description` and `Reason` fields will be automatically populated in the `History` section of the document.
- **Team:** Under the `Team` tab, you can add or remove team members as Co-Authors, Reviewers, and Approvers.
- **Release details:** Under the `Release` tab, you can provide information on the release of the document, including the severity of the release (decimal change for minor updates; whole number change for major updates), and the effective date.
- **Trainings:** Also under the `Release` tab is the option to add a training.
- **History:** Under the `History` tab, you can view a log of changes made to the document, including the date and description of each change.
## Creating subfolders
Documents are organized into spaces by default, but you can further organize documents into subfolders within each space. To create a subfolder, hover over the space in the left side menu and click the `...` icon, then select `Create new folder`. Enter a name for your folder and click `Create`.
To move a document into a folder, simply drag and drop it onto the folder.
Folders can also contain their own subfolders, allowing you to create your own hierarchy of documents.
## Relocating and reordering documents and folders
Controlled Documents and folders can be relocated and reordered within their current space, or transferred to a different space with some additional configurations.
To move a Controlled Document within the same space, simply drag and drop them in the left side panel. To nest a document within another, drag and drop it over the new parent document.
To transfer a document to a different space, click on the settings menu next to the document in the left side panel and select `Transfer`.
Next, select a space to transfer to, as well as the parent object for your document (if applicable). Click `Transfer` again to transfer the document.
> **Note:** Some team members may lose the ability to view or edit the document after transferring it, depending on the permissions settings for the destination space. Documents can only be moved if they're created in the current product version. Additionally, the user making the transfer must have archive rights in the source space and document creation rights in the destination space.
@@ -0,0 +1,18 @@
---
title: Document versions
description: Learn how to create new document versions and see the changes between them.
---
## Creating a new document version
As a Controlled Document owner, you can create a new version of your document by selecting `Draft new version`. With the draft open, you can make any necessary changes to the content, provide information about the new version in under the `Reason & Impact` tab, and update team members and release info.
Selecting `Comparing` from the top right corner allows you to compare changes across document versions, displaying additions highlighted in green and deletions in red.
Once the approval process for a document is completed, you'll have a version 0.2 Effective document, with the `History` section auto-populated with the information you entered in `Reason & Impact`.
> **Note:** Document metadata is now editable during the initial document version draft phase, allowing users to modify the document ID, template prefix, and category before finalization. This ensures flexibility in case of errors during the creation process.
## Marking a document as obsolete
To mark a document as obsolete, open the settings menu and select `Mark as obsolete`. Obsolete documents are marked with a red label, removed from active document lists, and cannot be used to create new versions (the `Draft a new version` button is disabled).
@@ -0,0 +1,16 @@
---
title: Editing and formatting
description: Learn how to edit and format document content.
---
While each type of Controlled Document is created through slightly different steps, all Controlled Documents have the same options available for editing and formatting.
Just like any other document in your workspace, you can use tags, attachments, images, tables, and other markdown formatting to customize your document. The following features are also available:
**Comments:** Highlight text and select the speech bubble icon.
Comments can be viewed together in the right side panel, where they can be filtered and sorted.
**Sections:** Open the `...` menu beside the section title and choose to add a new section above or below, or delete or duplicate the current section.
**Export to PDF:** From the settings menu in the top right corner, select `Print to PDF`. PDFs are 21 CFR Part 11 compliant.
@@ -0,0 +1,18 @@
{
"title": "Controlled documents",
"pages": [
"---Types---",
"templates",
"quality-documents",
"technical-documentation",
"---Authoring---",
"editing-formatting",
"document-settings",
"document-versions",
"ownership-authorship",
"---Review---",
"review-approval",
"document-filtering",
"products"
]
}
@@ -0,0 +1,8 @@
---
title: Ownership vs. authorship
description: Learn the difference between the owner and author of a document.
---
A Controlled Document `Author` is the one who creates and signs the document, who will be listed on the PDF at export. The `Owner`, on the other hand, is the person who is responsible for drafting and managing the document throughout its lifecycle. In most cases, the same user will act as both the `Author` and the `Owner` of a document, but there may be times at which you need to transfer ownership to someone else.
The `Owner` can be changed from the `...` menu in the top right corner, or by selecting the current owner's name in the right side panel and clicking `Select new owner`.
@@ -0,0 +1,26 @@
---
title: Products
description: Learn how to create and manage products.
---
The Products module, enabled by default in [Hanzo Team](/docs/getting-started/introduction) workspaces, is used for managing product versioning and documentation. Products can represent physical or digital products that your organization produces, and can be linked to other objects in the workspace.
## Creating a product
To create a product, click the `+ Product` button in the Products module.
Provide a title and description, and select members and roles as needed. Then, click `Create`.
## Creating a product version
> **Note:** In order to create a new version of a product, you'll need to have an effective Change Control document that uses a Change Control template. To learn more about this step, see this guide on creating [templates](/docs/controlled-documents/templates).
To create a new version of a product from within the Products module, open the details page for the product you'll be adding a version to. Then, click the `+` button beside the `Product Versions` section.
From here, you'll be able to provide a name and description for the new version, and select if the change is substantial or not (minor or major). You'll also be able to select your Change Control document from the dropdown menu.
After providing the necessary details, click `Create`. The new version will be added to the product's version history.
## Technical product documentation
To learn more about how to create documentation for a product, see our guide on [technical documentation](/docs/controlled-documents/technical-documentation).
@@ -0,0 +1,26 @@
---
title: Quality documents
description: Learn how to create and manage quality documents.
---
Quality documents are a part of the Controlled Documents module and are used for managing quality-related documents, such as standard operating procedures and work instructions.
## Creating a quality document
To create a quality document, open the settings menu next to `QUALITY DOCUMENTS` in the left sidebar and select `Create new document`.
It's also possible to create a quality document by clicking the blue `+ New document` button in the top left corner of the Controlled Documents module and then selecting `Quality documents` as the space.
> **Note:** A new quality document can also be created as a child of any existing document.
Proceed through the following steps to create the document:
**Step 1:** Select a space and parent for your document. The space defines the roles and permissions that will apply; the parent simply determines where the document will be stored. A document can be the direct child of the space itself (at the top level of the space), or it can be a child of a document within that space.
**Step 2:** Select a template for your document. See our guide on [templates](/docs/controlled-documents/templates) for more information about how to create reusable templates for Controlled Documents.
**Step 3:** Provide details for your document, including a title, description, and reason for document creation.
**Step 4:** Select team members that will be working on the document, including Co-Authors, Reviewers, and Approvers.
After proceeding through the above steps, click `Create Draft`.
@@ -0,0 +1,28 @@
---
title: Review and approval
description: Learn the process for reviewing and approving documents.
---
Hanzo Team includes electronic signatures (21 CFR part 11, FDA), which are used for reviewing and approving Controlled Documents.
**Note:** As of January 2025, authors are now required to sign documents before sending them for review or approval, with corresponding timestamps included in the document. documents that have already been reviewed cannot skip the review step when sent for approval, maintaining the proper order of signatures (Author → Reviewer → Approver). This ensures consistency and helps avoid issues during audits. The exported PDF will reflect the correct signature order based on the review sequence, ensuring proper documentation for regulatory purposes.
## Reviewing a document
To send a document for review, click `Send for review` and select the members that will be reviewing the document. This menu will automatically populate with the reviewers selected when creating or editing the document, but you can add additional reviewers here as well. Confirm submission for review by entering your own electronic signature. Then, click `Send`.
Document reviewers will be able to add their electronic signature when submitting their review.
After the document has been reviewed, any further edits will be recorded for comparison. Selecting the `Comparing` option will allow you to view the edits to the document, using red and green highlights to show deletions and additions.
## Approving a document
To send a document for approval, click `Send for approval` and select the members that will approve the document. Any documents that have had changes after previously being reviewed must still be reviewed again before approval.
> **Note:** All comments need to be resolved before sending a document for approval. If unresolved comments remain, the `Send for approval` button will be disabled.
Once sent, the approvers can approve or reject the document and add their electronic signature.
## Editing reviewers and approvers
As an author of a Controlled Document, you can now edit the reviewers and approvers list while the documents are still in 'In review' or 'In approval' status. This means you no longer need to start from scratch if you need to make changes before finalizing the document.
@@ -0,0 +1,24 @@
---
title: Technical documentation
description: Learn how to create and manage technical documentation.
---
Technical documentation is part of the Controlled Documents module and is used for managing product development records, such as test reports and requirement documents.
## Creating a technical document
To create a new technical document, open the settings menu next to any product space within the `TECHNICAL DOCUMENTATION` submenu in the left sidebar and select `Create new document`. You can also click the `+ New document` button in the Controlled Documents module.
> **Note:** A new technical document can also be created as a child of any existing document.
Proceed through the following steps to create the document:
**Step 1:** Select a space and parent for your document. The space defines the roles and permissions that will apply; the parent simply determines where the document will be stored. A document can be the direct child of the space itself (at the top level of the space), or it can be a child of a document within that space.
**Step 2:** Select a template for your document. See our guide on [templates](/docs/controlled-documents/templates) for more information about how to create reusable templates for Controlled Documents.
**Step 3:** Provide details for your document, including a title, description, and reason for creation.
**Step 4:** Select team members that will be working on the document, including Co-Authors, Reviewers, and Approvers.
After proceeding through the above steps, click `Create Draft`.
@@ -0,0 +1,32 @@
---
title: Templates
description: Learn how to create templates for Controlled Documents.
---
Templates are reusable document structures that can be used to create new documents quickly and consistently. You can create templates for Controlled Documents to ensure that your team follows the same format for each document type.
## Creating a template
Templates can be created either by opening the dropdown menu beside the `New document` button and selecting `New template`, or by clicking the `+ Template` button in the Templates section of the Controlled Documents module.
Alternatively, a template can be created in a specific document space by opening the settings menu and selecting `Create new template`. It's also possible to create templates as children of existing documents; to do this, open the settings menu for any document and select `Create child template`.
In the template creation dialog, you'll be guided through the following steps to create your template:
**Step 1:** Select a space and parent for your template. The space defines the roles and permissions that will apply; the parent simply determines where the template will be stored. A template can be the direct child of the space itself (at the top level of the space), or it can be a child of a document within that space.
**Step 2:** Provide details for your template, including a title, description and prefix, a category, and reason. Customizing the template code is also possible, but it's recommended to use the default settings to maintain consistent incremental numbering of templates.
**Step 3:** Select team members that will be working on documents using this template, including Co-Authors, Reviewers and Approvers.
After proceeding through the above steps, click `Create Draft`.
## Adding notes
With the text editor, you can select the note symbol to add guidance that will help users understand what information to include in a defined section.
## Document categories
To create a new document category, select the dropdown menu next to the `+ New document` button and click `New category`.
Categories can be used to group related documents together. Categories are fully configurable and can represent departments in your company or key topics. In this example, the category `Quality Manual` is being used when creating a new template:
@@ -0,0 +1,16 @@
---
title: Hanzo Team API and other tools
description: Learn about the Hanzo Team API and other tools available.
---
## Hanzo Team API
Hanzo Team has a basic API to get you started with your own integrations and extensions. Check out the [API documentation](https://github.com/hanzoai/hanzo team-examples/tree/main/platform-api#readme) for setup steps and usage examples.
## Hanzo Team Import Tool
We offer an import tool to help you import data directly into your Hanzo Team workspace.
Using our Unified Import Format, you can migrate your data into Hanzo Team by converting it to an intermediate, human-readable structure. Check out the [Hanzo Team Import Tool documentation](https://github.com/hanzoai/team/tree/develop/dev/import-tool#readme) for setup steps and examples.
We also support imports from [Notion](https://github.com/hanzoai/team/blob/develop/dev/import-tool/docs/notion/README.md) and [ClickUp](https://github.com/hanzoai/team/blob/develop/dev/import-tool/docs/clickup/README.md).
@@ -0,0 +1,36 @@
---
title: What is Hanzo Team?
description: An introduction to the Hanzo Team platform.
---
Hanzo Team is an open-source, all-in-one workspace for running a team — offering an alternative to juggling separate tools like Linear, Jira, Slack, Notion, and Motion.
By combining project tracking, documents, chat, personal planning, a drive, and video conferencing in one place, Hanzo Team keeps your work and your conversations together instead of scattered across a dozen tabs. It is built on the open-source platform by [Hanzo AI](https://hanzo.ai) and uses your Hanzo account for sign-in, so the same identity works across the Hanzo product suite.
## What's inside
- **[Tracker](/docs/task-tracking/creating-projects)** — projects, issues, sub-issues, milestones, and components for planning and shipping work.
- **[Documents](/docs/knowledge-management/documents)** — teamspaces and real-time collaborative editing for your knowledge base.
- **[Chat](/docs/communication/sending-messages)** — channels, direct messages, and threads, with an [inbox](/docs/communication/inbox) that unifies everything that needs your attention.
- **[Planner](/docs/team-resources/team-planner)** — turn action items into a personal daily schedule.
- **[Drive](/docs/knowledge-management/drive)** — store, organize, and share files alongside the rest of your work.
- **[Contacts](/docs/people-contacts/managing-contacts)** and **[HR](/docs/team-resources/human-resources)** — people, teams, employees, and time off.
- **[Virtual office](/docs/communication/virtual-office)** — built-in voice and video conferencing.
Additional modules — [Cards](/docs/cards/cards-overview), [Controlled Documents](/docs/controlled-documents/templates), [Recruiting](/docs/additional-modules/recruiting), [Surveys](/docs/additional-modules/surveys), [Test Management](/docs/additional-modules/test-management), and [Trainings](/docs/additional-modules/trainings) — can be enabled per workspace.
## Getting started
New to Hanzo Team? Start by [setting up your workspace](/docs/getting-started/workspace-setup), then explore some of the most popular features:
- [Action items](/docs/task-tracking/creating-action-items)
- [GitHub integration](/docs/integrations/github)
- [Virtual office](/docs/communication/virtual-office)
## Open source
Hanzo Team is open source. The source lives at [github.com/hanzoai/team](https://github.com/hanzoai/team) — star it, file issues, and contribute. You can run it yourself; see [self-hosting](/docs/getting-started/self-host).
## Need help?
If you get stuck, join the conversation in [GitHub Discussions](https://github.com/hanzoai/team/discussions) or read the rest of these docs. Welcome to Hanzo Team.
@@ -0,0 +1,41 @@
---
title: Learn the basics
description: Navigate the Hanzo Team workbench and get to know each app.
---
Once you're signed in to a workspace, everything happens in the **workbench** — a single window with a global sidebar on the left and the active app on the right.
## The workbench
- **Account switcher** (top of the sidebar) — switch between your organizations and workspaces, manage members, and open workspace settings.
- **App sidebar** — one icon per app. Click an icon to open that app; each app has its own secondary panel for navigation.
- **Inbox** — a unified feed of notifications, mentions, and assigned work across every app.
- **Search** — jump to any issue, document, message, or contact.
- **Settings** — account preferences, workspace configuration, members, roles, and which modules are enabled.
## The apps
| App | What it's for |
| --- | --- |
| **[Tracker](/docs/task-tracking/creating-projects)** | Projects, issues, sub-issues, milestones, and components. |
| **[Documents](/docs/knowledge-management/documents)** | Teamspaces and real-time collaborative editing. |
| **[Chat](/docs/communication/sending-messages)** | Channels, direct messages, and threads. |
| **[Planner](/docs/team-resources/team-planner)** | Your personal daily schedule, built from action items. |
| **[Drive](/docs/knowledge-management/drive)** | Files and folders, shared with your team. |
| **[Contacts](/docs/people-contacts/managing-contacts)** | People, companies, and teams. |
| **[HR](/docs/team-resources/human-resources)** | Employees, departments, and time off. |
| **[Virtual office](/docs/communication/virtual-office)** | Voice and video conferencing rooms. |
| **[Cards](/docs/cards/cards-overview)** | A flexible database of typed, tagged, related records. |
| **[Controlled Documents](/docs/controlled-documents/templates)** | Reviewed, versioned quality and technical documents. |
Depending on your plan and which modules are enabled, you may also see **[Recruiting](/docs/additional-modules/recruiting)**, **[Test Management](/docs/additional-modules/test-management)**, **[Surveys](/docs/additional-modules/surveys)**, and **[Trainings](/docs/additional-modules/trainings)**. Enable or disable modules in **Settings**.
## Action items connect the apps
The concept that ties Hanzo Team together is the **[action item](/docs/task-tracking/creating-action-items)**. When an issue is assigned to you, an action item is created automatically in your **Planner** so you can schedule it. As you work through your day, the status of the underlying issue updates itself — you rarely need to move an issue from "Todo" to "In Progress" to "Done" by hand.
## Do more
- [Connect integrations](/docs/integrations/github) — GitHub, Google Calendar, Gmail, and Telegram.
- [Put AI to work](/docs/account/agents-bots) — agents and bots inside your workspace.
- [Configure your workspace](/docs/advanced-settings/space-types) — space types, roles, and task types.
+12
View File
@@ -0,0 +1,12 @@
{
"title": "Getting started",
"pages": [
"introduction",
"workspace-setup",
"learn-the-basics",
"api-tools",
"self-host",
"mobile-access",
"support"
]
}
@@ -0,0 +1,24 @@
---
title: Mobile access
description: Learn about how to access Hanzo Team from your mobile device.
---
## Plans for the Hanzo Team mobile app
We are still in the early stages of developing the Hanzo Team mobile app and are not able to share a specific ETA for release at this time.
We're working on big infrastructure changes that will profoundly impact the way users interact with Hanzo Team — particularly through our implementation of Global Hanzo Team, where you can manage your communications and work under your global user account. This, in addition to the development of new designs, are important steps towards introducing our mobile app.
Check out this preview of early design ideations for our mobile app (and other exciting concepts):
## Accessing Hanzo Team and receiving notifications from your mobile device
Until we have a mobile app, you can access most of your Hanzo Team workspace through the browser on a mobile device, and we're continuing to make improvements to the UI for mobile access.
There are currently two ways to receive Hanzo Team notifications on your phone:
1. On iPhone, use Safari to add the Hanzo Team web app to your phone desktop, then use webpush to receive notifications. Some views in the interface may not be optimized for mobile yet, but you can still access chat, inbox and several other modules.
2. Use the Telegram app to connect with our bot. By connecting your workspace to Telegram, you can receive notifications, send chat messages and reply to threads without ever needing to open Hanzo Team. See our [Telegram integration guide](/docs/integrations/telegram) for more information.
---
To be notified when the mobile app is released (and see updates on ETA and progress along the way), join our <a href="https://github.com/hanzoai/team/discussions" target="_blank">community</a> and subscribe to our <a href="https://github.com/hanzoai/team/blob/main/changelog.md/" target="_blank">changelog</a>.
@@ -0,0 +1,46 @@
---
title: Self-hosting Hanzo Team
description: Learn how to get help with self-hosting Hanzo Team.
---
We offer the option to self-host the Hanzo Team on your own server. All of the documentation for setting up and maintaining a self-hosted instance of Hanzo Team is available on our <a href="https://github.com/hanzoai/hanzo team-selfhost" target="_blank">hanzo team-selfhost</a> GitHub repository. The main repository readme includes documentation on the following:
* Cloning and configuring the repository
* Setting up AWS SES email notifications
* Setting up Love Service (Audio & Video calls)
* Setting up AI Service
* Configuring OpenID Connect
* Configuring GitHub OAuth
* Disabling Sign-up
Everything you see in the cloud version can potentially be self-hosted; however, we may not "prepackage" some services for various reasons. Some integrations (like GitHub) may require you to install a separate app in GitHub or work with Google to enable an API, and we do not have extensive documentation to describe every case. Also, some parts of cloud version rely on proprietary Cloudflare services, which we intentionally do not include into self-hosting packages to avoid any vendor lock-ins.
## Connecting the Desktop App to your self-hosted server
You can connect the Hanzo Team Desktop App to your self-hosted server by launching it with the `--server` option pointing to your server URL.
**Windows:**
1. Right-click the Hanzo Team shortcut → Properties
2. In the "Target" field, add `--server https://your-hanzo team-server.com` after the exe path
3. Example: `"C:\Program Files\Hanzo Team\Hanzo Team.exe" --server https://your-hanzo team-server.com`
**macOS:**
```bash
# Using the app name
open -a "Hanzo Team" --args --server https://your-hanzo team-server.com
# Or using the executable path directly
/Applications/Hanzo Team.app/Contents/MacOS/Hanzo Team --server https://your-hanzo team-server.com
```
## Migrating data between self-hosted and cloud
We do not have a way for users to migrate data from a self-hosted Hanzo Team instance to our cloud version through the GUI, but there is still a way to manually export/import your self-hosted data to hanzo.team. Feel free to reach us out when you need to do this and we will provide you guidance and help.
In the reverse direction (migrating from could to self-hosted), if you are an owner of the workspace, you can do this in the desktop app. In the menu we have `Backup` option that saves workspace backup to your filesystem. When you have the backup, you can restore it to the self-hosted version.
## Support for self-hosting
Support for self-hosting is community-driven, and the best way to get in touch with others who are self-hosting is through our <a href="https://github.com/hanzoai/team/discussions" target="_blank">Slack</a> community in the `#open-source` channel. Here, you can ask questions, share tips, and get help from others who are also self-hosting Hanzo Team.
Our team is also active in the community and we do our best to respond to as many questions as we can. However, due to the technical complexities of self-hosting and the wide range of factors that vary between individual setups, we may not be able to respond to every request for self-hosting support. For this reason, we encourage community members to support each other whenever possible, and of course we welcome any supplementary documentation provided by the community to add to our repository.
+27
View File
@@ -0,0 +1,27 @@
---
title: Support
description: Get help with Hanzo Team and connect with the community.
---
Our goal is documentation that covers every feature, concept, and capability of the platform. Hanzo Team Docs is still growing, so if something isn't covered yet, here's where to get help.
## Community
For questions and community support, the best place to reach out is [GitHub Discussions](https://github.com/hanzoai/team/discussions). Ask questions, share how your team uses Hanzo Team, and send feature requests. Our team reads and responds there.
You can also file bugs and feature requests as [GitHub Issues](https://github.com/hanzoai/team/issues).
## Social
Feature previews and release notes are often shared first on social media:
- **X / Twitter** — [@hanzoai](https://x.com/hanzoai)
- **LinkedIn** — [Hanzo AI](https://www.linkedin.com/company/hanzoai)
## Changelog
New features and fixes are published in the [changelog](https://github.com/hanzoai/team/blob/main/changelog.md). Follow it to see what shipped in each release.
## Hanzo AI
Hanzo Team is built on the open-source platform by [Hanzo AI](https://hanzo.ai). For the wider Hanzo product suite — AI, cloud, and developer tools — see the [Hanzo documentation](https://docs.hanzo.ai).
@@ -0,0 +1,50 @@
---
title: Workspace setup
description: Sign in with Hanzo, create or join a workspace, and invite your team.
---
Getting started with Hanzo Team takes a few minutes: sign in, create or join a workspace, and invite the people you work with.
## Sign in
Hanzo Team uses your **Hanzo account** for authentication — the same identity that works across the Hanzo product suite. On the sign-in screen you can:
- **Continue with Hanzo** — single sign-on through [hanzo.id](https://hanzo.id). If you already have a Hanzo account, this is the fastest path.
- **Continue with Google** or **Continue with GitHub** — federate through your existing Google or GitHub identity.
- **Email and password** — sign up with an email address and password. You can also request a one-time code by email instead of a password.
There are no separate "Hanzo Team" credentials to manage — your Hanzo account is your login everywhere.
> **Note:** If you were invited to a workspace, open the invite link and sign in with any of the methods above. You'll be added to the workspace automatically after signing in.
## Create a workspace
A **workspace** is where your team's projects, documents, and channels live. After signing in for the first time, you'll be prompted to create your first workspace:
1. Enter a **workspace name** (for example, your company or team name).
2. Choose a **region** if prompted.
3. Select **Create workspace**.
Your workspace is created with a default set of apps enabled. You can turn individual modules on or off later in **Settings**.
## Organizations and workspaces
Hanzo Team follows a Slack-style model: you can belong to **multiple organizations**, and each organization can contain **multiple workspaces**. Switch between them from the account switcher at the top of the left sidebar — your session carries across all of them without signing out.
See [Organizations & workspaces](/docs/account/organizations-workspaces) for the full model.
## Invite your team
To invite people to a workspace:
1. Open the account switcher and choose **Invite members** (or go to **Settings → Members**).
2. Share the generated **invite link**, or enter email addresses to send invitations directly.
3. New members sign in with their Hanzo account and land in your workspace.
You can set a member's **role** when you invite them, or change it later. See [Roles and permissions](/docs/advanced-settings/roles) to control what each role can do.
## Next steps
- [Learn the basics](/docs/getting-started/learn-the-basics) — get to know the workbench and each app.
- [Usage & billing](/docs/account/usage-billing) — plans, seats, and metering.
- [Mobile access](/docs/getting-started/mobile-access) — using Hanzo Team on the go.
+34
View File
@@ -0,0 +1,34 @@
---
title: Hanzo Team Documentation
description: The all-in-one workspace for project tracking, documents, chat, planning, and drive.
---
**Hanzo Team** is an open-source, all-in-one workspace that brings project management, knowledge, and communication into one place — an alternative to stitching together Linear, Jira, Slack, and Notion. It is built on the open-source platform by [Hanzo AI](https://hanzo.ai) and signs in with your Hanzo account.
## Start here
<Cards>
<Card title="What is Hanzo Team?" href="/docs/getting-started/introduction" description="A tour of the platform and what you can do with it." />
<Card title="Set up your workspace" href="/docs/getting-started/workspace-setup" description="Sign in with Hanzo, create or join a workspace, invite your team." />
<Card title="Learn the basics" href="/docs/getting-started/learn-the-basics" description="Navigate the workbench and get to know each app." />
<Card title="Self-hosting" href="/docs/getting-started/self-host" description="Run Hanzo Team on your own infrastructure." />
</Cards>
## The apps
<Cards>
<Card title="Tracker" href="/docs/task-tracking/creating-projects" description="Projects, issues, milestones, and sub-issues." />
<Card title="Documents" href="/docs/knowledge-management/documents" description="Teamspaces and real-time collaborative editing." />
<Card title="Chat" href="/docs/communication/sending-messages" description="Channels, direct messages, threads, and inbox." />
<Card title="Planner" href="/docs/team-resources/team-planner" description="Turn action items into a daily schedule." />
<Card title="Drive" href="/docs/knowledge-management/drive" description="Store, organize, and share files." />
<Card title="Contacts & HR" href="/docs/people-contacts/managing-contacts" description="People, teams, employees, and time off." />
</Cards>
## Accounts & billing
<Cards>
<Card title="Organizations & workspaces" href="/docs/account/organizations-workspaces" description="Switch between organizations and workspaces, Slack-style." />
<Card title="Usage & billing" href="/docs/account/usage-billing" description="Plans, seats, and how usage is metered." />
<Card title="Agents & bots" href="/docs/account/agents-bots" description="Put Hanzo AI to work inside your workspace." />
</Cards>
+38
View File
@@ -0,0 +1,38 @@
---
title: GitHub
description: Learn how to integrate Hanzo Team with GitHub.
---
Hanzo Team integrates with GitHub, allowing for two-way synchronization between the two platforms. This is a great option for teams working with one or more GitHub repositories, allowing them to sync issues and changes while utilizing Hanzo Team's other features for scheduling, planning and collaboration.
## Integrating a GitHub account
Click on your user profile icon at the bottom of the left sidebar and select `Integrations`. Below "GitHub integration", click `Add`.
Click `Authorize Hanzo Team GitHub App`. When prompted, click `Authorize Hanzo Team GitHub App` again and if needed, enter your login information for your GitHub account.
You will be brought back to Hanzo Team, where you can see your GitHub information in the GitHub integration window.
## Mapping GitHub repositories
To connect a GitHub repository to Hanzo Team, select `Mapped GitHub Repositories` on the Github integration window. Click `Install GitHub App`.
On the next screen, select a location to install Hanzo Team GitHub. You may be prompted to enter your GitHub login information. Select which repositories you would like Hanzo Team GitHub to have access to.
Your selected repository will now display in the `Mapped GitHub Repositories` tab. Use the dropdown `Connect to Hanzo Team` to select which Project you'd like to add your repository to. Alternatively, you can create a new Project to sync with your repository.
Your repository can be disconnected at any time by clicking the `Disconnect` button.
## How Hanzo Team interacts with GitHub
You can use the Hanzo Team to interact with your GitHub repository in a number of ways, including:
* **Creating and syncing issues** - Issues created within the project linked to your GitHub will by default create a matching issue in your repository (this can be overridden by selecting `Create issue without GitHub`). When multiple repositories are connected, you can select which one to create the issue in using the `Create issue in` dropdown menu. Similarly, when you create a new issue on GitHub, it will appear on the Hanzo Team as well. Once an issue has been created in your GitHub repository, you can find the direct link to it in the Activity section for that issue on Hanzo Team.
* **Pull requests** - Pull requests from GitHub automatically appear in the pull requests tab, available within your Project in the Tracker Sidebar.
* **Comments** - Commenting on an issue connected with a GitHub repository using the Hanzo Team interface will also automatically create a comment on the corresponding issue in GitHub. Likewise, any comment added to an issue on GitHub will appear on that Issue in the Hanzo Team.
## Dive deeper with our video tutorial
Check out our tutorial on GitHub integration for a step-by-step guide on connecting your repository to a Hanzo Team project and syncing issues and pull requests.
+29
View File
@@ -0,0 +1,29 @@
---
title: Gmail
description: Learn how to integrate Hanzo Team with Gmail.
---
Hanzo Team provides an optional integration with Gmail, allowing you to connect to a Gmail account to send and receive emails without ever leaving the platform. The current version of Gmail integration offers the following features:
* Send emails to contacts from Hanzo Team
* Receive and reply to emails from contacts in Hanzo Team
Currently, emails are accessible through the contact page, but a future version will include a centralized email inbox where you can manage emails from multiple accounts in one place. You'll also be able to easily convert email threads into shared notes, tasks and more. This guide covers the features included in the current version, but keep an eye out for more updates soon!
## Connect to Gmail
To connect with Gmail, navigate to Settings > Integrations. Under `Gmail`, click `Add` and select the Gmail account you want to connect. Follow the prompts to authorize Hanzo Team to access your Gmail account.
## Sending emails
Navigate to the contact page of the recipient and find the mail icon below their name. If you haven't entered an email for the contact yet, you can do this by clicking `Add social links`. Hover over the mail icon, then click the arrow icon to open the email window.
If you've just connected to Gmail for the first time, you may see the window begin to populate with your email history with that contact, as the Gmail integration imports your past emails. This process should only take a few seconds, but may take longer depending on the number of emails that are imported.
To send a new email, click `Create message`. Enter a subject, optional CC email address, and message. Note that you can also add attachments if needed. Then, click `Send`.
## Receiving and replying to emails
When you've received an email from a contact, it will appear in the same email window that you opened for sending emails. We are working on improving the notifications for emails and will soon move emails to a centralized inbox, but for now you'll be able to find them only through the contact page.
To reply to an email, click the `Reply` button in the top right corner. You can edit the subject and message as needed, and then click `Send` to send your reply.
@@ -0,0 +1,41 @@
---
title: Google Calendar
description: Learn how to integrate Hanzo Team with Google Calendar.
---
Hanzo Team integrates with Google Calendar for two-way synchronization of event and task scheduling, helping you keep track of all of your tasks and events in one place.
## Syncing your Google Calendar with Hanzo Team
To sync your Google Calendar with Hanzo Team:
* Click on your user profile icon at the bottom of the left sidebar.
* Select `Integrations`.
* Below "Calendar", click `Add`.
* Click `Connect`.
* Select the account you would like to connect and click `Continue`.
* On the next screen, check the box that says `Select all` to provide Hanzo Team with the necessary permissions to connect with Google Calendar.
* Click `Continue`.
## Configuring your calendars
On the Integrations view, click `Configure` under Calendar. Here, you can toggle which calendars you'd like to sync with Hanzo Team.
## Viewing and creating events
After syncing Hanzo Team with your Google Calendar, all events from your Google Calendar will be visible on your Hanzo Team Planner.
Events that were created in your Hanzo Team Planner before syncing will not automatically appear in your Google Calendar. In order to add an event from Hanzo Team to your Google Calendar (whether creating a new event or editing an existing one), select which calendar you'd like to add it to on the event details dialog and click `Save` to save your settings.
When you create a new event in your Google Calendar, it will appear automatically in your Hanzo Team Planner. See below for more on event visibility.
## Privacy and visibility
Privacy settings for events are also synchronized between your Hanzo Team Planner. This means that events on your Google Calendar with visibility set to "Public" will also appear in your Hanzo Team Planner as "Visible to everyone". The following visibility settings are available for events:
* **Visible to everyone** - displays title and time slot on the Team Planner; appears as "Public" in Google Calendar
* **FreeBusy** - displays only the time slot on the Team Planner with the title "Busy"
* **Only visible to you** - does not display on the Team Planner; appears as "Private" in Google Calendar
## Disconnecting a calendar
You can disconnect a Google Calendar at any time. Currently, Google Calendar events that have been synced with Hanzo Team will not be removed from your Hanzo Team Planner when you disconnect the calendar. If you would like to remove these events, you can connect the integration, switch off the calendar in the integration settings (which disables the sync), and then disconnect the integration again.
+4
View File
@@ -0,0 +1,4 @@
{
"title": "Integrations",
"pages": ["github", "google-calendar", "gmail", "telegram"]
}
+64
View File
@@ -0,0 +1,64 @@
---
title: Telegram
description: Learn how to integrate Hanzo Team with Telegram.
---
Hanzo Team's Telegram integration provides the following functionality:
1. Receive Hanzo Team inbox notifications in Telegram, including chat messages, mentions and other workspace activity.
2. Send messages to Hanzo Team chat channels and DMs from Telegram.
2. (coming soon) Communicate with any external Telegram user directly from Hanzo Team, even if they are not a Hanzo Team user themselves.
Telegram provides a way for Hanzo Team users to stay connected with their workspace while on the go, ensuring that they never miss important updates or messages. In the near future, our Telegram client will also provide a means for managing external conversations within the Hanzo Team workspace, right alongside internal communications.
## Connect to the Telegram bot
To connect with our Telegram bot, navigate to Settings > Notifications. Under "General", toggle on Telegram notifications. Then, click `Configure` to connect your Telegram account.
Open the link to `hanzo teamio_bot` and follow the prompts on the screen to enter the code and click `Ok`.
## Receiving Hanzo Team notifications in Telegram
From the notifications settings menu, you can select which kinds of Hanzo Team notifications you'd like to receive in Telegram.
For example, you could toggle notifications for Chat, allowing you to receive internal Hanzo Team messages in your Telegram account. You can also toggle notifications for Issues, Applications, GitHub and more.
After enabling Telegram notifications, you will begin to receive messages from Hanzo Team in your Telegram account.
## Responding to Hanzo Team notifications in Telegram
You can respond to notifications by replying directly to the notification message (shown in the video below). In Hanzo Team, this will appear as a reply in the thread on that message or notification.
To reply to a chat channel or DM without creating a new thread, you'll need to sync your channels (see below).
## Sending messages to Hanzo Team channels and DMs from Telegram
Any time you add, update or remove channels and DMs in Hanzo Team (or if this is your first time connecting with the Telegram bot), you'll need to sync with Telegram.
In Telegram, select `Menu` and then `Sync all channels`. This will sync all channels and DMs with your Hanzo Team account.
After syncing, when you send a message in Telegram, you'll see a list of your channels to choose from. Select a channel or chat to send your message there.
## Using Telegram with multiple workspaces
You can configure Telegram to receive and respond to notifications from multiple Hanzo Team workspaces. To do this, follow these steps:
1. In Settings > Notifications, follow the steps above to connect your first workspace to Telegram.
2. In Settings > Notifications, connect your second workspace to Telegram. Click `Test connection` and ensure you see "Connected".
3. In Telegram, enter the command `/sync_all_channels` and/or `/sync_starred_channels` to sync channels from both workspaces.
You should now receive notifications from both workspaces in Telegram. When sending a message, you'll be prompted to select a workspace before choosing a channel or DM to send your message in.
## Coming soon: Use Telegram to connect with external contacts
To enable Telegram integration, follow these steps:
1. Navigate to Settings and select Integrations from the left sidebar menu. In the Telegram integration card, click `Add`.
2. Enter your phone number and click `Next`.
3. Enter the 5-digit code you receive on your Telegram account and click `Connect`.
In the near future, Hanzo Team's Telegram client will allow you to add a Telegram account for any contact and communicate with them directly from Hanzo Team. This will be useful for managing external conversations within the Hanzo Team workspace.
In some cases, you may wish to share a conversation you have with a Telegram contact with other members of your workspace. In an upcoming version of Hanzo Team, you'll be able to easily publish selected messages to a contact's activity record, making them visible to your team.
Stay tuned for more updates to our Telegram integration in the near future!
@@ -0,0 +1,14 @@
---
title: Collaborative editing
description: Learn how to collaborate with your team in real time in documents.
---
One of the most powerful features of Hanzo Team documents is the ability for team members to collaborate in real time. Users can see each others' cursors and edits as they happen, making it easy to work together on planning materials, meeting notes, and other share project resources.
When collaborating on a document, click on any member's icon to jump to their live cursor on the page:
## Editing during a meeting
Video calls in Hanzo Team can be easily pinned to the right side of the window, allowing team members to continue to view the call while navigating the platform. This makes it easy to reference documents, take notes, and make changes to documents during a meeting.
## Assigning action items
When working on projects together, it may be helpful to assign small action items that aren't necessarily connected to any particular issue in the Tracker. Check out our guide on [assigning action items in documents](/docs/knowledge-management/documents-action-items) to learn more about this feature!
@@ -0,0 +1,17 @@
---
title: Action items in documents
description: Learn how to create and assign action items in documents.
---
Sometimes, you may wish to create action items for team members directly within a document, without attaching it to any particular issue in the Tracker. This can be helpful for small tasks that don't require a full issue, reminders, or other matters that need to be taken care of that aren't specificially related to a project or issue.
## Creating action items
There are a few ways to create action items directly in documents:
- **Keyboard shortcut** - Type `[]` then `space` on a new line. An empty checkbox will appear.
- **Floating toolbar** - Hover over text and click the `+` icon that appears on the left side. Select the checkbox icon to create a new action item.
- **Slash command** - Type `/` to open a dropdown menu of options. Select the checkbox icon to create a new action item.
## Assigning action items
After an action item has been created using any of the methods above, you can assign it to a team member. Notice a gray profile icon that appears to the left of the checkbox. Click this icon to select a team member to assign the task to.
When an action item is assigned to a team member within a document, that person will receive a notification that they have been assigned an action item, and they'll be able to schedule the task in their Planner.
@@ -0,0 +1,94 @@
---
title: Documents
description: Learn how to use documents to collaborate with teammates and organize information.
---
There are many uses for documents on the Hanzo Team, including sharing reference materials among team members, collaborating on plans and roadmaps, saving meeting notes and assigning action items. This guide will walk you through the basics of creating and formatting documents, as well as some of the options available for managing your documents. For more advanced document features, see the following guides:
- [Collaborative editing](/docs/knowledge-management/collaborative-editing)
- [Action items in documents](/docs/knowledge-management/documents-action-items)
> **Note:** In many cases, you may find that using [Cards](/docs/cards/cards-overview) is a better fit for your needs than using Documents. Cards are designed to be more structured and flexible, allowing you to create custom attributes, relations and tags. If you're not sure which system is right for you, check out our guide on [Cards vs. Documents](/docs/cards/cards-vs-documents).
## Creating a teamspace
Documents are organized into teamspaces, which can be used to model your team's specific needs. For example, you may choose to organize your documents into teamspaces called "Features", "Marketing", "Style Guides" etc.
To create a teamspace, click the `+` that appears when hovering over the word "Teamspaces" in the sidebar, or by clicking the dropdown arrow next to the `+ Create a document` button and selecting `Create teamspace`.
From here, you can enter the following details:
- **Space type** - Currently defaults to settings optimal for the Hanzo Team
- **Teamspace title** - A title for your teamspace
- **Description** - A description of your teamspace
- **Icon** - Choose an icon to represent your teamspace, either from a default icon with a custom color, or an emoji
- **Owner** - Select the owner of the teamspace
- **Make private** - Toggles whether the teamspace is visible to people outside of the selected members
- **Members** - Select which members are a part of this teamspace
- **Auto join** - Toggles whether new workspace members will be automatically added as members of this teamspace
Click `Create`.
## Creating a document
There are two ways to create a document:
- Click the `+ Create a document` button at the top of the documents sidebar. This opens a dialog with the option to select a teamspace for your document; the default parent will be the most recently selected teamspace or document. Enter a title for your document and click `Create`.
- Hover over a teamspace name or any other document and click the `+` button that appears. The new document will automatically be nested within the teamspace or document you selected.
## Formatting document content
Documents support markdown formatting. There are a few ways to access formatting options for your text:
- Type markdown syntax directly into your document.
- Use the floating toolbar that appears when text is selected on the page.
Formatting options include headers, text emphasis, links, blockquotes, numbered and bulleted lists, and code blocks.
Images, tables and separator lines are also available by hovering over text and clicking the `+` icon that appears on the left side.
## @mentions
Mention a team member by using @mention syntax. The member will receive a notification that they have been mentioned in the document.
Use `@` to tag any issue or document in Hanzo Team. Soon, all objects in Hanzo Team will be available to tag anywhere, including Drive files, teamspaces and more - keep an eye out for updates on this feature!
## Adding notes
To add a note to a document, highlight the text you would like to add the note for and click the `Note` icon in the floating toolbar. Enter the content of your note and choose a color, then click `Set`. Notes will appear as a small icon next to the text you've added them to, and can be viewed by anyone with access to the document.
To edit or delete a note, simply highlight the same text and click the note icon to open the dialog. From there, you can update the content and color of the note, or click `Remove` to delete it.
## Adding comments
Inline comments are attached to highlighted text in a document, and can be used to discuss specific parts of the document content with your team. To learn more about inline comments, check out [this guide](/docs/communication/inline-comments).
## Assigning action items
When working on projects together, it may be helpful to assign small action items that aren't necessarily connected to any particular issue in the Tracker. Check out our guide on [assigning action items in documents](/docs/knowledge-management/documents-action-items) to learn more about this feature!
## Working with tables
A table can be insterted into a document (or anywhere tables are supported) by typing `/` and selecting `Table`. This will open a dialog where you can specify the number of rows and columns for your table.
To view options for table formatting, click on the 'Customize table' icon in the floating toolbar at the top right corner of the table. Here, you'll find options to add and delete rows and columns, merge and split cells, and delete the entire table.
Also in the floating toolbar is the 'Set cell color' icon. Here, you can set a background color for specific table cells. The colors dynamically adapt to dark and light mode interfaces.
You can also resize columns by clicking and dragging the lines between them.
## Viewing backlinks
To view everywhere a document has been mentioned, click the paper clip icon in the top right corner. This will open a side panel showing everywhere an @mention has been used to link to that document.
Backlinks will also appear in the Activity section at the bottom of the document.
## Download and print as PDF
Documents can be downloaded and printed as PDFs. This feature is useful for creating files to share with clients and other external contacts outside your workspace.
To generate a PDF of a document, click the `...` settings menu and select `Print to PDF`. It may take a few seconds to load the PDF preview.
From the preview window, you can choose to download or print the document.
> **Note:** Your document title and icon will be visible on the PDF version.
@@ -0,0 +1,37 @@
---
title: Drawing board
description: Learn how to use the drawing board and scribbles to enhance your collaboration in Hanzo Team.
---
When collaborating on an idea, we often find ourselves reaching for a pen and paper to sketch out our thoughts. With drawing boards in Hanzo Team, you can sketch together live with teammates, making it easy to brainstorm, plan, and visualize ideas while saving everything to your workspace.
## Creating a drawing board
To create a new drawing board in a document or issue description, simply type `/` or click the `+` to the left of the document and select "Drawing board" from the list of options.
At the top of the drawing board, you'll see a toolbar with the following options (from left to right):
- **Trash can** - Clear the contents of the drawing board (this action cannot be undone).
- **Pen** - Select the pen tool to draw on the board.
- **Eraser** - Select the eraser tool to erase parts of the drawing.
- **Move** - Click and drag to move around the drawing board.
- **Letter** - Add a text box.
- **Size slider** - Adjust the size of the pen or eraser.
- **Color picker** - Select a color for the pen or eraser.
- **Settings menu** - Add or remove colors from your palette, or reset colors to default settings.
At the top right corner, you'll see a button to open your drawing board in full-screen mode, giving you even more space to sketch.
> **Note:** Anyone viewing the document can collaborate on the drawing board in real time.
To build other kinds of flow charts, diagrams and graphs, check out our guide on [diagrams](/docs/knowledge-management/mermaid-diagrams), which leverage MermaidJS syntax to build a variety of visualizations.
## Scribble on images
With Hanzo Team's drawing tool, you can create any shared image into a drawing board using the scribbles feature.
Open any image that's been shared in a message and click the scribble icon (labeled `Scribble over`). The image will become a drawing board, allowing anyone viewing the image to draw on it. All of the same tools are available for images as they are for drawing boards.
Scribbling on images is an excellent way to provide feedback, add notes, or brainstorm ideas on shared resources.
After some scribbles have been added to the image, you'll see a clock icon appear next to the scribble icon (labeled `Scribble history`). Click this to see a history of all the scribbles that have been added to the image, including who added which scribbles.
@@ -0,0 +1,36 @@
---
title: Drive
description: Learn how to use Drive for file storage and sharing.
---
Drive is a robust and versatile file storage system fully customizable to your team's needs. Store any type of file directly within your workspace and keep everything organized with customizable folders and privacy settings. Files stored in Drive are easily accessible for viewing, printing and downloading, allowing teams to efficiently share resources and promote collaboration. Teams can add members to specific Drive spaces, ensuring everyone has access to the files they need without compromising security.
## Creating your Drive
Your Hanzo Team workspace comes with one existing Drive called "Records"; however, you can add as many Drives as you'd like and customize them to suit the needs of your team.
To create a Drive, click the dropdown arrow next to the `+ Upload File` button and select `Create Drive`, or hover over the word "Drive" in the sidebar and click the `+` icon that appears. Enter a name and optional description for your Drive, select the owners and members, and toggle privacy settings. Then, click `Create`.
## Adding folders
You can further organize your Drives into folders containing files. To create a new folder, click the breadcrumb icon that appears when hovering over the name of your Drive in the left sidebar. Alternatively, click the dropdown arrow next to the `+ Upload File` button and select `Create Folder`. Enter a name for your folder and click `Create`.
## Uploading files and folders
To upload a file or folder to your Drive, click the `+ Upload File` button at the top of the Drive sidebar. Select the file or multiple files you'd like to upload from your computer, or drag and drop them into the upload area. Once the files have been uploaded, they will appear listed in your Drive.
To view a file, click on the file name in your Drive. Several options are available for files in drive:
- **Rename your file** - open the right sidebar and click on the file name to rename it.
- **Download** - click the download icon to download the file to your computer.
- **Move** - open the settings menu and select `Move` to change the parent folder or Drive for your file.
## Creating file versions
Hanzo Team automatically creates a record of a file versions when a new version is uploaded. After a file has been modified, it can be added to the original file as a new version using the upload button in the top right corner of any file preview. Each new version is listed under the original file for easy access:
## Adding comments
You can add comments on files in the Activity section below the file preview. Just like anywhere else in the Hanzo Team, comments support markdown formatting, attachments, mentions, emojis and text templates. Comments can be used to provide feedback, ask questions, or discuss the contents of the file. Just like other objects in the Hanzo Team, activity related to files can be accessed from Chat as well, allowing you to keep track of discussions and changes all in one place.
See our guide on [activity tracking in chat](/docs/communication/chat-activity) to learn more about how comments on your Drive files are connected to the rest of your workspace.
@@ -0,0 +1,18 @@
---
title: Mermaid diagrams
description: Learn how to create diagrams with MermaidJS.
---
Hanzo Team supports the creation of diagrams using MermaidJS, a simple markdown-like language for generating diagrams and flowcharts. For specific syntax and examples of different kinds of diagrams you can create, see the [MermaidJS documentation](https://mermaid.js.org/intro/).
## Creating a diagram
To create a diagram in a document, type `/` and select `Diagram`. This will open a dialog where you can enter your MermaidJS code.
When valid MermaidJS code is entered, the diagram will automatically render in the space below. Collapsing the code editor will leave only the diagram visible on the page.
## Editing a diagram
To edit a diagram after it's been created, click the diagram to open the editor. This will allow you to make changes to the MermaidJS code, and you'll see the results in real time.
> **Note:** Clicking on a diagram and pressing the delete key will remove the diagram from the document.
@@ -0,0 +1,11 @@
{
"title": "Knowledge management",
"pages": [
"documents",
"collaborative-editing",
"documents-action-items",
"drawing-board",
"mermaid-diagrams",
"drive"
]
}
+16
View File
@@ -0,0 +1,16 @@
{
"pages": [
"getting-started",
"task-tracking",
"team-resources",
"knowledge-management",
"communication",
"people-contacts",
"cards",
"controlled-documents",
"integrations",
"additional-modules",
"advanced-settings",
"account"
]
}
@@ -0,0 +1,28 @@
---
title: Connecting tasks
description: Learn how to connect tasks to your contacts.
---
Tasks in your workspace can be directly connected to people in your Contacts list. There are several cases where this can be useful, for example:
- **Working with clients** - Freelancers, agencies and businesses using Hanzo Team to manage client projects may choose to connect tasks in their Tracker to client contacts. This allows tasks to be linked to the client's contact information, making it easy to keep track of who to contact for updates, feedback or approvals.
- **Scheduling follow ups** - Keep track of follow up conversations by creating tasks in your Tracker that are connected to your external contacts. Keep notes on your interactions and set reminders for when to follow up.
- **Tracking support requests** - If you're using Hanzo Team to manage support requests, you can connect tasks to the contact who submitted the request. This makes it easy to see all tasks related to a specific contact, and keep track of the status of their requests.
## Creating a new issue
To create an issue directly from a contact, open the dropdown settings menu on their contact page and select `New related issue`. This will open a dialog to create a new issue.
When the issue is created, a `Related` field will appear in the details sidebar. Here, you can see the contact connected to this issue.
## Connecting an existing issue
To connect an existing issue to a contact, open the issue and open the dropdown settings menu. Select `Relations` and then `Reference another issue`. From here, you can choose a contact to connect to the issue.
> **Note:** You can also connect other issues, documents and tasks here!
## Viewing connected issues
To view all of the issues related to a contact, navigate to the Tracker and select `All issues`. Use the `Filter` button to select `Related to` and then choose the name of the contact whose issues you'd like to see.
@@ -0,0 +1,30 @@
---
title: Employees
description: Learn how to manage employees in your Hanzo Team workspace.
---
The term "employees" in Hanzo Team does not necessarily imply a formal employment relationship — it is simply used to refer to members of your workspace. In your Contacts list, an "employee" is different from a "person", which refers to an external contact.
## Adding employees
When someone is invited to your workspace using an invite link, they will automatically be added as an employee in your Contacts when they join.
You can also add an employee by clicking the `+ Employee` button in the top right corner of the Contacts page. Enter the employee's name and email address and click `Create`. This not only creates a contact for them as an employee, but also generates an invite link which will be sent to their email. They will only be able to sign up for your workspace with the email address you entered when you created their contact.
## Merging contacts
In some cases, you may have a contact in your workspace who becomes an employee when they join your workspace. In this case, you can merge their "person" and "employee" contacts to avoid duplication. Open the settings menu and select `Merge contacts`, then select the contacts you would like to merge.
## GitHub collaborators
If you've linked a GitHub repository to your Hanzo Team workspace (see our guide on [GitHub integration](/docs/integrations/github)), you'll find that your GitHub collaborators have automatically been added to your Contacts as "persons". Even though these contacts have been added to your Contacts, they will not be able to access your workspace unless they've been invited as employees.
## Kicking employees
To kick an employee out of your workspace, right-click on their employee contact and select `Kick employee`. This cannot be undone. Kicking an employee will revoke their access to your workspace and mark them as inactive in your Contacts.
> **Note:** Kicked employees will remain visible in your workspace, even after their access has been revoked. This is by design, as their employee account may still be linked to objects in the workspace, and you may need to re-invite an employee who was kicked by mistake. If you have no intention of restoring a kicked employee's access, you may choose to remove their contact information from their profile and replace the account name with "Inactive User".
## Re-inviting kicked employees
To re-invite an employee that has been kicked from the workspace, navigate to Contacts and right-click on the empoloyee's contact. Select `Resend Invite` from the dropdown menu.
@@ -0,0 +1,29 @@
---
title: Managing Contacts
description: Learn how to manage and organize contacts in your Hanzo Team workspace.
---
There are three types of contacts in Hanzo Team:
- **Employee** - a member of your workspace
- **Person** - an external contact
- **Company** - a company or organization
These Contact types are used to help you organize members of your workspace alongside external contacts, like clients, leads, GitHub collaborators and more. You can manage your Contacts from the Contacts page in your workspace.
## Adding contacts
Contacts can be added using the `+` button in the top right corner of the Contacts page. For more on adding employees to your workspace, see this guide on managing [employees](/docs/people-contacts/employees).
To add an external contact, click the `+ Person` button and enter their name and email address. This will create a new contact in your Contacts list. From here, you can add notes, attachments, social links and additional information related to the contact.
## Customizing your Contacts list
You can customize the kind of information you wish to store for people in your Contacts list. For example, you may wish to add information like how you met, their pronouns, their preferred method of contact, or other specific details.
To add custom fields to your contacts, click the cog icon in the top right corner of the details sidebar. You can also access this page by navigating to `Settings` and selecting `Classes` and then `Person`. Here, you can add any fields you like to your contacts.
Just like any other fields for contacts, your custom fields can also be used to filter and sort contacts on your list. Filtered lists can be saved for easy access later:
## Deleting contacts
Contacts can be deleted by right-clicking on the contact and selecting `Delete`. This option is also available from the dropdown settings on the contact's individual page.
+4
View File
@@ -0,0 +1,4 @@
{
"title": "People & contacts",
"pages": ["managing-contacts", "employees", "connecting-tasks"]
}
+36
View File
@@ -0,0 +1,36 @@
---
title: Components
description: Learn about components in the Hanzo Team task tracker.
---
## What are components?
Components are essentially a way to categorize issues within a project - similar to [labels](/docs/task-tracking/labels), but with a key difference: an issue can only belong to one component, whereas many labels can be added to a single issue.
For example, components could be used to organize issues into categories like "UI", "Core", "Backend", etc.
## How are components different from milestones?
[Milestones](/docs/task-tracking/milestones) are more useful when planning parts of a project related to timing or phases of work. Milestones move through the states Planned > In Progress > Completed, while components are simply used for categorizing issues around a topic or area.
## Using components
Just like other objects in Hanzo Team, components can have a description and attachments. Every component also has an activity section connected to chat, so team members can have discussions related to the component.
### Creating components
Navigate to `Components` in the left side menu of the Tracker, under the project in which you'd like to create the component. Then, click the `+ Component` button in the top right corner.
Add a title and optional description, and select a member as the Lead if applicable. Then, click `Create component`.
### Connecting issues to components
On the component page, you can create a new issue to attach to that component by clicking the `+` button in the "Issues" section. The issue you create will be automatically connected to that component.
You can also connect an existing issue to the component by navigating to the issue's page and selecting the component in the right side menu.
When creating a new issue from anywhere in the tracker, you can also select the component from the dropdown menu in the issue creation dialog.
### Using components to filter issues
Components can be used in the same way as milestones and labels for filtering and sorting issues in the Tracker. For more detailed steps, see [Viewing issues](/docs/task-tracking/viewing-issues).
@@ -0,0 +1,39 @@
---
title: Creating action items
description: Learn more about the concept behind action items and how to create them on the Hanzo Team.
---
## What are action items?
Action items are tasks that are assigned to a specific team member. They are created automatically when an issue is created with a status of "Todo" and assigned to a team member. Action items are added to the member's Planner, where they can be scheduled and tracked.
Action items are a unique feature of the Hanzo Team. You can learn more about the concept behind action items (previously called "todos") on our <a href="https://hanzo.ai/blog/capturing-dynamic-team-workflows-with-action-items" target="_blank">blog</a>. Action items are also covered more in depth in our tutorial video:
## Creating action items
Action items can be created automatically, manually in your own Planner, or directly from within documents.
### Action items automatically created for an issue
An action item is automatically generated by the system when an issue is created with an assignee and the status set to “Todo”. This action item will appear in the Planner of the assignee, and a notification will appear in their inbox. This is the recommended way to create an action item because it directly links to the issue and allows for tracking of the issue's status, while ensuring an individual team member is responsible for the action item's completion.
### Creating an action item in your Planner
Action items can be created in your own personal Planner without being attached to any particular project or issue. Creating an action item in this way may be helpful for a team member to manage small personal tasks that don't directly relate to an issue and don't necessarily need to be visible to the rest of the team.
To create an action item in your Planner:
- Navigate to the Planner view by clicking on the calendar icon in the left sidebar.
- Click on the text field and enter a title for your action item; press enter to save. Your new action item should now appear in your Planner in the “Unplanned” section.
### Assigning action items directly from a document
For more on creating and assigning action items directly within documents, check out this [guide](/docs/knowledge-management/documents-action-items).
## Completing an action item
When the task associated with an action item is complete, the action item can be marked as complete by clicking the round checkbox that appears when hovering over the action item on the Planner. This will change the status of the associated issue to “Done” and will move the action item to the "Done" section of the Planner.
## Reminders for action items - coming soon!
As of February 2025, this feature is still in development and is not currently available in Hanzo Team. Please check back for updates on this feature when it becomes available!
@@ -0,0 +1,56 @@
---
title: Creating issues
description: Learn how to create an issue in your Hanzo Team workspace.
---
## What are issues?
Issues represent specific tasks that need to be completed. Issues can be broken down into sub-issues for smaller tasks that need to be completed to accomplish the parent issue. Issues are organized into projects, which define distinct spaces that contain your tasks.
> **Note:** Whenever an issue is created with a status of "Todo" and is assigned to a team member, the system automatically generates an [action item](/docs/task-tracking/creating-action-items) in that member's Planner, allowing them to add it to their own schedule.
## Creating an issue
Select the Tracker view by clicking the checkbox icon on the left sidebar, and ensure the side panel is open by clicking the horizontal lines at the top left.
Click the blue `+ New issue` button at the top of the side panel. This will open a dialog where you can enter some initial settings for your issue. After entering your desired settings, click `Create issue`.
> **Note:** If you navigate away while creating an issue, you'll notice that the `+ New issue` button becomes `+ Resume draft`. Click this to re-open the issue you were working on.
## Issue settings
When creating or editing an issue, you can configure the following settings:
**Project**: In the top left corner of the dialog, you will see the project that this issue is associated with. Click on the name of the project to see a dropdown where you can choose to select a different project to associate with this issue.
**Issue title**: A title for your issue.
**Description**: A description of your issue. Descriptions may be formatted with markdown formatting, including headers, codeblocks, links and more.
**Issue status**: Setting the issue status to "Todo" (and adding an assignee) will automatically generate an [action item](/docs/task-tracking/creating-action-items) in that member's Planner
**Priority**: Choose from No priority, Low, Medium, High or Urgent.
**Assignee**: Select a member to assign this issue to.
**Labels**: Add labels for this issue or add new ones. This is optional, but can be helpful for sorting issues later. To learn more about managing labels, take a look at [this guide](/docs/task-tracking/labels).
**Estimation**: Add an estimation for how long this issue will take to complete. This is optional, but is a helpful tool for workflow tracking and scheduling.
**Due date**: Select a due date for this issue. This is also optional.
**Set parent issue**: Make this issue the sub-issue of an existing issue. If the issue already has a parent, simply click the unset icon next to the parent issue to detach it.
**Attach**: Attach a file, image or other media to this issue.
## Tips for creating effective issues
There are so many ways to customize issues to suit the needs of your specific projects and workflows! However, there are a few tips to keep in mind as you create issues for your team.
- Issues should be small in scope, representing a task assigned to just one person. For larger tasks, use sub-issues to break them down further.
- Unless they are in backlog, all new issues should have a status of "Todo" to trigger the system to create an [action item](/docs/task-tracking/creating-action-items) for the assigned team member.
- In keeping with best practices, an issue status should not need to be manually changed from "Todo" to "In Progress" or "Done". The status of an issue can automatically be determined by the assigned team member's action item status. For more on how this process is automated (and why), read more about action items (previously called "todos") <a href="https://hanzo.ai/blog/capturing-dynamic-team-workflows-with-action-items" target="_blank">here</a>.
## Dive deeper with our video tutorial
Check out our tutorial on task tracking in Hanzo Team for a step-by-step guide on creating issues, assigning action items and getting the most out of task automations.
@@ -0,0 +1,42 @@
---
title: Creating projects
description: Learn how to create a project in your Hanzo Team workspace.
---
## What are projects?
Projects are all the things your team will be working on, and can be organized however you'd like to suit your needs. For example, a software engineering team may choose to break their work into projects like "Frontend", "Backend", "UX/UI" and "Testing". A small business may choose to create projects like "Inventory", "Marketing," and "Design". However, you're welcome to set your projects up in any way — they simply represent distinct spaces that will contain your tasks.
## Creating a project
> **Note:** Only workspace owners and maintainers can create projects. To learn how to grant a user special permissions, see our guide on [roles](/docs/advanced-settings/roles).
Select the Tracker view by clicking the checkbox icon on the left sidebar, and ensure the side panel is open by clicking the horizontal lines at the top left.
Click the `+` icon that appears when hovering over "Your Projects" in the side panel, or click the dropdown menu next to the `+ New issue` button and select `Create project`. This will open a dialog where you can enter some initial settings for your project. After entering your desired settings, click `Create`.
## Project settings
When creating or editing a project, you can configure the following settings:
**Project type**: The default project type is "Classic project". You can create your own project types in your workspace settings.
**Project title**: A title for your project.
**Identifier**: An abbreviation used to identify issues created for this project. This is automatically generated when you enter your project title, but can be customized.
**Description**: A description of your project.
**Choose icon**: Select an icon to represent your project, choosing from either a default icon with a custom color or an emoji.
**Default assignee for issues**: Select a member who you'd like to be assigned issues by default.
**Default issue status**: Select the status all new issues should default to when they are created.
**Owners**: Select the owner of the project, who will have permissions to edit the project details.
**Make private**: Toggle whether you'd like this project to be visible only to members.
**Members**: Select all members for this Project.
**Auto join**: Toggle whether you'd like new members to be automatically added to this project.
@@ -0,0 +1,30 @@
---
title: Issue collaborators
description: Learn how to add collaborators for issues and manage notifications as a collaborator.
---
Issues can only be assigned to one person, but you can add collaborators to keep other team members informed about issue activity. Collaborators will receive notifications for issue activity according to their own personal notifications settings.
Check out our demo video for a quick overview:
## Adding collaborators to an issue
To add a collaborator to an issue, open the details page for that issue and find the `Collaborators` section in the right sidebar. By default, the issue creator and assignee will be listed as collaborators. Select the person you'd like to add as a collaborator from the dropdown menu.
You can also add yourself as a collaborator to issues you'd like to follow. This can be useful if you want to keep track of an issue that's assigned to someone else. Adding yourself as a collaborator follows the same process as adding any other collaborator.
Collaborators will receive a notification in their inbox to let them know that they've been added to the issue. New collaborators will also be shown in the activity section for that issue, so anyone viewing the issue can see who has been added.
## Managing notifications as a collaborator
Collaborators will automatically receive notifications in their inbox for issue activity, such as comments, updates to issue status, and other changes. The specific acitivities that will trigger notifications in the inbox will depend on the user's own notifications settings.
To manage your notifications, navigate to Settings and select `Notifications` from the left sidebar menu. Then, select `Issues`. Notifications settings for issues are the same regardless of whether you are the owner, assignee, or collaborator on the issue. From this settings menu, you can select which kinds of issue activity you'd like to receive notifications for. Push, email, and Telegram notifications can also be toggled on or off.
## Viewing your subscribed issues
Being a collaborator for an issue makes it easy to see all of the issues you're following in one place.
Navigate to your Tracker and select `My issues` from the left sidebar. Then, select `Subscribed` from the top right menu. This view will show you all of the issues you're either a collaborator, owner or assignee for.
Just like any other view in your Tracker, you can filter and sort issues to find exactly what you need, and save custom views for easy access later. To learn more about customizing your Tracker, see our guide on [viewing and sorting issues](/docs/task-tracking/viewing-issues).
@@ -0,0 +1,32 @@
---
title: Issue templates
description: Learn how to create reusable issue templates and use them when creating new issues.
---
Issue templates can be used to create similar issues that follow the same format. These templates are particularly useful for things like bug reports and feature requests, where the same information is needed each time a new issue is created.
Templates are specific to each project in your Tracker -- so, for example, you could create a "Feature Request" template for each project, using different labels and assignees for each.
## Creating a new template
To create a new template, navigate to any project in your Tracker and select `Templates` from the left sidebar menu. Then, click the `+ New template` button in the top right corner.
Creating a template looks similar to creating any other issue. Enter a title and content for your template, as well as any default settings, such as priority level, assignee, and labels. The settings you select here will automatically apply to any issue created using the template.
When you're finished, click `Create`.
> Below shows an example of a Bug Report template. This template has a default priority level "Urgent" and has a default assignee and labels.
## Using a template
When creating a new issue, select the desired template from the dropdown menu at the top of the dialog.
The template will automatically populate the issue title, description, and any other default settings you've specified.
From there, you can make any necessary changes and click `Create issue`.
## Editing a template
Templates can be changed at any time by opening the template page and editing any of the details. Just like any other issue in Hanzo Team, templates can be edited collaboratively, and any changes to the template will be recorded in the activity section of the template page.
Users can also add comments to templates, utilizing @mentions, reactions and chat threads to discuss with other team members. Activity related to templates is linked to the Hanzo Team chat and inbox modules, so you can easily keep track of any changes or updates to your templates.

Some files were not shown because too many files have changed in this diff Show More