跳到主要内容

Mailjet 与 OmniCRM 集成

OmniCRM 与 Mailjet 集成,以管理与客户和员工的所有电子邮件通信,确保事务性电子邮件和营销活动的专业、品牌化和可靠的电子邮件投递。

概述

Mailjet 集成提供:

  • 自动化事务性电子邮件 - 密码重置、发票、欢迎邮件、通知
  • 联系人同步 - 客户联系人自动同步到 Mailjet 以进行活动
  • 电子邮件模板 - 10 种以上预配置的电子邮件类型,带有可自定义的 Mailjet 模板
  • 营销活动 - 基于客户数据的细分电子邮件活动
  • 可靠的投递 - 具有跟踪和分析的专业电子邮件基础设施

配置

Mailjet 在 OmniCRM-API/crm_config.yamlmailjet 部分进行配置。

基本配置

mailjet:
api_key: your_mailjet_api_key
api_secret: your_mailjet_api_secret

获取 API 凭证:

  1. 在 <https://www.mailjet.com> 创建账户
  2. 导航到 账户设置 → API 密钥
  3. 复制 API 密钥密钥
  4. 粘贴到 crm_config.yaml

电子邮件模板配置

OmniCRM 使用 10 种不同的电子邮件模板类型 进行自动化通信。每个模板配置如下:

  • from_email - 发件人电子邮件地址
  • from_name - 发件人显示名称
  • template_id - Mailjet 模板 ID(数字)
  • subject - 电子邮件主题行

模板类型和配置

客户欢迎邮件

在创建新客户账户时发送。

api_crmCommunicationCustomerWelcome:
from_email: "support@yourcompany.com"
from_name: "Your Company Support"
template_id: 5977509
subject: "欢迎来到您的公司"

发送时机:

  • 新客户通过自助服务门户注册
  • 员工创建新客户账户
  • 客户首次激活服务

可用模板变量:

  • {{ var:customer_name }} - 客户的全名
  • {{ var:email }} - 客户的电子邮件地址
  • {{ var:company_name }} - 您的公司名称
  • {{ var:login_url }} - 自助服务门户链接
  • {{ var:support_url }} - 支持页面链接

客户发票邮件

在生成发票并准备付款时发送。

api_crmCommunicationCustomerInvoice:
from_email: "billing@yourcompany.com"
from_name: "Your Company Billing"
template_id: 6759851
subject: "您的发票 - "

发送时机:

  • 为计费周期自动生成发票
  • 员工手动创建发票
  • 客户请求发票副本

可用模板变量:

  • {{ var:customer_name }} - 客户的全名
  • {{ var:invoice_number }} - 发票 ID/编号
  • {{ var:invoice_date }} - 发票发布日期
  • {{ var:due_date }} - 付款到期日
  • {{ var:total_amount }} - 应付总金额
  • {{ var:invoice_url }} - 查看/下载发票 PDF 的链接
  • {{ var:pay_url }} - 在线支付发票的链接

发票附件:

发票 PDF 会自动附加到电子邮件中。

客户发票提醒

发送以提醒客户逾期发票。

api_crmCommunicationCustomerInvoiceReminder:
from_email: "billing@yourcompany.com"
from_name: "Your Company Billing"
template_id: 6759852
subject: "付款提醒 - 发票逾期"

发送时机:

  • 发票逾期 X 天(可配置)
  • 员工手动触发提醒
  • 自动提醒工作流(如果配置)

可用模板变量:

  • {{ var:customer_name }}
  • {{ var:invoice_number }}
  • {{ var:due_date }}
  • {{ var:days_overdue }}
  • {{ var:total_amount }}
  • {{ var:pay_url }}

员工用户欢迎邮件

在创建新员工用户账户时发送。

api_crmCommunicationUserWelcome:
from_email: "admin@yourcompany.com"
from_name: "Your Company Admin"
template_id: 5977510
subject: "欢迎加入团队"

发送时机:

  • 管理员创建新员工用户
  • 在用户管理中点击“发送欢迎邮件”按钮

