# All-in-One Communication System V16.9

V16.9 focuses on contact CRM cleanup, campaign engagement visibility, unsubscribe control, and dashboard clarity.

## New in V16.9
- Fixes the Contact > View SQL error caused by joining `contact_custom_values` on the wrong column.
- Rebuilds the individual Contact page into a CRM-style workspace with Contact Details, Lifecycle Profile, Campaign history, Tasks, Reminders, Notes, Custom Fields, Consent, and Activity Timeline.
- Adds a Communication Center on each contact with dedicated **SMS/MMS** and **Email** tabs.
- Shows email threads under a contact using the contact email address and SMS/MMS threads using the contact phone number.
- Adds per-contact **unsubscribe** and **resubscribe** controls for both Email and SMS/MMS using the suppression list and consent log.
- Adds **People Who Opened** and **People Who Clicked** sections to campaign reports so operators can see which contacts engaged with a campaign.
- Clarifies Dashboard totals by separating **Campaign Queued / Sent / Failed / Total** from **Email Delivered / Opens / Clicks**.
- Moves **Template Creator** and **Template Library** from the Workspace section into the Campaigns section.
- No database migration is required for V16.9.

## Key modules
- Dashboard
- Contacts CRM
- Inbox (SMS/MMS, Email Conversations, Mail Center)
- Campaign Dashboard, Campaign Studio, Commercial Campaign, Campaign Reports
- Template Creator
- Template Library
- Settings, Diagnostics, Update Center

## Deployment notes
- Use the update package if your app already has Update Center.
- Use the full zip if you want to replace the full app tree.
- After deploy, do a hard refresh so the latest CSS and JavaScript load instead of cached assets.

## Version
- Current version: 16.9
