저희 팀은 새로운 Discourse 사이트를 구축하고 Zendesk 플러그인을 활용하고 있습니다. 양방향 동기화를 성공적으로 설정했으며, 모든 것이 순조롭게 진행되고 있습니다.
하지만 때때로 회원들이 비밀번호 재설정을 요청하거나, 저희가 개인 정보를 공유해야 할 필요가 있습니다. 토픽이 비공개 토픽으로 이동될 경우에도 Discourse <> Zendesk 간의 양방향 메시지 동기화를 유지하는 방법이 있을까요? 아니면, 비공개 메시지에서 티켓에 답변할 수 있도록 하는 우회 방법이 있을까요?
저도 동일한 문제를 겪었는데, Zendesk 플러그인의 코드 로직을 수정하여 해결할 수 있었습니다. 해결 방법은 다음과 같습니다:
Zendesk 플러그인 파일:
app/jobs/regular/zendesk_job.rb
다음과 같이 수정하세요:
def push_topic!(topic_id)
topic = Topic.find_by(id: topic_id)
return unless topic.present?
if DiscourseZendeskPlugin::Helper.autogeneration_category?(topic.category_id)
topic.post_ids.each { |post_id| push_post!(post_id) }
end
end
Zendesk 플러그인
lib/discourse_zendesk_plugin/helper.rb
def self.autogeneration_category?(category_id)
return true if category_id.nil?
return false if category_id.blank?
if SiteSetting.zendesk_autogenerate_all_categories?
true
else
SiteSetting.zendesk_autogenerate_categories.split("|").include?(category_id.to_s)
end
end
사유는 비공개 카테고리(topics)에 카테고리가 할당되지 않아, 현재 코드 로직에 따라 Zendesk와 동기화되지 않기 때문이라고 생각합니다.
이를 해결하기 위해 카테고리가 할당되지 않은 경우에도 Zendesk에서 토픽이 생성되도록 로직을 수정했습니다. 이것이 최선의 방법인지 확실하지는 않지만, 제 경우에는 잘 작동했습니다.