Files
Odoo-Modules/fusion_accounting_followup
gsinghpal ef2ccb89cf fix(services): V19 removed 'rpc' service \u2014 import standalone rpc() function
V19 removed the 'rpc' service from the registry. All 4 fusion services
(bank_reconciliation, reports, assets, followup) declared dependencies:
['rpc', ...] and accessed services.rpc in their constructor. At runtime
this caused:

  Error: Some services could not be started: fusion_bank_reconciliation,
  fusion_reports, fusion_assets, fusion_followup. Missing dependencies: rpc

\u2014 which prevented the entire OWL backend from booting (blank screen).

Fix per V19 docs:
- Add 'import { rpc } from "@web/core/network/rpc";'
- Set 'this.rpc = rpc;' in constructor (instead of services.rpc)
- Remove 'rpc' from dependencies list

This is the workspace CLAUDE.md guidance Phase 4's subagent flagged
but didn't act on for backward consistency. V19 actually removed the
service entirely, so the consistency choice was wrong \u2014 fixing now.

All call sites still use this.rpc(...) so no per-method changes needed.
Bundle rebuilt clean; backend boots correctly.

Made-with: Cursor
2026-04-19 23:25:52 -04:00
..

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

# 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