Docs
Help Center

Setup

Configure your workspace help center — collections, groups, branding, and live preview.

The help center is a customer-facing knowledge surface built from your existing knowledge base articles. This phase gives operators the configuration UI; public visitor pages ship in a later release.

Information architecture

Content is organized in three levels:

  1. Collections — top-level categories (for example, "Getting started", "Billing", "API").
  2. Groups — subsections inside a collection (for example, "Subscriptions", "Refunds").
  3. Articles — knowledge base articles assigned to a group.

Each collection has a slug, optional icon, optional owner, and a description. Groups and articles are ordered with drag-and-drop; positions are stored as fractional-index strings so concurrent edits never corrupt the order.

Worked example: Anyday

A workspace called Anyday might set up:

  • Collection: Billing — slug billing
    • Group: Subscriptions
      • Change your plan
      • Cancel your subscription
    • Group: Refunds
      • Request a refund
      • Refund timeline
  • Collection: API — slug api
    • Group: Authentication
      • Create an API key
      • Rotate a key

Building the tree

  1. Open Settings → Help Center.
  2. Create a collection with a title and optional icon.
  3. Add groups to the collection.
  4. Add articles to a group in one of two ways:
    • Add existing article — pick an unassigned article from the knowledge base.
    • + New article — open the knowledge base editor with the group pre-filled.

Icons

Collections can display an icon in the card grid. Choose either:

  • Lucide — any icon from the Lucide set.
  • Emoji — any single emoji character.

Branding

The Branding tab controls how the help center looks in the live preview and on the public site. Changes preview live before you save.

Import your brand

Paste a public homepage URL and choose Import. The importer best-effort extracts:

  • A theme color from theme-color or msapplication-TileColor meta tags.
  • A logo candidate from apple-touch-icon, og:image, icon, or /favicon.ico.
  • A site name from og:site_name or the page <title>.

If nothing is detected, enter values manually. The importer only works for public, reachable URLs; private networks, localhost, and link-local addresses are blocked. Detected values are applied to your local preview — you must still click Save branding to persist them.

Fonts

Choose a primary font for body text and a secondary font for headings.

  • System font — enter any standard font stack name (for example, Inter, Georgia). Falls back to the system sans-serif stack if the name is unavailable.
  • Custom font — upload a .woff2 or .ttf file (max 5 MB). Files are validated by magic bytes, not extension, and hosted on object storage.

Custom fonts load cross-origin from object storage. Your bucket must send Access-Control-Allow-Origin headers for your help-center origins (*.help.ticket0.ai and any custom domains). Without CORS, browsers silently fall back to the system font stack.

Hero background

Choose between four backgrounds for the hero section:

  • Color — a single solid color.
  • 2-color gradient — linear gradient from one color to another.
  • 3-color gradient — enable the optional middle color to add a third stop.
  • Image — upload a JPEG, PNG, or WebP image (max 5 MB). It is resized to 1600 px wide, encoded as WebP, and hosted on object storage.

You can also set the hero text color, search-input background color, height, and a subtle bottom fade.

Add up to eight links that appear in the help-center header between the logo and the language badge. Drag the handle on each row to reorder. Links with empty labels or URLs are dropped when saved.

Design style

  • Card — collection cards and article rows use a 1 px border, no shadow by default, and a hover shadow.
  • Floating — collection cards and article rows have no border, a soft default shadow, and a stronger hover shadow.

Section ordering on the landing page is managed in the Content tab.

Corner radius

Set a global corner radius from 0 px to 24 px. It applies to the search input, collection cards, and article-row containers.

Per-element colors

Override specific surface colors independently of the main palette:

  • Collection card background
  • Collection card text
  • Hero search background

Choose one of three footer layouts:

  • Simple — one-line layout with footer text on the left and social icons on the right.
  • Classic — up to three columns: about/logo + text, header links, and social icons.
  • Multi-level — the same content as Classic arranged in stacked groups with uppercase headings and larger spacing.

The Classic and Multi-level layouts omit the "Links" column when no header links are configured, and omit the logo when no logo is uploaded.

Show article authors

Toggle whether the author byline appears at the bottom of public article pages.

Contrast warning

If the action color and its background fail WCAG AA contrast, a non-blocking warning appears. You can still save, but visitors may have trouble reading buttons.

Live preview

The Preview tab renders the same components that will power the public help center. Switch between:

  • Landing — the collection card grid.
  • Collection — the first collection detail page.
  • Article — the first published help-center article.

Changes made in the Branding tab update the preview immediately before they are saved.

Enable the help center

Turn the Enable help center toggle on only after you have set a subdomain slug. Enabling without a subdomain is rejected with a validation error.

Public pages

When the help center is enabled, it is served publicly at https://<subdomain-slug>.help.ticket0.ai. The subdomain slug is configured on the Branding tab. Three page types are available:

  • Landinghttps://<subdomain>.help.ticket0.ai/ — the collection card grid and hero search bar.
  • Collectionhttps://<subdomain>.help.ticket0.ai/c/<collection-slug> — all groups in the collection and their articles.
  • Articlehttps://<subdomain>.help.ticket0.ai/a/<article-slug> — the full article with breadcrumbs (Workspace → Collection → Group → Article).

The same components used in the Preview tab power the public site, so what you see in the preview is what visitors see.

Article page features

