# fusion_accounting_followup AI-augmented customer follow-ups (dunning) for Odoo 19 Community — a Fusion-native replacement for Enterprise's `account_followup` module. ## What it does - Multi-level dunning sequences (gentle reminder, firm warning, legal notice) with delay-day cadence per level - 6-bucket aging analysis (current, 1-30, 31-60, 61-90, 91-120, 120+) per customer - Per-partner follow-up state machine (`current`, `action_due`, `paused`, `blocked`, `with_credit_team`) - Daily cron that scans overdue customers and queues / sends follow-ups - Weekly cron that refreshes the AI risk score on every overdue customer - Mail templates per level, with per-partner context interpolation - Batch wizard for bulk-send across all overdue customers, an arbitrary selection, or a level-filtered subset - Per-partner follow-up history with state, level, and amount audit - AI augmentation: - **Payment-risk scoring** — 0-100 score plus structured drivers (paid-late ratio, longest-overdue band, recent dispute, etc.) - **Tone selection** — gentle / firm / legal based on level + risk - **Follow-up text generation** — LLM-driven subject + body keyed on tone, with a templated keyword fallback so the feature still works offline - Coexists with Enterprise `account_followup` (Enterprise wins by default; the Fusion menu only appears when Enterprise is uninstalled) - Migration-aware: bootstrap step backfills `fusion.followup.level` records from existing `account_followup.followup.line` rows so the AI has memory from day 1 ## Quick start ```bash # Install (sub-module) odoo --addons-path=... -i fusion_accounting_followup # Or install the whole suite via the meta-module odoo --addons-path=... -i fusion_accounting # Open the dashboard (when Enterprise's account_followup is NOT installed) # Apps -> Customer Follow-ups -> Overdue Customers # When Enterprise IS installed: use Enterprise's UI; the engine + AI tools # are still available via the AI chat. ``` ## Configuration - Local LLM (LM Studio, Ollama): - `fusion_accounting.openai_base_url` = `http://host.docker.internal:1234/v1` - `fusion_accounting.openai_model` = your local model name - `fusion_accounting.openai_api_key` = `lm-studio` (anything non-empty) - `fusion_accounting.provider.followup_text` = `openai` ## Public API (engine) `fusion.followup.engine` is the single write surface. See `CLAUDE.md` for the full 7-method signature list. ## See also - `CLAUDE.md` — agent context - `UPGRADE_NOTES.md` — Odoo version anchoring