可用模板变量:

  • {{ var:user_name }} - 员工用户的全名
  • {{ var:email }} - 员工用户的电子邮件
  • {{ var:role }} - 分配的角色
  • {{ var:login_url }} - 管理门户登录链接
  • {{ var:temp_password }} - 临时密码(如适用)
  • {{ var:support_email }} - IT 支持联系方式

用户密码重置

在用户请求重置密码时发送。

api_crmCommunicationUserPasswordReset:
from_email: "noreply@yourcompany.com"
from_name: "Your Company Security"
template_id: 5977511
subject: "密码重置请求"

发送时机:

  • 用户在登录页面点击“忘记密码”
  • 用户提交密码重置请求

可用模板变量:

  • {{ var:user_name }}
  • {{ var:reset_url }} - 有时间限制的密码重置链接(通常为 1 小时)
  • {{ var:expiry_time }} - 重置链接过期时间

安全提示:

重置链接在配置的时间段后过期(默认 1 小时)。

用户密码重置成功

发送以确认密码已成功更改。

api_crmCommunicationUserPasswordResetSuccess:
from_email: "noreply@yourcompany.com"
from_name: "Your Company Security"
template_id: 5977512
subject: "密码已成功更改"

发送时机:

  • 用户成功完成密码重置
  • 在新密码设置后立即发送

可用模板变量:

  • {{ var:user_name }}
  • {{ var:change_date }} - 密码更改的日期/时间
  • {{ var:ip_address }} - 更改的 IP 地址(可选)
  • {{ var:support_email }} - 如果更改未经授权,请联系

用户密码更改

在用户从设置中更改密码时发送。

api_crmCommunicationUserPasswordChange:
from_email: "noreply@yourcompany.com"
from_name: "Your Company Security"
template_id: 5977513
subject: "密码更改通知"

发送时机:

  • 用户从个人资料/设置中更改密码
  • 管理员重置用户密码

可用模板变量:

  • {{ var:user_name }}
  • {{ var:change_date }}
  • {{ var:changed_by }} - “自己”或管理员名称
  • {{ var:support_email }}

电子邮件验证

发送以验证用户的电子邮件地址。

api_crmCommunicationEmailVerification:
from_email: "noreply@yourcompany.com"
from_name: "Your Company"
template_id: 5977514
subject: "验证您的电子邮件地址"

发送时机:

  • 创建新账户(客户或员工)
  • 用户更改电��邮件地址
  • 出于安全原因需要电子邮件验证

可用模板变量:

  • {{ var:user_name }}
  • {{ var:verification_url }} - 验证电子邮件的链接
  • {{ var:verification_code }} - 手动输入的代码(替代链接)

余额过期通知

在客户的服务余额/配额到期时发送。

api_crmCommunicationsBalanceExpired:
from_email: "support@yourcompany.com"
from_name: "Your Company Support"
template_id: 5977515
subject: "您的服务余额已过期"

发送时机:

  • 预付余额到期
  • 月度配额续订日期已过
  • 服务到期日期已到

可用模板变量:

  • {{ var:customer_name }}
  • {{ var:service_name }} - 过期服务的名称
  • {{ var:expiry_date }}
  • {{ var:balance_type }} - “数据”、“语音”、“货币”等
  • {{ var:renewal_url }} - 续订/充值链接

低余额警报

在客户的余额低于配置阈值时发送。

api_crmCommunicationsBalanceLow:
from_email: "support@yourcompany.com"
from_name: "Your Company Support"
template_id: 5977516
subject: "低余额警报"

发送时机:

  • 余额低于阈值(例如,剩余 20%)
  • 在服务计划或 OCS 中配置
  • 实时监控触发警报

可用模板变量:

  • {{ var:customer_name }}
  • {{ var:service_name }}
  • {{ var:current_balance }}
  • {{ var:threshold }}
  • {{ var:balance_type }}
  • {{ var:topup_url }} - 添加余额的链接

创建 Mailjet 电子邮件模板

对于每种电子邮件类型,您需要在 Mailjet 中创建相应的模板。

第 1 步:在 Mailjet 中创建模板

  1. 登录 Mailjet 仪表板
  2. 导航到 电子邮件模板 → 事务性模板
  3. 点击 创建新模板
  4. 选择 自己编码模板(适合高级用户)或 使用模板构建器

第 2 步:设计模板

