> For the complete documentation index, see [llms.txt](https://docs.xenoraa.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.xenoraa.com/xenoraa-changelog-and-architecture/v10.0.5-whatsapp-and-sms-+-email-campaigns-crm2-redesign.md).

# v10.0.5 — WhatsApp & SMS + Email Campaigns crm2 Redesign

## v10.0.5 — WhatsApp & SMS + Email Campaigns crm2 Redesign

### v10.0.5 — UI Redesign: WhatsApp & SMS + Email Campaigns

**Released:** 2026-07-10 | **Category:** UI/UX | **Commits:** [`b1f9368`](https://github.com/goesscay/xenoraa/commit/b1f9368), [`87db30e`](https://github.com/goesscay/xenoraa/commit/87db30e), [`1ae4bdf`](https://github.com/goesscay/xenoraa/commit/1ae4bdf)

#### Summary

Both the **WhatsApp & SMS** and **Email Campaigns** pages in the Site Builder section have been fully redesigned to match the global admin crm2 theme and layout. Previously, these pages used inconsistent inline styles and custom CSS classes that did not match the rest of the admin UI.

#### Changes

**WhatsApp & SMS Page (`admin/notifications/settings`)**

* **KPI Stats Grid**: Replaced custom `.stat-mini` inline-styled stats with a proper `crm2-kpi-grid` showing 6 metrics: Total Sent, Delivered, Failed, Sent Today, Via WhatsApp, Via SMS
* **Page Header**: Professional `crm2-header` with WhatsApp icon, subtitle, and "Message Logs" action button
* **Provider Cards**: WhatsApp Business and SMS provider cards with icons, toggle switches, and structured form fields
* **Tabbed Layout**: Configuration / Automation Triggers / Send Message tabs using crm2 tab pattern

**Email Campaigns Page (`admin/campaigns`)**

* **KPI Stats Grid**: Added `crm2-kpi-grid` at the top with 6 metrics: Total Campaigns, Sent, Drafts, Scheduled, Total Opens, Total Sent Emails
* **Professional Empty State**: Icon + heading + CTA button when no campaigns exist (instead of plain text)
* **Form Labels**: Replaced all inline `style="display:block;font-size:13px..."` labels with `crm2-label` class
* **Table**: Proper `crm2-table` with status badges using `crm2-badge`

**Admin Layout Fixes**

* **Site Builder Nav Context** (line 432): Added `admin.notifications*` and `admin.campaigns*` to the `$activeApp = 'site'` condition — previously, navigating to these pages caused the nav to switch to the Dashboard context instead of staying in Site Builder
* **crm2.css Loading Condition** (line 41): Added `admin.notifications*` and `admin.campaigns*` so the crm2 stylesheet loads on these pages
* **Nav Items**: Both items now use `xn-nav-link` class with correct icons — WhatsApp uses `fab fa-whatsapp` (green #25D366), Email uses `fas fa-envelope-open-text`

**Sentry Feedback Widget**

* Self-hosted bundle: `public/js/sentry-feedback.min.js` (Sentry v10.64.0) — avoids CDN async loading issues in sandboxed/restricted browser environments
* Admin layout updated to load from `/js/sentry-feedback.min.js` instead of the CDN URL

#### Files Changed

| File                                                     | Change                                                               |
| -------------------------------------------------------- | -------------------------------------------------------------------- |
| `resources/views/admin/notifications/settings.blade.php` | Full crm2 redesign                                                   |
| `resources/views/admin/campaigns/index.blade.php`        | Full crm2 redesign                                                   |
| `resources/views/admin/campaigns/create.blade.php`       | crm2-label on all form labels                                        |
| `resources/views/admin/campaigns/edit.blade.php`         | crm2-label on all form labels                                        |
| `resources/views/layouts/admin.blade.php`                | Nav context fix + crm2.css condition fix + self-hosted Sentry bundle |
| `public/js/sentry-feedback.min.js`                       | New file — self-hosted Sentry feedback bundle                        |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.xenoraa.com/xenoraa-changelog-and-architecture/v10.0.5-whatsapp-and-sms-+-email-campaigns-crm2-redesign.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
