Skip to main content
Back to Blog
Guide

How to Migrate Your FAQ from Help Scout to an API-First Platform

Complete guide to migrating your Docs knowledge base from Help Scout to an API-first FAQ platform. Export articles, map collections, and import via API.

TheFAQApp TeamApril 5, 20268 min read

Why Teams Move Away from Help Scout Docs

Help Scout is a solid help desk with a clean UI. But Help Scout Docs — their knowledge base product — has real limitations for teams that want more from their FAQ:

  • No API-first approach — Help Scout Docs is designed to serve content through their Beacon widget or hosted Docs site. You can't easily consume FAQ content in your own app via API.
  • Limited customization — Docs styling is constrained to Help Scout's theme editor. Deep custom layouts and branded experiences require workarounds.
  • Bundled pricing — Help Scout starts at $50/user/month. If you mainly need FAQ management, you're paying for shared inbox, live chat, and more.
  • No headless option — You can't decouple the content layer from the rendering layer. If you want FAQ content in a mobile app, internal tool, or custom frontend, Help Scout doesn't support that natively.
  • Basic analytics — Help Scout Docs provides article views and ratings, but lacks search analytics, click-through tracking, and the data you need to optimize FAQ content.

If you need an API-first FAQ platform with full developer control, migrating from Help Scout is straightforward.

Before You Start

Audit Your Help Scout Docs

Take inventory of your Help Scout knowledge base:

  1. Count articles — How many published articles across all collections?
  2. Check collections and categories — Note your organizational structure
  3. Identify assets — Images and files embedded in articles
  4. Review article status — Published vs. draft
  5. Note custom redirects — Any redirect rules set up in Help Scout Docs

Map Your Content Structure

Help Scout Docs organizes content as: Collection → Category → Article

TheFAQApp uses: Collection → FAQ (question + answer)

Help Scout DocsTheFAQApp
CollectionCollection group (optional)
CategoryCollection
Article nameQuestion
Article bodyAnswer
TagsTags

Step 1: Export from Help Scout

Option A: Help Scout Docs API (Recommended)

Help Scout has a well-documented API for Docs. You'll need an API key from Your Profile → API Keys in the Help Scout dashboard.

# List all collections
curl https://docsapi.helpscout.net/v1/collections \
  -u "YOUR_API_KEY:X"

# List all articles in a collection
curl https://docsapi.helpscout.net/v1/collections/{collectionId}/articles \
  -u "YOUR_API_KEY:X"

# Get a specific article with full content
curl https://docsapi.helpscout.net/v1/articles/{articleId} \
  -u "YOUR_API_KEY:X"

The article response includes name (title), text (HTML body), categories, status (published/not published), and keywords.

Full export script:

async function exportHelpScoutDocs(apiKey) {
  const headers = {
    'Authorization': `Basic ${btoa(apiKey + ':X')}`,
  };

  // Get all collections
  const collectionsRes = await fetch(
    'https://docsapi.helpscout.net/v1/collections',
    { headers }
  );
  const collections = (await collectionsRes.json()).collections.items;

  const allArticles = [];

  for (const collection of collections) {
    // Get articles in each collection
    let page = 1;
    let hasMore = true;

    while (hasMore) {
      const res = await fetch(
        `https://docsapi.helpscout.net/v1/collections/${collection.id}/articles?page=${page}`,
        { headers }
      );
      const data = await res.json();

      for (const article of data.articles.items) {
        // Fetch full article content
        const fullRes = await fetch(
          `https://docsapi.helpscout.net/v1/articles/${article.id}`,
          { headers }
        );
        const full = (await fullRes.json()).article;

        allArticles.push({
          ...full,
          collectionId: collection.id,
          collectionName: collection.name,
        });

        // Respect rate limits
        await new Promise(r => setTimeout(r, 200));
      }

      hasMore = page < data.articles.pages;
      page++;
    }
  }

  return { collections, articles: allArticles };
}

Option B: Manual Copy

For very small knowledge bases (under 20 articles), you can copy-paste content directly. But the API export preserves metadata and formatting much better.

Step 2: Transform Your Content

Help Scout Docs articles are HTML. TheFAQApp accepts HTML in answers, so most content transfers directly. Clean up Help Scout-specific elements:

function cleanHelpScoutHTML(html) {
  return html
    // Remove Help Scout tracking attributes
    .replace(/data-hs-[^=]*="[^"]*"/g, '')
    // Remove inline styles from Help Scout editor
    .replace(/style="[^"]*"/g, '')
    // Fix relative image URLs to absolute
    .replace(
      /src="(\/docs\/assets\/[^"]+)"/g,
      'src="https://your-docs.helpscoutdocs.com$1"'
    );
}

Map Categories to Collections

Create a mapping from Help Scout categories to TheFAQApp collections:

{
  "category_mappings": {
    "category-id-1": "getting-started",
    "category-id-2": "billing",
    "category-id-3": "integrations",
    "category-id-4": "troubleshooting"
  }
}

Handle Images