使用 Mailjet 的拖放构建器或 HTML 编辑器设计您的电子邮件。

基本元素:

  • 头部 - 公司徽标和品牌
  • 问候 - 使用 {{ var:customer_name }}{{ var:user_name }} 个性化
  • 内容 - 主要消息正文
  • 变量 - 从上面的列表中插入模板变量
  • 行动呼吁 - 用户操作的按钮/链接
  • 页脚 - 取消订阅链接、公司地址、支持联系

示例模板(密码重置):

<!DOCTYPE html>
<html>
<head>
<style>
body { font-family: Arial, sans-serif; }
.button { background-color: #4CAF50; color: white; padding: 14px 28px; }
</style>
</head>
<body>
<img src="https://yourcompany.com/logo.png" alt="Logo" width="200">

<h2>密码重置请求</h2>

<p>你好 {{ var:user_name }},</p>

<p>我们收到重置您密码的请求。请点击下面的按钮以创建新密码:</p>

<a href="{{ var:reset_url }}" class="button">重置密码</a>

<p>此链接将在 {{ var:expiry_time }} 内过期。</p>

<p>如果您没有请求此操作,请忽略此电子邮件。</p>

<hr>
<p style="font-size: 12px; color: #666;">
您的公司 | support@yourcompany.com<br/>
123 Business St, City, Country
</p>
</body>
</html>

第 3 步:获取模板 ID

  1. 在 Mailjet 中保存模板
  2. 记录 模板 ID(数字,例如 5977509
  3. 将此 ID 复制到 crm_config.yaml

第 4 步:测试模板

  1. 在 Mailjet 中使用 测试电子邮件 功能
  2. 提供所有变量的示例值
  3. 将测试电子邮件发送给自己
  4. 验证格式、链接和品牌

第 5 步:在 OmniCRM 中配置

将模板配置添加到 crm_config.yaml

mailjet:
api_key: your_api_key
api_secret: your_secret

api_crmCommunicationUserPasswordReset:
from_email: "noreply@yourcompany.com"
from_name: "Your Company Security"
template_id: 5977511
subject: "密码重置请求"

重启 OmniCRM API 以使更改生效:

cd OmniCRM-API
sudo systemctl restart omnicrm-api

联系人同步

OmniCRM 中的所有客户联系人会自动同步到 Mailjet。

同步内容:

  • 联系人姓名
  • 电子邮件地址
  • 联系人类型(计费、技术等)
  • 客户位置
  • 自定义字段

同步频率:

联系人在以下情况下实时同步:

  • 创建新客户
  • 添加/更新联系人
  • 修改客户详细信息

故障排除

电子邮件未发送

  • 原因: 无效的 API 凭证、Mailjet 账户被暂停或模板 ID 错误
  • 解决方法:
    • 验证 api_keyapi_secretcrm_config.yaml 中是否正确
    • 检查 Mailjet 账户状态和账单
    • 验证模板 ID 是否存在于 Mailjet
    • 检查 API 日志中的错误

模板变量未替换

  • 原因: 变量名称不匹配或 OmniCRM 中缺少数据
  • 解决方法:
    • 验证变量名称是否完全匹配(区分大小写)
    • 使用 {{ var:variable_name }} 格式
    • 检查 OmniCRM 是否在 API 调用中传递变量数据
    • 在 Mailjet 中使用示例数据进行测试

发票 PDF 未附加

  • 原因: PDF 生成失败或文件大小过大
  • 解决方法:
    • 检查发票生��日志
    • 验证发票模板是否正确渲染
    • 确保 PDF 小于 15MB(Mailjet 限制)
    • 单独测试发票 PDF 生成

联系人未同步到 Mailjet

  • 原因: 超过 API 速率限制或同步服务未运行
  • 解决方法:
    • 检查 Mailjet API 速率限制(每分钟 200 次调用)
    • 验证 OmniCRM-API 服务是否正在运行
    • 查看同步日志中的错误
    • 手动触发同步以进行测试

相关文档

  • administration_configuration - 完整的 Mailjet 配置参考
  • payments_invoices - 发票 生成和电子邮件投递
  • authentication_flows - 密码 重置和验证电子邮件
  • customer_care - 自助服务门户 欢迎邮件

进一步阅读