Skip to main content

Tuesday, April 21, 2026

Rock-Solid CMS Sync and CaseChat Updates Everywhere

By Andre Hammons
Attorney Portal v2026.4.8Extension v2026.4.3iOS v2026.4.2Android v2026.4.2

Portal 2026.4.8 is a reliability release focused on the pipelines that move data from Quilia to your case management system. Note and document sync are now idempotent end-to-end across every supported CMS — retries, backfills, and repairs land exactly what's expected, no more and no less. Provider info lookup now runs on its own instead of waiting for a click, and Filevine gets a new field-mapping UI for firm admins. This week's release also ships the browser extension 2026.4.3 (CaseChat member management from any CMS page, image and video previews, smoother thread switching) and follow-up fixes for the mobile app 2026.4.2 (session auto-recovery and a working case-referral flow for logged-out users).

Rock-Solid Note Sync Across Every CMS portal

Every note Quilia posts to your CMS now carries a durable fingerprint that makes the sync pipeline idempotent end-to-end. Retries from transient network blips, scheduled backfills, or Quilia-side repairs now recognize exactly what's already there and skip the repost — so your CMS and Quilia stay perfectly in sync.

  • Covers all seven CMSes: Clio, Filevine, MyCase, Neos, SmartAdvocate, CasePeer, and Smokeball
  • Invisible where the CMS gives us somewhere private: Clio and Filevine store the fingerprint in native metadata. SmartAdvocate, Neos, and CasePeer use a hidden HTML-comment footer your clients will never see
  • Visible in two CMSes that leave us no choice: MyCase and Smokeball get a small visible footer line, because their APIs don't give us anywhere private to store it
  • Historical cleanup included: A one-time backfill marked ~25,000 older activity logs as settled so Integration Monitor no longer shows thousands of false "untransmitted" rows on firms that have been running for months

Exactly-Once Document Delivery portal

Document uploads to Clio and Filevine are now idempotent too. Before every upload, the pipeline checks the target folder, recognizes files that already landed, and confirms the existing CMS copy instead of re-sending. What Quilia tracks and what shows up in your CMS now match down to the file.

  • Clio and Filevine pre-check the target folder: Applies to both regular document uploads and CaseChat attachments
  • Honest upload counts: Run summaries now separate files actually uploaded from files already present in the folder, so the report matches what landed
  • Per-file isolation for CasePeer, MyCase, Neos, and Litify: Uploads now dispatch one task per file instead of one task per case, matching Clio and Filevine. A single slow or problematic file never replays the whole batch, and you can see each file's status individually

Automatic Provider Enrichment portal

The "Find Info" button on a provider's row — the one that filled in the missing domain, email, and phone — now runs on its own. Every six hours a scheduled job sweeps your providers list for rows with missing contact info and enriches them in the background, using the same cross-firm cache that already backs the manual click.

  • No more manual clicks: Providers get populated automatically as soon as there's enough signal to resolve them
  • Stronger match key: The underlying lookup now matches on normalized phone number (a much more unique identifier) instead of name + city + state, which eliminates cross-firm false positives
  • Manual button still works: If you want to trigger enrichment on a specific provider right now, the button behaves exactly the same as before — it just calls the same shared helper the cron uses

Filevine Field Mapping for Emergency Contact and Language portal

Firm admins can now override which Filevine field Quilia reads from when importing a client's emergency contact or preferred language. Some firms track these on the standard Filevine contact record; others use a custom contact field. Both now work.

  • New Field Mapping section on the Filevine integration detail page, under Settings → Integrations → Filevine
  • Emergency Contact: pick between Filevine's standard emergency contact field or any of your custom contact fields (listed by tab and fieldset)
  • Language: pick between auto-detect, tag-based, or a custom contact field — with the existing project-override path still available for firms already using it
  • No extra Filevine calls: overrides are folded into the existing contact fetch during import, so turning them on doesn't slow anything down

