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

# Changelog

> Latest product updates and new features

<Update label="May 13th" description="v2.2" tags={["Inbox", "Scheduling", "Productivity"]}>
  ## Schedule Send, Send & Snooze, and Keyboard Shortcuts

  ### Schedule Send

  Schedule messages to be sent at a later time. Pick from quick presets or enter a custom date and time — the message is held and delivered automatically at the scheduled moment.

  * **Quick Presets**: Choose common options like "Later Today", "Tomorrow Morning", or "Next Monday"
  * **Custom Date & Time**: Pick any future date and time for precise scheduling
  * **Cancel Anytime**: Scheduled messages show a clear indicator with a cancel button so you can revoke them before they're sent

  ### Send & Snooze

  Send a message and immediately put the ticket on hold — in a single action. Combine your reply with a snooze so the ticket reappears at the right time without extra clicks.

  * **Quick Snooze Presets**: Snooze for 1 hour, 4 hours, tomorrow, next week, and more
  * **Natural Language Input**: Type dates in plain language (e.g. "next Friday at 2pm") with support for English, German, French, Dutch, Spanish, Italian, Portuguese, and Russian
  * **One-Click Flow**: Reply and snooze together from the send button dropdown

  ### Keyboard Shortcuts

  Power through your inbox with keyboard shortcuts so you can perform common send actions without extra clicks:

  * **⌘/Ctrl + Enter** — Send message
  * **⌘/Ctrl + Shift + Enter** — Send & resolve the ticket
  * **⌘/Ctrl + Alt + Enter** — Send & hold for customer reply
  * **⌘/Ctrl + Alt + S** — Open the schedule send dialog
  * **⌘/Ctrl + Alt + H** — Open the send & snooze dialog
</Update>

<Update label="January 2nd" description="v2.1" tags={["Export", "CSAT", "Workflows", "Improvements"]}>
  ## Performance Improvements & Bug Fixes

  ### Product Field Type for Tickets

  Configure product fields to pull products from your connected shop integrations. Select which integrations to use (Shopify, WooCommerce, Billbee, PlentyOne, and more) and preview available products directly in the field configuration.

  * **Integration Selection**: Choose specific shop integrations to source products from
  * **Real-Time Preview**: See available products while configuring the field
  * **Smart Filtering**: Non-public Shopify products are automatically excluded

  ### Flow Tester: Import Real Ticket Data

  Enhanced the workflow Flow Tester to support importing actual ticket message history and attachments for more realistic testing.

  #### Key Features

  * **Import Ticket Messages**: Fetch real conversation history from any ticket by entering its ticket number
  * **Attachment Support**: View imported images as thumbnails and files with appropriate icons
  * **Preserved Formatting**: HTML formatting, links, and text styling are retained from original messages
  * **Smart Avatars**: Customer initials, agent avatars with colors, and AI agent indicators display correctly
  * **Clear Test Separation**: A "Test Started" divider separates imported history from new test messages

  <Tip>
    Toggle "Use Real Data" in the ticket data popover, enter a ticket number, and click Fetch to import its conversation history into your flow test.
  </Tip>

  ### CSAT Export Fields

  Added CSAT-related columns to the advanced ticket export feature, allowing you to include customer satisfaction data in your CSV and Excel exports.

  #### New Export Columns

  * **csat\_score**: The customer satisfaction rating (1-5)
  * **csat\_comment**: Customer feedback text from the survey
  * **csat\_survey\_sent**: Whether a CSAT survey was sent for the ticket
  * **csat\_submitted\_at**: Timestamp when the customer submitted their response

  <Tip>
    Select these columns in the export mode when exporting tickets as CSV or Excel to include CSAT data in your reports.
  </Tip>
</Update>

