Skip to main content
Back to Blog
Guide

How to Migrate Your FAQ from Intercom to an API-First Platform

Step-by-step guide to migrating your knowledge base and FAQ content from Intercom to an API-first platform. Export articles, transform content, and import with zero downtime.

TheFAQApp TeamApril 5, 20269 min read

Why Teams Outgrow Intercom for FAQ

Intercom is a great conversational support tool. But if you're using it primarily for FAQ and knowledge base content, you're paying for a lot more than you need — and running into real limitations:

  • Expensive per-seat pricing — Intercom starts at $39/seat/month and scales quickly. If you only need FAQ management, that's a steep price tag.
  • No headless/API-first approach — Intercom's Help Center is tightly coupled to their widget. You can't easily render FAQ content in your own UI or integrate it into your product.
  • Limited customization — The Help Center design follows Intercom's templates. Custom layouts, branded experiences, and developer-friendly integrations are an uphill battle.
  • Vendor lock-in — Your knowledge base content lives inside Intercom's ecosystem. Extracting it programmatically requires navigating their API limitations.
  • Overkill for FAQ — Intercom is a full customer messaging platform. If you just need FAQ management with an API, you're paying for live chat, bots, product tours, and more.

If any of this sounds familiar, migrating to an API-first FAQ platform can save money, give you full control, and unlock developer-friendly integrations.

Before You Start

Audit Your Intercom Content

Take stock of what you have in Intercom's Help Center:

  1. Count your articles — How many published articles do you have?
  2. Check collections — Note your organizational structure (collections and sections)
  3. Identify media — Images, GIFs, and videos embedded in articles
  4. Review translations — If using Intercom's multi-language Help Center, note active locales
  5. Check article state — Published vs. draft, public vs. internal

Map Your Content Structure

Intercom Help Center organizes content as: Collection → Section → Article

TheFAQApp uses: Collection → FAQ (question + answer)

The mapping is straightforward:

IntercomTheFAQApp
CollectionCollection group (optional)
SectionCollection
Article titleQuestion
Article bodyAnswer
TagsTags

Step 1: Export from Intercom

Option A: Intercom API Export (Recommended)

Use the Intercom API to export your articles with full metadata. You'll need an Intercom access token from Settings → Integrations → Developer Hub.

# List all articles
curl https://api.intercom.io/articles \
  -H "Authorization: Bearer YOUR_INTERCOM_TOKEN" \
  -H "Accept: application/json"

# Get a specific article
curl https://api.intercom.io/articles/{article_id} \
  -H "Authorization: Bearer YOUR_INTERCOM_TOKEN" \
  -H "Accept: application/json"

The response includes title, body (HTML), parent_id (section or collection), state (published/draft), author_id, and translated_content for multi-language setups.

Pagination: Intercom paginates article lists. Use the starting_after cursor to iterate through all pages:

async function exportAllArticles(token) {
  let articles = [];
  let url = 'https://api.intercom.io/articles';

  while (url) {
    const res = await fetch(url, {
      headers: {
        'Authorization': `Bearer ${token}`,
        'Accept': 'application/json',
      },
    });
    const data = await res.json();
    articles.push(...data.data);

    // Follow pagination
    url = data.pages?.next
      ? `https://api.intercom.io/articles?starting_after=${data.pages.next}`
      : null;
  }

  return articles;
}

Option B: CSV Export from Intercom UI

Intercom doesn't offer a built-in CSV export for Help Center articles. If you only have a handful of articles, you can manually copy content — but for anything more than 20 articles, use the API.

Option C: Third-Party Export Tools

Tools like Export Comments or custom Zapier workflows can export Intercom articles, but the API route gives you the most control over metadata and formatting.

Step 2: Transform Your Content

Intercom articles use HTML. TheFAQApp accepts HTML in answer fields, so the core content transfers cleanly. However, you'll want to clean up Intercom-specific markup.

Clean Up HTML

Intercom's editor adds wrapper divs, custom classes, and inline styles:

function cleanIntercomHTML(html) {
  return html
    // Remove Intercom-specific classes
    .replace(/class="intercom-[^"]*"/g, '')
    // Remove empty wrapper divs
    .replace(/<div>\s*<\/div>/g, '')
    // Remove inline styles
    .replace(/style="[^"]*"/g, '')
    // Clean up data attributes
    .replace(/data-intercom-[^=]*="[^"]*"/g, '')
    // Fix relative image URLs
    .replace(
      /src="(\/i\/o\/[^"]+)"/g,
      'src="https://downloads.intercomcdn.com$1"'
    );
}

