Migrate from Intercom on iOS
Move new conversations to Jake gradually while keeping Intercom as rollback
Migrate from Intercom
TL;DR: Dual-provider setup. New conversations route to Jake for an internal cohort. Intercom stays as fallback. Never move a conversation after it starts.
The rule
Once a conversation starts with a provider, it stays there. This migration controls where new conversations begin.
1. Audit
Search for import Intercom, Intercom., ICMUserAttributes, etc. Classify each as: converted, retained during rollout, or launch blocker.
2. Install
Add https://github.com/EthanQuarry/jake-ios.git. Link SupportAdapterKit, JakeSDK, and IntercomSupportAdapter.
3. Issue both credentials
Your backend returns:
- Short-lived Jake session
- Intercom JWT
- Same stable customer ID for both
4. Select provider
Call Jake's provider-selection endpoint before starting a session. Fall back to Intercom if unavailable.
POST https://app.tryjake.ai/v1/sdk/provider-selection5. Present through the coordinator
let support = SupportCoordinator()
try support.register(JakeSupportProvider(...))
try support.register(IntercomSupportProvider(...))
// refresh selection, fall back to intercom, start session, present
try await support.present()See the full code example for the complete coordinator setup.
Roll out
- Keep Intercom as fallback
- Route internal users to Jake first
- Verify: identity, send, unread, push, logout, handoff
- Expand cohort only after checks pass
- Remove Intercom only when active conversations reach zero
If Jake fails before a conversation starts, use Intercom. If production gets worse, default new conversations back to Intercom.
Next: Go-live checklist →
