Click-to-dial: originate agent leg via logship-ctd-agent so desk phone and Sangoma Talk both ring (details)
Quick product modal on the products list: name + image + price in one step, defaults Standard/Each/Standard, price into every active price list version with optional per-version override; staff can pick org and category, merchants get the plain form; the toolbar "+" now opens the modal (details)
Product BOM editor: IsBOM toggle + components card in the form, modal with order-line product search, qty stepper and drag-and-drop ordering, BOM header auto-created like the WebUI prefill, batch line save; product form: checkbox auto-save, Status/Organization split, status tooltips, tenant name fix, Quantities beside Identifier (details)
Product edit page off tedir: ProductForm + all ProductDetailRecord tabs use the Nuxt UI SelectBox wrapper, DateInputDe replaces tedir-calendar, UFileUpload replaces the tedir-dropzone gallery uploader (details)
Product form: Fulfillment card 2/3 wide with Weight over Dimensions in the free third; right column keeps Organization & Status and BOM (details)
Lead page: "KI-Analyse" — Claude assessment of the whole lead history with editable, sendable e-mail draft (details)
Offers: new standard defaults — no free pick, goods receipt by time, shelf L 5.50, service fee 99, DHL ≤ 1 kg 3.79, pallet 12.90; quote PDF and contract documents attached to the mail by default (details)
Fulfillment invoices: separate "Nachbelastung DHL Paket" position for shipping fees DHL invoiced after accounting (details)
Click-to-dial: originate agent leg via logship-ctd-agent so desk phone and Sangoma Talk both ring
ASTERISK_ORIGINATE_CHANNEL / NUXT_ASTERISK_CHANNEL_TEMPLATE were only set on the prod box by hand and got wiped by every deploy (.env is regenerated from .env-prod).
Quick product modal on the products list: name + image + price in one step, defaults Standard/Each/Standard, price into every active price list version with optional per-version override; staff can pick org and category, merchants get the plain form; the toolbar "+" now opens the modal
Product BOM editor: IsBOM toggle + components card in the form, modal with order-line product search, qty stepper and drag-and-drop ordering, BOM header auto-created like the WebUI prefill, batch line save; product form: checkbox auto-save, Status/Organization split, status tooltips, tenant name fix, Quantities beside Identifier
Product edit page off tedir: ProductForm + all ProductDetailRecord tabs use the Nuxt UI SelectBox wrapper, DateInputDe replaces tedir-calendar, UFileUpload replaces the tedir-dropzone gallery uploader
Lead page: "KI-Analyse" — Claude assessment of the whole lead history with editable, sendable e-mail draft
New purple CTA + toolbar icon on /edit/lead-<id> opens <LeadsAssessmentModal>: a background job collects the AD_User record, contact activities, saved offer/contract/forecast/questionnaire conditions, signing links, attachment names, every mailpiler mail with its body and the FreePBX recordings with their whisper transcripts (optionally transcribing missing ones first), sends the dossier to Claude (claude-opus-5-5, server-side fallbacks, cached system prompt) and renders the structured result: closing probability, stage, summary, prioritised next steps, proposal, positives/risks, needs, pricing, open questions, timeline, data gaps. DE default with EN switch, copy-as-text, last result reopens instantly.
The proposed e-mail draft is an editable form (subject/body, save) that can be sent to the lead's server-resolved address via the local MTA, from info@logyou.de with the sender's name, Reply-To the sender, with a branded table-layout signature (logo colours, LogYou logo, legal footer) and a C_ContactActivity (EM) entry.
Server: server/utils/leads/leadAssessment.ts (job state in data/lead-assessments, 202 + polling across PM2 workers), routes server/api/leads/[id]/assessment/{index.get,index.post,draft.post}.ts, runtimeConfig.anthropic (ANTHROPIC_API_KEY / ANTHROPIC_WORKSPACE_ID / ANTHROPIC_MODEL), @anthropic-ai/sdk dependency, translations de/en/es, recipe .claude/rules/leads/ai-assessment.md.
Offers: new standard defaults — no free pick, goods receipt by time, shelf L 5.50, service fee 99, DHL ≤ 1 kg 3.79, pallet 12.90; quote PDF and contract documents attached to the mail by default
QUOTE_LIST_PRICES (useOfferQuote.ts): qtyPickfree 1 → 0, monthlyFee 89.90 → 99 (also the < 1000 orders volume-tier recommendations), shelfLargePrice 6.50 → 5.50 (floor lowered alike so the default no longer warns), palletPrice 9.50 → 12.90, dhlTiers.kg1 3.49 → 3.79; inbound.mode default 'included' → 'hourly'. confirmation.attachPdf (quote) and signing.attachDocuments (contract) default to true; saved conditions with an explicit false are still respected on reopen.
Fulfillment invoices: separate "Nachbelastung DHL Paket" position for shipping fees DHL invoiced after accounting
logship-scripts now writes shipping fee lines with fulfillmentpricingrule SHIPPINGFEE_NACHBELASTUNG (surcharges / late DHL invoices for shipments whose shipping fee was already accounted, dated with the detection date so the current month's run picks them up). The generator gathers them per product like the regular shipping fee but as their own order line "Nachbelastung DHL Paket (Zuschläge lt. DHL-Rechnung): N Sendungen" in order lines, preview, response and fee report; the preview details list each shipment with the DHL fee breakdown from the fee line description. Labels in all four languages.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>