> ## Documentation Index
> Fetch the complete documentation index at: https://agencykey.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# December 2025

> AgencyKey updates for December 2025

<Update label="December 30, 2025" version="2025.12.9" tags={["Improvement", "2025.12.9"]}>
  ## OnlyFans login and permissions updates

  One-click account onboarding, Mass Messages improvements, Roles & Permissions fixes, and more.

  * Add account via OnlyFans login
  * Redesigned profile menu
  * Mass Messages improvements
  * Shifts updates
  * Roles & Permissions refinements

  ## New

  * **Add account via OnlyFans login** — the "Add Creator" button now opens an embedded OnlyFans login window. Log in with the creator's credentials, and the system captures everything automatically. Re-authorization works the same way. Desktop app only
  * **Account menu redesign** — the profile dropdown is now a styled card with your avatar, a personalized greeting, and a sign-out link

  ## Improved

  * **Mass Messages** — creator picker now searches as you type with avatars and message counts. Status badges are color-coded (green = Sent, yellow = Pending, blue = Sending, red = Cancelled). Delete now requires confirmation. The "Sent" counter updates in real-time. Prices display with a dollar sign
  * **Shifts** — fixed the "Open Shifts" warning appearing at the wrong time. Simplified the filter bar. Day status banners are more polished with a thicker accent border and consistent styling
  * **Roles & Permissions** — Owner role is now visible in the roles list. Maximum group nesting depth increased from 4 to 6 with localized error messages. Roles assigned to active users can no longer be deleted. Default permissions for Creator, Chatter, and Team Leader roles refined

  ## Fixed

  * Fixed media not displaying in the gallery and vault
  * PPV message history now becomes available sooner for newly added accounts
  * Fixed auto-translation flicker when inserting translated script text
  * Cleaned up background clutter in the OnlyFans login window
  * Chat messages load on-demand when scrolling up, making initial loading faster
  * Fixed toast notification styling, dropdown scrolling, and unread message indicators
</Update>

<Update label="December 30, 2025" version="2025.12.8" tags={["Feature", "2025.12.8"]}>
  ## Custom Chat Experience

  Completely rebuilt OnlyFans chat with fan intelligence and advanced messaging tools.

  * Fan stats on chat cards
  * Rich text formatting
  * Delayed sending & online trigger
  * Drag-and-drop PPV media
  * Online fan filter
  * Page access control

  ## How it works

  ### Chat list

  Every conversation now displays as a rich card with fan intelligence built in:

  * **Fan stats at a glance** — subscription status, PPV paid rate, total spent, and max spent directly on each card
  * **Swipe to read/unread** — swipe left on any chat to toggle its status
  * **List labels** — a color-coded strip shows which fan lists each person belongs to
  * **Context menu** — right-click for quick actions: open in new tab, add to list, mute, mark as read/unread
  * **Cmd/Ctrl+Click** — open any chat in a background tab

  ### Chat header

  The navigation bar above the chat list:

  * **Scrollable tabs** for system lists (All, Priority, Unread, Pinned, With Tips) and your custom lists
  * **Searchable dropdown** — find any list instantly with type-ahead search
  * **Pinnable lists** — pin your most-used lists to the header for one-click access
  * **Unread badges** on each tab

  ### Chat toolbar

  A custom toolbar above the active conversation:

  * **In-chat search** with previous/next navigation and match counter
  * **Translate** — translate messages with a language picker
  * **Gallery, Pinned Messages, Mute** — quick access to common actions
  * **Full actions menu** — copy profile link, rename, manage lists, restrict, block, report

  ### Message input

  The compose area rebuilt from scratch:

  * **Rich text formatting** — bold, italic, underline, strikethrough, headings, and links
  * **Quick emoji bar** — 6 configurable fast-access emojis plus a full picker
  * **GIF picker** — search and send GIFs inline
  * **Configurable toolbar** — show or hide buttons for media, vault, video/voice recording, scheduling, pricing
  * **Delayed sending** — set a delay (30 sec to 10 min) or send when the fan comes online
  * **Media preview with drag-and-drop** — drag media between free and paid zones when creating PPV messages

  ### Online filter

  Filter the chat list to show **only fans who are currently online**, sorted by total spent (highest first). Online status updates in real-time.

  ### Page access control

  Team members now only see OnlyFans pages they have permission for. Navigating to a restricted section shows an access denied message.
</Update>

