Skip to content

Fluent Support Database Schema ​

Fluent Support use custom database tables with options tables to store all the data. Here are the list of database tables, and it's schema to understand overall database design and related data attributes of each model.

Schema Design ​

Database Tables ​

fs_tickets ​

This table stores the ticket data

ColumnTypeComment
idbigint(20) UNSIGNED Auto Increment
customer_idbigint(20) UNSIGNED NULL
agent_idbigint(20) UNSIGNED NULL
mailbox_idbigint(20) UNSIGNED NULL
product_idbigint(20) UNSIGNED NULL
product_sourcevarchar(192) NULL
privacyvarchar(100) [private]
priorityvarchar(100) [normal]
client_priorityvarchar(100) [normal]
statusvarchar(100) [new]
titlevarchar(192) NULL
slugvarchar(192) NULL
hashvarchar(192) NULL
content_hashvarchar(192) NULL
message_idvarchar(192) NULL
sourcevarchar(192) NULL
contentlongtext NULL
secret_contentlongtext NULL
last_agent_responsetimestamp NULL
last_customer_responsetimestamp NULL
waiting_sincetimestamp NULL
response_countint(11) [0]
first_response_timeint(11) NULL
total_close_timeint(11) NULL
resolved_attimestamp NULL
closed_bybigint(20) UNSIGNED NULL
created_bybigint(20) UNSIGNED NULL
serial_numberbigint(20) UNSIGNED NULL, UNIQUE
ticket_numbervarchar(192) NULLPublic ticket number, e.g. formatted with the fluent_support/ticket_prefix filter and serial_number
created_attimestamp NULL
updated_attimestamp NULL

fs_tag_pivot ​

This table stores polymorphic tag relations: which tag is attached to which record. source_type/source_id identify the tagged record (e.g. a ticket), and tag_id points at a row in fs_taggables.

ColumnTypeComment
idbigint(20) UNSIGNED Auto Increment
tag_idbigint(20) UNSIGNED
source_idbigint(20) UNSIGNED
source_typevarchar(192)
created_attimestamp NULL
updated_attimestamp NULL

fs_taggables ​

This is a shared, polymorphic table for tag-like records — the tag_type column discriminates between the Tag, AgentGroup, and TicketTag models, which all use this table rather than having their own.

ColumnTypeComment
idbigint(20) UNSIGNED Auto Increment
tag_typevarchar(192) NULL
titlevarchar(192)
slugvarchar(192)
descriptionlongtext NULL
settingstext NULL
created_bybigint(20) UNSIGNED NULL
created_attimestamp NULL
updated_attimestamp NULL

fs_products ​

This table stores the product data

ColumnTypeComment
idbigint(20) UNSIGNED Auto Increment
source_uidbigint(20) UNSIGNED NULL
mailbox_idbigint(20) UNSIGNED NULL
titlevarchar(192) NULL
descriptiontext NULL
settingslongtext NULL
sourcevarchar(100) [local]
created_bybigint(20) UNSIGNED NULL
created_attimestamp NULL
updated_attimestamp NULL

fs_persons ​

This is a shared table for people records — both the Agent and Customer models use this table, distinguished by the person_type column, rather than having separate tables.

ColumnTypeComment
idbigint(20) UNSIGNED Auto Increment
first_namevarchar(192) NULL
last_namevarchar(192) NULL
emailvarchar(192) NULL
titlevarchar(192) NULL
avatarvarchar(192) NULL
person_typevarchar(192) [customer]
statusvarchar(192) [active]
ip_addressvarchar(20) NULL
last_ip_addressvarchar(20) NULL
address_line_1varchar(192) NULL
address_line_2varchar(192) NULL
cityvarchar(192) NULL
zipvarchar(192) NULL
statevarchar(192) NULL
countryvarchar(192) NULL
notelongtext NULL
hashvarchar(192) NULL
user_idbigint(20) UNSIGNED NULL
descriptionmediumtext NULL
remote_uidbigint(20) UNSIGNED NULL
last_response_attimestamp NULL
created_attimestamp NULL
updated_attimestamp NULL

fs_meta ​

This table stores the meta data

