ManyChat 与 Zapier → amoCRM:让 Instagram 与 WhatsApp 的询盘即时变成交易
2026年9月23日
要点。为了不让 Instagram 与 WhatsApp 的询盘在聊天机器人和 CRM 之间丢失,可以直接从 ManyChat 流程或 Zapier 场景把它们发送到 amoCRM。最可靠的做法是一个小型网关:一次请求同时创建交易、联系人与来源标签。下面介绍我们在 2024 年为一位客户搭建此类网关的方式,以及遇到的坑。
任务
广告把用户引到 Instagram Direct 和 WhatsApp,由 ManyChat 机器人接待;另有一部分询盘通过 Zapier 从表单进入。销售在 amoCRM 中工作,每条询盘都必须作为交易出现在那里——带姓名、电话和清晰的来源,方便营销人员看到哪条广告有效。
网关的结构
- 三个入口。为 Zapier、WhatsApp 中的 ManyChat 与 Instagram 中的 ManyChat 分别设置地址:每个来源格式不同——Zapier 是表单数据,ManyChat 是字段名各异的 JSON。
- 统一的规范化函数。姓名、电话与标签被整理成统一格式;没有姓名时联系人命名为“联系人+电话”,没有标签时写入 default。
- 来源标签放在请求头中。每个 ManyChat 流程发送自己的标签,因此 amoCRM 中能看出用户来自哪条广告。
- 一次请求代替三次。amoCRM v4 API 的 leads/complex 方法一次调用即可创建交易、联系人与标签——即使后续请求失败,也不会留下“孤立”的联系人。
容易踩的坑
- 请求头中的西里尔字母。HTTP 请求头历来按 ISO-8859-1 解析,因此“Реклама_март”这样的标签会变成乱码。需要把值从 Latin-1 重新解码为 UTF-8——只需一行代码,否则 CRM 中的来源将无法辨认。
- 即使数据有误也返回 200。如果对缺少电话的询盘返回错误,ManyChat 或 Zapier 会不断重试。网关会把这类询盘写入日志并返回 200。
- amoCRM 令牌。OAuth 访问令牌有效期为一天;必须用 refresh 令牌续期,而不是重复使用授权码——否则集成会在一天后悄悄停止工作。
如果今天来做
2024 年的网关完成了任务,但今天我们会再加上:创建联系人前按电话查重以避免重复、在 Webhook 地址中加入密钥、在 amoCRM 暂时不可用时使用重试队列,并遵守每个集成每秒不超过 7 次请求的限制。我们后来的 amoCRM 集成都是这样设计的——例如线索来源报表。
来源
本文借助人工智能根据上方所列来源撰写。如发现不准确之处,请发送邮件至 info@105.kz。