<Update label="December 26, 2025" version="2025.12.7" tags={["Feature", "2025.12.7"]}>
  ## PPV Analytics

  PPV purchasing insights with paid rate badges, price stats, and message history.

  * PPV Paid Rate badge in chat list
  * Price statistics (high/avg/low)
  * Full PPV message history
  * Per-creator and global metrics
  * 10-segment visual progress bar

  ## How it works

  ### PPV paid rate in the chat list

  Each chat now shows a **PPV Paid Rate badge** — a percentage and a 10-segment progress bar representing the last 10 PPV messages. Filled segments mean the fan paid; empty segments mean they didn't. You get an instant read on a fan's buying pattern without opening the chat.

  ### Dedicated PPV tab

  Click the **PPV** tab in the right-side panel to see the full picture for any fan:

  * **Price statistics** — Highest, Average, and Lowest PPV prices. Cards only appear when the values differ, so if all PPVs are the same price you'll see just one card
  * **PPV message history** — a scrollable list of every PPV message sent to this fan with message text (expandable), media thumbnails, price, paid/unpaid status, and date
  * **Infinite scroll** — older messages load automatically as you scroll down

  ### Insights panel stats

  The Insights tab now includes PPV data in both per-creator and global sections:

  * **Per-creator**: PPV Paid Rate with progress bar, Average Purchase, Chat PPV total
  * **Global**: Global PPV Rate across all creators, Average and Max PPV prices

  ## Key details

  * The progress bar always shows the **last 10 PPV messages**, ordered oldest (left) to newest (right)
  * Newly added accounts can show partial PPV data until their first synchronization finishes
  * All data is read-only
</Update>

<Update label="December 26, 2025" version="2025.12.6" tags={["Feature", "2025.12.6"]}>
  ## Notifications

  Real-time notification panel with fan stats, quick replies, and emoji reactions.

  * 10 notification categories
  * Fan stats on each card
  * Quick reply & emoji reactions
  * Draggable panel
  * Auto mark as read

  ## How it works

  Click the **bell icon** in the chats toolbar to open the notifications panel. A red badge shows your unread count.

  ### Notification categories

  Notifications are organized into **10 tabs**: All, Subscribed, Purchases, Tips, Tags, Comments, Mentions, Likes, Messages, and Deactivated Media. Each tab shows its own unread counter. Drag and drop tabs to reorder them — the order saves automatically.

  ### Fan details at a glance

  Each notification card shows:

  * **Fan name** (click to visit their profile) and online status
  * **Notification text** — what happened (subscription, tip, purchase, etc.)
  * **Fan stats** — subscription duration, PPV rate, total spent, and max spent

  ### Quick actions

  React to notifications without navigating away:

  * **Quick emoji** — send an emoji to the fan with one click
  * **Quick reply** — type and send a message directly from the notification card
  * **Go to chat** or **Open in new tab** — jump to the conversation instantly
  * **Add to list** — add the fan to any of your OnlyFans lists with search and one-click toggle

  ## Key details

  * The panel is **draggable** — reposition it anywhere on screen
  * Notifications are automatically marked as read when you view them
  * Supports virtualized scrolling for smooth performance with many notifications
</Update>

<Update label="December 17, 2025" version="2025.12.5" tags={["Feature", "2025.12.5"]}>
  ## Translate While Typing

  Real-time message translation with auto-detection and one-click insert.

  * Auto language detection
  * Floating translation preview
  * One-click insert into chat
  * Incoming message translation
  * Works per-conversation

  ## How it works

  ### Translate while typing

  Click the **language icon** next to the chat input to enable real-time translation. As you type your message, a floating panel appears below the input showing the translated text.

  * **Auto-detection** — the system detects your language automatically
  * **Insert button** — click to replace your text with the translation
  * **Background translation** — translation runs while you type and appears after a brief delay without blocking the input

  ### Translate chat

  A separate button in the chat toolbar lets you translate **incoming messages**. Enable it, pick a target language, and all messages in the conversation are translated inline — the original text stays visible with the translation shown below.

  Available languages: English, Russian.

  ## Key details

  * Both features work independently — enable one or both
  * Requires the **Translate While Typing** or **Translate Chat** permission respectively
</Update>

