Jake

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-selection

5. 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

  1. Keep Intercom as fallback
  2. Route internal users to Jake first
  3. Verify: identity, send, unread, push, logout, handoff
  4. Expand cohort only after checks pass
  5. 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 →

On this page