feat: Add support for labels in automations (#11658)
- Add support for using labels as an action event for automation - Fix duplicated conversation_updated event dispatch for labels Fixes https://github.com/chatwoot/chatwoot/issues/8539 and multiple issues around duplication related to label change events. --------- Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com>
This commit is contained in:
@@ -36,7 +36,7 @@ class AutomationRule < ApplicationRecord
|
||||
|
||||
def conditions_attributes
|
||||
%w[content email country_code status message_type browser_language assignee_id team_id referer city company inbox_id
|
||||
mail_subject phone_number priority conversation_language]
|
||||
mail_subject phone_number priority conversation_language labels]
|
||||
end
|
||||
|
||||
def actions_attributes
|
||||
|
||||
@@ -10,6 +10,8 @@ module Labelable
|
||||
end
|
||||
|
||||
def add_labels(new_labels = nil)
|
||||
return if new_labels.blank?
|
||||
|
||||
new_labels = Array(new_labels) # Make sure new_labels is an array
|
||||
combined_labels = labels + new_labels
|
||||
update!(label_list: combined_labels)
|
||||
|
||||
@@ -297,8 +297,6 @@ class Conversation < ApplicationRecord
|
||||
previous_labels, current_labels = previous_changes[:label_list]
|
||||
return unless (previous_labels.is_a? Array) && (current_labels.is_a? Array)
|
||||
|
||||
dispatcher_dispatch(CONVERSATION_UPDATED, previous_changes)
|
||||
|
||||
create_label_added(user_name, current_labels - previous_labels)
|
||||
create_label_removed(user_name, previous_labels - current_labels)
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user