# Supabase + Brew

Spouštěj automatizace v Brew pomocí databázových webhooků na tabulce auth.users v Supabase – včetně odvozených událostí pro potvrzení e-mailu, změnu hesla, převod anonymního účtu na skutečný a zablokování nebo odblokování.

Kanonická URL: https://brew.new/cs/browse/integrations/supabase

- Směr: Příchozí data
- Připojení: Tajemství webhooku
- Spouštěče událostí autentizace

## Dostupné funkce

- **Spouštěče událostí**: Spouštěj automatizace v Brew pomocí databázových webhooků na tabulce auth.users v Supabase – včetně odvozených událostí pro potvrzení e-mailu, změnu hesla a přihlášení.

## Udělej z událostí autentizace užitečné e-maily

Připoj Supabase a spouštěj e-maily v duchu značky, když se někdo zaregistruje, potvrdí svůj e-mail, změní heslo nebo je zablokován. Instalační skript přidá do tvé tabulky auth.users databázový trigger a Brew každou změnu převede na jeden z celkem 12 spouštěčů automatizací.

Přihlašování, potvrzovací odkazy, magic linky a obnovu hesla má dál na starosti Supabase Auth. Brew vytváří a posílá e-maily, které na tyto změny navazují.


## Co můžeš vytvořit

- Uvítací e-maily: začni událostí auth.user.email_confirmed, aby první e-mail dorazil jen na ověřené adresy. Brew tuto událost odvozuje jen z aktualizace, která nastaví email_confirmed_at, takže u uživatele, jehož řádek rovnou vznikne jako potvrzený, nastane jen auth.user.created. Ověř, který případ platí pro tvůj projekt, a pak vyber jen jeden spouštěč, aby uvítání nepřišlo dvakrát.
- Uvítání hostů, kteří si založili účet: událost auth.user.upgraded_from_anonymous nastane, když se is_anonymous změní z true na false, tedy ve chvíli, kdy se z anonymního uživatele stane trvalý účet.
- Oznámení o změně hesla: událost auth.user.password_changed nastane při jakékoli změně encrypted_password. Payload neobsahuje žádné údaje o hesle. Pro případ, že změnu neprovedl sám uživatel, odkaž na vlastní stránku pro obnovení účtu.
- Oznámení o změně e-mailu: událost auth.user.email_changed obsahuje starou adresu v poli previousValue a novou adresu v poli newValue. Brew posílá na novou adresu.
- Navazující e-maily k pozvánkám: událost auth.user.invited nastane, když aktualizace nastaví invited_at. Odkaz s pozvánkou posílá přímo Supabase Auth a e-mail z Brew k němu může přidat kontext pro onboarding. Než se na tento spouštěč spolehneš, pošli ze svého projektu skutečnou testovací pozvánku.
- Oznámení o zablokování: událost auth.user.banned nastane, když se nastaví banned_until, a hodnotu tohoto pole obsahuje v newValue. Událost auth.user.unbanned nastane, když se banned_until vymaže.
- Potvrzení smazání: událost auth.user.deleted nastane, když se řádek smaže, a pořád obsahuje e-mailovou adresu z tohoto řádku.

## Události přihlášení neznamenají návrat uživatele

Událost auth.user.signed_in nastane, když se změní last_sign_in_at. Tento sloupec ale mění i obnova tokenů v Supabase, takže událost může nastávat opakovaně, zatímco uživatel zůstává přihlášený. Neukazuje tedy, že se někdo vrátil po dlouhé nepřítomnosti.

Je to navíc odvozená událost s nejnižší prioritou. Když stejná aktualizace potvrdí e-mail nebo převede anonymního uživatele na trvalý účet, Brew vyšle tuto událost místo auth.user.signed_in.

Pokud chceš poslat e-mail neaktivním uživatelům, o neaktivitě rozhoduj ve své aplikaci podle jejích vlastních dat o aktivitě. Samostatnou vlastní událost Brew spusť jen pro uživatele, kteří podmínky splňují, a e-mail z této události nech poslat aktivní automatizaci.

