diff --git a/enterprise/app/listeners/captain_listener.rb b/enterprise/app/listeners/captain_listener.rb index 879fb2b7e..2620c769f 100644 --- a/enterprise/app/listeners/captain_listener.rb +++ b/enterprise/app/listeners/captain_listener.rb @@ -3,6 +3,10 @@ class CaptainListener < BaseListener def conversation_resolved(event) conversation = extract_conversation_and_account(event)[0] + return if conversation.blank? + + Captain::ContactMemories::ExtractFromConversationJob.perform_later(conversation.id) + assistant = conversation.inbox.captain_assistant return unless conversation.inbox.captain_active? diff --git a/spec/enterprise/listeners/captain_listener_spec.rb b/spec/enterprise/listeners/captain_listener_spec.rb index 1363ea033..af2bf8eae 100644 --- a/spec/enterprise/listeners/captain_listener_spec.rb +++ b/spec/enterprise/listeners/captain_listener_spec.rb @@ -53,5 +53,19 @@ describe CaptainListener do listener.conversation_resolved(event) end end + + context 'when conversation resolves' do + before do + assistant.config['feature_memory'] = false + assistant.config['feature_faq'] = false + assistant.save! + end + + it 'enqueues contact memory extraction job' do + expect { listener.conversation_resolved(event) } + .to have_enqueued_job(Captain::ContactMemories::ExtractFromConversationJob) + .with(conversation.id) + end + end end end