门户 Portal
门户 为 客户、合作伙伴 提供受限的 CRM 访问界面(独立 URL、独立权限),与内部业务员使用的后台分离。
参考:Portal(英文)
Bring 外贸典型用法
可让客户门户查看 自己的订单状态、提交 案例 Case、阅读 知识库。需在门户角色中开放对应 Bring 实体(CSalesOrder 等)并配置 account 级读权限。
创建门户
管理 → 门户 → 创建门户
| 字段 | 说明 |
|---|---|
| Is Active | 否门户不可访问 |
| Is Default | 是则 URL 为 https://你的域名/portal |
| Roles | 门户角色(可多选合并) |
| Tab List | 门户顶栏显示哪些模块 |
| Dashboard Layout | 门户首页小组件(门户用户不可自改) |
| Layout Set | 门户专用布局 → 布局集 |
| URL | 只读,完整访问链接 |
| Custom URL | 自定义域名路径(需 Web 服务器配置) |
门户角色 Portal Roles
管理 → 门户角色 → 创建角色
与内部 角色 类似,但 ACL 级别不同:
| 级别 | 含义 |
|---|---|
| not-set | 拒绝 |
| own | 门户用户自己创建的 |
| account | 与门户用户同一 Account 关联的记录 |
| contact | 与门户用户同一 Contact 关联的记录 |
开放 Bring 实体示例
要让门户客户只看 自己公司的销售单:
- 实体管理器 → CSalesOrder → 编辑
- 设置 ACL Account Link =
account(v9.0+ 自定义实体需配置) - 门户角色:CSalesOrder → read = account,create/edit/delete = no
对 CQuote、CShippingOrder 同理(需有 account 关系链)。
案例 + 知识库示例(Espo 标准)
门户角色:
- Case:create yes, read account, stream account
- KnowledgeBaseArticle:read account
门户 Roles 字段选该角色。
门户用户 Portal Users
管理 → 门户用户 → 创建门户用户
- 关联 Contact(推荐)或 Proceed w/o Contact
- 指定 Portal 记录
- 可选额外 Portal Roles
- 设置用户名密码
门户用户登录 URL 见 Portal 记录的 URL 字段。
访问 URL
| 类型 | 示例 |
|---|---|
| 默认门户 | https://crm.example.com/portal |
| 指定门户 | https://crm.example.com/portal/PORTAL_ID |
| 自定义域名 | 在 Portal Custom URL + Nginx/Apache 配置 |
服务器配置见 Espo 文档:Apache / Nginx portal 配置章节。
门户 vs 内部用户
| 内部用户 | 门户用户 | |
|---|---|---|
| 登录入口 | 标准 / |
/portal/... |
| 指派用户/团队 | 可编辑 | 只读 |
| 仪表盘 | 可自定义 | 固定 |
| Bring 财务 | 通常不可见 | 不应开放 |
安全建议
- 门户角色遵循 最小权限,仅开放必要实体
- 启用 2FA 对内部管理员;门户视情况
- Site URL 使用 HTTPS