Help Scout hosts images on their CDN. Download and re-host them:

  1. Extract image URLs from article HTML
  2. Download from Help Scout's CDN
  3. Upload to your hosting (S3, Cloudflare R2, Vercel Blob)
  4. Replace URLs in article HTML

Step 3: Import into TheFAQApp

Using the API

Create collections, then import FAQs:

# Create a collection
curl -X POST https://www.thefaq.app/api/v1/your-org/collections \
  -H "Authorization: Bearer your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Getting Started",
    "slug": "getting-started",
    "description": "Onboarding and setup articles"
  }'

# Import a FAQ
curl -X POST https://www.thefaq.app/api/v1/your-org/faqs \
  -H "Authorization: Bearer your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "question": "How do I set up email forwarding?",
    "answer": "<p>Navigate to Settings > Email Forwarding...</p>",
    "collectionSlug": "getting-started",
    "tags": ["email", "setup"]
  }'

Bulk Import Script

For larger knowledge bases, use the SDK:

import { FAQClient } from '@faqapp/core';
import fs from 'fs';

const client = new FAQClient({
  apiKey: process.env.FAQ_API_KEY,
  organizationSlug: 'your-org',
});

// Load export data
const { articles } = JSON.parse(
  fs.readFileSync('helpscout-export.json', 'utf-8')
);
const categoryMap = JSON.parse(
  fs.readFileSync('category-mappings.json', 'utf-8')
);

// Create collections
const slugs = new Set(Object.values(categoryMap.category_mappings));
for (const slug of slugs) {
  await client.collections.create({ name: slug, slug });
}

// Import articles as FAQs
let imported = 0;
for (const article of articles) {
  if (article.status !== 'published') continue;

  const categoryId = article.categories?.[0]?.id;
  const collectionSlug = categoryMap.category_mappings[categoryId] || 'general';

  await client.faqs.create({
    question: article.name,
    answer: cleanHelpScoutHTML(article.text),
    collectionSlug,
    tags: article.keywords || [],
  });

  imported++;
  await new Promise(r => setTimeout(r, 100));
}

console.log(`Imported ${imported} of ${articles.length} articles`);

Step 4: Verify and Test

After import:

  1. Spot-check FAQs — Compare 10-20 items against Help Scout originals
  2. Check formatting — Verify HTML renders correctly, images load, links work
  3. Verify collections — Confirm FAQs landed in the right collections
  4. Test search — Search common queries and verify results
  5. Check SEO — Ensure FAQ page titles and descriptions are set for search visibility

Step 5: Replace Help Scout Docs

Replace Beacon with TheFAQApp Widget

If you use Help Scout's Beacon widget for FAQ access:

<!-- Remove Help Scout Beacon -->
<!-- <script>!function(e,t,n){...}(window,document,"Beacon");</script> -->

<!-- Add TheFAQApp widget -->
<script src="https://widget.thefaq.app/v1/widget.js" data-org="your-org"></script>

For a custom implementation, see how to embed a FAQ widget anywhere.

Update Your Docs URL

If you used Help Scout's hosted Docs site (e.g., docs.yourcompany.com):

  • Point the domain to your new TheFAQApp hosted page
  • Or build a custom FAQ page with the API
  • Set up 301 redirects from old article URLs to new FAQ URLs

Keep Help Scout for Ticketing

Like many teams, you might want to keep Help Scout for email support while moving FAQ to a dedicated platform:

  • Help Scout → shared inbox, customer conversations
  • TheFAQApp → FAQ content, knowledge base, self-service portal

This lets you reduce support tickets by improving self-service while keeping your existing support workflow.

Step 6: Run in Parallel

For a safe migration:

  1. Week 1 — Import content to TheFAQApp. Keep Help Scout Docs live.
  2. Week 2 — Deploy your new FAQ page. Test internally.
  3. Week 3 — Switch traffic. Monitor FAQ effectiveness metrics.
  4. Week 4 — Verify everything works. Disable Help Scout Docs if no longer needed.

What You Gain After Migration

  • Cost savings — Dedicated FAQ management without per-seat help desk pricing. See how to calculate FAQ ROI.
  • API access — Consume your FAQ content anywhere via REST API
  • Custom rendering — Full control over FAQ page design and layout
  • Better searchAPI-powered search with analytics
  • AI featuresAuto-generate FAQ content from support data
  • Developer experience — TypeScript SDK, Next.js integration, programmatic management

Getting Started

Ready to migrate from Help Scout? Here's the fastest path:

  1. Sign up for free — no credit card required
  2. Export from Help Scout using the Docs API (Step 1 above)
  3. Import via TheFAQApp API — the free tier supports up to 50 FAQs
  4. Test and verify — spot-check your content
  5. Switch over — update your Beacon and Docs URL

Most knowledge bases migrate in under 2 hours.

Start your migration →


Related Reading


TheFAQApp Team

We build the API-first FAQ platform for developer teams. Our mission is to make FAQ management as easy as managing code.

Ready to build your FAQ?

Create searchable, API-powered FAQ pages in minutes. Free to start — no credit card required.

Continue reading

Get developer updates

API changelog, new features, and FAQ best practices. No spam.