Otestuj obě cesty: neaktivní uživatel e-mail dostane; uživatel, který byl před kontrolou aktivní, ho nedostane.


## Nastavení Supabase v Brew

- Otevři Integrace, vyber Supabase a klikni na Vygenerovat URL webhooku. Brew tuto URL rovnou doplní do instalačního SQL.
- Vytvoř podpisové tajemství příkazem openssl rand -hex 32. Brew ani Supabase ho nevydávají a Brew vyžaduje alespoň 16 znaků.
- V Supabase otevři SQL Editor a vlož instalační SQL. Zástupnou hodnotu tajemství nahraď svým tajemstvím a SQL spusť. Skript zapne rozšíření pgcrypto a pg_net, uloží tajemství do Supabase Vault a přidá k tabulce auth.users databázový trigger pro vkládání, aktualizace a mazání.
- Stejné tajemství vlož do Brew a klikni na Připojit. Tím vzniknou spouštěče pro všech 12 událostí. Jednotlivé události nejde zapnout ani vypnout.
- Po připojení vytvoř v Supabase v sekci Authentication > Users testovacího uživatele. Stav v Brew se změní z „Čeká na testovací událost“ na „Připojeno“ a v sekci Nedávné události se zobrazí doručení s označením „podpis v pořádku“.
- Vytvoř automatizaci, vyber pro ni událost ze Supabase a pošli test, dokud je to ještě koncept. Když dorazí odpovídající událost, spustí se jen aktivní automatizace.
- Potřebuješ oprávnění spouštět SQL nad schématem auth, instalovat rozšíření a zapisovat do Supabase Vault. Po obměně tajemství můžeš SQL bezpečně spustit znovu.

## Podporované události Supabase

Události auth.user.created, auth.user.updated a auth.user.deleted vznikají z vložení, aktualizací a smazání v tabulce auth.users. Ostatní události Brew odvozuje z aktualizace tak, že porovná starý a nový řádek.

Jedna aktualizace vyvolá jednu událost. Když se změní několik sloupců najednou, vyhraje první shoda v tomto pořadí: email_confirmed, phone_confirmed, upgraded_from_anonymous, email_changed, password_changed, banned, unbanned, invited, signed_in. Aktualizace, která neodpovídá žádné z nich, dorazí jako auth.user.updated.

Brew podporuje těchto 12 typů událostí:

- auth.user.created
- auth.user.updated
- auth.user.deleted
- auth.user.email_confirmed
- auth.user.phone_confirmed
- auth.user.email_changed
- auth.user.password_changed
- auth.user.signed_in
- auth.user.banned
- auth.user.unbanned
- auth.user.invited
- auth.user.upgraded_from_anonymous

## Synchronizace kontaktů a personalizace

Každá ověřená událost se skutečnou e-mailovou adresou vytvoří nebo aktualizuje kontakt v Brew s touto adresou, a to bez ohledu na to, jestli událost používá nějaká automatizace. Pokud jsou data k dispozici, Brew nastaví jméno, příjmení, supabase_user_id, supabase_phone, supabase_role, supabase_full_name, supabase_avatar_url a supabase_provider.

Některé události nastaví i pole životního cyklu. Pole supabase_account_status získá hodnotu active, invited, banned nebo deleted. Pole supabase_email_verified_at, supabase_phone_verified_at a supabase_last_sign_in_at pocházejí z odpovídajících událostí potvrzení a přihlášení.

Pro proměnné vycházej z deklarovaného schématu payloadu vybrané události. Každá událost obsahuje pole email a, pokud jsou k dispozici, i firstName, lastName, fullName, displayName, avatarUrl, phone, role, provider, createdAt, lastSignInAt a emailConfirmedAt. Jména a avatary pocházejí z raw_user_meta_data se záložními hodnotami pro registrace přes OAuth. Všechna tři časová razítka jsou unixový čas v sekundách.

