Files
jmiller b89959ede5
Universal: Auto Version Bump / Version Bump (push) Successful in 6s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 8s
docs: replace template CLAUDE.md with repo-specific version
2026-06-22 13:47:55 +00:00

60 lines
2.4 KiB
Markdown

# MokoSuiteSupport
Multi-channel customer support for Joomla 6 — website chat, Facebook Messenger, WhatsApp, unified agent inbox, CSAT.
## Quick Reference
| Field | Value |
|---|---|
| **Package** | `pkg_mokosuitesupport` |
| **Layer** | Standalone (optional CRM integration) |
| **Language** | PHP 8.3+ |
| **Branch** | develop on `dev`, merge to `main` (protected) |
| **Wiki** | [MokoSuiteSupport Wiki](https://git.mokoconsulting.tech/MokoConsulting/MokoSuiteSupport/wiki) |
## Architecture
Joomla **package** (`pkg_mokosuitesupport`) — standalone module, no MokoSuite dependencies required.
### Optional Integrations
- MokoSuiteClient (Layer 0) — base platform features
- MokoSuiteCRM (Layer 1) — contact linking, ticket escalation
- Uses `class_exists()` checks to gracefully degrade when CRM not present
### Channels
Website Chat · Facebook Messenger · WhatsApp Business · Instagram Direct (planned) · Email IMAP (planned)
### Helpers (5)
- `ConversationHelper` — create, message, unified inbox, assign, close with CSAT
- `AgentHelper` — availability, auto-assign (least-busy), performance metrics
- `CannedResponseHelper` — quick replies, keyword search, categories
- `WebhookChannelHelper` — Facebook + WhatsApp inbound, conversation continuity
- `CsatHelper` — scoring, by-channel breakdown, weekly trend
### Key Patterns
- Webhook handlers use `FOR UPDATE` transaction to prevent duplicate conversations on concurrent inbound
- Auto-assign picks agent with lowest active conversation count
- CSAT rating captured on conversation close (1-5 scale)
## Source Directory
- `source/pkg_mokosuitesupport.xml` — package manifest
- `source/packages/` — sub-extensions
## Rules
- **Never commit** `.claude/`, `.mcp.json`, `TODO.md`, `*.min.css`/`*.min.js`
- **Attribution**: `Authored-by: Moko Consulting`
- **Workflow directory**: `.mokogitea/`
- **Wiki**: documentation lives in the Gitea wiki, not `docs/` files
- **Standards**: [MokoStandards](https://git.mokoconsulting.tech/MokoConsulting/MokoCLI/wiki)
- **Changelog**: `[Unreleased]` only — release system assigns versions
- **No mass email**: use Mailchimp/external services for bulk sending
## Coding Standards
- PHP 8.3+ / Joomla 6 patterns
- `$this->getDatabase()` in models, `Factory::getContainer()->get(DatabaseInterface::class)` in helpers
- `Factory::getApplication()->getIdentity()` for user
- `FOR UPDATE` inside transactions for race-condition-prone operations