Track
Workflow
Approval Request
What Antu sees in his inbox — Teams, email, or WhatsApp
Requires Action
AI
Agente Validador · Lamosa Perú
via Microsoft Teams · triggered by email from Jorge Zapata
Hoy, 09:14
Solicitud de descuento — Pedido #4821
📦 5 SKUs 💰 S/. 8,420 total pedido 📅 Semana 3 — dentro del período activo 👤 Jorge Zapata
SKU Descripción Cant. P. Lista Descuento UB Nivel
8823-A Porcelánico 60×60 Antracita 200 m² S/. 45.00 12% → S/. 39.60 23% 🟢 VERDE
7741-C Mármol Blanco Carrara 45×90 80 m² S/. 62.00 8% → S/. 57.04 18% 🟡 ÁMBAR
5512-B Baldosa Especial Rectificada 50 m² S/. 88.00 22% → S/. 68.64 11% 🔴 ROJO
4401-D Piso Madera Roble Natural 120 m² S/. 38.00 5% → S/. 36.10 31% 🟢 VERDE
3390-E Cerámica Básica 30×30 Blanco 300 m² S/. 18.00 15% → S/. 15.30 19% 🟡 ÁMBAR
2 Verde — aprobados automáticamente
2 Ámbar — requieren tu aprobación
1 Rojo — escalado a Gerencia General
🤖 Agente procesó este pedido en 8 segundos · Verificó 5 SKUs contra SAP · Aplicó reglas del semáforo (UB mínimo 20%) · SKU 5512-B escalado automáticamente a Gerencia General · Verdes ya registrados en SAP.
Nota de diseño: Este mensaje llega al gerente (Antu) via Teams, email o WhatsApp — sin necesidad de abrir ningún portal. El agente procesó el Excel adjunto, cruzó con SAP, aplicó las reglas, y solo interrumpe al gerente con lo que realmente necesita una decisión humana. Verdes ya fueron aprobados automáticamente.
Quote Ready for Review
Agent processed a distributor request and assembled a draft quote
Review & Send
Q
Quote Agent · Aronlight
Request from: Lumitech Distributors SL · via email
Today, 11:32
Quote #Q-20260330-0441 — Ready to send
📦 2 line items 💰 €1,840.00 total 🏢 Lumitech Distributors SL ⚡ Auto-assembled in 12s
Original Request (raw)
"Hola, necesito 50 downlights para techo de oficina, color blanco, unos 20W cada uno, IP44 mínimo, urgente para el martes. También dame opción más económica si la hay."
Specs Extracted by Agent
Type: downlight Qty: 50 units Wattage: ~20W Color: white → 4000K inferred IP: ≥ IP44 Application: office ceiling Urgency: HIGH Alt option requested: YES
Draft Quote
Product
Qty
Unit
Total
DL-2040-WH · Downlight 20W 4000K IP44
Best match — 97% spec alignment
50 ×
€18.40
€920.00
DL-1840-NW · Downlight 18W 4000K IP44
Alternative option (saves €110) — 89% match
50 ×
€16.20
€810.00
Total (main option)
€920.00
✅ Within standard margin rules — can auto-send 📦 Stock available: 200+ units 🚚 Delivery: 5–7 business days
🤖 Agent parsed email in 3s · Ran semantic search across 50,847 SKUs · Matched 3 candidates · Applied Lumitech distributor tier pricing from Odoo · Draft quote assembled in 12s total.
Spec Match Results
Agent found top candidates from 50,847 SKU catalog
3 Matches Found
M
Spec Matching Agent · Aronlight
Request from: Nordic Lights AB · via WhatsApp
Today, 14:07
Raw Request
"outdoor floodlight for a warehouse facade, warm light, around 50W, needs to be very weatherproof"
Interpreted Specs
Type: floodlight / projector Location: outdoor Wattage: 45–55W Color temp: 2700–3000K (warm) IP: ≥ IP65 ("very weatherproof") Application: warehouse facade ⚠ Lumen req: not specified
Top Matches
#1
FL-5030-WW
50W Floodlight · 2800K · IP66 · 5,000 lm · Die-cast aluminum
Exact wattage, warm white, exceeds IP requirement (IP66 > IP65), warehouse-rated
94%
#2
FL-4530-NW
45W Floodlight · 3000K · IP65 · 4,500 lm · Slim profile
Slightly lower W, neutral-warm white (3000K), IP65 met, lower cost option
87%
#3
FL-6030-WW
60W Floodlight · 2800K · IP65 · 6,200 lm · Heavy duty
Higher wattage than requested, same warm color, IP met — overkill but reliable
79%
🤖 Searched 50,847 SKUs in 2.1s · Resolved "very weatherproof" → IP65+ · Inferred 2700–3000K from "warm" · "floodlight" matched to projector/flood form factor · Lumen requirement not specified — flagged for follow-up.
Approval Agent Dashboard
Lamosa Perú · Week 3 · March 30, 2026
3 Pending
Pending Action
3
require your approval
Processed Today
14
11 auto · 3 manual
Auto-Approved Rate
71%
this month (312 total)
Avg Response Time
4 min
down from 3.2 hrs
Inbox
Jorge ZapataPedido #4821
5 SKUs · S/. 8,420 · 2 Ámbares requieren aprobación
REVIEW
09:14
Jorge ZapataPedido #4819
3 SKUs · S/. 4,230 · todos dentro de malla promocional
AUTO ✓
08:47
Jorge ZapataPedido #4817
1 SKU · UB 9% · escalado a Gerencia General
ESCALATED
08:12
Jorge ZapataPedido #4815
7 SKUs · S/. 11,800 · auto-aprobados (todos UB >22%)
AUTO ✓
07:55
Jorge ZapataPedido #4813
4 SKUs · S/. 6,100 · 1 Ámbar pendiente (Jefe Canal)
REVIEW
Ayer
Audit Log
Pedido #4819 08:47
AUTO-APPROVED
3 SKUs verificados · UB: 24%, 28%, 31% · todos dentro de malla · sin descuento adicional
Pedido #4817 08:12
ESCALATED
SKU 6601-X · UB 9% · por debajo del mínimo 20% · enviado a Gerencia General
Pedido #4815 07:55
AUTO-APPROVED
7 SKUs · UB range: 22–37% · todos en rango Verde · SAP actualizado
Pedido #4813 Ayer 16:40
APPROVED — ÁMBAR
Antu aprobó · 1 SKU ámbar (precio promedio OK, UB 18%) · tiempo decisión: 3 min
Quote Agent Dashboard
Aronlight · 1,000+ distributors · March 30, 2026
2 Pending Review
Quotes Today
47
39 auto-sent · 8 reviewed
Avg Quote Time
18s
down from 2.1 days
Auto-Send Rate
83%
within margin rules
This Month
892
quotes processed
Quote Pipeline
Lumitech Distributors SLQ-0441
50× downlight 20W · €920 · within margin rules
REVIEW
11:32
Nordic Lights ABQ-0440
100× panel 40W · €4,200 · auto-sent
SENT ✓
10:58
Iberluz PortugalQ-0439
20× strip LED 5m · €680 · auto-sent
SENT ✓
10:21
ElektroHaus GmbHQ-0438
Custom spec · below standard margin · review needed
REVIEW
09:45
Activity Log
Q-0440 · Nordic Lights10:58
AUTO-SENT
100× PA-4040-NW · Standard distributor tier · Margin 34% · Quote sent in 14s
Q-0439 · Iberluz10:21
AUTO-SENT
20× ST-RGB-5M · Catalog item · Margin 29% · Quote sent in 8s
Q-0437 · BrightCo09:12
MANUAL SENT
Custom wattage req · Sales rep edited specs · Sent after 8 min review
Spec Matching Dashboard
Aronlight · 50,847 active SKUs · March 30, 2026
1 Pending
Searches Today
31
avg 2.1s each
Match Rate ≥90%
74%
exact or near-exact
Escalated to Eng.
4
unclear specs
Catalog Coverage
50,847
SKUs indexed
Match Requests
Nordic Lights ABSR-0219
outdoor floodlight, warm, 50W, weatherproof · 3 matches found
MATCHED
14:07
Internal — Sales RepSR-0218
panel LED 60×60 4000K recessed · 97% match · DL-6040-NW
AUTO ✓
13:44
ElektroHaus GmbHSR-0217
DALI-dimmable strip, custom CCT — escalated to engineering
ESCALATED
12:30
Match Log
SR-0218 · Internal13:44
97% MATCH
DL-6040-NW · Exact spec match · Forwarded to Quote Agent
SR-0217 · ElektroHaus12:30
ESCALATED
DALI + custom CCT not in catalog · Sent to engineering team
SR-0216 · Lumitech11:15
91% MATCH
FL-4530-NW · Good match · Slight wattage deviation noted
Rules Configuration
The "Business Constitution" — loaded into the agent on startup
Active
How this works: These rules are the agent's decision-making framework. Change a threshold here and every future request is evaluated against the new value — no code change needed. The agent reasons about edge cases using this as its context.
ERP Connection
ERP System
✅ SAP S/4HANA · Connected · Last sync 2 min ago
Input Channel
✅ Email monitor · inbox: descuentos@lamosa.pe
Delivery Channel
✅ Microsoft Teams · Antu Rodríguez · Andres Morales
Malla Promocional
✅ March 2026 · 77 SKUs loaded · Updated Mar 1
Semáforo Rules — Approval Logic
🟢
Verde — Auto Approve
SKU within malla promocional with no additional discount requested, OR: list price objective is correct AND UB ≥ threshold.
UB ≥ 20%
🟡
Ámbar — Jefe del Canal
SKU below minimum price but order average is acceptable AND UB ≥ threshold. One click from Jefe Canal.
UB ≥ 20%
🟠
Naranja — Ger. Ventas / MKT
Order average below limit but UB still acceptable. Requires Gerencia de Ventas and/or Marketing approval.
UB ≥ 20%
🔴
Rojo — Gerencia General
UB falls below minimum. Non-negotiable threshold — always escalates to Gerencia General regardless of order size.
UB < 20%
Escalation Path
Verde approver
Automatic · no human required
Ámbar approver
Antu Rodríguez (Jefe Canal)
Naranja approver
Gerencia de Ventas + Marketing
Rojo approver
Gerencia General
SAP write-back
✅ Auto on Verde · Manual trigger on Ámbar+
How This System Works
The technology behind the three workflows — explained simply
The Architecture — Three Components
① Input Pipe
Where requests arrive
Email inbox monitor
WhatsApp webhook
Excel / PDF attachments
Same across all 3 workflows. Built once.
② The Brain
A Large Language Model
Reads and understands the request
Queries the ERP for live data
Applies your business rules
Makes a decision or draft
This is Claude (Anthropic API). We rent the intelligence. We don't train a model.
③ Output Pipe
Where decisions land
Teams / email notification
SAP / Odoo write-back
Audit log (every decision)
Same across all 3 workflows. Built once.
Why Not Just Use Rule-Based Automation?
❌ Traditional Automation (Zapier, rule engines)
Breaks when Excel is formatted differently than expected
Can't handle "40% off but only on the first 200m²"
Requires every edge case to be explicitly programmed
Can't match "the white marble one" to a SKU code
New product categories = rewrite the rules
✅ AI Agent (this system)
Reads language, not structure — handles any format
Understands partial and conditional requests
You describe the goal, it handles the edge cases
Semantic search: finds meaning, not just keywords
Business rules update in the config panel, not the code
The Three Workflows — What Actually Changes
Workflow 1
Approval Agent
Lamosa
Workflow 2
Quote Agent
Aronlight
Workflow 3
Spec Matching
Aronlight
Input
Email + Excel (SKUs, discounts)
Email or WhatsApp (product request)
Any description (vague or precise)
Backend
SAP — prices, margins, malla
Odoo — catalog, pricing tiers
Odoo — 50K SKU catalog
Brain does
Calculates UB, applies Verde/Ámbar/Rojo rules
Matches product, builds quote draft
Semantic search, ranks confidence
Output
Teams notification + SAP write-back
Quote sent or flagged for review
Ranked SKU list → feeds into W2
What's unique
The rules (UB thresholds, semáforo)
The pricing logic (distributor tiers)
The catalog (indexed SKUs)
Everything else — input pipe, output pipe, audit log, approval UI — is identical across all three. Built once, reused.
What We Build vs. What We Rent
🏗 We Build
ERP Connectors
SAP and Odoo integrations that fetch live pricing and catalog data
The Approval UI
What you're looking at right now — the notification, dashboard, audit log
Rules Config Panel
So clients can change thresholds without touching code
The Orchestration Layer
The code that wires everything together: listens, calls the LLM, routes the output
☁️ We Rent
Claude API (Anthropic)
The reasoning engine. We pay per request, we don't train anything.
Email / WhatsApp APIs
Existing infrastructure — we listen on top of it, not replace it
Teams / Slack webhooks
Delivery channel for notifications — no new app for the manager to learn
Hosting (Vercel / AWS)
The agent runs 24/7 on cloud infrastructure we don't manage ourselves
One Platform — Two Tracks
Every mid-market company with an ERP has the same problem: the ERP holds the data, but people work in email, WhatsApp, and Excel. The bridge doesn't exist. We're building it — for both the commercial side and the ops side.
⚡ Track A — Commercial
Approval · Quote · Spec Matching
Sits on top of the ERP. Intercepts requests from email/WhatsApp and routes decisions back. Buyer: commercial director.
🏭 Track B — Ops Intelligence
Procurement · Maintenance · SKU Performance
Sits below the ERP. Fixes data quality and operational visibility so the ERP output is trustworthy. Buyer: ops/manufacturing director.
ERP Connector — built once
Built once per client. SAP, Odoo, NetSuite, Impulsa. Every module added after is a sales conversation, not a new integration.
Enter on either track
Lamosa + Aronlight enter on Track A. MAGG enters on Track B (NetSuite starts April). Both expand to the other track once inside.
The moat
Once plugged in, switching platforms means rebuilding the ERP connector. That's the stickiness — not the AI, the integration.
Procurement Intelligence
17,000 raw material SKUs · AI-assisted reorder signals · waste detection
In Development
SKUs Monitored
17,000
raw material imports
Reorder Alerts
42
below threshold
Overstocked
8
excess capital locked
Auto-resolved
127
this month
Material
Stock
Avg Use/wk
Weeks Left
Signal
${[ ['ALU-COIL-2MM (Almeco IT)','1,200 kg','380 kg','3.2 wks','🔴 Order now'], ['LED-CHIP-5630 (Shenzhen)','42,000 u','18,500 u','2.3 wks','🔴 Order now'], ['RESIN-CLR-UV (local)','88 L','12 L','7.3 wks','🟢 OK'], ['WIRE-AWG18-BLK','3,400 m','1,100 m','3.1 wks','🟡 Watch'], ['HEATSINK-50MM','620 u','280 u','2.2 wks','🔴 Order now'], ['LENS-FROSTED-60 (China)','8,800 u','900 u','9.8 wks','🟢 OK'], ].map(([mat,stock,use,wks,sig]) => `
${mat}
${stock}
${use}
${wks}
${sig}
`).join('')}
Maintenance Tracker
Preventive schedule · machine history · technician knowledge base
In Development
Machines Tracked
64
across 3 plants
Overdue
3
preventive maintenance
Due This Week
7
scheduled checks
Manuals Digitized
41
of 64 machines
Machine
Plant
Last Service
Next Due
Status
${[ ['SMT-LINE-A3 (Panasonic)','Puebla','Jan 12','Mar 28','🔴 Overdue'], ['INJECTION-MOLD-02 (Japan)','Naucalpan','Feb 01','Apr 01','🟡 Due soon'], ['WAVE-SOLDER-1 (Electrovert)','Puebla','Feb 14','Apr 14','🟢 OK'], ['CNC-LATHE-05 (Mazak)','Tepoztlán','Feb 20','Apr 20','🟢 OK'], ['POWDER-COAT-LINE (Italy)','Naucalpan','Dec 10','Mar 10','🔴 Overdue'], ['ASSEMBLY-ROBOT-2 (Fanuc)','Naucalpan','Mar 01','May 01','🟢 OK'], ].map(([m,p,l,n,s]) => `
${m}
${p}
${l}
${n}
${s}
`).join('')}
SKU Performance Dashboard
Replaces manual Google Sheets · live semáforo · zombie detection
In Development
Active SKUs
1,500
75 = 50% of revenue
On Track
891
verde — meeting target
Watch
386
amarillo — below pace
Zombies
23
rojo — <25u/month
SKU
Description
Target/mo
Actual/mo
Backorder
Status
${[ ['LUM-LED-150W','Industrial floodlight 150W','1,200','1,340','0','🟢'], ['LUM-STR-60W','Street LED 60W','800','612','140','🟡'], ['LUM-PAN-36W','Panel LED 36W 60x60','2,000','1,980','0','🟢'], ['LUM-IND-250W','High-bay 250W','400','88','310','🔴'], ['LUM-RES-9W','Residential downlight 9W','3,000','2,870','0','🟢'], ['LUM-OUT-18W','Outdoor wall 18W','300','17','0','🔴 Zombie'], ].map(([sku,desc,tgt,act,bo,st]) => `
${sku}
${desc}
${tgt}
${act}
${bo}
${st}
`).join('')}