ColumnTypeComment
idbigint(20) UNSIGNED Auto Increment
object_typevarchar(192) NULL
object_idbigint(20) NULL
keyvarchar(192) NULL
valuelongtext NULL
created_attimestamp NULL
updated_attimestamp NULL

fs_mail_boxes ​

This table stores the mailbox data

ColumnTypeComment
idbigint(20) UNSIGNED Auto Increment
namevarchar(192)
slugvarchar(192)
box_typevarchar(50) [web]
emailvarchar(192)
mapped_emailvarchar(192) NULL
email_footerlongtext NULL
settingslongtext NULL
avatarvarchar(192) NULL
created_bybigint(20) UNSIGNED NULL
is_defaultENUM('yes', 'no') [no]
created_attimestamp NULL
updated_attimestamp NULL

fs_data_metrix ​

This table stores the data metrix

ColumnTypeComment
idbigint(20) UNSIGNED Auto Increment
stat_dateDATE
data_typevarchar(100) [agent_stat]
agent_idbigint(20) UNSIGNED NULL
repliesint(11) UNSIGNED NULL [0]
active_ticketsint(11) UNSIGNED NULL [0]
resolved_ticketsint(11) UNSIGNED NULL [0]
new_ticketsint(11) UNSIGNED NULL [0]
unassigned_ticketsint(11) UNSIGNED NULL [0]
close_to_averageint(11) UNSIGNED NULL [0]
created_attimestamp NULL
updated_attimestamp NULL

fs_conversations ​

This table stores the conversation data

ColumnTypeComment
idbigint(20) UNSIGNED Auto Increment
serialint(11) UNSIGNED [1]
ticket_idbigint(20) UNSIGNED
person_idbigint(20) UNSIGNED
conversation_typevarchar(100) [response]
contentlongtext NULL
sourcevarchar(100) [web]
content_hashvarchar(192) NULL
message_idvarchar(192) NULL
is_importantENUM('yes', 'no') [no]
created_attimestamp NULL
updated_attimestamp NULL

fs_attachments ​

This table stores the attachment data

ColumnTypeComment
idbigint(20) UNSIGNED Auto Increment
ticket_idbigint(20) UNSIGNED NULL
person_idbigint(20) UNSIGNED NULL
conversation_idbigint(20) UNSIGNED NULL
file_typevarchar(100) NULL
file_pathtext NULL
full_urltext NULL
settingstext NULL
titlevarchar(192) NULL
file_hashvarchar(192) NULL
drivervarchar(100) [local]
statusvarchar(100) NULL [active]
file_sizevarchar(100) NULL
created_attimestamp NULL
updated_attimestamp NULL

fs_notifications ​

This table stores internal notification records created by the Internal Notifications module (added in 2.2.0).

ColumnTypeComment
idbigint(20) UNSIGNED Auto Increment
actor_idbigint(20) UNSIGNED NULLID of the person who triggered the event (from fs_persons). NULL for system-generated notifications.
ticket_idbigint(20) UNSIGNED NULLThe related ticket ID
conversation_idbigint(20) UNSIGNED NULLThe related conversation/response ID, if applicable
event_typevarchar(192) NOT NULLNotification event type slug (e.g. ticket_assigned, customer_replied)
categoryvarchar(100) NOT NULLNotification category: mentions, ticket_activity, or automation_triggers
payloadlongtext NULLJSON-encoded contextual data for rendering the notification message
created_attimestamp NULL
updated_attimestamp NULL

fs_notification_users ​

This table tracks per-recipient read state for each internal notification (added in 2.2.0).

ColumnTypeComment
idbigint(20) UNSIGNED Auto Increment
notification_idbigint(20) UNSIGNED NOT NULLForeign key to fs_notifications.id
user_idbigint(20) UNSIGNED NOT NULLRecipient agent person ID (from fs_persons)
channelvarchar(100) [web]Delivery channel. Currently only web is used.
is_readtinyint(1) [0]Whether the recipient has read this notification
read_attimestamp NULLWhen the notification was marked as read
created_attimestamp NULL
updated_attimestamp NULL

fs_activities ​

This table stores the activities data

