添加 CRM 集成模板
Yeastar P 系列软件版 允许你创建和配置自定义集成模板,通过 API 将 PBX 与 CRM 系统无缝集成,实现数据交换和同步。本文介绍如何创建 CRM 集成模板并完成必要的配置,以满足特定的集成需求。
使用要求和使用限制
- 使用要求
-
- PBX 服务器:PBX 服务器满足以下要求。
- 固件版本:83.18.0.102 或更高版本
- 订阅服务: CRM 集成
- CRM 系统:支持 REST API。
- PBX 服务器:PBX 服务器满足以下要求。
- 使用限制
- 支持添加最多 10 个自定义 CRM 集成模板。
前提条件
- 你具有基本的编码技能。
- 你已获得所需 CRM 的 REST API 文档作为参考,并获取以下信息:
- 身份验证方式:确定所需 CRM 使用的身份验证方法 (支持无身份验证、Basic 身份验证和 OAuth2 身份验证方法)。
- API 请求信息:根据 CRM 的功能和特定需求,收集了以下功能所需的 API 请求
URL 和数据规范。
API 请求 说明 搜索联系人 在 CRM 中搜索联系人所需的 API 请求 URL。 获取用户 可选。获取 CRM 中用户信息的 API 请求 URL。 创建联系人 可选。向 CRM 中添加新联系人的 API 请求 URL。 通话记录 可选。在 CRM 中创建通话记录的 API 请求 URL。
操作步骤
- 登录 PBX 管理网页,进入 。
- 在 CRM 列表中,点击 自定义。
你将进入模板管理页面。
- 点击 添加。
- 在弹出的窗口中,根据 CRM 系统支持的功能和你的特定需求,完成以下模板配置。
- 点击 保存 以生成自定义 CRM 集成模板。
完成常规设置
在 常规 栏,完成以下模板基本设置。
- Logo:上传 CRM 的 logo。此 logo 将显示在集成页面的 CRM 列表中。注: Logo 文件需满足以下要求:
- 文件格式:PNG (推荐)、JPG 或 JPEG
- 建议分辨率:150 × 150
- 文件大小:不超过 500KB
- CRM 名称:填写 CRM 的名称。
- 最大并发请求数:指定允许对 CRM 发起的最大并发 HTTP 请求数。
- 备注:可选。输入 CRM 模板的描述,该描述将在模板管理页面中显示。
(可选) 配置用户关联
在 用户关联 栏,启用并配置该功能,以支持将 CRM 用户与 PBX 分机关联。
- 打开 用户关联 的开关。
- 在 获取用户 字段,填入用于获取 CRM 用户列表的 CRM API 请求 URL。注:
- 默认的 HTTP 请求方法是
GET
,如果需要使用其他请求方法,可以稍后在模板中手动更改。有关此场景中模板参数的详细描述,请参见 XML 说明 - 用户关联场景.。 - 如有需要,用户在对接的 身份验证 过程中输入的值也可以在模板中作为变量使用。
例如,https://www.api.example.com/v1/users?type=ActiveUsers
- 默认的 HTTP 请求方法是
- 在 用户字段映射 栏,通过指定 CRM 响应中相应字段的 JSON 路径 (例如
data.#(key=="value").field
) 将 CRM 字段映射到所需的 PBX 字段。提示: 关于更多路径语法信息,请参见 GJSON 路径语法说明。PBX 字段 Description 用户唯一ID 用户的唯一 ID。 例如,
users.#.id
。名字 用户的名字,将显示在 CRM 用户列表中。 例如,
users.#.First_Name
。姓氏 用户的姓氏,将显示在 CRM 用户列表中。 例如,
users.#.Last_Name
。邮箱 用户的电子邮件,将显示在 CRM 用户列表中,并可用于自动关联 CRM 用户与 PBX 分机。 例如,
users.#.Email
。
配置身份验证方式
在 配置身份验证方式 栏,基于 CRM 系统的要求配置对接的验证方式。- 无身份验证
-
当 CRM 不要求身份验证,或仅需要相关变量进行集成时(例如用于请求的 API 密钥或用于实时数据传输的 webhook URL)使用此方法。
- 在 认证方式 下拉列表中,选择 None。
- 可选: 点击 添加
以添加自定义字段。这些字段将作为输入框显示在对接页面上,要求用户提供对接所需的信息。注:
- 如果没有添加字段,CRM 将直接完成对接,而无需用户进行任何额外的设置或输入。
- 最多支持 5 个自定义字段。
- 在对接认证过程中,用户输入的值可以在模板中作为变量值使用。
设置 说明 类型 选择自定义字段的类型。 - 文本输入框:标准输入框,用户可以输入普通文本。
- 密码输入框:专用的输入框,用于敏感信息,输入内容会被隐藏。
- 下拉选项框:可选列表,允许用户从预定义的选项中选择。
名称 为字段指定变量名称,模板中可根据需要引用此名称。 标题 为字段指定标题,将显示在输入框上方。 下拉选项值 如果 类型 设置为 下拉选项框,在此字段中输入选项。 注: 使用半角逗号,
分隔多个选项,例如option1,option2
。
- Basic 身份验证
- 此方法使用凭证 (如用户名和密码或 API 密钥) 来认证请求。在这种情况下,发送到 CRM 的每个 HTTP 请求将包含一个请求头字段,格式为
Authorization: Basic {{.basic_string}}
,其中 {{.basic_string}} 是在对接过程中指定的用户名和密码或 API 密钥的 Base64 编码组合。- 在 认证方式 下拉列表中,选择 Basic。
- 在 凭证类型 下拉列表中,根据 CRM 系统的要求,选择 用户名和密码 或 API 密钥。
- 配置用户输入凭证所需的字段,并根据需要添加其他自定义字段。注:
- 最多支持 5 个字段。
- 在对接认证过程中,用户输入的值可以在模板中作为变量值使用。
设置 说明 类型 选择自定义字段的类型。 - 文本输入框:标准输入框,用户可以输入普通文本。
- 密码输入框:专用的输入框,用于敏感信息,输入内容会被隐藏。
- 下拉选项框:可选列表,允许用户从预定义的选项中选择。
名称 为字段指定变量名称,模板中可根据需要引用此名称。 标题 为字段指定标题,将显示在输入框上方。 下拉选项值 如果 类型 设置为 下拉选项框,在此字段中输入选项。 注: 使用半角逗号,
分隔多个选项,例如option1,option2
。 - 在 Base64 编码的凭证 字段中,指定凭证变量的组合格式,用于生成 basic
认证字符串
(basic_string)。
例如,
{{.username:.password}}
或{{.api_key:}}
。
- OAuth2 身份验证
此方法使用令牌授权访问,而无需暴露凭证。若使用此方式,则需要通过特定的 API 请求从 CRM 获取必要的头部信息和其他参数 (如 OAuth 访问令牌)。
- 在 认证方式 下拉列表中,选择 OAuth2。
- 配置用户输入凭证所需的字段。注:
- 如果需要更多字段,可稍后在模板中手动添加自定义字段。有关此场景中模板参数的详细描述,请参见 XML 说明 - 身份验证场景。
- 在对接认证过程中,用户输入的值可以在模板中作为变量值使用。
设置 说明 类型 选择自定义字段的类型。 - 文本输入框:标准输入框,用户可以输入普通文本。
- 密码输入框:专用的输入框,用于敏感信息,输入内容会被隐藏。
- 下拉选项框:可选列表,允许用户从预定义的选项中选择。
名称 为字段指定变量名称,模板中可根据需要引用此名称。 标题 为字段指定标题,将显示在输入框上方。 下拉选项值 如果 类型 设置为 下拉选项框,在此字段中输入选项。 注: 使用半角逗号,
分隔多个选项,例如option1,option2
。 - 在 授权端点 字段,输入 CRM 的授权 URL,用户将在对接过程中被重定向到此
URL 进行授权。
例如,
https://www.api.example.com/auth/v2/authorize?client_id={{.client_id}}
- 在令牌端点 字段,输入获取访问令牌和刷新令牌的 CRM API 请求
URL。
例如,
https://www.api.example.com/oauth/v2/token?client_id={{.client_id}}&client_secret={{.client_secret}}
- 可选: 在 访问范围(可选) 字段,输入允许 PBX 访问的 CRM
数据范围。注: 使用半角逗号
,
分隔多个字段。例如,
contacts.read,contacts.write,calls.read,calls.write,user.read,user.write
- 可选: 如果 CRM 系统使用查询参数进行身份验证而不是范围,你可以在
附加查询字符串(可选)
字段中添加查询参数。
例如,
client_id={{.client_id}}&redirect_uri={{.redirect_uri}}
。
配置联系人搜索以用于同步和来电弹屏
- 添加并配置联系人类型,并指定相应的 API 请求。
- 联系人类型:输入联系人类型的名称。
这里设置的名称将作为自动联系人同步的选项,展示在用户配置集成功能时的界面上。
- 联系人匹配查询URL:输入可基于特定条件搜索联系人的 CRM API 请求
URL。
在此场景中,可以使用以下变量:
- 在 对接认证 过程中从用户输入获取的变量。
- {{.Phone}}:与呼入或呼出通话相关的电话号码,或者用户输入用于联系人搜索的号码。
例如,https://www.api.example.com/v1/Contacts/search?criteria=((Phone:equals:{{.Phone}})or(Home_Phone:equals:{{.Phone}})or(Mobile:equals:{{.Phone}})or(Asst_Phone:equals:{{.Phone}}))
- 联系人类型:输入联系人类型的名称。
- 通过以下任一方式配置来电弹屏。
- 指定 URL 格式
- 通过指定 URL 格式来配置来电弹屏 URL,可使用变量动态构建 URL。
- 从联系人字段信息获取
- 直接从联系人搜索响应中的特定字段提取联系人 URL。
- 在 联系人弹屏地址 下拉列表中,选择 从联系人字段信息获取。
- 在 获取URL的联系人字段 中,指定响应中相应字段的
JSON 路径。例如
data.#.contactUrl
。
- 在 联系人字段映射 栏,映射 CRM 字段到所需的 PBX 字段,通过指定 JSON 路径
(例如:
data.#(key=="value").field
)来对应 CRM 响应中的字段。注: 如果需要为一个字段获取多个变量,用逗号分隔变量。例如data.#(phone=="{{.Phone}}")#.street,data.#(mobile=="{{.Phone}}")#.street
。- 映射以下必填字段:
- 联系人 ID:搜索到的联系人的 ID。例如
data.#.id
。 - 名字:搜索到的联系人的名字。例如
data.#.first_name
。
- 联系人 ID:搜索到的联系人的 ID。例如
- 根据需要启用并映射相应的 PBX 字段。注: 至少需要启用并映射一个电话号码。
- 如果现有 PBX 字段不满足需求,可以启用 自定义值
并映射所需的响应字段。该字段可以在模板中通过变量名
{{.CustomValue}}
引用。注: 此变量专门用于 构建联系人 URL,不会出现在 PBX 联系人详细信息中。
- 映射以下必填字段:
(可选) 配置新联系人创建
若要在来电者的号码与现有的 CRM 联系人不匹配时,在 CRM 中创建一个新联系人,启用并配置 创建新联系人。
- 打开 创建新联系人 的开关。
- 添加并配置用户在配置集成功能时可选择的联系人类型。
- 联系人类型:指定联系人类型。
- 创建联系人URL (POST):输入用于创建新联系人的 CRM API 请求
URL。例如,
https://www.api.example.com/v1/Contacts
- 创建联系人请求体:输入请求体 (JSON
格式),用于传递联系人信息。在此场景中,可以使用以下变量:
- 在 对接认证 过程中从用户输入获取的变量。
- {{.LastName}}:必填。联系人的姓氏。
- {{.FirstName}}:必填。联系人的名字。
- {{.BusinessNumber}}:必填。联系人的电话号码。
注: 如果提供的变量不满足需求,可稍后手动编辑模板来定义其他自定义变量,并获取相应的值。有关此场景中模板参数的详细描述,请参见 XML 说明 - 获取额外变量。例如,{ "data": [ { "Last_Name": "{{.LastName}}", "First_Name": "{{.FirstName}}", "Phone": "{{.BusinessNumber}}" } ] }
(可选) 配置通话记录同步
若要启用通话记录功能,以自动将通话活动和详细信息记录到 CRM 中,启用并配置 通话记录同步。
- 打开 通话记录同步 的开关。
- 配置创建通话记录的 API 请求和请求体。
- 创建通话记录 URL(POST):输入用于在 CRM 中创建通话记录的 API 请求
URL。例如,
https://www.api.example.com/v2/Calls
- 创建通话记录请求数据:输入请求体 (JSON 格式),用于传递通话详情。注: 有关请求体中支持的变量,请参见 XML 说明 - 通话记录变量。例如,
{ "data": [ { "{{.Owner}}{{.WhoModule}}": { "Description": "{{.Description}}", "Voice_Recording__s": "{{.RecordPath}}", "Call_Start_Time": "{{TimeFormat .StartTimeUnix 'yyyy-MM-ddTHH:mm:ss-z' '1'}}", "Subject": "{{.Subject}}", "Call_Type": "Inbound", "Call_Result": "{{.Call_Log_Status}}", "Call_Duration": "{{.Talk_Duration_Sec}}" } } ] }
- 创建通话记录 URL(POST):输入用于在 CRM 中创建通话记录的 API 请求
URL。
- 若要允许用户自定义通话记录的特定设置,包括日志详细信息和通话录音播放选项,启用以下选项并根据需要配置默认值。注:
- 这些字段中设置的值也将作为可用的变量值。
- 有关支持的变量的更多信息,请参见 XML 说明 - 通话记录变量。
- 主题:若启用,输入通话记录的默认主题。所有通话记录将使用指定的主题创建。
- 描述:若启用,指定通话记录的详细信息。例如,
Call: {{.Time}} {{.Call_Log_Status}} from {{.Call_From}} to {{.Call_To}} {{.Talk_Duration}}
- 播放通话录音:决定是否允许用户配置在 CRM 中播放通话录音的选项。