Odvozené události přidávají previousValue, newValue nebo obojí, tedy starou a novou hodnotu sloupce jako text. Událost auth.user.password_changed nemá ani jedno. Pole provider obsahuje způsob registrace, například email, google nebo github, takže můžeš uvítací sekvence větvit podle toho, jak se kdo zaregistroval.

ID uživatele v Supabase není proměnná. Brew ho u kontaktu ukládá jako supabase_user_id pro filtrování a segmentaci.

Účet v Supabase neznamená souhlas s marketingovými e-maily. Souhlas zaznamenej už při registraci a před propagačními rozesílkami ho ověř.


## Nahrazuje Brew autentizační e-maily, které posílá Supabase?

Ne. Potvrzovací odkazy, magic linky, pozvánky a obnovení hesla dál posílá Supabase Auth přes vlastní nastavení e-mailů, například vlastní SMTP. Brew spouští automatizace až poté, co se tyto změny propíšou do auth.users. Supabase doporučuje pro autentizační a marketingové e-maily oddělené odesílací domény.


## Proč se událost zobrazí, ale e-mail neodejde?

Přijetí události a odeslání e-mailu jsou samostatné kroky. Ověř, že odpovídající automatizace je aktivní, a pak projdi její filtry a historii běhů a zkontroluj, jestli má příjemce na e-mail nárok a jak je na tom odesílací doména. Událost uživatele bez e-mailové adresy, například anonymního uživatele, který si ji zatím nepřidal, nevytvoří žádný kontakt a nespustí žádnou automatizaci.


## Omezení a řešení potíží

- Brew čte jen tabulku auth.users. Pro události z jiných tabulek vytvoř v Brew vlastní spouštěč a aktivuj ho přes API Brew ze své aplikace nebo z Edge Function v Supabase.
- Brew nemůže vytvářet, blokovat ani mazat uživatele v Supabase a neposílá e-maily Supabase Auth.
- Pokud doručení neprojdou kontrolou podpisu, tajemství v Supabase Vault neodpovídá tomu v Brew. Vygeneruj nové tajemství, znovu s ním spusť instalační SQL a se stejnou hodnotou Supabase v Brew znovu připoj.
- Pokud žádná doručení nedorazí, spusť instalační SQL znovu a pak ověř, že je nainstalované rozšíření pgcrypto a že tajemství ve Vault odpovídá tomu v Brew.
- Po události auth.user.email_changed Brew vytvoří nebo aktualizuje kontakt s novou adresou. Kontakt se starou adresou zůstane beze změny.
- Událost auth.user.deleted nastaví supabase_account_status na deleted. Kontakt z Brew neodstraní.
- U každého e-mailu zkontroluj souhlas a účel. Synchronizace uživatelů ze Supabase tě neopravňuje k propagačním rozesílkám.

## Zdroje a návody k nastavení

- [Porovnej e-mailové nástroje pro Supabase](/cs/blog/best-email-tools-for-supabase-auth-emails-product-events-and-lifecycle-campaigns)
- [Návod k nastavení Supabase](https://docs.brew.new/integrations/import/supabase)
- [Vytvoř automatizaci](https://docs.brew.new/create-emails/build-an-automation)
- [Proměnné](https://docs.brew.new/create-emails/merge-tags)
- [Co můžeš posílat přes Brew](https://docs.brew.new/get-started/what-you-can-send)
- [Databázové webhooky Supabase](https://supabase.com/docs/guides/database/webhooks)
- [Pole uživatelů v Supabase](https://supabase.com/docs/guides/auth/users)
- [Vlastní SMTP v Supabase](https://supabase.com/docs/guides/auth/auth-smtp)

## Související

- [Všechny integrace](https://brew.new/cs/browse/integrations.md)
- [Registrace](https://brew.new/cs/sign-up.md)
- Web: https://brew.new
