Přejít k obsahu
Interní produktAplikaceCRMVe vývoji

WCRM: leady a úkoly místo tabulek

Interní CRM pro obchodní tým Walia, které je ve vývoji. Má spojit leady ze Scrapiku, plánování dalšího kroku a práci obchodníka na počítači i v telefonu.

Zadavatelnkz.dev, interní
RoleNávrh rozhraní i vývoj
StavVe vývoji
WCRM – přehled leadů a naplánovaných kroků
Zadání

Leady v tabulce a v hlavě

Walio prodáváme lokálním podnikům. Kontakty na ně sbírá Scrapik, ale dávka firem sama nic nevyřeší: někdo musí rozhodnout, komu se bude volat, kdy a co se stalo naposledy. Vedli jsme to v tabulce a po několika stovkách záznamů to přestalo stačit.

Hotová CRM tuhle část umí, ale žádné neumělo přijímat dávky ze Scrapiku tak, aby nepřepsala rozdělanou práci. Napsali jsme si proto vlastní.

Co stavíme

Šest částí jedné aplikace

Návrh a datový model jsou hotové u všech částí. Obrazovky napojujeme na databázi postupně, import ze Scrapiku je zatím rozpracovaný.

Import leadů ze Scrapiku

Dávka firem z Google Places a veřejných rejstříků má přijít do CRM, projít kontrolou duplicit a rozdělit se obchodníkům. Napojení připravujeme.

Denní seznam obchodníka

Obrazovka Dnes drží naplánované kroky. Každý záznam má další krok, takže nic nepropadne mezi telefonáty.

Pipeline dvěma pohledy

Kanban odpovídá na to, kde co stojí. Tabulka na to, co se zavírá do konce měsíce a co má jakou hodnotu.

Detail firmy a kontaktu

Firma je hlavní entita, kontakt má vlastní obrazovku s historií. Volám člověku, chci jeho historii, ne celé firmy.

Mobilní aplikace obchodníka

Pod 900 pixely se vykreslí čtyři taby: Dnes, Firmy, Hledat, Já. Práce v terénu bez zmenšeného desktopu.

Role bez zamčených tlačítek

Obchodník, manažer a admin vidí jiné obrazovky. Prvek, na který uživatel nemá právo, v rozhraní není.

Proč takhle

Tři rozhodnutí o rozhraní

Kontakty nejsou v navigaci, ale mají vlastní obrazovku

Firma je hlavní entita, takže seznam tisíců lidí by byl mrtvá obrazovka. Konkrétního člověka najde hledání. Detail kontaktu ale je reálný postup: volám mu a chci jeho historii.

Příležitosti jsou přepínač, ne druhá položka v navigaci

Kanban odpovídá na „kde mi co stojí“, tabulka na „co se zavírá do konce měsíce“. Jsou to dva pohledy na stejná data, dvě položky v navigaci by nutily přemýšlet, kam kliknout.

Oprávnění se nezamykají, prostě se nevykreslí

Žádné zašedlé tlačítko a žádná hláška o chybějícím právu. Obchodník u cizí firmy vidí omezený náhled a jedinou akci: požádat o přidělení. Roli čte aplikace z databáze, ne ze svého stavu.

Průběh

Čtyři etapy

Práce v tabulkách

Leady jsme vedli v tabulce a v hlavě. Nikdo neviděl, kdo komu volal a co se má stát dál.

Návrh rozhraní

Nejdřív vznikl designový handoff pro desktop i mobil: obrazovky, stavy, tokeny pro barvy, rádiusy a výšky.

Databáze a přihlášení

Schéma v Supabase, oprávnění vynucená na úrovni databáze. Účet čeká na schválení admina, sám o sobě nic neotevře.

Napojení obrazovek

Rozhraní zatím čte ukázková data. Postupně je nahrazujeme dotazy do databáze, začínáme seznamy a detailem.

Obchodní pravidla

Co v CRM platí, i když to není vidět

Tahle pravidla nejsou detaily rozhraní. Kdyby přestala platit, aplikace by začala ztrácet rozdělanou práci.

Import nepřepíše práci

Nová dávka aktualizuje jen faktické údaje o podniku. Vlastník, stav, poznámky, úkoly a historie zůstávají.

Vyřazený lead se nevrátí

Vyhodnocení kvality se uchovává, takže ručně vyřazená firma nepřijde v další dávce znovu jako nová.

Zápis aktivity není plán

Aktivita jde do historie, krok do budoucnosti. Po zápisu se nabídne naplánování dalšího kroku, jde ho i přeskočit.

U cizího údaje je vidět zdroj

Scrapik, Google Places nebo veřejný rejstřík. Takový údaj nejde ručně přepsat.

Duplicita i podle jména osoby

Kontrola se dívá na název, IČO, e-mail, telefon, doménu i jméno osoby. Když ohlásí shodu, obchodník může lead i tak založit, protože shoda ještě neznamená duplicitu.

Převzetí není přidělení

Volný lead si obchodník vezme hned. O firmu, kterou už má kolega, musí požádat a žádost dostane kolega i manažer.

Technologie

Oprávnění hlídá databáze

Oprávnění vynucuje databáze, ne rozhraní. Barvy, rádiusy a výšky drží vlastní tokeny.

Aplikace a data
React 19TypeScriptVite 7React Router 7SupabasePostgreSQLRow Level SecurityVlastní CSS tokeny
Rozsah

Z čeho se aplikace skládá

3Role s vlastní sadou obrazovek
2Rozhraní: desktop a mobil
9Klávesových zkratek na desktopu
6Obchodních pravidel popsaných výš
Kde to je teď

Databáze běží, obrazovky napojujeme

Aplikace má skutečné přihlášení a skutečné schéma v databázi včetně oprávnění. Obrazovky ale zatím čtou ukázková data, takže změny vlastníka nebo fáze po obnovení stránky nevydrží.

Postupně je nahrazujeme dotazy do databáze. Seznamy potřebují stránkování, filtry a řazení na serveru, protože jde o tisíce záznamů. Import ze Scrapiku poběží na serveru a rozhraní bude jen číst výsledek.

Řešíte něco podobného?

Napište nám, jak dnes evidujete obchod. Ozveme se do dvou pracovních dnů.

Další projekty

Co jsme dělali dál

Všechny projekty →