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:
- Collections — top-level categories (for example, "Getting started", "Billing", "API").
- Groups — subsections inside a collection (for example, "Subscriptions", "Refunds").
- 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
- Group: Subscriptions
- Collection: API — slug
api- Group: Authentication
- Create an API key
- Rotate a key
- Group: Authentication
Building the tree
- Open Settings → Help Center.
- Create a collection with a title and optional icon.
- Add groups to the collection.
- 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-colorormsapplication-TileColormeta tags. - A logo candidate from
apple-touch-icon,og:image,icon, or/favicon.ico. - A site name from
og:site_nameor 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
.woff2or.ttffile (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.
Header links
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
Footer layouts
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:
- Landing —
https://<subdomain>.help.ticket0.ai/— the collection card grid and hero search bar. - Collection —
https://<subdomain>.help.ticket0.ai/c/<collection-slug>— all groups in the collection and their articles. - Article —
https://<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
h2andh3headings in the article body. It appears as a sticky sidebar on viewports>=1024pxand highlights the active section as visitors scroll. Clicking an entry smooth-scrolls to the section and updates the URL with a shareable#anchordeep 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.
Search
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.xmlwith the landing page, collections, and published articles. - A robots.txt at
/robots.txtthat 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
Articledata (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
FAQPagedata, 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+BreadcrumbListdata, so search results can show breadcrumb chips (workspace → collection). - The landing page emits
WebSitedata 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 sameHELP_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.