Botpress Docusign 集成实战:用 AI Agent 自动化电子签名与文档工作流
AI 应用后端【免费下载链接】botpressThe open-source hub to build deploy GPT/LLM Agents ⚡️项目地址https://gitcode.com/gh_mirrors/bo/botpress点击查看免费下载本文以仓库内 integrations/docusign/hub.md 为核心骨架系统讲解在 Botpress开源 GPT/LLM Agent 构建与部署平台中集成 Docusign 的能力与价值如何用 AI 自动化文档工作流、生成智能分析、抽取合同关键数据并增强安全防护并深入该集成在仓库中的真实实现——从 integration.definition.ts 的能力声明、OAuth 与 Sandbox 配置、sendEnvelope动作到 Webhook 事件回传与 HMAC 验签的完整链路。读完后你将掌握该集成的配置要点、底层工作原理与在 Botpress 生态中的接入方式。一、在 Botpress 中集成 Docusign 能做什么Docusign 是全球领先的电子签名与协议管理平台允许企业在安全的数字环境中准备、签署、执行和管理协议。在 Botpress 中接入 Docusign 后AI 能力可以叠加到电子签名流程上释放四大类能力对应 hub.md 原文1. 自动化文档工作流借助 AIDocusign 中诸如签署、发送提醒、跟踪状态等日常文档流程可以被自动化节省时间、减少人工操作。在仓库实现中这一能力由sendEnvelope动作直接承担——Bot 只需提供模板 ID 与收件人信息即可自动发送待签署的封套Envelope而签署状态的跟踪则由 Webhook 事件完成形成发送 → 提醒 → 完成的自动化闭环详见下文动作与事件两节。2. AI 驱动的分析将 Docusign 与 AI 分析工具集成可以监控文档表现、从合同数据中获得洞察并优化工作流效率为决策提供依据。Docusign 集成产生的每一次事件发送、重发、完成、拒绝、作废都会以结构化 payload 进入 Botpress 事件系统Bot 可以在此基础上结合 LLM 对合同数据、签署行为做进一步分析与汇总。3. 智能数据抽取利用机器学习自动从文档中抽取关键信息减少错误、加快数据处理速度。集成通过envelopeSent、envelopeCompleted等事件把userId、accountId、envelopeId、triggeredAt等字段结构化传给 Agent后续可由 LLM 对信封内容进行抽取与加工。4. 增强安全措施通过 AI 驱动的安全能力加强对敏感文档的保护、检测欺诈活动并确保符合行业标准。集成本身在安全层面也做了扎实的工程化OAuth 令牌管理、密钥Secrets隔离以及 Webhook 的 HMAC 签名校验详见下文这些都为上层 AI 安全分析提供了可信的数据管道。二、集成带来的具体业务收益根据 hub.md将 AI 引入 Docusign 后组织可以自动化文档处理用 AI 自动完成文档的准备与分发让团队专注更有战略价值的工作生成洞察分析文档数据为业务战略与规划生成可执行的洞察实时语言处理即时处理并翻译文档内容为多种语言支撑全球化运营欺诈检测识别异常模式预防文档交易中的欺诈行为工作流优化基于上下文与优先级自动分配、更新、跟踪文档任务。需要说明的是以上收益是集成能力与上层 Agent 逻辑共同作用的结果——仓库中该集成本身提供的是能力底座发送信封 事件回调而翻译、欺诈检测、任务分配等智能行为由 Botpress 中的 BotAgent在动作与事件之上编排实现。三、Docusign 是什么以及相关的 AI 集成Docusign 是一个领先的电子签名与协议平台企业可在安全的数字环境中准备、签署、操作和管理协议。将其接入 AI 后可叠加自动化、安全与数据洞察能力。仓库内与本集成常搭配使用的相关集成还包括Salesforce 集成Gmail 集成Zapier 集成PDF 生成器集成HubSpot 集成这些集成都位于仓库integrations/目录下可组合成生成 PDF → 发起签署 → 回写 CRM的完整 AI 业务流程。四、仓库中的真实实现从能力声明到底层代码hub.md 描述的是集成对外展示的能力而仓库源码则完整呈现了这些能力如何落地。该集成当前版本为2.1.3名称docusign类别归属Business Operations业务运营其能力声明集中在 integration.definition.tsexport default new IntegrationDefinition({ name: docusign, title: Docusign, version: 2.1.3, readme: hub.md, icon: icon.svg, description: Automate document workflows, generate intelligent insights, enhance security measures, and improve user experience., ... })1. 配置体系Secrets、可选账号与 Sandbox密钥Secrets。集成依赖 7 个运行时密钥见 integration.definition.tsSecret用途OAUTH_BASE_URLOAuth 认证使用的 Base URL生产环境CLIENT_ID发起 OAuth 流程的唯一标识CLIENT_SECRET建立与刷新 OAuth 认证的密钥SANDBOX_OAUTH_BASE_URLSandbox 环境 OAuth Base URLSANDBOX_CLIENT_IDSandbox 环境客户端标识SANDBOX_CLIENT_SECRETSandbox 环境客户端密钥WEBHOOK_SIGNING_SECRET校验 Docusign Webhook 请求 payload 的签名密钥配置项。集成允许在配置中可选地指定 API Account IDdefinitions/configuration.tsexport const configurationSchema z.object({ accountId: z .string() .optional() .title(API Account ID (Optional)) .describe( The docusign user\s API Account ID (This is a GUID that is found in Apps Keys)\nThe default account will be selected if left empty ) .placeholder(e.g. a1b2c3d4-e5f6-g7h8-i9j0-d4c3b2a1), })留空时自动选用用户的默认账号指定时则精确匹配该账号。从源码看账号选择逻辑位于 auth-utils.ts显式指定时在用户账号列表中查找并校验归属未指定时优先取is_default账号否则取列表首个账号。Sandbox 配置。集成同时声明了sandbox子配置integration.definition.ts用于对接 Docusign 开发者沙箱环境并使用独立的 OAuth 密钥与单独的标识链接模板linkTemplateSandbox.vrl便于开发期与生产隔离。2. OAuth 认证与令牌生命周期集成采用 OAuth 2.0 认证认证入口在 handler.ts当请求路径为/oauth时解析code参数并调用exchangeAuthCodeForRefreshToken完成授权码换令牌若回调带error参数则记录错误并跳转到失败页。令牌的换取与刷新由 DocusignAuthClient 负责以Basic方式携带clientId:clientSecret向/oauth/token端点提交表单数据支持authorization_code与refresh_token两种 grant type由于 Docusign 不返回令牌签发时间戳源码在请求前记录tokenRequestedAt用tokenRequestedAt expires_in * 1000精确推算expiresAt毫秒级 Unix 时间戳认证客户端会根据configurationType自动选择生产或 Sandbox 的密钥与 Base URLcase sandbox/case null。令牌与账号状态存储在集成级 State 中integration.definition.tsconfiguration状态保存refreshToken、accessToken、tokenType、expiresAtaccount状态保存id、baseUriDocusign API Base URI、refreshAt。刷新策略auth-utils.ts值得一提访问令牌在到期前 5 分钟OAUTH_TIMEOUT_BUFFER即触发刷新避免令牌过期导致请求失败账号信息默认每24 小时ACCOUNT_REFRESH_AFTER刷新一次只有显式指定accountId时才固定账号、不自动轮换。3.sendEnvelope动作一次调用完成签署发起集成对外暴露唯一动作sendEnvelope发送封套/文档给收件人签署其输入输出 schema 定义在 definitions/actions.ts输入字段类型说明templateIdstring必填信封模板 IDrecipientsarray至少 1 项收件人列表每项含name、email、role模板中定义的角色关键字、可选accessCode访问码emailSubjectstring可选信封邮件主题留空回退到模板默认主题conversationIdstring可选会话 ID占位符{{ event.conversationId }}输出为envelopeId已发送信封的 ID。动作实现src/actions/send-envelope.ts先调用 helpers.ts 把输入转换为 Docusign 的EnvelopeDefinitionexport const sendEnvelopeInputToEnvelopeDefinition (input: SendEnvelopeInput): docusign.EnvelopeDefinition { const { emailSubject, templateId, recipients, conversationId } input return { emailSubject, templateId, templateRoles: recipients.map(_createTemplateRecipient), status: sent, customFields: { textCustomFields: [ { name: CONVERSATION_ID_FIELD_KEY, // Botpress-Conversation-ID value: conversationId, show: false, }, ], }, } }这里有两个关键设计收件人映射为 DocusignTemplateRoleemail、name、roleName、accessCode。需要留意 schema 注释中的提示添加模板中未定义角色的额外收件人时其角色会默认为signer签署人通过自定义文本字段Botpress-Conversation-ID常量见 src/config.ts把 Botpress 会话 ID 写入信封这样后续 Webhook 回传时能反查来源会话见下一节。底层 API 调用在 DocusignClient 中完成基于账号baseUri构造{baseUri}/restapi/v2.1的 axios 客户端以Authorization: {tokenType} {accessToken}鉴权POST /accounts/{accountId}/envelopes发送信封若响应缺少envelopeId或调用失败会包装为RuntimeError抛出便于 Bot 侧感知失败。4. 事件与 Webhook签署状态的实时回传集成声明了 5 类信封事件integration.definition.ts对应 Docusign 签署流程的关键节点事件触发时机envelopeSent信封已发送给收件人待签署envelopeResent通过控制台重发信封envelopeCompleted所有收件人完成签署envelopeDeclined收件人拒绝签署envelopeVoided发送方作废信封事件 payload 结构统一definitions/events.tsuserId、accountIdAPI Account IDGUID、envelopeId、triggeredAt触发时间ISO 8601 日期时间字符串。Webhook 处理链路依次为handler.ts验签读取请求头x-docusign-signature-1用WEBHOOK_SIGNING_SECRET对原始 body 计算 HMAC-SHA256Base64再用crypto.timingSafeEqual常量时间比较防止时序攻击见 webhooks/utils.ts。验签失败直接拒绝不会进入后续解析解析校验 body 非空、JSON 可解析并用 zod schema 校验 payload 结构分发event-dispatcher.ts 根据事件类型envelope-sent/envelope-resent/envelope-completed/envelope-declined/envelope-voided分发到对应处理器未知类型记录警告并忽略回传event-handlers.ts 从信封摘要的自定义字段中取出Botpress-Conversation-ID作为conversationId调用createEvent把事件写入 Botpress 事件系统——这就是Webhook 事件与发起签署时的会话自动关联的实现机制。5. Webhook 生命周期管理Webhook 的注册与清理在集成生命周期中自动完成setup.tsregister刷新账号状态refreshAccountState→ 刷新 WebhookrefreshWebhooksunregister清理 WebhookcleanupWebhooks。refreshWebhooks会先删除指向同一webhookUrl的旧配置再调用createWebhook创建新的 Connect 配置。创建的 Webhook bodydocusign-api/utils.ts配置了相当完整的参数参数值含义configurationTypecustom自定义 Connect 配置urlToPublishTowebhookUrl事件发布目标地址deliveryModeSIM模拟同步投递模式requiresAcknowledgementtrue要求回调确认signMessageWithX509Certificatetrue使用 X509 证书签名消息includeHMACtrue启用 HMAC 签名配合验签envelopeEventsSent, Delivered, Completed, Declined, Voided订阅的信封事件eventsenvelope-resent, envelope-reminder-sent订阅的附加事件eventData.versionrestv2.1REST API 版本eventData.includeDatacustom_fields回传包含自定义字段用于读取Botpress-Conversation-ID此外当账号发生变更如自动轮换到新的默认账号时DocusignClient.create会顺带刷新 Webhook 指向保证事件不会因账号切换而丢失docusign-api/index.ts。五、如何查看、构建与使用该集成该集成位于仓库integrations/docusign/目录内包含能力声明integration.definition.ts、输入输出 schemadefinitions/、OAuth 客户端与 Webhook 处理实现src/、标识链接模板linkTemplate.vrl、linkTemplateSandbox.vrl以及集成图标icon.svg。本地构建与校验方式可从其 package.json 的 scripts 推断bp add -y bp build生成 Botpress 类型绑定并构建集成tsc --noEmitTypeScript 类型检查bp lint集成 lint 检查vitest --run运行测试。实际接入 Botpress 时你需要在 Botpress 中安装并配置该集成并在 Docusign 侧完成应用创建从 Docusign 的Apps Keys获取 API Account IDGUID与 OAuth 凭据分别填入配置项与CLIENT_ID/CLIENT_SECRET等密钥开发阶段可选用sandbox配置对接 Docusign 开发者沙箱并使用对应的SANDBOX_*密钥。随后在 Bot 工作流中调用sendEnvelope动作发起签署并订阅envelopeSent、envelopeCompleted等事件驱动后续 AI 处理——例如合同完成签署后自动触发 LLM 摘要、数据抽取或 CRM 回写。结语从 hub.md 的能力蓝图到仓库内 2.1.3 版本的完整实现可以看到 Botpress 的 Docusign 集成并非简单包装 API而是一个具备完整工程纵深的生产级集成OAuth 令牌的自动刷新与账号轮换、信封事件的 HMAC 验签与安全分发、通过Botpress-Conversation-ID实现签署事件 ↔ 发起会话的双向关联。对于希望把电子签名流程融入 AI Agent 工作流的团队这份集成提供了开箱即用的自动化底座只需在 Bot 层叠加分析、翻译、风控等智能逻辑即可构建出完整的AI 签署工作流。赞分享AI 应用后端【免费下载链接】botpressThe open-source hub to build deploy GPT/LLM Agents ⚡️项目地址https://gitcode.com/gh_mirrors/bo/botpress点击查看免费下载相关推荐Odoo合同自动化与电子签名集成企业数字化转型的终极指南Odoo合同自动化与电子签名集成企业数字化转型的终极指南 Odoo作为一款开源的企业资源规划ERP系统提供了强大的合同自动化工具和电子签名集成功能帮助企业应用后端电商Botpress Mintlify 集成用 AI Agent 自动创建与管理文档更新任务Create/Get Agent Jobs 实战指南Botpress Mintlify 集成用 AI Agent 自动创建与管理文档更新任务Create/Get Agent Jobs 实战指南 导读 本文介AI 应用后端o_proxy_server配置文件config.json完整详解upstream、location、rewrite等全部配置项一文讲透o_proxy_server配置文件config.json完整详解upstream、location、rewrite等全部配置项一文讲透 o_proxy_se后端API网关负载均衡创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考