About migrate-from-intercom
migrate-from-intercom is a skill for replacing Intercom with Gleap in a codebase, covering client SDKs, server APIs, or both. Platform-specific mapping files guide detection, code replacement, configuration cleanup, and migration verification.
Key features
- 01Detect Intercom integration points
- 02Use platform-specific migration maps
- 03Replace client SDKs and API calls
- 04Migrate server-side REST APIs
- 05Clean configuration and verify references
Use cases
- 01Replace a web or mobile SDK with Gleap
- 02Migrate server-side Intercom API calls
- 03Review migration scope in multi-platform projects
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ gleapsdk/ agent-skills --skill migrate-from-intercomAfter installing, type/migrate-from-intercomin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
mapping-android.mdmapping-flutter.mdmapping-ios.mdmapping-javascript.mdmapping-react-native.mdmapping-server-api.mdDetails
From the project READMEMigrate 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)