The article editor
Halo’s help center editor is a block-style rich text editor (TipTap-based) with:- Slash commands — type
/to insert headings, lists, code blocks, images, callouts, and more - Bubble menu — formatting controls (bold, italic, link, alignment) above selected text
- Slash command palette — quickly insert blocks
- Image upload with optional AI alt-text generation
- Embed support for trusted hosts (YouTube, Loom, Vimeo)
- Code blocks with syntax highlighting and a configurable theme
- Link tools with URL validation
AI assistance
Two flavors of AI inside the editor:AI Write
A side panel with “Tell AI what to write…” that streams text into the document. Use it for:- Drafting a first pass from a prompt (“Write an article about how to set up SSO with Okta”)
- Expanding on a heading you’ve added
- Generating a list of FAQs from a topic
- Rewriting in a different tone
AI SEO
Auto-generate SEO title, meta description, and OG image:- Generate SEO runs your content through an AI pass that suggests title and description
- Generate OG image creates a branded social preview image automatically
Status lifecycle
Articles move through four statuses:| Status | Behavior |
|---|---|
| Draft | Not visible publicly. Edits don’t affect knowledge ingest. |
| Scheduled | Goes live at scheduled_at. Cron flips status to published. |
| Published | Visible publicly (subject to visibility), auto-ingested as knowledge. |
| Archived | Hidden from public, removed from knowledge. |
Auto-save and versioning
Articles auto-save as you edit. Every save creates a version snapshot you can roll back to:- Version history is at
/api/help-center/articles/[id]/versions - Open the version drawer to see snapshots with timestamps
- Restore a previous version with one click
SEO
Each article has its own SEO fields:| Field | Default |
|---|---|
seo_title | Article title + help center name (template configurable in Settings) |
seo_description | Article description or empty |
og_image_url | Help center default OG image |
robots indexing is gated on is_live AND !disable_search_indexing — if your help center isn’t live or indexing is disabled, articles get noindex, nofollow.
Scheduling
Setscheduled_at to publish an article at a specific date and time. Useful for:
- Coordinating release announcements with engineering shipping the feature
- Time zone-friendly launches
- Preparing seasonal content in advance
published by a background job at the scheduled time.
Translations
Articles can be linked across languages. Settranslation_of to the original article’s ID and pick a target language. The help center renders the right translation based on the URL prefix:
/hc/{slug}/article-name— default language/hc/{slug}/es/article-name— Spanish translation/hc/{slug}/fr/article-name— French translation
Bulk actions
The article list supports bulk operations:- Publish selected drafts
- Move to draft
- Archive
- Delete
Article visibility
Each article has a visibility field:| Visibility | Who can see it |
|---|---|
| Public | Anyone with the URL |
| Authenticated | Requires help center auth (SSO/JWT) |
| Company-specific | Visible only to users from specific allowed companies (uses allowed_company_ids) |
Include in training
Each article hasinclude_in_training (default: on). When on:
- The article is chunked, embedded, and indexed in your AI’s knowledge base
- Edits trigger re-ingestion automatically
- Status changes (publish/archive) update knowledge accordingly
Where to go next
Collections
Organize articles into navigable categories.
Design
Theme the public site.
Migrating
Import existing articles from a URL crawl or Intercom.