mirror of
https://github.com/lingble/chatwoot.git
synced 2025-11-01 19:48:08 +00:00
Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Sojan Jose <sojan@pepalo.com>
34 lines
980 B
Ruby
34 lines
980 B
Ruby
class Captain::Tools::AddPrivateNoteTool < Captain::Tools::BasePublicTool
|
|
description 'Add a private note to a conversation'
|
|
param :note, type: 'string', desc: 'The private note content'
|
|
|
|
def perform(tool_context, note:)
|
|
conversation = find_conversation(tool_context.state)
|
|
return 'Conversation not found' unless conversation
|
|
|
|
return 'Note content is required' if note.blank?
|
|
|
|
log_tool_usage('add_private_note', { conversation_id: conversation.id, note_length: note.length })
|
|
create_private_note(conversation, note)
|
|
|
|
'Private note added successfully'
|
|
end
|
|
|
|
private
|
|
|
|
def create_private_note(conversation, note)
|
|
conversation.messages.create!(
|
|
account: @assistant.account,
|
|
inbox: conversation.inbox,
|
|
sender: @assistant,
|
|
message_type: :outgoing,
|
|
content: note,
|
|
private: true
|
|
)
|
|
end
|
|
|
|
def permissions
|
|
%w[conversation_manage conversation_unassigned_manage conversation_participating_manage]
|
|
end
|
|
end
|