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
| Column | Type | Comment |
|---|---|---|
| id | bigint(20) UNSIGNED Auto Increment | |
| customer_id | bigint(20) UNSIGNED NULL | |
| agent_id | bigint(20) UNSIGNED NULL | |
| mailbox_id | bigint(20) UNSIGNED NULL | |
| product_id | bigint(20) UNSIGNED NULL | |
| product_source | varchar(192) NULL | |
| privacy | varchar(100) [private] | |
| priority | varchar(100) [normal] | |
| client_priority | varchar(100) [normal] | |
| status | varchar(100) [new] | |
| title | varchar(192) NULL | |
| slug | varchar(192) NULL | |
| hash | varchar(192) NULL | |
| content_hash | varchar(192) NULL | |
| message_id | varchar(192) NULL | |
| source | varchar(192) NULL | |
| content | longtext NULL | |
| secret_content | longtext NULL | |
| last_agent_response | timestamp NULL | |
| last_customer_response | timestamp NULL | |
| waiting_since | timestamp NULL | |
| response_count | int(11) [0] | |
| first_response_time | int(11) NULL | |
| total_close_time | int(11) NULL | |
| resolved_at | timestamp NULL | |
| closed_by | bigint(20) UNSIGNED NULL | |
| created_at | timestamp NULL | |
| updated_at | timestamp NULL |
fs_tag_pivot
This table stores the tag relations
| Column | Type | Comment |
|---|---|---|
| id | bigint(20) UNSIGNED Auto Increment | |
| tag_id | bigint(20) UNSIGNED | |
| source_id | bigint(20) UNSIGNED | |
| source_type | varchar(192) | |
| created_at | timestamp NULL | |
| updated_at | timestamp NULL |
fs_taggables
This table stores the tag data
| Column | Type | Comment |
|---|---|---|
| id | bigint(20) UNSIGNED Auto Increment | |
| tag_type | varchar(192) NULL | |
| title | varchar(192) | |
| slug | varchar(192) | |
| description | longtext NULL | |
| settings | text NULL | |
| created_by | bigint(20) UNSIGNED NULL | |
| created_at | timestamp NULL | |
| updated_at | timestamp NULL |
fs_products
This table stores the product data
| Column | Type | Comment |
|---|---|---|
| id | bigint(20) UNSIGNED Auto Increment | |
| source_uid | bigint(20) UNSIGNED NULL | |
| mailbox_id | bigint(20) UNSIGNED NULL | |
| title | varchar(192) NULL | |
| description | text NULL | |
| settings | longtext NULL | |
| source | varchar(100) [local] | |
| created_by | bigint(20) UNSIGNED NULL | |
| created_at | timestamp NULL | |
| updated_at | timestamp NULL |
fs_persons
This table stores the persons data
| Column | Type | Comment |
|---|---|---|
| id | bigint(20) UNSIGNED Auto Increment | |
| first_name | varchar(192) NULL | |
| last_name | varchar(192) NULL | |
| varchar(192) NULL | ||
| title | varchar(192) NULL | |
| avatar | varchar(192) NULL | |
| person_type | varchar(192) [customer] | |
| status | varchar(192) [active] | |
| ip_address | varchar(20) NULL | |
| last_ip_address | varchar(20) NULL | |
| address_line_1 | varchar(192) NULL | |
| address_line_2 | varchar(192) NULL | |
| city | varchar(192) NULL | |
| zip | varchar(192) NULL | |
| state | varchar(192) NULL | |
| country | varchar(192) NULL | |
| note | longtext NULL | |
| hash | varchar(192) NULL | |
| user_id | bigint(20) UNSIGNED NULL | |
| description | mediumtext NULL | |
| remote_uid | bigint(20) UNSIGNED NULL | |
| last_response_at | timestamp NULL | |
| created_at | timestamp NULL | |
| updated_at | timestamp NULL |
fs_meta
This table stores the meta data
| Column | Type | Comment |
|---|---|---|
| id | bigint(20) UNSIGNED Auto Increment | |
| object_type | varchar(192) NULL | |
| object_id | bigint(20) NULL | |
| key | varchar(192) NULL | |
| value | longtext NULL | |
| created_at | timestamp NULL | |
| updated_at | timestamp NULL |
fs_mail_boxes
This table stores the mailbox data
| Column | Type | Comment |
|---|---|---|
| id | bigint(20) UNSIGNED Auto Increment | |
| name | varchar(192) | |
| slug | varchar(192) | |
| box_type | varchar(50) [web] | |
| varchar(192) | ||
| mapped_email | varchar(192) NULL | |
| email_footer | longtext NULL | |
| settings | longtext NULL | |
| avatar | varchar(192) NULL | |
| created_by | bigint(20) UNSIGNED NULL | |
| is_default | ENUM('yes', 'no') [no] | |
| created_at | timestamp NULL | |
| updated_at | timestamp NULL |
fs_data_metrix
This table stores the data metrix
| Column | Type | Comment |
|---|---|---|
| id | bigint(20) UNSIGNED Auto Increment | |
| stat_date | DATE | |
| data_type | varchar(100) [agent_stat] | |
| agent_id | bigint(20) UNSIGNED NULL | |
| replies | int(11) UNSIGNED NULL [0] | |
| active_tickets | int(11) UNSIGNED NULL [0] | |
| resolved_tickets | int(11) UNSIGNED NULL [0] | |
| new_tickets | int(11) UNSIGNED NULL [0] | |
| unassigned_tickets | int(11) UNSIGNED NULL [0] | |
| close_to_average | int(11) UNSIGNED NULL [0] | |
| created_at | timestamp NULL | |
| updated_at | timestamp NULL |
fs_conversations
This table stores the conversation data
| Column | Type | Comment |
|---|---|---|
| id | bigint(20) UNSIGNED Auto Increment | |
| serial | int(11) UNSIGNED [1] | |
| ticket_id | bigint(20) UNSIGNED | |
| person_id | bigint(20) UNSIGNED | |
| conversation_type | varchar(100) [response] | |
| content | longtext NULL | |
| source | varchar(100) [web] | |
| content_hash | varchar(192) NULL | |
| message_id | varchar(192) NULL | |
| is_important | ENUM('yes', 'no') [no] | |
| created_at | timestamp NULL | |
| updated_at | timestamp NULL |
fs_attachments
This table stores the attachment data
| Column | Type | Comment |
|---|---|---|
| id | bigint(20) UNSIGNED Auto Increment | |
| ticket_id | bigint(20) UNSIGNED NULL | |
| person_id | bigint(20) UNSIGNED NULL | |
| conversation_id | bigint(20) UNSIGNED NULL | |
| file_type | varchar(100) NULL | |
| file_path | text NULL | |
| full_url | text NULL | |
| settings | text NULL | |
| title | varchar(192) NULL | |
| file_hash | varchar(192) NULL | |
| driver | varchar(100) [local] | |
| status | varchar(100) NULL [active] | |
| file_size | varchar(100) NULL | |
| created_at | timestamp NULL | |
| updated_at | timestamp NULL |
fs_notifications
This table stores internal notification records created by the Internal Notifications module (added in 2.2.0).
| Column | Type | Comment |
|---|---|---|
| id | bigint(20) UNSIGNED Auto Increment | |
| actor_id | bigint(20) UNSIGNED NULL | ID of the person who triggered the event (from fs_persons). NULL for system-generated notifications. |
| ticket_id | bigint(20) UNSIGNED NULL | The related ticket ID |
| conversation_id | bigint(20) UNSIGNED NULL | The related conversation/response ID, if applicable |
| event_type | varchar(192) NOT NULL | Notification event type slug (e.g. ticket_assigned, customer_replied) |
| category | varchar(100) NOT NULL | Notification category: mentions, ticket_activity, or automation_triggers |
| payload | longtext NULL | JSON-encoded contextual data for rendering the notification message |
| created_at | timestamp NULL | |
| updated_at | timestamp NULL |
fs_notification_users
This table tracks per-recipient read state for each internal notification (added in 2.2.0).
| Column | Type | Comment |
|---|---|---|
| id | bigint(20) UNSIGNED Auto Increment | |
| notification_id | bigint(20) UNSIGNED NOT NULL | Foreign key to fs_notifications.id |
| user_id | bigint(20) UNSIGNED NOT NULL | Recipient agent person ID (from fs_persons) |
| channel | varchar(100) [web] | Delivery channel. Currently only web is used. |
| is_read | tinyint(1) [0] | Whether the recipient has read this notification |
| read_at | timestamp NULL | When the notification was marked as read |
| created_at | timestamp NULL | |
| updated_at | timestamp NULL |
fs_activities
This table stores the activities data
| Column | Type | Comment |
|---|---|---|
| id | bigint(20) UNSIGNED Auto Increment | |
| person_id | bigint(20) NULL | |
| person_type | varchar(192) NULL | |
| event_type | varchar(192) NULL | |
| object_id | bigint(20) NULL | |
| object_type | varchar(192) NULL | |
| description | mediumtext NULL | |
| created_at | timestamp NULL | |
| updated_at | timestamp NULL |