<Update label="January 2nd" description="v2.1" tags={["CSAT", "WhatsApp", "Widget", "Workflows", "Major"]}>
  ## CSAT Survey Support for WhatsApp & Web Widget

  <Frame>
    <img src="https://placehold.co/1200x675/4361ee/white?text=CSAT+Surveys%0AWhatsApp+%26+Widget" alt="CSAT Survey Support for WhatsApp and Web Widget" />
  </Frame>

  Customer satisfaction surveys now work across more channels! Collect feedback directly through WhatsApp and your Web Widget in addition to email.

  ### New Channel Support

  #### WhatsApp

  * **CTA Button**: Surveys are sent with a native "Rate Us" button
  * **Browser-Based Survey**: Opens the full survey form in the customer's browser
  * **Seamless Experience**: No app switching required for customers

  #### Web Widget (v1 & v2)

  * **Interactive Emoji Buttons**: Customers see clickable emoji rating buttons directly in chat (😡 😟 😐 😊 😍)
  * **One-Click Ratings**: Rate satisfaction without leaving the conversation
  * **Instant Feedback**: Responses are captured immediately

  ### How It Works

  1. Add a **CSAT Survey** node to your workflow
  2. Configure the message template for each channel
  3. When triggered:
     * **WhatsApp**: Sends message with "Rate Us" CTA button → Opens survey in browser
     * **Web Widget**: Displays emoji rating buttons inline → Captures rating instantly
     * **Email**: Sends clickable emoji scale (existing behavior)

  ### Channel-Specific Variables

  | Variable           | Email | WhatsApp | Web Widget |
  | ------------------ | ----- | -------- | ---------- |
  | `{{survey_link}}`  | ✅     | ✅        | ✅          |
  | `{{likert_scale}}` | ✅     | ❌        | ✅          |

  <Tip>
    For WhatsApp, use `{{survey_link}}` in your message. The CTA button is automatically added to open the survey.
  </Tip>

  <Info>
    Social channels (Instagram, Facebook, TikTok, YouTube) are coming soon!
  </Info>
</Update>

