Vad jag byggde den här veckan: Perfex CRM-moduler och admin UX
Tech
Perfex CRM
AI Filters
Email History
CRM

Vad jag byggde den här veckan: Perfex CRM-moduler och admin UX

En praktisk titt på det arbete jag levererade den här veckan i Perfex CRM:s adminlager: E-posthistorik, AI-filter, mobil admin UX, nästa steg för leads och releaseportar för Perfex CRM.

Uygar DuzgunUUygar Duzgun
Jul 24, 2026
Uppdaterad 26 juli 2026
8 min read

Vad jag byggde den här veckan: Perfex CRM-moduler och admin UX

Den här veckan byggde jag två Perfex CRM-moduler och en bredare förbättring av Perfex CRM:s admin UX. Det var inte en stor funktion. Det var en praktisk städning av det arbete som saktar ner ett CRM-team varje dag: att hitta rätt kontext, filtrera listor utan att komma ihåg varje fält, skanna tabeller på mobilen och leverera moduluppdateringar utan att gissa.

Den viktiga delen är att jag höll arbetet nära Perfex CRM istället för att bygga ett andra system bredvid det. De nya delarna är moduler, hooks, förbättringar av listor och releasekontroller som passar in i det befintliga adminarbetsflödet.

Kärnidé: Håll Perfex inbyggd, gör arbetet snabbare

det Perfex CRM:s adminlager lever redan inuti Perfex CRM, så målet var inte att ersätta Perfex. Målet var att ta bort friktion runt det.

Ett CRM blir vanligtvis rörigt på små sätt. Tabeller blir svåra att skanna. E-postkontext ligger utanför leaden. Filter är kraftfulla, men personalen måste veta de exakta fälten innan de kan använda dem. Mobila admin-sidor fungerar tekniskt, men de känns som skrivbordssidor pressade in i en telefon.

Det är vad jag arbetade med den här veckan. Två modulbyggen var viktigast: E-posthistorik och AI-filter.

Vad som förändrades i praktiska termer

Arbetet bryts ner i fyra praktiska förbättringar: bättre kundkontext, snabbare CRM-filtrering, renare admin-tabeller och säkrare modulutgåvor. E-posthistorik hanterar kontextproblemet. AI-filter hanterar sök- och segmenteringsproblemet. DataTables-passet gör de dagliga adminskärmarna lättare att skanna. Releaseportarna minskar risken för att leverera en trasig Perfex CRM-moduluppdatering.

För sökningen är huvudämnet Perfex CRM-moduler, men den verkliga avsikten är bredare: team vill ha CRM-automatisering som inte läcker data, bryter inbyggda arbetsflöden eller tvingar personalen att lära sig en ny instrumentpanel.

Modul 1: E-posthistorik för Perfex CRM

E-posthistorikmodulen lägger till en skrivskyddad konversationsvy för Perfex-leads och kunder.

Modulen importerar matchande meddelanden från konfigurerade IMAP-postlådor eller från en .eml-katalog, och länkar meddelanden endast när den externa deltagaren exakt matchar en lead- eller kundkontakt-e-post i Perfex. Den exakta matchningsregeln är viktig. Den håller modulen användbar utan att förvandla den till en lös e-postsökningsindex.

Modulen skickar inte mail, svarar på mail, raderar mail eller markerar meddelanden som lästa. Den är byggd som bevis och kontext, inte som en annan inkorg.

För leadskärmen är den användbara delen enkel: när jag öppnar en lead kan jag se den senaste tillgängliga e-postkontexten utan att lämna CRM:et. Samma kontext kan också stödja beslut om nästa steg i leadprofilen. Om en lead har blivit tyst, om det senaste mailet ändrar statusen, eller om personalen behöver en påminnelse om den senaste verkliga konversationen, har CRM-vyn bevisen nära.

Jag lade också till starkare gränser runt intern mail. Modulen stödjer ignorerade e-postmeddelanden inom samma domän och ytterligare interna företagsdomäner, så interna konversationer förorenar inte kundhistorikvyn. Befintlig revisionsdata raderas inte bara för att synlighetsreglerna ändras.

Datahanteringen är avsiktligt konservativ. Den lagrar ren text, deltagare, rubriker som behövs för vyn och de exakta CRM-relationerna. Den lagrar inte bilagor, renderar HTML, laddar fjärrbilder, kör spårningspixlar eller visar iframes. Behörigheter är krypterade, och importer kan köras som torrkörning först innan ändringar tillämpas.

Det är den typ av CRM-automatisering jag litar mer på: skrivskyddad där det ska vara skrivskyddat, strikt matchning där lös matchning skulle skapa brus, och tillräcklig revisorbarhet för att förstå vad som hände.

Modul 2: AI-filter för Perfex CRM

Den andra modulen är AI-filter för Perfex CRM.

Idén är enkel: en anställd beskriver listan de vill ha på ett enkelt språk, och modulen omvandlar den begäran till inbyggda Perfex-filterregler.

Detta är användbart eftersom CRM:er redan har filtreringslogik, men användare kommer ofta inte ihåg var varje fält finns. De vet vad de vill ha: förfallna fakturor, högvärdiga leads från en källa, aktiva projekt med en specifik status, biljetter som behöver uppmärksamhet. Modulen omvandlar den avsikten till det befintliga filtersystemet istället för att uppfinna ett separat söklager.