ColumnTypeComment
idbigint(20) UNSIGNED Auto Increment
person_idbigint(20) NULL
person_typevarchar(192) NULL
event_typevarchar(192) NULL
object_idbigint(20) NULL
object_typevarchar(192) NULL
descriptionmediumtext NULL
created_attimestamp NULL
updated_attimestamp NULL

fs_ai_activity_logs ​

This table stores AI usage logs — one row per AI request made from a ticket (e.g. generating a reply, summarizing a conversation) — used for auditing and token-usage tracking.

ColumnTypeComment
idbigint(20) UNSIGNED Auto Increment
agent_idbigint(20) NULL
ticket_idbigint(20) NULL
model_namevarchar(50) NULL
tokensmediumtext NULL
promptlongtext NULL
created_attimestamp NULL
updated_attimestamp NULL

fs_saved_replies ​

This table stores saved/canned replies agents can reuse when responding to tickets. The SavedReply model lives in Core, but this table is only created when Pro (which ships the Saved Replies feature) is active.

ColumnTypeComment
idbigint(20) UNSIGNED Auto Increment
created_bybigint(20) UNSIGNED NULL
mailbox_idbigint(20) UNSIGNED NULL
product_idbigint(20) UNSIGNED NULL
titlevarchar(192) NULL
contentlongtext NULL
created_attimestamp NULL
updated_attimestamp NULL

fs_ticket_audits ​

This table stores one AI-generated mood/sentiment audit per ticket (mood, score, summary), refreshed on a schedule via the AI Audit reporting module.

ColumnTypeComment
idbigint(20) UNSIGNED Auto Increment
ticket_idbigint(20) UNSIGNED, UNIQUE
moodvarchar(20) NULLOne of Happy, Neutral, Frustrated, Very Unhappy
scoredecimal(3,1) NULL0.0 (most negative) to 10.0 (most positive)
summarytext NULL
statusvarchar(20) [failed]
errortext NULL
audited_atdatetime NULL
created_attimestamp NULL
updated_attimestamp NULL

fs_report_snapshots ​

This table stores periodic (default every 6 hours) point-in-time snapshots of report data, keyed by report_type, so historical report trends can be shown without re-computing them from raw ticket data.

ColumnTypeComment
idbigint(20) UNSIGNED Auto Increment
snapshot_timedatetime
report_typevarchar(50)
periodvarchar(20) [6h]
datalongtextJSON-encoded report payload for this snapshot
created_attimestamp NULL
updated_attimestamp NULL

fs_time_tracks ​

This table stores agent time-tracking entries against tickets (start/stop timers or manual entries), used for billing and reporting.

ColumnTypeComment
idint(10) UNSIGNED Auto Increment
agent_idbigint(20) UNSIGNED
customer_idbigint(20) UNSIGNED
ticket_idbigint(20) UNSIGNED
mailbox_idbigint(20) UNSIGNED
started_attimestamp NULL
completed_attimestamp NULL
messagetext NULL
statusvarchar(50) [committed]
working_minutesint(10) UNSIGNED [0]
billable_minutesint(10) UNSIGNED [0]
is_manualtinyint(1) [0]Whether this entry was manually logged rather than timed
created_attimestamp NULL
updated_attimestamp NULL

fs_workflows ​

This table stores workflow automation definitions — a trigger plus settings — that run one or more fs_workflow_actions when matched.

ColumnTypeComment
idbigint(20) UNSIGNED Auto Increment
created_bybigint(20) NULL
priorityint(10) [10]
titlevarchar(192) NULL
trigger_keyvarchar(192) NULL
trigger_typevarchar(50) [manual]
settingslongtext NULL
statusvarchar(50) [draft]
last_ran_attimestamp NULL
created_attimestamp NULL
updated_attimestamp NULL

fs_workflow_actions ​

This table stores the individual actions belonging to a workflow (fs_workflows), run in sequence when the parent workflow is triggered.

ColumnTypeComment
idbigint(20) UNSIGNED Auto Increment
titlevarchar(192) NULL
action_namevarchar(192) NULL
workflow_idbigint(20) NULLReferences fs_workflows.id
settingslongtext NULL
created_attimestamp NULL
updated_attimestamp NULL