<Update label="December 17, 2025" version="2025.12.4" tags={["Improvement", "2025.12.4"]}>
  ## Shifts and chat improvements, Intel Mac support

  Shifts and chat improvements, Intel Mac support, and several bug fixes.

  * Message context menu
  * Intel Mac support
  * Shifts visibility improvements
  * Chat scrolling stability
  * Preferences cleanup

  ## New

  * **Message context menu** — right-click any message in chat to hide it
  * **Intel Mac support** — the desktop app now runs natively on Intel-based Macs

  ## Improved

  * **Shifts** — all creators are now visible in the shifts view, regardless of assignment
  * **Chat** — messages load more reliably when scrolling up through conversation history
  * **Preferences** — unavailable options are now hidden instead of shown as disabled

  ## Fixed

  * Fixed repeated reconnection attempts after a session expired
  * Fixed empty state not showing when a team member has no creator permissions
</Update>

<Update label="December 17, 2025" version="2025.12.3" tags={["Feature", "2025.12.3"]}>
  ## Fan Lists

  Custom fan lists with pinnable tabs, chat filtering, and inline labels.

  * Add fans to lists from chat
  * Pinned list tabs in header
  * Filterable chat list
  * List labels on chat cards
  * Real-time OnlyFans sync

  ## How it works

  ### Add fans to lists

  From any chat, you can add or remove a fan from lists without navigating away:

  * **Insights panel** — the Lists section shows all lists a fan belongs to. Click **Add** to open a searchable list selector. Toggle lists on or off with a single click
  * **Chat toolbar** — quick access to the same list management for the active conversation
  * **Context menu** — right-click a chat in the sidebar to add the fan to a list

  Create new lists on the fly from any of these entry points.

  ### List tabs in chat header

  Your lists appear as **scrollable tabs** above the chat list:

  * **System tabs** — All, Priority, Unread, Pinned, and With Tips
  * **Custom list tabs** — your pinned lists appear alongside system tabs with unread badges

  Click any tab to filter the chat list to only conversations in that list.

  ### Pin your favorite lists

  Open the **list dropdown** at the right edge of the chat header to see all your lists. Pin the ones you use most — they'll appear as permanent tabs for one-click filtering.

  The dropdown includes:

  * Search to find any list by name
  * User count for each list
  * Pin/unpin toggle on hover

  ### List labels on chat items

  Each conversation in the chat sidebar shows a **label strip** indicating which lists the fan belongs to. Labels display the first character (or emoji) of each list name, with a tooltip showing full names on hover.

  ## Key details

  * Lists sync with OnlyFans in real time
  * Up to 4 list labels are shown per chat item — hover to see all
  * Pinned lists and tab order are saved automatically
</Update>

<Update label="December 12, 2025" version="2025.12.2" tags={["Feature", "2025.12.2"]}>
  ## Scripts

  Reusable message templates with media, pricing, and one-click sending from chat.

  * Template library per creator
  * Media attachments from vault
  * PPV pricing support
  * `{name}` personalization
  * One-click send from chat
  * Built-in translation

  ## How it works

  ### Scripts management page

  The **Scripts** page in the CRM lets you manage all message templates for each creator. Select a creator to see their scripts in a searchable, paginated table.

  Each script includes:

  * **Name** — a label for quick identification
  * **Message text** — the template content with support for `{name}` to insert the fan's nickname automatically
  * **Media attachments** — images, videos, GIFs, and audio files from the creator's vault
  * **Price** — optional PPV pricing
  * **Notes** — internal notes visible only to the team
  * **Statistics** — earned amount and purchase count displayed as badges

  ### Using scripts in chat

  Two ways to access scripts while chatting on OnlyFans:

  * **Scripts button** in the message compose area — opens a full script browser
  * **Scripts button** in the message toolbar — shows available scripts with a count badge

  From the script browser, you can:

  * **Insert** — paste the script text into the chat input, with `{name}` replaced by the fan's actual nickname
  * **Send** — send the message directly, including media and pricing, without manual editing

  ### Creating scripts

  Click **Add Script** to create a new template:

  * Write message text with emoji support and `{name}` personalization
  * Attach media from the creator's vault (images, videos, GIFs, audio)
  * Set a price for paid messages
  * Add internal notes

  ### Translation integration

  When creating or editing a script, the system automatically translates your text as you type. A floating panel shows the translation with an **Insert** button to replace the original text.

  ## Key details

  * Scripts are scoped per creator
  * The `{name}` variable resolves to the fan's nickname, falling back to the creator's default fan name
  * Requires the **Scripts** permission (view, add, edit, delete are controlled separately)
</Update>