Map Collections to TheFAQApp

Export your Intercom collections and create a mapping:

# List all collections
curl https://api.intercom.io/help_center/collections \
  -H "Authorization: Bearer YOUR_INTERCOM_TOKEN" \
  -H "Accept: application/json"

Build a mapping file:

{
  "collection_mappings": {
    "123456": "getting-started",
    "123457": "billing-and-pricing",
    "123458": "api-reference",
    "123459": "troubleshooting"
  }
}

Handle Images

Intercom hosts images on downloads.intercomcdn.com. After migration, these URLs will still work — but relying on a third-party CDN long-term isn't ideal:

  1. Download images from Intercom's CDN using the URLs in article HTML
  2. Upload to your own hosting (S3, Cloudflare R2, Vercel Blob, etc.)
  3. Update image URLs in the article HTML before import

Step 3: Import into TheFAQApp

Using the API (Recommended)

Create your collections first, 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": "Help articles for new users"
  }'

# 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 connect my Slack workspace?",
    "answer": "<p>Navigate to Settings > Integrations > Slack...</p>",
    "collectionSlug": "getting-started",
    "tags": ["integrations", "slack"]
  }'

Bulk Import Script

For larger migrations, use the SDK to automate the entire process:

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

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

// Load your transformed Intercom export
const articles = JSON.parse(fs.readFileSync('intercom-export.json', 'utf-8'));
const collectionMap = JSON.parse(fs.readFileSync('collection-mappings.json', 'utf-8'));

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

// Import FAQs
let imported = 0;
for (const article of articles) {
  // Skip drafts if you only want published content
  if (article.state !== 'published') continue;

  await client.faqs.create({
    question: article.title,
    answer: cleanIntercomHTML(article.body),
    collectionSlug: collectionMap.collection_mappings[article.parent_id],
    tags: article.tags?.map(t => t.name) || [],
  });

  imported++;

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

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

Step 4: Verify and Test

After import, verify your content:

  1. Spot-check 10-20 FAQs — Compare with Intercom to ensure content integrity
  2. Check formatting — HTML rendering, images loading, links working
  3. Verify collections — FAQs in the correct collections
  4. Test search — Search for common queries and confirm results are accurate
  5. Check translations — If you imported multi-language content, verify locales

Step 5: Replace Intercom's Help Center

Option 1: Use TheFAQApp's Hosted FAQ Page

If you're using Intercom's Help Center as a standalone page (e.g., help.yourcompany.com), you can replace it with TheFAQApp's hosted FAQ page using a custom domain:

  • Point help.yourcompany.com → your TheFAQApp hosted page
  • Or use a subdomain like yourorg.thefaq.app

Option 2: Build Your Own with the API

For full control, build your FAQ page using the REST API or the Next.js SDK:

<!-- Remove Intercom Messenger (if you only used it for FAQ) -->
<!-- <script>window.intercomSettings = {...}</script> -->

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

<!-- Or build a fully custom FAQ page with the API -->

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

Option 3: Keep Intercom for Chat, Use TheFAQApp for FAQ

Many teams use Intercom primarily for live chat and bots. You don't have to leave Intercom entirely — just migrate the FAQ layer:

  • Intercom → live chat, bots, product tours
  • TheFAQApp → FAQ content, knowledge base, developer docs

This hybrid approach gives you the best of both worlds at a lower total cost.

Step 6: Run in Parallel (Optional)

For zero-downtime migration:

  1. Week 1 — Import all content to TheFAQApp. Keep Intercom Help Center live.
  2. Week 2 — Set up your new FAQ page or widget. Test with internal users.
  3. Week 3 — Switch public traffic to the new FAQ. Keep Intercom as read-only backup.
  4. Week 4 — Confirm deflection metrics look healthy. Disable Intercom Help Center (keep chat if needed).

What You Gain After Migration

After migrating from Intercom to an API-first FAQ platform:

  • Cost savings — Stop paying per-seat for FAQ management. See how to calculate FAQ ROI.
  • API access — Your FAQ content is available via REST API for any integration
  • Custom rendering — Build your FAQ UI with your own design system, not Intercom's templates
  • Better developer experience — TypeScript SDK, Next.js integration, programmatic content management
  • AI featuresGenerate FAQ content from support data
  • Search analytics — Understand what your users are searching for with API-powered search
  • No vendor lock-in — Your content is API-accessible, always exportable

Getting Started

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

  1. Sign up for free — no credit card required
  2. Export from Intercom using the 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 Help Center URL and widget

Most knowledge bases migrate in under 2 hours. For larger setups (500+ articles), budget half a day.

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.