Säkerhetsgränsen är huvudfunktionen. Modulen skickar användarens begäran och de tillgängliga filterdefinitionerna till OpenAI. Den skickar inte raderna från den filtrerade listan. Den skickar inte sparade filter som data. Modellen kan inte returnera SQL, körbar kod, råa callbacks eller godtyckliga kolumnnamn. Servern validerar utdata mot en tillåten lista innan något tillämpas.

UI:n är också byggd runt återställning. Om AI-begäran misslyckas förblir användarens aktuella filter och inmatad text intakt. Att rensa AI-filtret återställer det exakta tillståndet före AI-filtret. Trollstavsikonen finns där för hastighet, men resultatet landar fortfarande inom Perfex:s inbyggda filterbeteende.

Jag flyttade också modulkonfigurationen till det inbyggda Perfex-inställningsområdet, lade till krypterad skrivskyddad API-nyckelhantering och skärpte avinstallationsrengöringen kring rollbehörigheter. För releaseuppdateringar kontrollerar modulen oföränderliga GitHub-release-tillgångar, versionsmetadata, SHA-256-digest, arkivvägar, PHP-syntax och beteende för byte av samma filsystem innan filer ersätts.

Det låter tråkigt tills en CRM-moduluppdatering går fel. Då är det den enda saken som betyder något.

Adminlistor fick den största visuella förbättringen

Den synliga delen av veckan var adminlistans UX.

Jag arbetade på en kompakt kort-rad design för DataTables över Perfex CRM:s adminlager. Poängen var att göra listskärmar lättare att skanna utan att ändra den underliggande datakällan. Rubrikerna fick renare sorteringsindikatorer. Aktiva sorteringskolumner visar nu en starkare accentpil, medan osorterade kolumner behåller en lättare antydan. Radåtgärder komprimerades till en liten meny där det var meningsfullt, och taggöverskott använder nu ett +N-mönster istället för att sträcka ut raden.

Leads fick också en starkare struktur. Status flyttades framåt, kontaktåtgärder blev en tydligare ikonkolumn, och källa flyttades senare dit den hör hemma. Detta gör att tabellen läses mer som en arbetskö istället för en rå databasexport.

Jag fixade också cacheproblem kring admin CSS genom att använda en md5-versionerad custom.css URL. Det var en liten förändring med stor effekt: oförändrad webbläsarcaching bör inte lämna personalen stirrandes på en gammal stil efter att en UX-fix har levererats.

Mobil adminarbete

En CRM-administratör bör inte falla isär på en telefon.

Den här veckan inkluderade mobila förbättringar över kunder, leads, projekt, uppgifter, fakturor, utgifter och uppskattningar. Jag skärpte viktiga kolumner, touchmål, inmatningar, kontrast i paginering, scrollmöjligheter på högra kanten, fokusringar och mörkt läge-beteende.

Det handlar inte om att få ett CRM att kännas som en konsumentapp. Det handlar om att göra snabba adminarbeten möjliga när någon är borta från ett skrivbord. Om en användare bara behöver kontrollera en lead, skanna en faktura eller uppdatera en uppgift, bör sidan inte straffa dem för att öppna den på mobilen.

Sökning i kunskapsbasen byggdes om

Kunskapsbaslistan fick också en riktig sökpass.

Jag lade till en central sökhero, live-räknare, markering, Enter- och Escape-beteende, och en tangentbordsgenväg. Det förvandlar kunskapsbasen från en statisk lista till något närmare ett internt verktyg. Personal bör kunna hitta rätt svar snabbt, särskilt när de redan är inne i ett kundarbetsflöde.

Lead nästa steg blev mer användbar

Lead nästa steg-widgeten har nu bättre kontext att arbeta med. E-posthistorik kan ge nyligen kommunikationskontext, medan arbetsflödet håller beslutet nära leadprofilen.

Det är den riktning jag gillar för AI i CRM-arbete. AI:n bör inte sväva ovanför systemet. Den bör sitta bredvid den faktiska posten, använda smal kontext, förklara nästa åtgärd och lämna användaren i kontroll.

Releaseportar och tester betyder mer än UI:n

Det mindre synliga arbetet den här veckan kan vara det viktigaste.

Jag förstärkte modulpaketering och releaseportar, lade till kontroller kring E-posthistorik-migrationer, testade importerarbete, täckte AI-filterpaketering, och lade till lokala TLS- och distributionskontroller kring panelmiljön.

Lärdomen är enkel: förbättringar av admin UX är endast trovärdiga när releasevägen är tråkig. En fin tabelldesign är inte tillräcklig om moduluppdateringar är sköra. Ett användbart AI-filter är inte tillräckligt om modellen kan trycka osäker filterutdata. E-postkontext är inte tillräckligt om modulen lagrar för mycket eller länkar meddelanden för löst.

Så arbetet delades mellan produktens yta och operationell disciplin: bättre skärmar, striktare moduler, säkrare uppdateringar och mindre felmodeller.

Vad jag tog med mig från den här veckan

Den bästa anpassningen av Perfex CRM är inte den som visar upp mest anpassad kod. Det är den som får det befintliga CRM:et att kännas vassare utan att bryta det sätt som team redan arbetar på.

E-posthistorik gör CRM-posten mer komplett. AI-filter gör listvyerna lättare att använda. Admin-tabellens arbete gör daglig skanning snabbare. Mobilfixarna gör samma arbetsflöden mindre smärtsamma borta från skrivbordet. Releaseportarna gör arbetet säkrare att leverera.

Det är den versionen av AI CRM-automatisering jag vill fortsätta bygga: smal, användbar, testbar och kopplad till verkligt adminarbete.