@faiber/faiber-crm (英语)
已输入CRM工作空间,管道,线索,交易,公司,联系人,团队,任务,活动,营销,报告和自动化读取.
npm install @faiber/faiber-crm
import { FaiberClient, MemoryTokenProvider } from "@faiber/sdk-core";
import { CrmApi } from "@faiber/faiber-crm";
const client = new FaiberClient("crm", {
domains: { crm: process.env.FAIBER_CRM_URL! },
tokenProvider: new MemoryTokenProvider(),
axios: { timeout: 15_000, withCredentials: true },
});
const api = new CrmApi(client);
const response = await api.listLeads({ q: "Acme", limit: 25 });
const leads = response.data.data.items;
const nextCursor = response.data.data.next_cursor;
// Use a distinct key for each intended mutation. A duplicate key returns 409.
const created = await api.createLead(
{ title: "Acme renewal", estimated_value: 50000, currency: "IRR" },
{ headers: { "Idempotency-Key": crypto.randomUUID() } },
);
await api.updateLead(created.data.data.id,
{ version: created.data.data.version, score: 80 },
{ headers: { "Idempotency-Key": crypto.randomUUID() } },
);
配置的境内流离失所者代号提供者转发了熊鼠授权; withCredentials 启用安全 Http Only cookie 会话, 支持部署。 将浏览器符号保存在内存 。 每个行动的JSDoc都规定了当地许可规则; crm:admin 绕过现代的CRM处理器检查,否则列出的权限就是替代权限. 仅凭作用并不能使数据进入。 部署认证和网关隔离必须分别配置。 遗产调查处没有地方授权警卫.
该软件包通过 92 个挂载的 HTTP 操作 api.operations,包括单数/多元工作流程相容路线,健康/准备状态和两个明确API未找到的边界. 简洁方法 api 涵盖共同工作流程。 来源覆盖范围不能证明当地执行或网关政策。 分开 /mcp 摘要-证据挂载使用 RMCP 协议并签名的即时运行赠款;在此软件包中它不是一个打入的 REST 业务操作. 静态仪表板资产使用服务器前端倒置.
大部分商业路线回归 { data, meta: { request_id } }. 保健、准备就绪和办公室检查使用情况 { status, message, data }; 当数据库或经纪人无法使用时, 准备返回 HTTP 503 . listLeads, (中文(简体) ), listLightLeads,以及 getLead 返回无效 profile, (中文(简体) ), creator, (中文(简体) ), owner, (中文(简体) ), course, (中文(简体) ), classroom,以及 term 总结. listTasks 返回无效 profile, (中文(简体) ), creator,以及 assignee创建/更新和董事会答复保留其赤裸裸的记录合同。 缺少链接, 上游数据或 LMS 读取权限生成无效摘要而不删除 CRM 记录 。 列表返回 {items,next_cursor} 内部数据,带有分级 cursor 财务报告和审定财务报表 limit (默认50,夹住1-100). 铅 statuses 是逗号分隔的。 自定义线索排序仍然比较使用 UUID 光标 id > cursor,因此它不是一个时间顺序的光标保证。 工作流程/节点/工作日志集合返回数组;工作流程和节点列表包括不活跃的非删除行.
文件的变异 Idempotency-Key 需要非空信头最多128个字符。 关键字表示提交材料,重复提交材料返回409;它们不重复成功的答复。 公司/联系人/领导/交易更新、阶段/任务更新、任务状况、团队删除和管道/工作空间补丁使用一个版本。 工作流程更新接受版本但不执行,节点更新没有版本字段. 普通可选补丁无效保存值 。 工作流程 team_id, (中文(简体) ), hint, (中文(简体) ), actions 和节点 sla_minutes, (中文(简体) ), actions 区分省略的值和清除字段的显空值。 记录任务取代两个所有者/团队;省略了ID清除.
删除的有效载荷按路线不同:大多数返回 {id,deleted:true}兼容性 DELETE /workflow-node/{id} 返回时 true中,团队成员删除返回已停用的成员,并重排者删除返回 {lead_id,deleted:number}。团队删除也会解析活动记录和工作流程任务。 使用特定路由命名类型.
广泛 JSON 是故意的 Rust 模型存储任意值:工作空间 settings; 连 address编号 :custom_data; 联系人 consent编号 :custom_data; 牵头/交易 custom_data; 管道获得旗帜/行动; 节点行动; 活动/运动元数据; 审计历史事件数据; 持久工作结果; 报告人工智能解释和确定性摘要; 遗留的办公室旗帜/指定标识/元数据。 配置文件首/后名是可选远程 JSON 值 。 这些领域仍为JSON安全,而不是暗示有固定的计划。 工作流程行动定义本身是具有内部/外部种类的具体输出对象.
所有调用都保留完整的Axios响应,包括信头,状态和请求上下文. 最后请求选项支持超时、截取器、适配器、证书和 AbortSignal. Axios拒绝认证(401),许可(403),缺失记录(404),版本/理想冲突(409),验证(422),准备(503)以及默认运输故障.
try {
await api.getOverview(undefined, { signal: AbortSignal.timeout(5_000) });
} catch (error) {
// Axios errors retain response.status and the backend error body.
}
API没有找到的诊断 operations.routerApiNotFoundAny(method) 财务报告和审定财务报表 operations.routerApiPathNotFoundAny("obsolete/items", method) 返回结构为404而不修改客户关系管理数据。 头部没有躯体,CORS可以空出200来回答选择. 故意诊断、供应 validateStatus 并检查一个尸体。 Wildcard诊断拒绝注册的API路径, transversal, % 逃出,查询/分解语法和回击本地. CONNECT需要一种具有明确隧道能力的Axios适配器.
使用 @faiber/faiber-ts-sdk 来配置多个 Faiber 服务.
嵌入式铅信息
const { data: { data: page } } = await api.listLightLeads({ limit: 25 });
for (const lead of page.items) {
console.log(lead.profile?.first_name, lead.creator?.phone);
console.log(lead.course?.name, lead.classroom?.name, lead.term?.title);
console.log(lead.classroom?.current_session, lead.classroom?.total_sessions);
}
直接使用返回的对象; 不覆盖 profile 与 null 或每条线索发布一个剖面图/LMS请求. term 是 LMS 课程类别,课程持续时间是无效的字符串。 后端既解决了UUID,又解决了元数据中遗留的数值LMS链接. 课程和课堂摘要还需要打电话者 lms:course:read 财务报告和审定财务报表 lms:classroom:read 权限; 客户关系管理权限不能取代这些 LMS 授权。 现有的无记名/cookie认证,取消信号和Axios响应元数据适用不变.
导出类型包括: CrmLead, (中文(简体) ), CrmProfileSummary, (中文(简体) ), CrmCourseSummary, (中文(简体) ), CrmClassroomSummary, (中文(简体) ), CrmTermSummary,以及 CrmTaskView。 。 。 . CrmLeadRecord 财务报告和审定财务报表 CrmTask 仍然是赤裸裸的突变模型。 通过完整的SDK,使用同样的方法 faiber.crm 类别 CrmService。 。 。 .