Migrate from Intercom to Gleap
Guides users through replacing Intercom with Gleap in their codebase. Covers client-side SDK swap and server-side API migration.
Detect Intercom
Search the codebase for Intercom integration. Use Grep to find:
Package references
package.json:@intercom/messenger-js-sdk,intercom-client,@intercom/intercom-react-nativePodfile:pod 'Intercom'build.gradle:io.intercom.android:intercom-sdkpubspec.yaml:intercom_fluttercomposer.json:intercom/intercom-phpGemfile:intercom-rails,intercom-ruby
Code patterns (client-side JavaScript — used by ALL web frameworks)
- JavaScript:
Intercom(,window.intercomSettings,widget.intercom.io,@intercom/messenger-js-sdk - iOS:
import Intercom,Intercom.setApiKey,Intercom.loginUser - Android:
import com.intercom,Intercom.initialize,Intercom.client() - React Native:
import Intercom from '@intercom/intercom-react-native',IntercomModule - Flutter:
import 'package:intercom_flutter',Intercom.instance - Server:
intercom-client,intercom-php,intercom-ruby,intercom-go,intercom-java,Intercom.Dotnet
Report all findings to the user before proceeding.
API Key Resolution
Before asking the user for their Gleap API key, check these locations in order:
- User provided it in the conversation — use it directly
.envfile in the project root — look forGLEAP_API_KEY=...- Environment variable — check if
GLEAP_API_KEYis set viaecho $GLEAP_API_KEY - Not found — ask the user (available at https://app.gleap.io > Project Settings > Security > API Key)
When a key is found or provided, offer to save it to .env (and add .env to .gitignore if needed).
Workflow
- Detect Intercom using the patterns above. Report which platforms and files are affected.
- Confirm scope with the user: which parts to migrate (client SDK, server API, or both).
- Resolve Gleap API key using the API Key Resolution steps above.
- Read the mapping file for the detected platform from this skill's directory.
- Remove Intercom SDK: Uninstall packages, remove script tags, delete imports and configuration.
- Install Gleap SDK: Follow the installation steps from the mapping file (or reference the
gleap-sdk-setupskill if installed). - Replace API calls: Use the mapping tables to convert every Intercom call to its Gleap equivalent. Use the resolved API key in initialization code.
- Migrate server-side code if applicable: Replace Intercom REST API calls with Gleap REST API calls. See
mapping-server-api.md. - Clean up: Remove Intercom-specific config (API keys, app IDs,
intercomSettings, push notification handlers). - Verify: Build and run the project. Search for any remaining
intercomreferences.
Mapping Files
Read the appropriate file based on detected platform:
- JavaScript / Web:
mapping-javascript.md— also applies to all server-side web frameworks (Laravel, Django, Rails, ASP.NET, Spring Boot, Phoenix, etc.) since they all use the JavaScript SDK on the client side - iOS (Swift / Objective-C):
mapping-ios.md - Android (Kotlin / Java):
mapping-android.md - React Native:
mapping-react-native.md - Flutter:
mapping-flutter.md - Server-side REST API:
mapping-server-api.md
For projects using multiple platforms, read all relevant files. Common combinations:
- Web framework + server SDK (e.g., Laravel with
intercom-php, Rails withintercom-ruby): Usemapping-javascript.mdfor client-side andmapping-server-api.mdfor server-side - React Native + server API: Use
mapping-react-native.mdandmapping-server-api.md
Important Notes
- Intercom uses
app_id+api_key(separate for iOS/Android). Gleap uses a single API key per project from https://app.gleap.io - Intercom's
boot()combines initialization + user identification. In Gleap, these are separate:initialize()thenidentify() - Intercom's
shutdown()= Gleap'sclearIdentity() - Intercom's
update()= Gleap'supdateContact() - Intercom custom user attributes map to Gleap's
customDataobject (max 35 keys, primitives only) - Intercom company data maps to Gleap's
companyId+companyNamefields in identify - Features without direct Gleap equivalent: product tours (
startTour), tickets view (showTicket), news items (showNews). Note these to the user as requiring alternative approaches - Server-side: Intercom REST API uses
Bearertoken auth. Gleap usesApi-Tokenheader (legacy) orBearer+Projectheaders (v3 API)