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.
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:
- Count your articles — How many published articles do you have?
- Check collections — Note your organizational structure (collections and sections)
- Identify media — Images, GIFs, and videos embedded in articles
- Review translations — If using Intercom's multi-language Help Center, note active locales
- 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:
| Intercom | TheFAQApp |
|---|---|
| Collection | Collection group (optional) |
| Section | Collection |
| Article title | Question |
| Article body | Answer |
| Tags | Tags |
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:
- Download images from Intercom's CDN using the URLs in article HTML
- Upload to your own hosting (S3, Cloudflare R2, Vercel Blob, etc.)
- 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:
- Spot-check 10-20 FAQs — Compare with Intercom to ensure content integrity
- Check formatting — HTML rendering, images loading, links working
- Verify collections — FAQs in the correct collections
- Test search — Search for common queries and confirm results are accurate
- 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:
- Week 1 — Import all content to TheFAQApp. Keep Intercom Help Center live.
- Week 2 — Set up your new FAQ page or widget. Test with internal users.
- Week 3 — Switch public traffic to the new FAQ. Keep Intercom as read-only backup.
- 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 features — Generate 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:
- Sign up for free — no credit card required
- Export from Intercom using the API (Step 1 above)
- Import via TheFAQApp API — the free tier supports up to 50 FAQs
- Test and verify — spot-check your content
- 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.
Related Reading
- thefaq.app vs Intercom: An FAQ-Focused Comparison — Feature-by-feature comparison
- API-First FAQ vs Traditional CMS — Why API-first wins for developers
- How to Migrate from Zendesk — Similar guide for Zendesk users
- How to Migrate from Help Scout — Similar guide for Help Scout users
- Best FAQ Software for Developers in 2026 — Compare all your options
- How to Build a FAQ Page with an API — Build your new FAQ page
- Embed a FAQ Widget Anywhere — Replace the Intercom Help Center widget
- Why API-First FAQ Tools Are the Future — The case for switching
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.