# Technical Debt Audit: WhatsApp Unification & AI Integration ## 1. Summary Following the implementation of Phases 1 & 2 of the WhatsApp unification, this audit identifies remaining technical debt and areas for hardening before full production scaling. --- ## 2. Identified Debt Items ### 2.1. Typing & Type Safety (High Impact) ⚠️ - **Issue**: Extensive use of `any` in `TemplateSelector.tsx`, `ConversationalDashboard.tsx`, and `CrmAIAssistant.tsx` for message payloads and template data. - **Risk**: Runtime crashes if API response structure changes (e.g., Meta API updates). - **Recommendation**: Define central interfaces for `WhatsAppTemplate`, `CrmMessage`, and `BulkSendPayload` in a shared types package. ### 2.2. Centralized API Handling (Medium Impact) 📉 - **Issue**: Many components (Dashboard, Setup pages) use raw `fetch` with manual header injection (`Authorization: Bearer ${token}`). - **Risk**: Hard to maintain, inconsistent error handling (some use `alert()`, others `console.error()`). - **Recommendation**: Standardize usage of the existing `lib/api.ts` (if it exists/is robust) or implement a central `apiClient` with automatic interceptors for 401/500 errors. ### 2.3. Internationalization Coverage (Medium Impact) 🌍 - **Issue**: Some strings in `TemplateSelector.tsx` and `ConversationalDashboard.tsx` have hardcoded defaults (e.g., `t('...', 'Default String')`). - **Risk**: If new languages are added, these hardcoded strings might bypass the translation files. - **Recommendation**: Audit `locales/` files to ensure all new keys (`crm.campaigns.select_template`, etc.) are present in EN, FR, ES, PT. ### 2.4. Error State UI (Low Impact) 🎨 - **Issue**: When `TemplateSelector` fails to fetch, it only logs to console. The user might see an empty list without knowing why. - **Risk**: Poor UX/Support overhead. - **Recommendation**: Add a "Retry" button or a clear error message in the dropdown when fetching fails. --- ## 3. Post-Unification Hardening Tasks - [ ] Migrate `TemplateSelector` templates list from `any[]` to `WhatsAppTemplate[]`. - [ ] Replace `alert()` calls with a proper Toast notification system. - [ ] Centralize the `broadcast` API endpoint logic to avoid duplicate fetch code. --- **Audit Date**: 2026-05-08 **Auditor**: Antigravity (AI Assistant)