# @aglyn/plugins-outreach 中文文档

规范地址：https://npmcn.com/package/%40aglyn/plugins-outreach/

版本：1\.19\.0
npm 元数据更新时间：2026-11-07T14:01:17.984Z
中文译文更新时间：2026-11-05T23:27:43.182Z
软件包许可：Apache-2\.0

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40aglyn/plugins-outreach
原文对照：https://npmcn.com/package/%40aglyn/plugins-outreach/?lang=original
项目主页：https://aglyn.com/
源码仓库：https://github.com/aglyn/aglyn

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：4.9 MB，495 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：14 个
- peer 依赖：next ^16\.3\.3，react ^19\.2\.8，firebase ^13\.0\.0，@mui/material ^9\.3\.1，firebase-admin ^14\.3\.0
- 首次发布：2026-09-20T23:53:43.532Z
- 最新版本发布：2026-11-07T14:01:17.629Z
- 近 30 天下载量：9627（2026-10-05 至 2026-11-03，npm 官方下载统计）
- 已发布版本数：162（近 12 个月 162 个）

## 中文简介

序列:一对一,多步电子邮件序列 代表从自己连接的邮箱发送,登录在CRM的记录上. 注册序列是联系人或牵头人(AGL-3234):记录此人的注册姓名,牵头人被判定并合并为:

## 安装

```sh
npm install @aglyn/plugins-outreach
```

也可以使用：`pnpm add @aglyn/plugins-outreach`、`yarn add @aglyn/plugins-outreach`、`bun add @aglyn/plugins-outreach`

## README

# @aglyn/plugins-outreach (帮助)

序列: 代表发送的一对一多步电子邮件序列 他们自己连通的邮箱 登录在CRM的记录上 序列 注册联系人或线索(AGL-3234):记录 一个人是,一个领导者被判断和合并 与它的联系是,什么时候 引导通过 核心的铅转化接合.

> 从Aglyn monorepo出版到npm. 随后的版本 [语义版本](https://semver.org/)。 。 。 .

## 安装

```bash
npm install @aglyn/plugins-outreach
```

通过 Aglyn 的插件管理器装入插件( A)`@aglyn/aglyn`由控制台和租户运行时间组成;它不是一个独立的图书馆.

人们读的名字是 **顺序**自由、一揽子、 释放旗帜、权限、许可密钥、收藏和 API 前缀停留 `outreach`:它们被存储的词汇和活的 URL,没有 读者看到他们.

二分之一, 如 CRM 插件 :

-   **控制台** (单位:千美元)`registerOutreachConsole`,客户桶):组织层面 序列枢纽位于 `/[orgSlug]/outreach/<section>`,通过 `ConsoleExtension.orgNavItems`后边 `release_outreach`,则 `features.outreach` b. 应享权利和 `outreach.use` 允许。 后面,我们走 相同的门,一个部件,位于一个区域,即CRM主机: **按线索回复** _邮箱_ 在联系人或领导信头中,在发送电子邮件前 (单位:千美元)`crmRecordEmailActions`页:1.
-   **控制台 API** (单位:千美元)`registerOutreachConsoleApi`, (中文(简体) ), `@aglyn/plugins-outreach/server`: 操作器 `outreach/` 前缀,由控制台服务 `/api/[...pluginApi]` 调度员.

还有两条 租户跑步时间都没加载

-   **只控制台服务器声明** (单位:千美元)`registerOutreachConsoleServerDeclarations`, (中文(简体) ), `@aglyn/plugins-outreach/declarations.console-server`: 工作空间和 账户擦除器,注册在控制台的后台。 他们取消了一个代表 谷歌赠款 `OUTREACH_TOKEN_KEY`只有控制台能撑住.
-   **子处理器** (单位:千美元)`outreachSubprocessors`, (中文(简体) ), `@aglyn/plugins-outreach/subprocessors`: 第三方托管该插件的代号,该代号是显示的生成器 写入控制台的子处理器目录.

双方共享的文件模式是 `src/lib/model/outreach.types.ts`。 。 。 . 每个 `outreach*` 收藏由服务器单独编写.

## 邮箱

`src/lib/mailboxes` 财务报告和审定财务报表 `src/lib/transport` 连接一个代表自己的 Google或微软365邮箱并与之交谈:

| 模块 | 已经 |
| --- | --- |
| `mailboxes/mailbox-routes` | 连接( 已签名的单用途状态、 PKCE、 OpenID 非ce)、 设置、 暂停、 测试和断开 |
| `mailboxes/oauth-state` | 签名 `state` 及其未清记录 `orgs/{orgId}/outreachOAuthStates` |
| `mailboxes/mailbox-credentials` | 用共享密箱封存的刷新令牌, in `outreachMailboxCredentials` |
| `mailboxes/mailbox-transport` | 打开一个邮箱的客户端, 并标记一个重新连接的要求 |
| `mailboxes/mailbox-erasure` | 工作空间或账户取消和删除 |
| `transport/mail-client` | 提供者将运行时间接合到邮箱中, 结构化搜索 |
| `transport/gmail-client` | 以获取为基础的 Gmail API 客户端: 发送、 完整和元数据线索读取、 搜索、 发送- as |
| `transport/graph-client` | microsoft Graph 客户端: 从它自己的 MIME 中作为草稿发送的一步, 读取对话和信件, 窗口搜索 |
| `transport/microsoft-oauth` | 微软的身份平台:同意地址,代码交换,刷新,ID标志 |
| `transport/mime-message` | 在 Gmail API 中读取的原始 MIME 信件 |
| `transport/send-message` | 包括引擎的电子邮件 |
| `transport/rfc5322` | 纯文本 RFC 5322 写入器 |

`OUTREACH_TOKEN_KEY`, (中文(简体) ), `GOOGLE_OUTREACH_CLIENT_ID`, (中文(简体) ), `GOOGLE_OUTREACH_CLIENT_SECRET`, (中文(简体) ), `MICROSOFT_OUTREACH_CLIENT_ID`, (中文(简体) ), `MICROSOFT_OUTREACH_CLIENT_SECRET` 财务报告和审定财务报表 `MICROSOFT_OUTREACH_TENANT` 改为: `mailboxes/outreach-config` 一个人, 财务报告和审定财务报表 `outreach-credential-isolation.spec.ts` 认为没有房客档案到达它.

## 发动机

`src/lib/engine` 发送运行时间的每个决定, 如 从包根导出无 I/O 纯函数 :

| 模块 | 决定 |
| --- | --- |
| `sequence-validation` | 8个步骤、4个电子邮件、1-30个工作日、主题、身体、窗口、国家 |
| `gates` | 可能通过电子邮件发送,通过存储的连接和运行时间的搜索结果,每个区块有句子 |
| `schedule` | 当一个步骤到期时:邮箱区内的营业日,被夹入窗口,充满焦躁 |
| `sending-capacity` | 每天的封顶和热身坡道,每跑一次的津贴,以及应招入学人数的第一 |
| `enrollment-state` | 入学状态的机器,新的入学文件,以及完成的一步写了什么 |
| `compose` | 电子邮件的一个步骤:合并字段、强制页脚、线程、不订阅页眉 |
| `thread-message` | 分类器信件形状,以及 Gmail API 信件的适配器 |
| `delivery-status`, (中文(简体) ), `opt-out-intent`, (中文(简体) ), `thread-classification` | 回来的是什么:反弹、自动回复、回复和退出 |
| `mailbox-health` | 当邮箱暂停时 |
| `mailbox-notice` | 邮件所有者在自己暂停或需要重新连接时获得的邮件 |
| `gateway-block` | 硬反弹是否是接收域拒绝发送者的网关,而不是一个未知地址 |
| `do-not-contact-domain` | 如何拼写 do- not- contact 列表上的域 |
| `manual-reply` | 回答回信者(AGL-4020):入学人数所保存的信息,即信条中的答案(AGL-4020):`Re:`, (中文(简体) ), `In-Reply-To`, (中文(简体) ), `References`以及那些仍然拒绝的信息 |

`engine/do-not-contact` 获取 do- not- contact 文档 id 与 `node:crypto`输入 `@aglyn/plugins-outreach/engine/do-not-contact` 从服务器代码.

## 发送运行时间

`src/lib/runtime` 运行引擎与真实的邮箱,在 单独控制台——每跑一次都会打开代表密封的赠款:

| 模块 | 已经 |
| --- | --- |
| `runtime/send-job` | `outreach-send`:在保留邮箱日的交易中 `List-Unsubscribe` 当序列打开( AGL-3296) 时, 及其链接 ” `outreachLinks` 文档在跟踪点击(AGL-3297)时先被写入——并发送,步骤记录并在联系人的时间表上归档;任务步骤文件代表的任务 |
| `runtime/sync-job` | `outreach-sync`:答复、外出答复、选择退出和反弹 `format=full` (AGL-4020); 邮箱的健康证据及其自动暂停 |
| `routes/reply-routes`, (中文(简体) ), `components/reply-dialog` | **按线索回复** (阿格勒-4020): `outreach/enrollments/thread` 阅读此人所写的东西——从邮箱中读取,以便在保留答复之前同步答复——和 `outreach/enrollments/reply` 从入学信箱里发出一个成员的答复 在同一线索中 保持为 `manual_reply` 步骤记录和客户关系管理时间表 `health.daily.<day>.manualReplies` 永远不要对着盖子;在跟踪其链接的序列中,作为短链接输出出,每点击一个人的,从不点击序列(AGL-4022) |
| `runtime/unsubscribe-link`, (中文(简体) ), `runtime/unsubscribe-route` | 签名的一击链接(`GET` 和RFC 8058 `POST /api/outreach/unsubscribe`),一个超过暂停推出的收件人链接,以及 `+unsubscribe` 邮件 |
| `runtime/click-link`, (中文(简体) ), `runtime/click-route` | 点击跟踪: 每一次发送的短链接 (`GET /api/outreach/l/<id>`,通过顶层解决 `outreachLinks` aGL-3297号文件,以及 `GET /api/outreach/click?t=…` 链接旧电子邮件; 两个接收者链接, 重定向, 然后点击数一次, 每人用扫描仪分开计算; 在信箱域被验证 `links.` 主机为 `https://links.<domain>/<id>` (AGL-3306),控制台中间软件重写为同一条路由 |
| `routes/link-domain-routes`, (中文(简体) ), `components/link-domains-card` | 序列 邮箱 **链接域** (AGL-3306号): `outreach/link-domains` 列出每个邮箱域名 `links.` 主机和设置一个,检查或删除它通过 `@aglyn/tenant-data-admin/server/tracking-hosts` ——域驱动程序附后,HTTPS探测器验证;设置和去除是所有者或管理员的 |
| `runtime/enrollment-events` | 状态随着引擎的事件而改变,在每个列表中录入一个选择退出 |
| `runtime/mailbox-notices` | 当邮箱暂停或需要重新连接时 |
| `runtime/timeline` | 联系人的时间线,通过核心的记录时间线接合 |
| `runtime/person-erasure` | 被删除的人的入学人数及其保持的不接触条目 |

两个工作都在核心上宣布 `plugin-console-crons` 从 仅控制台声明,每15分钟发布一次 `/api/admin/plugin-crons` 并让每行 `/api/health/crons`他们 依赖关系是 `runtime/runtime-deps`· ; `runtime/fixtures/fake-gmail` 这是 模拟器的光谱显示在邮件箱里.

## 许可证

阿帕奇2.0 (英语). 资料来源: [https://github.com/aglyn/aglyn/tree/main/libs/plugins/外传](https://github.com/aglyn/aglyn/tree/main/libs/plugins/outreach)

## 常见问题

### @aglyn/plugins-outreach 是什么？

序列:一对一,多步电子邮件序列 代表从自己连接的邮箱发送,登录在CRM的记录上\. 注册序列是联系人或牵头人\(AGL-3234\):记录此人的注册姓名,牵头人被判定并合并为:

### 如何安装 @aglyn/plugins-outreach？

在项目目录运行 npm install @aglyn/plugins-outreach，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：next（^16\.3\.3）、react（^19\.2\.8）、firebase（^13\.0\.0）、@mui/material（^9\.3\.1）、firebase-admin（^14\.3\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @aglyn/plugins-outreach 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @aglyn/plugins-outreach 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @aglyn/plugins-outreach 可以商用吗？

@aglyn/plugins-outreach 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @aglyn/plugins-outreach 的下载量有多少？

根据 npm 官方下载统计，@aglyn/plugins-outreach 在 2026/10/05 – 2026/11/03 这 30 天内被下载 9,627 次，日均约 321 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @aglyn/plugins-outreach 还在维护吗？

最新版本 1\.19\.0 发布于 2026/11/07（今天）；至今共发布 162 个版本，其中过去 12 个月发布了 162 个；首次发布于 2026/09/21。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