<Update label="October 25th" description="v2.0" tags={["Ticket Fields", "AI", "Analytics", "Major"]}>
  ## Custom Ticket Fields with AI Auto-Population

  <Frame>
    <img src="https://placehold.co/1200x675/4361ee/white?text=Custom+Ticket+Fields%0AAI+Auto-Population" alt="Custom Ticket Fields with AI Auto-Population" />
  </Frame>

  Create and manage custom fields for tickets with AI-powered automatic population, advanced analytics, and intelligent validation.

  ### Key Features

  * **🎯 5 Field Types**: Text, Number, Dropdown, Boolean, and Product fields with full customization
  * **🤖 AI-Powered Population**: Automatically fill fields by analyzing conversation context, order history, and similar tickets
  * **📊 Advanced Analytics**: Track field usage, trends over time, and drill down into specific values
  * **🛍️ Smart Product Selection**: Search from customer orders and full product catalog with variant support
  * **✅ Intelligent Validation**: Context-aware required field validation with automatic review workflows
  * **🔍 Powerful Filtering**: Filter inbox by any field value with grouped search interface

  ### Field Types

  #### Text Field

  * Single-line or multi-line input
  * Auto-save on blur or Enter key
  * AI can extract information from conversations

  #### Number Field

  * Integer or decimal values
  * Auto-save on blur or Enter key
  * Perfect for quantities, amounts, or ratings

  #### Dropdown Field

  * Single-select with custom options
  * Supports nested hierarchies (e.g., Category > Subcategory)
  * AI selects most appropriate option based on context

  #### Boolean Field

  * Yes/No toggle
  * Instant save on change
  * Simple binary choices

  #### Product Field

  * Search from customer's recent orders (prioritized)
  * Access full product catalog from all shop integrations
  * Variant support with nested selection
  * Shows order context (e.g., "iPhone 15 - 256GB Black (Order #12345)")
  * Redis-cached for fast loading
  * Works with Shopify, WooCommerce, and more

  ### AI Analysis Features

  #### Automatic Population

  * **On Creation**: Analyzes first customer message to populate all AI-enabled fields
  * **On Resolution**: Retries missing required fields with full conversation context
  * **Confidence Scoring**: Only saves values with high confidence (>0.7)
  * **Similar Tickets**: Learns from patterns in previously resolved tickets
  * **Product Context**: Extracts products from customer's order history

  #### Smart Review Workflow

  When AI fails to fill required fields after 3 attempts:

  * Automatically sets ticket to `On Hold` status
  * Applies `Needs Review` sub-status
  * Appears in dedicated "Needs Review" system view
  * Agents can manually fill missing fields and resolve

  ### Analytics Dashboard

  Track field performance and usage patterns:

  #### Top Used Values

  * Horizontal bar chart showing most popular field values
  * Click any value to drill down into tickets
  * Filter by date range and data scope

  #### Trends Over Time

  * Multi-line chart tracking value usage trends
  * Smooth curves for pattern identification
  * Automatic detection of highest-usage values

  #### All Values Table

  * Paginated table of all field values
  * Sortable columns with search
  * Click-to-filter integration with inbox

  ### Filtering & Search

  * **Field-Based Filtering**: Filter inbox by any field value
  * **Grouped Interface**: Fields grouped with searchable options
  * **Multi-Field Support**: Apply multiple field filters simultaneously
  * **Label Preservation**: Maintains filter context during navigation
  * **Backend Optimization**: Efficient query preprocessing for complex filters

  ### Validation System

  #### Context-Aware Validation

  * **General Context**: Only validates non-AI required fields
  * **Resolution Context**: Validates all required fields (AI + non-AI)
  * **Bulk Operations**: Prevents bulk resolution if tickets have missing required non-AI fields
  * **Preview Modal**: Shows affected tickets before blocking action

  #### Field Key Validation

  * Auto-generated from display name
  * Real-time uniqueness checking
  * Validates on blur, not on every keystroke
  * Clear error messages with inline feedback

  ### Performance Optimizations

  * **Redis Caching**: Product catalogs cached for 10 minutes (500 product limit)
  * **Conditional Prefetching**: Only prefetch product data if required product field exists
  * **Queue Optimization**: Early exit if organization has no AI-enabled fields
  * **Incremental View Counts**: Real-time count updates without full recomputation

  ### Use Cases

  * **Product Support**: Automatically link tickets to purchased products
  * **Case Classification**: Auto-categorize tickets by type, department, or priority
  * **SLA Tracking**: Custom fields for response time requirements
  * **Workflow Routing**: Route tickets based on field values
  * **Reporting**: Analyze trends by custom dimensions
  * **Compliance**: Track required information for regulatory needs

  ### Channel Configuration

  * **Channel-Specific Fields**: Show different fields based on communication channel (Email, WhatsApp, etc.)
  * **Required Field Control**: Set fields as required or optional per channel
  * **Smart Defaults**: AI learns from channel-specific patterns

  ### Settings & Management

  * **Field Configuration**: Easy setup with preview panel
  * **Active/Archived Views**: Manage field lifecycle
  * **Drag-to-Reorder**: Custom field display order
  * **Bulk Actions**: Archive/activate multiple fields

  <Check>
    All field data syncs in real-time via Supabase Realtime - no manual refresh needed!
  </Check>

  <Warning>
    AI analysis requires active shop integrations (Shopify, WooCommerce, etc.) for product field features.
  </Warning>
</Update>