Public article pages include three reader-facing enhancements:

  • Table of contents — Auto-generated from h2 and h3 headings in the article body. It appears as a sticky sidebar on viewports >=1024px and highlights the active section as visitors scroll. Clicking an entry smooth-scrolls to the section and updates the URL with a shareable #anchor deep link.
  • Related articles — Up to five related published articles are shown at the bottom of each article. Relations are computed nightly at 03:15 UTC using pgvector cosine similarity on already-stored embeddings (threshold >=0.6). The block is hidden when no similar articles pass the threshold. Because the cache is recomputed nightly, relations can be up to a day stale.
  • Author footer — Each article displays the parent collection's owner as the author (avatar, name, and last-updated date). If a collection has no owner, the footer is hidden.

Article feedback

Every published article ends with a "Was this article helpful?" prompt and 👍 / 👎 buttons. Visitors vote anonymously — no sign-in required.

  • One vote per visitor per article, per day. Votes are de-duplicated with a privacy-preserving fingerprint: a SHA-256 hash of the visitor's IP address, user-agent, and a salt that rotates every UTC day. Because the salt rotates daily, a visitor can't be tracked across days and may vote again the next day. Within a day, changing a vote (👍 → 👎) overwrites the previous one — last write wins.
  • No comment box — thumbs only. For qualitative feedback, point customers to the chat widget.
  • Rate-limited to 10 votes per minute per IP address.

What operators see

In Settings → Help Center → Content, each article row shows a small 👍 24 · 👎 3 chip once it has votes (hidden until the first vote). Click the chip to open a panel with all-time totals, the positivity ratio, and a 30-day daily trend. Only aggregates are shown — individual votes are never surfaced, and nothing beyond the rotating fingerprint hash is stored.

The hero search bar submits a native GET form to /search?q=.... Results are ranked by relevance using a generated tsvector index on each article. Title matches are weighted higher than body matches, and each result shows a highlighted snippet with <mark> tags around matching terms. Search supports natural-language queries and ignores special characters safely.

AI integration

The chat widget's knowledge retrieval now includes articles published to the help center, even if they are not marked as internal published. When the AI answers from one of these articles, it cites the canonical help-center URL (https://<subdomain>.help.ticket0.ai/a/<article-slug>) so customers can open the full article.

SEO

Each public help center exposes:

  • A per-subdomain sitemap at /sitemap.xml with the landing page, collections, and published articles.
  • A robots.txt at /robots.txt that allows all crawlers and references the sitemap.
  • Canonical URLs, page titles, and Open Graph images derived from the workspace logo.
  • Search-result pages are marked noindex.

Structured data (rich results)

The landing, collection, and article pages also embed schema.org JSON-LD so Google can show richer search results than plain blue links:

  • Articles emit Article data (headline, author, last-updated date, publisher name + logo, image), making them eligible for article rich results.
  • FAQ-style articles — those written as a list of headings each followed by an answer (for example, "How much does it cost?" → answer), repeated two or more times — additionally emit FAQPage data, which Google can render as expandable Q&A directly in search results. Regular articles (those that open with an introduction rather than a heading) are left as plain articles.
  • Collection pages emit CollectionPage + BreadcrumbList data, so search results can show breadcrumb chips (workspace → collection).
  • The landing page emits WebSite data with a search action, which can surface an in-site search box for your help center in Google results.

No configuration is required — this is automatic for every enabled help center. The author shown on articles is the parent collection's owner; the publisher and logo come from your Branding settings. You can confirm the output for any page with Google's Rich Results Test.

Reading the analytics dashboard

The Help Center analytics dashboard lives at /analytics/help-center and is available to workspace owners and admins only. It shows how visitors interact with your public help center.

Metrics

  • Total views — the number of page views across landing, collection, and article pages.
  • Unique visitors — distinct visitors identified by a daily-rotating fingerprint (the same SHA-256 hash used for article feedback).
  • Searches — the number of searches visitors ran from the help-center search bar.
  • Deflection rate — the share of views that did not result in a ticket created from the help center, calculated as (views − tickets opened from help) / views. It relies on the same daily visitor fingerprint to stitch help-center visits to widget ticket creation, so both apps must share the same HELP_CENTER_FEEDBACK_SALT.

Acting on the data

The Top searches card shows the most common queries. If a query returned no results, it is highlighted with a "No results" badge. The Searches with no results card lists the most frequent empty queries and gives each one a Create article button that opens the knowledge base editor pre-filled with the search term as the article title.

The Lowest-rated articles card surfaces articles with the most thumbs-down feedback from the article feedback feature. Articles need at least three votes to appear, and the list is sorted by positivity ratio (upvotes / total votes) ascending.

Data freshness and retention

Visitor events are recorded in real time as pages are viewed and searches are submitted. Bot traffic is filtered using the user-agent string, and empty searches are never logged.

Raw events are kept for 90 days. Every night at 03:30 UTC, a rollup job aggregates events older than 90 days into daily per-workspace aggregates and deletes the raw rows. This means the dashboard's period-over-period comparisons are most reliable for ranges under 90 days; older previous windows may be partially rolled up.

Limitations

  • Search and content are English-only for this phase.
  • Custom domains are planned for Phase 3; the field remains disabled with a "Coming soon" badge.
  • The public site shows the workspace logo, page title, welcome message, and configured colors from the Branding tab.

On this page