CaseChat Member Management browser extension

The extension's CaseChat Members panel now supports full member management — no need to bounce to the portal mid-task.

  • Add team members from the panel: A new "Add member" search dialog lets you pick teammates from your firm without leaving the case
  • Remove with a single hover: Hover any non-client row in the Members panel to reveal an X — removal confirms via dialog so you can't accidentally drop the wrong person
  • Self-leave with confirmation: Leaving a chat now goes through the same confirmation dialog instead of firing on a single tap
  • Other open extension tabs stay in sync: Membership changes broadcast to other foreground extension tabs, so if you have the panel open in two CMS windows, both update automatically

Image and Video Previews in CaseChat browser extension

Photos and videos sent through CaseChat now preview reliably in the extension, with a polish pass on the surrounding message bubbles and composer.

  • Reliable previews even without MIME metadata: Previews work even when the upload arrives without a content type — the extension infers it from the filename
  • More accurate content type on upload: When the browser doesn't provide a MIME type, the extension now infers it from the filename so attachments are stored with the right metadata in the first place
  • Polished message bubbles and composer: Chat bubbles, link styles, timestamps, and attachment placement got a pass alongside the new preview behavior

Full-Width Thread Tabs browser extension

The old Private / All Parties pill toggle is replaced with a full-width tab row that matches the mobile app, with smooth slide transitions between threads.

  • Full-width Private / All Parties tabs: No more truncated client names on narrow popups
  • Sliding transitions between threads: Switching threads slides horizontally with no header flash or loading spinner — both threads stay mounted underneath, so you're not refetching messages every time you toggle
  • Active tab indicator: Purple underline matches the mobile app's active-state color so your chat UI looks the same across devices
  • Header and input bar stay fixed during the slide: Only the message area moves; the case header and composer never reflow

Bugs and Improvements

A grab bag of smaller fixes and polish across the three surfaces.

Portal portal

  • More reliable HEIC photo conversion: HEIC uploads now convert to JPEG in-pipeline on our server instead of offloading to a third-party image service, giving every CMS a more direct and consistent path. Historical photos re-processed through the same path
  • Case back button: Returns to your cases list instead of walking browser history
  • Chat attachment status matches your CMS: CaseChat files now get stamped with delivery status when the CMS confirms receipt
  • Unverifiable deliveries marked as settled: Integrations that accept files but don't return a document identifier now show as completed-but-untrackable instead of staying pending forever
  • File extensions on mobile uploads: Files uploaded from the mobile app no longer arrive at the CMS without an extension
  • Orphaned webhook triggers: Tasks now skip deleted subscriptions cleanly and tolerate manual-trigger payloads
  • More reliable Filevine subscription health checks: Our daily webhook-health check now flags real issues without the occasional false positive
  • Background service init race eliminated: A CMS service could occasionally respond before it finished initializing — now it always waits

Browser Extension browser extension

  • Crash-recovery screen: When a rare bug crashes the extension popup, you now see a "Something went wrong" screen with a Try Again button instead of a blank popup
  • Automatic crash reporting: Production builds (Chrome, Firefox, Safari) send uncaught errors to our error tracking so we can fix issues without waiting for a support ticket

Mobile App app

Small follow-ups rolling out to existing 2026.4.2 installs — no new app-store version required.

  • Dead sessions route to sign-in: When a session can't be refreshed (refresh token revoked or expired), the app routes to sign-in instead of sitting on a broken page
  • Logged-out case referrals: The logged-out case referral flow now routes via email, so non-users can submit referrals to your firm
  • Chat re-entry stability: Cleaned up a lingering subscription state that could surface on rapid thread re-entry
  • Safer network retries: POST requests no longer retry on transient errors, preventing duplicate sign-in texts and other replayed mutations
  • Clearer Sentry diagnostics: Supabase errors arrive at Sentry with actual error code, details, and hint