关于 migrate-from-intercom
migrate-from-intercom 是协助将代码库从 Intercom 迁移到 Gleap 的技能,适用于需要替换客户端 SDK、服务端 API 或两者的项目。它通过平台映射文件指导检测、代码替换、配置清理和迁移验证。
主要功能
- 01检测 Intercom 集成位置
- 02按平台读取迁移映射
- 03替换客户端 SDK 与 API 调用
- 04迁移服务端 REST API
- 05清理配置并验证残留引用
适用场景
- 01将 Web 或移动端 SDK 换为 Gleap
- 02迁移服务端 Intercom API 调用
- 03检查多平台项目的迁移范围
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ gleapsdk/ agent-skills --skill migrate-from-intercom安装后在 Claude Code 中输入/migrate-from-intercom确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
mapping-android.mdmapping-flutter.mdmapping-ios.mdmapping-javascript.mdmapping-react-native.mdmapping-server-api.md详细介绍
从 Intercom 迁移到 Gleap
指导用户在代码库中用 Gleap 替换 Intercom。涵盖客户端 SDK 替换和服务端 API 迁移。
检测 Intercom
搜索代码库,查找 Intercom 集成。使用 Grep 查找:
包引用
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
代码模式(客户端 JavaScript — 适用于所有 Web 框架)
- 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 - 服务端:
intercom-client、intercom-php、intercom-ruby、intercom-go、intercom-java、Intercom.Dotnet
继续之前,向用户报告所有发现。
API Key 解析
在向用户索取 Gleap API key 之前,按以下顺序检查这些位置:
- 用户在对话中已提供 — 直接使用
- 项目根目录中的
.env文件 — 查找GLEAP_API_KEY=... - 环境变量 — 通过
echo $GLEAP_API_KEY检查是否已设置GLEAP_API_KEY - 未找到 — 询问用户(可在 https://app.gleap.io > Project Settings > Security > API Key 获取)
找到或收到 key 后,询问是否将其保存到 .env(并在需要时将 .env 添加到 .gitignore)。
工作流
- 检测 Intercom:使用上述模式。报告受影响的平台和文件。
- 确认范围:与用户确认要迁移的部分(客户端 SDK、服务端 API,或两者)。
- 解析 Gleap API key:按照上述 API Key 解析步骤操作。
- 读取映射文件:从此技能目录中读取与检测到的平台对应的文件。
- 移除 Intercom SDK:卸载包、移除脚本标签、删除导入和配置。
- 安装 Gleap SDK:按照映射文件中的安装步骤操作(或在已安装时参考
gleap-sdk-setup技能)。 - 替换 API 调用:使用映射表将每个 Intercom 调用转换为对应的 Gleap 调用。在初始化代码中使用已解析的 API key。
- 迁移服务端代码(如适用):将 Intercom REST API 调用替换为 Gleap REST API 调用。参见
mapping-server-api.md。 - 清理:移除 Intercom 专属配置(API key、应用 ID、
intercomSettings、推送通知处理程序)。 - 验证:构建并运行项目。搜索是否还存在
intercom引用。
映射文件
根据检测到的平台读取相应文件:
- JavaScript / Web:
mapping-javascript.md— 也适用于所有服务端 Web 框架(Laravel、Django、Rails、ASP.NET、Spring Boot、Phoenix 等),因为它们的客户端都使用 JavaScript SDK - iOS(Swift / Objective-C):
mapping-ios.md - Android(Kotlin / Java):
mapping-android.md - React Native:
mapping-react-native.md - Flutter:
mapping-flutter.md - 服务端 REST API:
mapping-server-api.md
对于使用多个平台的项目,请读取所有相关文件。常见组合包括:
- Web 框架 + 服务端 SDK(例如,Laravel 配合
intercom-php、Rails 配合intercom-ruby):客户端使用mapping-javascript.md,服务端使用mapping-server-api.md - React Native + 服务端 API:使用
mapping-react-native.md和mapping-server-api.md
重要说明
- Intercom 使用
app_id+api_key(iOS/Android 各自使用不同的值)。Gleap 的每个项目使用一个 API 密钥,可从 https://app.gleap.io 获取 - Intercom 的
boot()将初始化与用户身份识别合并在一起。在 Gleap 中,这两个步骤是分开的:先调用initialize(),再调用identify() - Intercom 的
shutdown()等同于 Gleap 的clearIdentity() - Intercom 的
update()等同于 Gleap 的updateContact() - Intercom 自定义用户属性映射到 Gleap 的
customData对象(最多 35 个键,且仅限原始类型) - Intercom 公司数据映射到
identify中的 GleapcompanyId+companyName字段 - Gleap 没有直接对应功能的特性:产品导览(
startTour)、工单视图(showTicket)、新闻条目(showNews)。请告知用户,这些功能需要采用其他方案 - 服务端:Intercom REST API 使用
Bearer令牌身份验证。Gleap 使用Api-Token标头(旧版)或Bearer+Project标头(v3 API)
评论
支持 Markdown