使用Go调用Zendesk API代创建工单,如何避免发送通知邮件?
解决Zendesk API创建工单时不发送请求者通知邮件的问题
有两种可靠的方法可以实现你的需求,下面结合你的Go代码给出具体修改方案:
方法1:添加notify_requester顶层参数
Zendesk API支持在创建工单的请求体中添加与ticket同级的notify_requester字段,将其设为false即可直接阻止向请求者发送工单创建通知,这是最精准的解决方案。
首先需要更新你的ZendeskTicket结构体,新增对应字段:
type ZendeskTicket struct { Ticket Ticket `json:"ticket"` NotifyRequester bool `json:"notify_requester"` // 新增字段 }
然后在创建工单实例时设置该字段为false:
ticket := ZendeskTicket{ Ticket: Ticket{ Comment: Comment{ Body: body, }, Priority: "normal", Subject: title, Requester: Requester{ Email: email, }, }, NotifyRequester: false, // 核心配置:禁用请求者通知 }
方法2:将工单评论设为内部可见
如果希望工单的初始评论仅对客服团队可见(不会对外公开触发通知),可以在Comment结构体中添加IsPublic字段并设为false:
先更新Comment结构体:
type Comment struct { Body string `json:"body"` IsPublic bool `json:"public"` // 新增字段 }
然后创建工单时配置该字段:
Comment: Comment{ Body: body, IsPublic: false, // 设为内部评论,不会触发对外通知 },
注意事项
- 方法1是直接控制通知开关,更贴合你的核心需求;
- 方法2主要控制评论可见性,同时也会阻止该评论的通知,但如果工单有其他自动通知规则,建议结合方法1使用。
修改后的完整代码示例
func CreateZendeskTicket(title, body, email string) error { // 假设已更新结构体: // type ZendeskTicket struct { // Ticket Ticket `json:"ticket"` // NotifyRequester bool `json:"notify_requester"` // } // type Comment struct { // Body string `json:"body"` // IsPublic bool `json:"public"` // } ticket := ZendeskTicket{ Ticket: Ticket{ Comment: Comment{ Body: body, IsPublic: false, // 可选:设为内部评论 }, Priority: "normal", Subject: title, Requester: Requester{ Email: email, }, }, NotifyRequester: false, // 核心:禁用请求者通知邮件 } payload, err := json.Marshal(ticket) if err != nil { return err } url, _ := url.JoinPath(configs.CONFIG.Zendesk.BaseURL, "api/v2/tickets.json") req, err := http.NewRequest("POST", url, bytes.NewBuffer(payload)) if err != nil { return err } req.Header.Set("Content-Type", "application/json") req.Header.Set("Authorization", "Basic "+configs.CONFIG.Zendesk.APIKey) client := &http.Client{} res, err := client.Do(req) if err != nil { return err } defer res.Body.Close() if res.StatusCode != 201 { return errors.New("Failed to create ticket: " + res.Status) } return nil }
内容的提问来源于stack exchange,提问作者Sihan Tawsik
相关产品推荐
相关产品推荐

