Skip to main content

What's New

Recent changes to the UAAGI UNO platform and its documentation, newest first.


2026-04-15 · Dealer CRM documentation and sidebar restructure

  • New top-level Dealership category in the sidebar, with Dealer CRM nested underneath to keep docs grouped by system. Other dealership apps (Parts, Repair, Units orders) will live beside Dealer CRM here as they get documented.
  • Welcome page now shows the last-updated date with a link to this changelog.
  • New page: Dealer CRM overview.
  • New page: BPO CRM Connection (dealer-side) — setup, service user, troubleshooting, multi-BPO caveat.
  • New page: Dealer CRM Lead Intake — endorsed payload mapping, partner matching, idempotency, manual intake.
  • New page: Dealer CRM Working a Lead — Convert to Quotation → confirm → deliver → Mark Won, with full gate check docs and Lost wizard behavior.
  • BPO CRM → Working a Lead rewritten around the endorsement flow. Mark Won / Mark Lost removed from the agent's UI; the new actions are Endorse w/ S.Q. and Endorse w/o S.Q., with Won/Lost flipping back automatically once the dealer closes on their side.
  • BPO CRM → Stages updated for the 7-stage pipeline (New → Qualified → Negotiation → Endorse w/ S.Q. → Endorse w/o S.Q. → Won → Lost) and the new is_endorse semantics.
  • BPO CRM → Claiming notes the form now re-opens automatically on the claimed record after clicking Claim.
  • BPO CRM landing page flow diagram refreshed to show all three JSON-RPC directions (distributor → BPO, BPO → dealer, dealer → BPO callback).

2026-04-14 · Stage 3 — Dealer → BPO callback

uaagi_dealership_app 2.3.0 · uaagi_crm 1.4.0

  • Dealers can now notify BPO CRM automatically when an endorsed lead is marked Won (after delivery) or Lost (with reason). The BPO source lead flips to the matching terminal stage and records the dealer SO reference.
  • New singleton model dealer.bpo.config on the dealer side: URL, database, service credentials, Test Connection button. Configure under Dealer CRM → Configuration → BPO CRM Connection.
  • dealer.crm.lead.write() detects newly-entered Won/Lost stages on leads with a bpo_source_lead_id and fires the callback via JSON-RPC. Failures log to chatter but do not block the local transition.
  • New BPO-side endpoint crm.lead.update_from_dealer_callback(payload)@api.model, idempotent, tolerant of unknown lost reasons.
  • crm.lead.lost_reason selection gains cancelled so "Buyer Cancelled" from the dealer side passes through intact.

2026-04-14 · Stage 2 — BPO → Dealer push

uaagi_crm 1.3.0 · uaagi_dealership_app 2.2.0

  • New Endorse w/ S.Q. and Endorse w/o S.Q. buttons on the BPO lead form replace the old Mark Won / Mark Lost flow. Clicking either (or dragging the kanban card, or clicking the statusbar) pushes the lead to the matching dealer instance via JSON-RPC.
  • New stage flag crm.stage.is_endorse; two new shipped stages stage_endorse_with_sq and stage_endorse_without_sq sitting between Negotiation and Won/Lost.
  • Forward-only rule: Negotiation can advance to either endorse stage; terminal Won/Lost are reserved for the dealer callback only.
  • Dealer side: dealer.crm.lead.receive_endorsed_lead(payload)@api.model, idempotent on (bpo_source_url, bpo_source_lead_id). Endorsed leads land directly in Negotiation. For with_sq, also creates a draft sale.order linked both ways.
  • Best-effort matching on partner (mobile/email), country/state (code/name), product (default_code then name ilike within brand).
  • Migration 18.0.1.3.0 (pre + post) attaches xml_ids to any manually-created Endorse stages on BPO1 so the unique constraint doesn't fire on upgrade.

2026-04-14 · Stage 1 — Dealer CRM foundation

uaagi_dealership_app 2.1.0

  • New Dealer CRM inside uaagi_dealership_app: mirrors the BPO CRM schema but local-first. Models dealer.crm.lead, dealer.crm.stage, dealer.crm.lead.source, dealer.crm.call.log.
  • New top-level Dealer CRM menu with Pipeline / Call Logs / Configuration, matching the BPO CRM layout.
  • dealer.crm.leadsale.order is bidirectional: the lead links forward to its draft SO; the SO links back via dealer_crm_lead_id.
  • Convert to Quotation button creates the draft SO pre-filled from the lead (customer, brand, product, qty, price).
  • Mark Won is gated on sale_order_id.state in ('sale','done') and all stock.picking records in done. No auto SO creation — the dealer must walk through the real flow.
  • Mark Lost opens a wizard with reason + notes.
  • Forward-only single-step stage progression, mirroring BPO CRM.
  • Relational pickers in the lead and call-log forms are locked down (no_create, no_create_edit, no_open, no_quick_create) to prevent inline creation of brands/products/partners from the lead form.

Earlier

BPO CRM

  • 1.2.0 · 2026-04-14res.users.chatter_position defaults to 'bottom'; migration flips existing users.
  • 1.1.0 · 2026-04-13 — Forward-only strict stage progression on BPO leads; bot-probe rejection in the distributor lead sync (skips injection strings and writes back synced upstream); customer-level dedup on the lead cron (name + email + mobile), slowed to every 5 minutes.
  • 1.0.0 — Initial release: lead kanban pipeline, distributor JSON-RPC vehicle-model sync, dealer Sales Order push (deprecated in 1.3.0 in favor of the endorsement flow), Keycloak SSO integration, BPO Agent / Supervisor / Manager groups, claim-lead workflow.

Dealership app

  • 2.0.0 — Multi-brand dealership operations: sales, purchase, inventory, repair. Distributor integration for product catalog. Keycloak SSO.

Docs site

  • 2026-04-14 — Apache vhost + SSL on docs.uaagi-uno.com, one-command scripts/deploy.sh pushing the Docusaurus build to the staging box.
  • 2026-04-13 — Initial Docusaurus scaffold + BPO CRM configuration guides (Brands, Dealerships, Vehicle Models, Stages, Lead Sources), lead pipeline pages (Intake, Claiming, Working), Puppeteer screenshot capture script.