Mailjet 与 OmniCRM 集成
OmniCRM 与 Mailjet 集成,以管理与客户和员工的所有电子邮件通信,确保事务性电子邮件和营销活动的专业、品牌化和可靠的电子邮件投递。
概述
Mailjet 集成提供:
- 自动化事务性电子邮件 - 密码重置、发票、欢迎邮件、通知
- 联系人同步 - 客户联系人自动同步到 Mailjet 以进行活动
- 电子邮件模板 - 10 种以上预配置的电子邮件类型,带有可自定义的 Mailjet 模板
- 营销活动 - 基于客户数据的细分电子邮件活动
- 可靠的投递 - 具有跟踪和分析的专业电子邮件基础设施
配置
Mailjet 在 OmniCRM-API/crm_config.yaml 的 mailjet 部分进行配置。
基本配置
mailjet:
api_key: your_mailjet_api_key
api_secret: your_mailjet_api_secret
获取 API 凭证:
- 在 <https://www.mailjet.com> 创建账户
- 导航到 账户设置 → API 密钥
- 复制 API 密钥 和 密钥
- 粘贴到
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 中创建模板
- 登录 Mailjet 仪表板
- 导航到 电子邮件模板 → 事务性模板
- 点击 创建新模板
- 选择 自己编码模板(适合高级用户)或 使用模板构建器
第 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
- 在 Mailjet 中保存模板
- 记录 模板 ID(数字,例如
5977509) - 将此 ID 复制到
crm_config.yaml
第 4 步:测试模板
- 在 Mailjet 中使用 测试电子邮件 功能
- 提供所有变量的示例值
- 将测试电子邮件发送给自己
- 验证格式、链接和品牌
第 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_key和api_secret在crm_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- 自助服务门户 欢迎邮件
进一步阅读
- Mailjet 文档: <https://dev.mailjet.com/>
- Mailjet API 参考: <https://dev.mailjet.com/email/reference/>