API 参考

n8n 出站交付

当前推荐的 route-based n8n 交付模型,基于共享 n8n executor 与 webhook notify。

适用范围

本页描述的是当前推荐的 n8n 集成方式:把已复核的 Numora 文档,通过共享 n8n 执行器编排后写入下游系统。

示例中的首个 provider 仍然是 dynamics365

当前推荐模型

Numora 现在只保留两条正式交付路径:

  • workflow:由 Numora 内建执行
  • n8n executor + webhook notify:由共享 n8n webhook 做外部编排

如果你希望由 n8n 负责下游编排,请使用第二条路径。

不要再基于 delivery outbox polling 构建新集成。当前模型已经收敛为 route-based、webhook-driven。

配置边界

1. Admin Settings

Admin > Settings > Integrations 中统一配置共享 n8n 执行器:

  • shared webhook enabled
  • shared webhook URL
  • shared webhook secret

2. Connection Settings

每个租户继续在 Numora 中维护自己的下游连接。

对当前 Dynamics 场景,connection 还承载租户级交付参数,例如:

  • owner team name
  • attachment target

3. Delivery Routes

每条 route 决定文档最终走哪条交付路径:

  • workflow
  • n8n executor

当 route 选择 n8n executor 时,trigger mode 固定为 webhook。

推荐流程

  1. 文档在 Numora 中完成提取、复核和 finalized。
  2. 操作员或外部客户端调用 POST /v1/documents/{id}/dispatch
  3. Numora 解析该文档当前命中的 delivery route。
  4. 如果 route 使用 n8n executor,Numora 会先入队 webhook delivery,然后立即通知共享 n8n webhook。
  5. n8n 再从 Numora 回拉最新文档状态,并执行下游写入。
  6. 如果真正的下游写入发生在 Numora 管理路径之外,再调用 POST /v1/documents/{id}/delivery 记录最终结果。

运行时接口

Dispatch

使用:

  • POST /v1/documents/{id}/dispatch

请把 202 Accepted 理解为“已入队”,而不是“已完成”。

状态查询

使用:

  • GET /v1/documents/{id}

推荐状态解释:

  • reviewed:已确认、可交付
  • push_pending:已入队或仍在执行中
  • push_succeeded:最近一次交付已成功完成
  • push_failed:最近一次交付失败

文档结果

n8n 需要最新结构化结果时,使用:

  • GET /v1/documents/{id}/result

交付状态回执

只有当真正的下游写入发生在 Numora 管理路径之外时,才调用:

  • POST /v1/documents/{id}/delivery

该回执以 execution_id 做幂等。

Dataverse Session

如果 n8n 需要短期 Dynamics 会话、但不希望自行保存每个租户的 client secret,可调用:

  • POST /v1/dynamics/session

可靠性模型

当前推荐的 n8n 路径保留以下可靠性机制:

  • 入队后立即尝试 webhook notify
  • 首次 notify 失败后由 cron 接管重试
  • delivery callback 记录按 execution_id 幂等
  • 以文档状态作为最终完成面的 canonical surface

什么时候改用 workflow

以下情况更适合 workflow

  • 下游写入希望完全留在 Numora 内部
  • 希望由 Numora-managed workflow nodes 负责集成逻辑
  • 不需要 n8n 这层外部编排

相关页面