mirror of
https://github.com/lingble/chatwoot.git
synced 2025-10-29 18:22:53 +00:00
- Add agent bots management UI in settings with avatar upload - Enable agent bot configuration for all inbox types - Implement proper CRUD operations with webhook URL support - Fix agent bots menu item visibility in settings sidebar - Remove all CSML-related code and features - Add migration to convert existing CSML bots to webhook bots - Simplify agent bot model and services to focus on webhook bots - Improve UI to differentiate between system bots and account bots ## Video https://github.com/user-attachments/assets/3f4edbb7-b758-468c-8dd6-a9537b983f7d --------- Co-authored-by: iamsivin <iamsivin@gmail.com> Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com> Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com> Co-authored-by: Pranav <pranav@chatwoot.com>
57 lines
1.1 KiB
Ruby
57 lines
1.1 KiB
Ruby
# == Schema Information
|
|
#
|
|
# Table name: agent_bots
|
|
#
|
|
# id :bigint not null, primary key
|
|
# bot_config :jsonb
|
|
# bot_type :integer default("webhook")
|
|
# description :string
|
|
# name :string
|
|
# outgoing_url :string
|
|
# created_at :datetime not null
|
|
# updated_at :datetime not null
|
|
# account_id :bigint
|
|
#
|
|
# Indexes
|
|
#
|
|
# index_agent_bots_on_account_id (account_id)
|
|
#
|
|
|
|
class AgentBot < ApplicationRecord
|
|
include AccessTokenable
|
|
include Avatarable
|
|
|
|
has_many :agent_bot_inboxes, dependent: :destroy_async
|
|
has_many :inboxes, through: :agent_bot_inboxes
|
|
has_many :messages, as: :sender, dependent: :nullify
|
|
belongs_to :account, optional: true
|
|
enum bot_type: { webhook: 0 }
|
|
|
|
validates :outgoing_url, length: { maximum: Limits::URL_LENGTH_LIMIT }
|
|
|
|
def available_name
|
|
name
|
|
end
|
|
|
|
def push_event_data(inbox = nil)
|
|
{
|
|
id: id,
|
|
name: name,
|
|
avatar_url: avatar_url || inbox&.avatar_url,
|
|
type: 'agent_bot'
|
|
}
|
|
end
|
|
|
|
def webhook_data
|
|
{
|
|
id: id,
|
|
name: name,
|
|
type: 'agent_bot'
|
|
}
|
|
end
|
|
|
|
def system_bot?
|
|
account.nil?
|
|
end
|
|
end
|