<Update label="December 12, 2025" version="2025.12.1" tags={["Feature", "2025.12.1"]}>
  ## Roles & Permissions

  Fully redesigned permission system with custom roles, granular access levels, and real-time updates.

  * Custom role creation
  * Tree-based permission editor
  * Function and data-level access control
  * Multi-role assignment per member
  * Real-time permission sync

  ## How it works

  ### Roles list

  The **Roles & Permissions** page shows all roles in your agency. Each role displays its name, description, assigned team members, and status (Active/Inactive).

  Four default roles come pre-configured:

  * **Owner** — full access to everything, including admin management
  * **Admin** — full access except admin-level operations
  * **Chatter** — basic chat permissions for assigned creators only
  * **Team Leader** — manages team members and groups within their scope

  You can create additional custom roles tailored to your agency's workflow.

  ### Permission editor

  Click on any role to open the **permission editor** — a tree-based interface with three columns:

  * **Menu sections** — expandable categories: Creators, Automation, Employees, and Analytics, each with nested sub-sections
  * **Function Permissions** — checkboxes for individual actions (view, add, edit, delete)
  * **Data Permissions** — radio buttons controlling data scope:
    * **All Data** — access everything in the agency
    * **Group & Subgroups** — access data within the assigned group and below
    * **Own Data Only** — access only personally assigned data

  Changes are tracked visually with colored indicators (green for added, red for removed, orange for modified). A counter on the Save button shows how many changes are pending.

  ### Assigning roles

  Roles are assigned to team members from the **Team Members** page. Each team member can have multiple roles — permissions merge automatically, and the widest access level wins.

  ### Real-time updates

  When a role's permissions change, all affected team members receive the update instantly — no page reload needed.

  ## Key details

  * System roles (Owner, Admin) cannot be edited or deleted
  * Roles with active team members cannot be deleted — reassign users first
  * Unsaved changes are protected with a confirmation dialog when navigating away
  * Each section's "View" permission is required before enabling other permissions in that section
</Update>

<Update label="December 5, 2025" version="2025.12.0" tags={["Feature", "2025.12.0"]}>
  ## Mass Messages

  Send targeted messages to thousands of fans at once — with scheduling, audience filters, and real-time progress tracking.

  * Campaign dashboard with status tracking
  * Audience targeting with fan list filters
  * Scheduling and campaign limits
  * Personalization with `{name}` variable
  * Media attachments from vault
  * Customizable table with 10 filter types

  ## How it works

  ### Campaign dashboard

  The **Mass Messages** page lets you manage all your campaigns in one place. Select a creator, and you'll see a full table with status badges, progress bars, and quick actions for every campaign.

  Each campaign shows its current status:

  * **Draft** — saved but not sent
  * **Pending** — scheduled and waiting to send
  * **Sending** — in progress with a live progress bar showing sent/total
  * **Sent** — delivered to all recipients
  * **Cancelled** — stopped before completion

  ### Creating a campaign

  Click **New Message** to open the campaign builder:

  * **Campaign name and note** — label your campaign for easy reference
  * **Send To** — pick which fan lists to include or exclude. Narrow your audience with filters: total spend, tip amount, subscription duration, sign-up date, and online status
  * **Scheduling** — send immediately or schedule for a specific date and time. Set a stop time or maximum message count
  * **Message** — write your text with `{name}` to personalize each message with the fan's nickname. Set a price for PPV messages. Attach up to 40 media files from the vault

  ### Managing campaigns

  From the table, you can:

  * **Launch** a draft campaign
  * **Cancel** a running campaign (messages already sent stay delivered)
  * **Duplicate** a campaign to reuse its settings
  * **Edit** name and note inline with a quick-edit popup
  * **Delete** campaigns you no longer need (requires confirmation)

  ### Filters and columns

  Customize the table to show exactly what you need:

  * **10 filter types** — search by name, status, date ranges, price, sent count, and who created/launched/cancelled each campaign
  * **Toggleable columns** — show or hide columns for message preview, price, notes, and dates

  ### Creator tracking

  When campaigns are sent through OnlyFans, the system tracks which team member created or cancelled each campaign — visible directly in the OnlyFans mass messages interface.

  ## Key details

  * Draft auto-save keeps unsent text in local app storage; confirm the draft is present before clearing app data or changing devices
  * Campaigns are scoped per creator — select a different creator to see their campaigns
  * Requires the **Mass Messages** permission
</Update>
