用途:优化 Intercom API 成本,核心不是 API 本身收费,而是减少请求量以降低基础设施成本并避免触及限流(10K 请求/分钟)。
主要能力:
- 审计 API 用量:用 IntercomUsageTracker 统计各端点调用次数与平均延迟,估算请求速率。
- Webhook 替代轮询:例如订阅 conversation.user.created 等主题,用 app.post("/webhooks/intercom", ...) 处理,替代每 30 秒轮询(约 2,880 请求/天)。
- 缓存联系人查询:用 lru-cache 包装 contacts.find,TTL 约 10 分钟,并通过 contact.updated Webhook 失效缓存。
- 用搜索代替列表+过滤:contacts.search / conversations.search 单次最多返回 150 条过滤结果。
- 批量会话查询:用一次带过滤的 conversations.search 替代逐 ID 查找。
- 请求预算监控:RequestBudgetMonitor 在 80% 告警、95% 硬停,防止 429。
使用方式:需 Intercom workspace 访问令牌、Node/TypeScript Intercom 客户端,安装依赖 npm install lru-cache,并准备可接收 Webhook 的公开 HTTPS 端点。建议先做用量审计,再优先替换轮询,最后加缓存与预算保护。
适用场景:集成调用频繁、存在轮询或大量 list+过滤、接近限流上限的项目。
限制:资料未提供具体价格数值、完整代码实现细节、各步骤耗时或效果保证;缓存过期、搜索过慢等问题需按表处理。