用途:帮助开发者搭建 Pipedrive webhook 接收端点,完成认证、事件解析与调试,适用于处理 CRM 事件(如交易、联系人、活动变更)的场景。
认证方式:Pipedrive 不对 webhook 签名,没有 HMAC 或签名头,也不符合 Standard Webhooks。安全依赖 HTTP Basic Auth:创建 webhook 时设置 http_auth_user / http_auth_password,Pipedrive 每次投递都会带 Authorization: Basic <base64(user:pass)> 头。端点必须使用 HTTPS,不支持自签名证书。校验时建议对用户名和密码分别做定时安全比较(先比较长度,因为 timingSafeEqual 对长度不等的缓冲区会抛错),并注意密码可能包含冒号,需按第一个冒号拆分。
事件格式:v2 事件类型为 action.entity(如 create.deal)。payload 不含合并字符串,需由 meta.action 与 meta.entity 拼接,例如 change.person。action 有 create、change、delete、*(通配,订阅全部);entity 有 activity、deal、lead、note、organization、person、pipeline、product、stage、user 等。常见事件:create.deal、change.deal、delete.deal、change.person、create.activity。
payload 结构:meta 含 action、entity、entity_id、version;data 为对象当前状态(delete 时为 null);previous 在 change 时仅含变更字段,delete 时为最后状态,create 时为 null。
用法:环境中设置 PIPEDRIVE_WEBHOOK_USER 与 PIPEDRIVE_WEBHOOK_PASSWORD;若需通过 API 注册 webhook,还需 PIPEDRIVE_API_TOKEN 与 PIPEDRIVE_SUBSCRIPTION_URL。本地开发可用 npx hookdeck-cli listen 3000 pipedrive --path /webhooks/pipedrive 启动隧道。完整处理器示例见 examples/express/、examples/nextjs/、examples/fastapi/。
限制与建议:Pipedrive 最多重试 4 次,处理需幂等;建议按“先认证、再解析、后幂等处理”的顺序。可配合 webhook-handler-patterns 技能了解处理顺序、幂等、错误处理与重试。其他具体细节暂未提供。