Start here. The main demo experience should be embedded chat layouts, with lots of template links visible right away.
Step-by-step playbooks for moving from your current chat platform to MyLiveChat — without losing articles, agent settings, or visitor history. Free migration support included.
Same playbook regardless of where you're coming from. The platform-specific sections below cover the export differences.
Create your MyLiveChat account, invite agents by email, configure operating hours and routing. Free plan covers 1 agent if you want to dry-run before paying.
Each platform-specific guide below covers the exact export endpoints and formats. Most export to .zip of .md or .json in under 5 minutes.
.zip
.md
.json
KB articles via our bulk markdown importer. Agents via the team page. Webhook receivers via the webhook subscriptions page.
Swap your old chat snippet for the MyLiveChat snippet from the deployment guide. Optional: serve both side-by-side for a few hours so you can verify nothing is missed.
Send a test chat through MyLiveChat from a private window. Verify your AI bot answers correctly. Verify webhooks fire to your existing receivers. Then cancel your old subscription.
Crisp Helpdesk → Settings → Export Articles. Choose Markdown format. Crisp will email you a .zip containing one .md per article.
Our bulk importer accepts a single text blob with documents separated by ---. Run a one-liner to concat your .zip contents:
---
$ cd articles/ && printf '%s\n---\n' $(cat *.md) > combined.md
Dashboard → Knowledge Base → Import → paste the combined markdown. Title comes from the first # heading in each article; status defaults to Draft so you can review before publishing.
# heading
Knowledge Base → Categories. Add each Crisp Helpdesk category. The article editor's category dropdown picks them up immediately.
If you used Crisp's $crisp.push(["set", "user:email", "..."]) to identify visitors, replace with mylivechat("identify", { email: "..." }). Our SDK syntax is similar enough that a global find-replace handles 90% of cases.
$crisp.push(["set", "user:email", "..."])
mylivechat("identify", { email: "..." })
Snippet from the deployment page. Both can run side-by-side briefly; once you've sent a test chat through MyLiveChat, cancel Crisp from their billing settings.
Intercom doesn't have a one-click export. Use their GET /articles endpoint with your access token. Most teams just use a 10-line script:
GET /articles
$ curl -H "Authorization: Bearer $TOKEN" \ https://api.intercom.io/articles?per_page=200 \ | jq -r '.data[] | "---\ntitle: \(.title)\n---\n" + .body'
Knowledge Base → Import. Paste the markdown. Done in under 30 seconds.
Fin trains on your Help Center automatically; ours does the same with no extra step. Once articles are imported, the AI bot is already trained — no separate "Fin onboarding" required.
Intercom Series → MyLiveChat Smart Triggers. The visual rule builder covers the same conditions (page URL, time on page, returning visitor, etc.). Use the starter pack templates to skip configuration.
Intercom's Intercom('update', { user_id, email, name }) becomes mylivechat("identify", { user_id, email, name }). Field names are identical; just rename the global. Our SDK is at /assets/js/mlc-visitor-sdk.js.
Intercom('update', { user_id, email, name })
mylivechat("identify", { user_id, email, name })
/assets/js/mlc-visitor-sdk.js
Lots of teams keep Intercom live for the first 24 hours alongside MyLiveChat to compare conversation quality. Once you're satisfied, downgrade Intercom to their free plan first (preserves your transcripts), then cancel after 30 days.
If you only used Zendesk for chat (and not the ticket / call / email channels), MyLiveChat replaces the whole stack. If you're keeping Zendesk Support for tickets, you can run our chat alongside — webhooks bridge any chat handoff into a Zendesk ticket on demand.
If you have Zendesk Guide articles to migrate: GET /api/v2/help_center/articles.json. Same shape as the Intercom command above — pipe through jq to combined markdown.
GET /api/v2/help_center/articles.json
jq
Bulk importer handles it. Note: Zendesk articles are HTML, so use a converter like turndown or pandoc to convert HTML → markdown first.
turndown
pandoc
$ pandoc -f html -t markdown article.html -o article.md
Zendesk Chat triggers → MyLiveChat Smart Triggers. Operating-hours from Zendesk → our Operating Hours page (timezone settings carry over).
If keeping Zendesk Support for tickets: add a webhook subscription on the handoff event. Your receiver creates a Zendesk ticket when MyLiveChat hands off. Your team works in two consoles but the data flows are wired.
handoff
Standard install. Cancel Zendesk Chat seat-by-seat as agents are onboarded onto MyLiveChat — Zendesk allows partial-month proration on most plans.
Drift's main asset is the Playbook library. List every active Playbook (their proactive bot scripts). Most map to Smart Triggers with a pre-written message.
If you used Drift's Help integration: their API at https://driftapi.com returns articles as JSON. Convert to markdown with the same jq pipe pattern shown for Intercom.
https://driftapi.com
For each Playbook, create a Smart Trigger with the matching URL/timing condition + the playbook's opening message as the trigger message. The starter-pack templates cover most common patterns.
Drift's inline Calendly-style booking doesn't migrate directly. Easiest path: paste your Calendly / Cal.com link into a Smart Trigger message and let visitors book from there. Or use a webhook to fire your existing booking flow.
Drift's drift.identify(user_id, attrs) becomes mylivechat("identify", { user_id, ...attrs }). Same pattern as Intercom — rename the global, payload shape is compatible.
drift.identify(user_id, attrs)
mylivechat("identify", { user_id, ...attrs })
Drift contracts are typically annual. Mark your renewal date and time the migration so you don't pay for an unused year. Their cancellation is by talking to the CSM.
Past chat transcripts stay locked in your old platform. We can store new transcripts as of switch-over date, but historical data needs to live on at the old vendor (or be exported to CSV first).
Returning visitors will be treated as anonymous on first contact after switch — they'll need to re-identify (give email, etc.) once. Mitigate with the SDK identify() call from your authenticated app session.
Your AI bot is only as good as your KB. Import all your articles BEFORE switching the script tag — otherwise visitors hit a half-trained bot for the first hour.
If your Slack / CRM / email systems were wired to your old platform's webhooks, point them at our webhook subscriptions. Payload shapes differ — have your dev team review one delivery before going live.
No automatic export from any of the four platforms. Plan an hour to copy-paste your top 10-20 saved replies into the Saved Replies page. The rest can be added as needed.
Never cancel your old plan before sending one full real-world chat through MyLiveChat end-to-end (visitor → agent reply → email transcript → webhook fired). Hold the old plan open as a fallback for at least one full day.
We built these specifically because every team migrating from a competitor was hitting the same walls.
Paste a giant blob of markdown with documents separated by ---. Frontmatter for title / category / status. Idempotent on re-import.
One click pulls your legacy AI training rows into the new KB Articles store. Backwards-compatible — old + new both feed the AI bot.
mylivechat("identify", {...}) — same shape as Intercom / Drift / Crisp identify calls. Find-replace usually does it.
mylivechat("identify", {...})
HMAC-signed outbound events with retry queue + delivery log. Bridge into your existing Slack / Salesforce / email tooling without rewriting your receivers.
Free 30-min migration call for any team switching from a paid plan. We'll review your current setup, plan the import order, and watch the first chat go through together.
Real-time messaging, agent console, smart triggers.
Grounded in YOUR knowledge base. Smart handoff to humans.
Public help center + AI training data, in one editor.
Free plan available. Migration support included. Your old vendor doesn't have to know you're testing yet.