Databáze promptů · AI · 14 promptů
Prompty z návodu
Interní CRM se Supabase: detailní návod od dat po nasazení
14 promptů z tohoto návodu. Doplňte to, co je v [hranatých závorkách] — vlastní kontext, text dokumentu nebo jméno nástroje. Právě ten kontext dělá rozdíl mezi obecnou a použitelnou odpovědí.
Co už máte, jen o tom nevíte
Připravuji data pro interní CRM naší firmy [malá pražírna kávy, 6 lidí, cca 80 velkoobchodních odběratelů]. Nahrávám exporty: kontakty z mobilu (CSV), kontakty z e-mailu, tabulku z přepisu vizitek, tři Excely s objednávkami za roky [2024–2026] a export faktur. Udělej inventuru, nic zatím neměň: 1. U každého souboru vypiš, jaké sloupce obsahuje, kolik má záznamů a jak vypadá typický řádek 2. Odhadni překryvy: kolik firem a osob se vyskytuje ve více zdrojích 3. Vypiš nekonzistence formátů: telefony, IČO, názvy firem, datumy 4. Označ, co ve zdrojích úplně chybí a budu muset doplnit ručně Výstupem je přehledová tabulka zdrojů a seznam problémů seřazený podle závažnosti. Čekám na schválení, než začneme čistit.
Čištění: deduplikace a normalizace
Vyčisti nahraná data kontaktů a firem podle těchto pravidel: 1. Telefony převeď na mezinárodní formát [+420 a devět číslic bez mezer]; co nejde převést, označ ve sloupci problem 2. IČO: musí mít 8 číslic a platný kontrolní součet — neplatná označ, nedomýšlej je 3. Názvy firem sjednoť: odstraň rozdíly typu „s.r.o.“ vs „s. r. o.“, velikost písmen, překlepy — ale původní název zachovej ve sloupci nazev_puvodni 4. Najdi pravděpodobné duplicity (stejné IČO, podobný název + stejné město, stejný e-mail) a vypiš je jako PÁRY s mírou jistoty — nesluč nic sám, sloučení schvaluji po jednom 5. E-maily zkontroluj na zjevné překlepy domén; opravy jen navrhni Vrať vyčištěnou tabulku a zvlášť seznam navržených sloučení.
Čištění: deduplikace a normalizace
Ze schválených vyčištěných dat vytvoř importní CSV soubory přesně podle schématu CRM: companies.csv, contacts.csv, orders.csv, notes.csv [schéma vložím z další fáze]. Pravidla: - každý řádek objednávky se musí odkazovat na existující firmu; kde vazba chybí, dej řádek do souboru orders_nesparovane.csv, nic nehádej - u kontaktů vyplň sloupec zdroj (mobil-marta, vizitky-veletrh-2026, export-fakturace...), ať vždycky víme, odkud záznam přišel - prázdné hodnoty nech prázdné, žádné „neuvedeno“ ani vymyšlené údaje Na závěr vypiš kontrolní součty: počet řádků v každém souboru a kolik záznamů se cestou ztratilo a proč.
RLS politiky pro tři role, větu po větě
Vygeneruj SQL migrace pro CRM: tabulky companies, contacts, orders, interactions, notes a profiles podle schématu, které jsme navrhli. Pro každou tabulku zapni RLS a napiš politiky podle matice: - select: všichni přihlášení - insert a update: role obchod a admin - delete: jen admin - profiles: přihlášení jen čtou, zápis přes API nikdo Ke každé politice napiš komentář, co přesně povoluje a komu. Pak mi každou migraci vysvětli jako člověku, který SQL nečte denně — co se stane, když ji spustím, a co by se stalo, kdybych ji nespustil. Schvaluji každou migraci zvlášť, nic nespouštěj bez schválení.
Anon klíč, service role klíč a co nese JWT
Založ v testovacím projektu tři testovací účty: test-admin, test-obchod a test-ctenar s odpovídajícími rolemi v profiles. Pak za každý účet zkus provést všechny operace nad všemi tabulkami CRM: select, insert, update, delete — a jednu operaci bez přihlášení s pouhým anon klíčem. Vrať matici výsledků: řádky operace × tabulka, sloupce role, v buňce povoleno/zamítnuto. Označ každou buňku, kde se výsledek liší od zamýšlené matice oprávnění, a vysvětli proč. Testuj proti testovacímu projektu se smyšlenými daty, ne proti ostrým.
Synchronizace: z CRM do Brevo, zpátky jen odhlášení
Napiš skript, který synchronizuje kontakty z našeho CRM v Supabase do Brevo přes jeho API: 1. Vyber z contacts jen záznamy, kde newsletter_consent = true a unsubscribed_at je prázdné — nikoho jiného do Brevo neposílej 2. Zařaď je do listu podle kategorie firmy [velkoobchod / koncoví] a naplň atributy JMENO, MESTO, KATEGORIE 3. Kontakty, které v Brevo jsou, ale podmínku už nesplňují, z listů odeber (neodstraňuj z Brevo účtu, jen z listů) 4. API klíč Brevo čti z proměnné prostředí, v kódu nesmí být 5. Skript má režim dry-run: vypíše, co by udělal, bez zápisu Napiš i stručný návod, jak skript spouštět, a co znamená každý řádek výstupu. První spuštění uděláme spolu v dry-run režimu.
Synchronizace: z CRM do Brevo, zpátky jen odhlášení
Nastav zpětný tok odhlášení z Brevo do CRM: 1. Vytvoř v projektu serverový endpoint, který přijme webhook Brevo o odhlášení a nedoručitelné adrese (hard bounce) 2. Endpoint najde kontakt podle e-mailu a nastaví unsubscribed_at na čas události; když kontakt nenajde, událost zaloguj, nemaž ji 3. Zápis do databáze udělej přes service role klíč — endpoint běží na serveru; vysvětli mi, proč tady anon klíč nestačí 4. Endpoint zabezpeč ověřením, že požadavek opravdu přišel z Brevo Ukaž mi kód a vysvětli ho po blocích, než ho nasadíme.
Právo na výmaz: proces, ne tlačítko
Navrhni proces „právo na výmaz“ pro naše CRM a Brevo: 1. Podle e-mailu nebo jména najdi všechna místa, kde osoba figuruje: contacts, notes, interactions, listy a kontakty v Brevo 2. Vypiš, co navrhuje smazat, co anonymizovat (objednávky firmy zůstávají — jsou to obchodní záznamy, ale bez vazby na osobu) a co musíme ze zákona podržet — u toho uveď důvod 3. Nic nemaž; výstupem je protokol návrhu, který schválím, a teprve pak vygeneruj konkrétní SQL a kroky v Brevo 4. Na konec přidej záznam o vyřízení žádosti s datem — ten si archivujeme mimo CRM Mazání je nevratné, proto každý krok schvaluji jednotlivě.
Fáze 4: co to bude stát — poctivá rozvaha
Pomoz mi s rozvahou nákladů na vlastní CRM. Naše čísla: [6] uživatelů, [cca 80] firem a [500] kontaktů v databázi, newsletter [1× měsíčně na 80 adres, výhledově 2 000 koncových zákazníků], databáze dnes [pod 1 GB]. Vyhledej AKTUÁLNÍ ceníky a podmínky free tierů Supabase, Vercel a Brevo (cituj zdroje s datem) a odpověz: 1. Jak dlouho nám vydrží free tiery a na který limit narazíme první 2. Co přesně získáme prvním placeným tarifem u každé služby 3. Srovnej roční náklad téhle skladby s [hotové CRM, které zvažujeme] při našem počtu uživatelů 4. Které limity se od tvých tréninkových dat mohly změnit — označ, co jsi ověřil ve zdrojích a co ne Bez marketingových formulací, jen čísla a zdroje.
Založení projektu a migrace
Zakládáme Supabase projekt pro interní CRM. Postupuj po krocích a před každým čekej na schválení: 1. Projekt založ v EU regionu [Frankfurt] — v databázi budou osobní údaje zákazníků a chceme evropskou jurisdikci 2. Aplikuj postupně schválené migrace: schéma tabulek, profiles s rolemi, RLS politiky, newsletter sloupce — v tomhle pořadí, po každé migraci vypiš stav (které tabulky existují, kde je zapnuté RLS) 3. Ulož migrace jako soubory do gitu, ať má schéma historii 4. Na závěr spusť kontrolu: vypiš každou tabulku bez zapnutého RLS a každou tabulku bez politik — obě čísla musí být nula Anon klíč a URL projektu mi vypiš, service role klíč nikam nevypisuj — nastavíme ho rovnou jako proměnnou prostředí.
Aplikace: interní tabulkové UI, žádný design
Postav jednoduchou interní aplikaci nad naším Supabase CRM (Next.js): 1. Přihlášení přes Supabase Auth (e-mail + heslo i magic link); bez přihlášení se nezobrazuje vůbec nic, ani seznam firem 2. Stránka Firmy: tabulka s vyhledáváním podle názvu a filtrem podle kategorie; klik vede na detail firmy 3. Detail firmy: kontakty, objednávky seřazené od nejnovější, poznámky a interakce s formulářem pro přidání nové poznámky 4. Formuláře zobrazuj podle role z profiles: čtenáři needitovatelné — ale připomeň v kódu komentářem, že skutečné vymáhání dělá RLS 5. Žádný designový systém, stačí čitelná tabulka a formuláře; mobilní zobrazení ať je použitelné, obchodník bude v terénu Postupuj po stránkách, každou mi ukaž, než začneš další.
Nasazení: zamčené od první minuty
Nasaď CRM na Vercel s tímhle bezpečnostním checklistem: 1. Service role klíč a další tajemství jen jako serverové proměnné prostředí; zkontroluj, že žádná proměnná s tajemstvím nemá prefix, který ji pošle do prohlížeče 2. Ověř, že žádná stránka ani API endpoint nejsou dostupné bez přihlášení — projdi všechny cesty a vypiš u každé, čím je krytá 3. Zapni ochranu preview nasazení, ať rozpracované verze nevidí nikdo nepřihlášený 4. Zkus otevřít aplikaci v anonymním okně a vypiš, co je vidět — správná odpověď je jen přihlašovací stránka Vrať checklist s výsledkem každého bodu, ne jen „hotovo“.
Import dat: potřetí a naposledy kontrolní součty
Naimportuj vyčištěná data z fáze 1 (companies.csv, contacts.csv, orders.csv, notes.csv) do produkční databáze: 1. Nejdřív dry-run: vypiš, kolik řádků by se vložilo do každé tabulky, kolik by se odmítlo a proč (chybějící vazby, duplicitní IČO) 2. Po mém schválení proveď import přes serverový skript se service role klíčem a vypiš finální počty 3. Porovnej počty se zdrojovými CSV: každý rozdíl vysvětli konkrétně, žádné „pár řádků se nevešlo“ 4. Nakonec namátkou vypiš 10 firem s kontakty a posledními objednávkami — projdu je proti původním podkladům ručně Import se nesmí spouštět dvakrát: navrhni pojistku proti duplicitnímu spuštění a vysvětli mi ji.
První pohledy: ať se CRM zaplatí první týden
Založ v CRM pohledy spici_odberatele a nejvetsi_zakaznici podle návrhu a přidej do aplikace stránku Přehled, která je zobrazuje. U spících odběratelů přidej u každé firmy odkaz na její detail a tlačítko „založit poznámku o kontaktu“. Vysvětli mi, jak pohledy respektují RLS (security_invoker) a ověř to testem za roli ctenar. Hranici 42 dní udělej konfigurovatelnou na jednom místě, ne rozkopírovanou v kódu.