<Update label="October 10th" description="v1.0" tags={["Workflows", "Automation", "Major"]}>
  ## CSAT Survey Workflow Triggers

  <Frame>
    <img src="https://placehold.co/1200x675/4361ee/white?text=CSAT+Workflow+Triggers%0AAutomate+Follow-ups" alt="CSAT Survey Workflow Triggers" />
  </Frame>

  Automatically trigger workflows based on customer satisfaction survey responses to deliver exceptional follow-up experiences.

  ### Key Features

  * **📊 Score-Based Triggers**: Automatically execute workflows when customers submit specific CSAT scores
  * **🎯 Smart Filtering**: Configure workflows to trigger on score ranges (e.g., low scores ≤ 3, high scores ≥ 4)
  * **⚡ Instant Response**: Workflows activate immediately after survey submission
  * **🔄 Multi-Channel Support**: Works across Email.. other channels coming soon.

  ### Use Cases

  * **Low Score Recovery**: Automatically escalate to senior support when score ≤ 2
  * **Thank You Messages**: Send appreciation notes for high ratings (score ≥ 4)
  * **Feedback Collection**: Request detailed feedback for neutral scores
  * **Internal Alerts**: Notify team leads about negative experiences

  ### How It Works

  1. Customer submits CSAT survey after ticket resolution
  2. System evaluates configured workflow triggers
  3. Matching workflows execute automatically based on score
  4. Follow-up actions happen instantly (emails, notifications, escalations)

  <Tip>
    Configure CSAT triggers in Workflows → Create Flow → Select "CSAT Survey Submitted" trigger
  </Tip>

  ### Safety Features

  * Duplicate prevention: Won't trigger multiple times for same ticket
  * Execution limits: Built-in rate limiting to prevent spam
  * Channel-specific configs: Different expiration times per channel

  <Check>
    Works with existing CSAT surveys - no migration needed!
  </Check>
</Update>

<Update label="October 10th" description="v1.0" tags={["Inbox", "Productivity", "Major"]}>
  ## On-Hold Tickets with Smart Scheduling

  <Frame>
    <img src="https://placehold.co/1200x675/4361ee/white?text=On-Hold+Tickets%0ASmart+Scheduling" alt="On-Hold Tickets with Smart Scheduling" />
  </Frame>

  Put tickets on hold with specific reasons and automatic reopen scheduling. Perfect for managing dependencies and follow-ups.

  ### Key Features

  * **⏰ Scheduled Auto-Reopen**: Set exact date/time when ticket should automatically reopen
  * **📝 Hold Reasons**: Distinguish between "Waiting for Customer" vs "Waiting Internal"
  * **🎨 Visual Indicators**: Color-coded badges show hold status at a glance (Green = Customer, Purple = Internal)
  * **⚙️ Organization Defaults**: Configure default hold durations for internal (3 days) and external (7 days) holds

  ### How It Works

  1. Change ticket status to "On Hold"
  2. Select reason: Waiting for Customer or Waiting Internal
  3. Choose duration or set custom date/time
  4. Ticket automatically reopens when scheduled time arrives

  ### Use Cases

  * **Customer Response**: Waiting for customer to provide requested information
  * **Internal Dependencies**: Waiting for another team or system
  * **Scheduled Follow-ups**: Follow up after specific time period
  * **Product Availability**: Reopen when product back in stock

  ### Visual Experience

  * **Badge Display**: Shows "Reopens on: \[Date]" with reason indicator dot
  * **Overdue Alerts**: Clearly marks overdue on-hold tickets
  * **Quick Actions**: Edit hold time or cancel hold with one click
  * **Tooltip Details**: Hover for full hold reason and timestamp

  <Check>
    Tickets automatically return to "Open" status at scheduled time - no manual intervention needed!
  </Check>
</Update>

<Update label="October 10th" description="v1.0" tags={["Performance", "Bug Fixes"]}>
  ## Performance Improvements & Bug Fixes

  Improved ticket loading performance and resolved several key issues.

  ### What's Fixed

  * Fixed ticket loading delays in high-volume organizations
  * Improved Sync engine reliability
  * Resolved caching issues causing stale data
  * Enhanced offline mode stability

  ### Performance Gains

  * 50% faster initial ticket list load
  * Reduced memory usage in long sessions
  * Better handling of large attachments
</Update>
