Ladda upp exportfiler
Stöd för CSV, Excel och E-post (.eml, .msg). Filerna klassificeras mot verkliga källsystem och skickas sedan till backend för analys.
Filer i sessionen
Perspektiv
Kritikalitet
Fynd
Sortera och expandera varje rad för fullständiga detaljuppgifter från backend.
| Beskrivning | Rekommendation | ||||||
|---|---|---|---|---|---|---|---|
Detaljer
Rådata |
|||||||
Masshändelser
Identifierade större avvikelser grupperade för snabb uppföljning.
Så fungerar AssetOne-analysen
En teknisk genomgång av hur plattformen bearbetar, korrelerar och bedömer dina IT-tillgångar.
🔍 Översikt
AssetOne tar emot exportfiler från upp till 7 datakällor och korskorrelerar dem automatiskt för att hitta avvikelser, säkerhetsrisker och kostnadsläckor. Analysen sker i fyra steg:
1. Inläsning
Auto-detect av filtyp och normalisering
2. AI-extraktion
GPT-4.1 tolkar fritext-mejl och ostrukturerade bilagor
3. Korskorrelation
Matchning på serienummer mellan alla system
4. Bedömning
Klassificering av fynd med åtgärdsförslag
📁 Datakällor som stöds
| System | Filtyp | Nyckeldata | Auto-detect |
|---|---|---|---|
| Cube | .xlsx | Status, Serienummer, Kundfält 3, Delegerad till, Finance ID, Lease | Kolumnmatchning mot kända Cube-fält |
| Intune | .xlsx / .csv | Serial Number, Primary User UPN, Compliance, Last Check-in | Kolumner som "Primary User UPN", "Compliance State" |
| Abacus | .xlsx | Finansiellt Objekt ID, Slutdatum, Returdatum, Kostnad | Kolumner som "Finansiellt objekt id", "Slutdatum" |
| vScope | .xlsx | DNS Host Name, Serial Number, CPU Cores | Kolumner som "DNS Host Name", "CPU Cores" |
| Netset | .xlsx | Serienummer, Leveransdatum, Orderdatum, Radstatus | Svenska kolumnnamn: "Serienummer", "Leveransdatum" |
| AMS | .xlsx | Serial Number, Status, Active, Billing Mode, User Name | Kolumner som "Billing Mode", "LastCheckInDateTime" |
| E-post | .eml / .msg | Brödtext, bilagor (Excel/CSV), serienummer, IMEI, ordernummer | Filändelse .eml eller .msg |
📥 Steg 1 — Inläsning & normalisering
Varje uppladdad fil identifieras automatiskt genom att matcha kolumnrubriker mot kända signaturer för respektive system. Filen läses in i en pandas DataFrame och genomgår:
- Kolumnnormalisering — alla kolumnnamn konverteras till gemener, mellanslag trimmas, kända alias mappas (t.ex. "serialnumber" → "serial number")
- Dubblettkolumner — om samma kolumn förekommer flera gånger slås de ihop (första icke-tomma värdet behålls)
- Teckenkodning — stöd för UTF-8, Windows-1252, ISO-8859-1 och Latin-1
- Content-hash (MD5) — varje fil hashas för att undvika dubbletter och möjliggöra cache
Om flera filer av samma typ laddas upp (t.ex. 2 Intune-exporter) slås de ihop till en gemensam dataset.
🤖 Steg 2 — AI-extraktion av e-post
E-postfiler (.eml och .msg) bearbetas i två pass:
Pass 1 — Regex-extraktion
- Metadata: ämne, avsändare, datum, mottagare
- Serienummer (alfanumeriska, 8–15 tecken)
- IMEI-nummer (15 siffror)
- Ordernummer (CH00xxxx)
- RITM-nummer (ServiceNow)
- CSE/CLA-nummer
- Excel/CSV-bilagor parsas automatiskt
Pass 2 — GPT-4.1 (Azure AI)
- Brödtext + bilagor skickas till AI:n
- Extraherar: enhet, modell, åtgärd (retur/avveckling/repair/scrap)
- Identifierar användare, plats, datum
- Kategoriserar mejlet (retur, order, statusrapport etc.)
- Batchar om 5 mejl per API-anrop
- Resultat cachas per filinnehåll (MD5-hash)
💡 AI-resultaten cachas globalt. Samma fil processas aldrig två gånger, oavsett användare eller session. Första körningen tar ~30 min för 257 mejl, efterföljande <1 sekund.
🔗 Steg 3 — Korskorrelation
Alla system matchas mot varandra via normaliserade serienummer. Normaliseringen tar bort mellanslag, specialtecken och konverterar till gemener. Följande kontroller utförs:
Cube intern analys
- Status / Kundfält 3-avvikelse — Status säger "avvecklad" men Kundfält 3 saknar texten, eller tvärtom
- Dubbletter serienummer — Samma serienummer på flera rader i Cube
- Saknade nyckelfält — Enheter utan serienummer, datornamn eller delegerad person
Cube ↔ Intune
- Avvecklad men aktiv i Intune — Cube säger avvecklad, men Intune visar enheten som aktiv ⚠️
- Saknas i Intune — Aktiv enhet i Cube som inte finns i Intune
- Användaravvikelse — Olika användare i Cube vs Intune
- Compliance på avvecklad enhet — Avvecklad enhet som har compliance-policys i Intune
Cube ↔ Abacus (Leasing)
- Avvecklad med aktiv lease — Enhet markerad som avvecklad men leasingavtalet är fortfarande aktivt
- Aktiv enhet med utgången lease — Enheten används men leasen har gått ut
- Finance ID-avvikelse — Finance ID i Cube matchar inte Abacus
Cube ↔ vScope
- Avvecklad men synlig i nätet — Cube säger avvecklad, men vScope ser enheten på nätverket
- Saknas i vScope — Aktiv enhet i Cube som inte syns i nätverksskanningen
Cube ↔ Netset
- Levererad men saknas i Cube — Netset visar leverans men enheten finns inte i Cube
- Levererad men avvecklad — Enheten levererades men är markerad som avvecklad
AMS-kontroller
- AMS-enhet saknas i Cube/Intune — Enhet i AMS men inte i andra system
- Inaktiv AMS-enhet debiteras — Enheten är inaktiv men faktureras fortfarande
- Gammal check-in — Senaste check-in i AMS är >90 dagar sedan
- Statusavvikelse AMS/Cube — Status skiljer sig mellan AMS och Cube
- Användaravvikelse AMS — Olika användare registrerade i AMS vs Cube/Intune
E-postkontroller
- E-post/Cube-statusavvikelse — E-post indikerar retur/avveckling, men Cube visar aktiv status
- E-post vs Intune — Enheter nämnda som returnerade i e-post men fortfarande i Intune
- E-postreferens saknas i system — Serienummer i e-post som inte finns i något annat system
- Tidslinjeanalys — Returmejl äldre än 180 dagar men enhet fortfarande aktiv
Säkerhetsanalys
- Utköpt enhet i Intune — Enhet markerad som utköpt/avskriven men har fortfarande Intune-access
- Avvecklad enhet med nätverksaktivitet — Enheten borde inte vara på nätet
📊 Steg 4 — Klassificering & bedömning
Varje fynd klassificeras med kritikalitet och perspektiv:
Kritikalitetsnivåer
- KRITISK — Omedelbar åtgärd krävs (säkerhetsrisk, aktiv kostnad)
- HÖG — Bör åtgärdas inom 1–5 arbetsdagar
- MEDEL — Plan inom 5–15 arbetsdagar
- LÅG — Bra att veta, inga omedelbara risker
Perspektiv
- Efterlevnad (Compliance) — Enheter som inte matchar policys, status-konflikter mellan system
- Operationellt — Dubbletter, saknade fält, processbrister
- Säkerhet — Avvecklade enheter med aktiv access
- Ekonomi — Kostnad för enheter som inte används, lease-konflikter
Varje fynd innehåller: serienummer, beskriving av avvikelsen, rekommenderad åtgärd, tidsram, och vilka system som berörs.
🏗️ Teknisk arkitektur
Frontend
- Alpine.js — reaktiv UI
- Tailwind CSS — styling
- MSAL.js — Microsoft-inloggning
- Inbjudningskod som alternativ login
Backend
- FastAPI (Python) — REST API
- pandas — databearbetning
- Uvicorn — 2 workers
- Nginx — reverse proxy, SSL
AI & Moln
- Azure OpenAI GPT-4.1 — chat & e-postextraktion
- Azure VM — hosting
- Let's Encrypt — SSL-certifikat
- Entra ID — autentisering (multi-tenant)
⚡ Prestanda & cache
- Fildedup — Filer med identiskt innehåll (MD5-hash) laddas inte upp igen
- AI-cache — AI-resultat sparas per filinnehåll. Samma mejl processas aldrig 2 gånger, oavsett användare
- DataFrame-cache — Parsade Excel/CSV-filer cachas som pickle-filer
- Användarbaserade sessioner — Samma användarnamn = samma session, filer och resultat bevaras
- Första analysen — ~30 min (257 mejl × GPT-4.1), efterföljande ~45 sek