# Supabase + Brew

Supabase auth.users veritabanı webhooklarıyla Brew otomasyonlarını tetikleyin; e-posta onayı, şifre değişikliği, anonim kullanıcının gerçek hesaba yükseltilmesi ve yasaklama veya yasağı kaldırma için türetilmiş olaylar da dâhil.

Kanonik URL: https://brew.new/tr/browse/integrations/supabase

- Yön: Gelen veri
- Bağlantı: Webhook gizli anahtarı
- Kimlik doğrulama olay tetikleyicileri

## Kullanıma açık özellikler

- **Olay tetikleyicileri**: Supabase auth.users veritabanı webhooklarıyla Brew otomasyonlarını tetikleyin; e-posta onayı, şifre değişikliği ve giriş için türetilmiş olaylar da dâhil.

## Kimlik doğrulama olaylarını işe yarar e-postalara dönüştürün

Biri kaydolduğunda, e-posta adresini onayladığında, şifresini değiştirdiğinde veya yasaklandığında markanıza uygun e-postalar göndermeye başlamak için Supabase’i bağlayın. Bir kurulum betiği auth.users tablonuza bir veritabanı tetikleyicisi ekler; Brew de her değişikliği 12 otomasyon tetikleyicisinden birine dönüştürür.

Giriş, onay bağlantıları, sihirli bağlantılar ve şifre sıfırlama Supabase Auth hizmetinin sorumluluğunda kalır. Bu değişikliklerin ardından gelen e-postaları ise Brew oluşturur ve gönderir.


## Neler oluşturabilirsiniz

- Hoş geldin e-postaları: İlk e-postanın yalnızca doğrulanmış adreslere ulaşması için auth.user.email_confirmed olayından başlayın. Brew bu olayı yalnızca email_confirmed_at değerini ayarlayan bir güncellemeden türetir; bu yüzden satırı zaten onaylanmış olarak oluşturulan bir kullanıcı yalnızca auth.user.created olayını üretir. Projenizde hangi durumun geçerli olduğunu kontrol edin, ardından mükerrer hoş geldin e-postalarını önlemek için yalnızca birini tetikleyici olarak seçin.
- Misafir kullanıcıdan hesaba geçenlere hoş geldin e-postaları: auth.user.upgraded_from_anonymous olayı, is_anonymous alanı true değerinden false değerine geçtiğinde tetiklenir; bu da anonim bir kullanıcının kalıcı bir hesaba dönüştüğü andır.
- Şifre değişikliği bildirimleri: auth.user.password_changed olayı, encrypted_password alanındaki her değişiklikte tetiklenir. Payload verisi hiçbir şifre bilgisi taşımaz. Değişikliği kullanıcının kendisi yapmamış olma ihtimaline karşı kendi hesap kurtarma sayfanıza bağlantı verin.
- E-posta değişikliği bildirimleri: auth.user.email_changed olayı eski adresi previousValue alanında, yeni adresi newValue alanında taşır. Brew yeni adrese gönderir.
- Davet takip e-postaları: auth.user.invited olayı, bir güncelleme invited_at değerini ayarladığında tetiklenir. Davet bağlantısını Supabase Auth kendisi gönderir; bir Brew e-postası ise onboarding sürecine dair ek bilgi sunabilir. Bu tetikleyiciye güvenmeden önce projenizden gerçek bir test daveti gönderin.
- Askıya alma bildirimleri: auth.user.banned olayı, banned_until ayarlandığında tetiklenir ve bu değeri newValue alanında taşır. auth.user.unbanned olayı ise banned_until temizlendiğinde tetiklenir.
- Silme onayları: auth.user.deleted olayı, satır silindiğinde tetiklenir ve o satırdaki e-posta adresini yine de içerir.

## Giriş olayları, kullanıcının geri döndüğünü göstermez

auth.user.signed_in olayı, last_sign_in_at değiştiğinde tetiklenir. Supabase’in belirteç yenilemeleri de bu sütunu değiştirdiğinden olay, kullanıcının oturumu açık kaldığı sürece tekrar tekrar tetiklenebilir. Bu olay, birinin uzun bir aradan sonra geri döndüğünü göstermez.

Ayrıca türetilen olaylar arasında önceliği en düşük olan da budur. Aynı güncelleme bir e-posta adresini onaylıyor veya anonim bir kullanıcıyı kalıcı hesaba geçiriyorsa Brew, auth.user.signed_in yerine o olayı üretir.

Hareketsiz kullanıcılara hal hatır soran bir e-posta göndermek için hareketsizliği uygulamanızda, uygulamanın kendi etkinlik verilerine göre belirleyin. Ayrı bir Brew özel olayını yalnızca koşulları karşılayan kullanıcılar için tetikleyin ve e-postayı bu olayla tetiklenen, durumu Yayında olan bir otomasyon göndersin.

İki yolu da test edin: Hareketsiz bir kullanıcı e-postayı alır; kontrolden önce etkin olan bir kullanıcı almaz.


## Supabase’i Brew içinde kurun

- Entegrasyonlar sayfasını açın, Supabase’i seçin ve “Webhook URL’si oluştur” düğmesine tıklayın. Brew bu URL’yi kurulum SQL koduna önceden yerleştirir.
- openssl rand -hex 32 komutuyla bir imzalama anahtarı oluşturun. Bu anahtarı ne Brew ne de Supabase verir; Brew en az 16 karakter ister.
- Supabase’te SQL Editor bölümünü açın ve kurulum SQL kodunu yapıştırın. Anahtar yer tutucusunu kendi anahtarınızla değiştirin, ardından kodu çalıştırın. Bu kod pgcrypto ve pg_net uzantılarını etkinleştirir, anahtarı Supabase Vault’ta saklar ve auth.users tablosuna ekleme, güncelleme ve silme işlemleri için bir veritabanı tetikleyicisi ekler.
- Aynı anahtarı Brew içine yapıştırın ve Bağla düğmesine tıklayın. Bağlantı kurulduğunda 12 olayın tamamı için tetikleyici oluşturulur. Olayları tek tek açıp kapatmaya yarayan bir ayar yoktur.
- Bağlandıktan sonra Supabase’te Authentication > Users bölümünde bir test kullanıcısı oluşturun. Brew içindeki bağlantı “Test olayı bekleniyor” durumundan “Bağlı” durumuna geçer; Son olaylar bölümü de teslimi “imza geçerli” ibaresiyle gösterir.
- Bir otomasyon oluşturun, Supabase olayını seçin ve otomasyon henüz Taslak durumundayken bir test gönderin. Eşleşen bir olay geldiğinde yalnızca durumu Yayında olan otomasyonlar çalışır.
- auth şeması üzerinde SQL çalıştırma, uzantı yükleme ve Supabase Vault’a yazma izniniz olmalıdır. Anahtarı yeniledikten sonra SQL kodunu yeniden çalıştırmak güvenlidir.

## Desteklenen Supabase olayları

auth.user.created, auth.user.updated ve auth.user.deleted olayları auth.users tablosundaki ekleme, güncelleme ve silme işlemlerinden gelir. Brew diğer olayları, bir güncellemedeki eski ve yeni satırı karşılaştırarak türetir.

Bir güncelleme tek bir olay üretir. Birden fazla sütun aynı anda değiştiğinde şu sıradaki ilk eşleşme geçerli olur: email_confirmed, phone_confirmed, upgraded_from_anonymous, email_changed, password_changed, banned, unbanned, invited, signed_in. Bunların hiçbiriyle eşleşmeyen bir güncelleme auth.user.updated olarak gelir.

Brew şu 12 olay türünü destekler:

- 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

## Kişi senkronizasyonu ve kişiselleştirme

Gerçek bir e-posta adresi taşıyan her doğrulanmış olay, bir otomasyon o olayı kullansın ya da kullanmasın, e-posta adresine göre eşleştirilen bir Brew kişisi oluşturur veya mevcut kişiyi günceller. İlgili veriler varsa Brew ad, soyad, supabase_user_id, supabase_phone, supabase_role, supabase_full_name, supabase_avatar_url ve supabase_provider alanlarını doldurur.

Bazı olaylar yaşam döngüsü alanlarını da doldurur. supabase_account_status alanı active, invited, banned veya deleted değerini alır. supabase_email_verified_at, supabase_phone_verified_at ve supabase_last_sign_in_at alanları ilgili onay ve giriş olaylarından gelir.

Birleştirme etiketleri için seçilen olayın tanımlanan payload şemasını kullanın. Her olay email alanını ve varsa firstName, lastName, fullName, displayName, avatarUrl, phone, role, provider, createdAt, lastSignInAt ve emailConfirmedAt alanlarını içerir. Adlar ve avatarlar raw_user_meta_data alanından gelir; OAuth ile kaydolanlar için yedek kaynaklar da kullanılır. Üç zaman damgası da Unix saniyesi cinsindendir.

Türetilen olaylar, eski ve yeni sütun değerini metin olarak tutan previousValue alanını, newValue alanını veya ikisini birden ekler. auth.user.password_changed olayında ikisi de yoktur. provider alanı email, google veya github gibi kayıt yöntemini tutar; böylece hoş geldin akışlarını kişinin nasıl kaydolduğuna göre yönlendirebilirsiniz.

Supabase kullanıcı kimliği birleştirme etiketi olarak kullanılamaz. Brew bu kimliği filtreleme ve segmentlere ayırma için kişi kaydında supabase_user_id olarak saklar.

Bir Supabase hesabı, pazarlama e-postası için izin anlamına gelmez. İzni kaydolma sırasında kayıt altına alın ve tanıtım amaçlı gönderimlerden önce kontrol edin.


## Brew, Supabase’in kimlik doğrulama e-postalarının yerini alıyor mu?

Hayır. Supabase Auth; onay bağlantılarını, sihirli bağlantıları, davetleri ve şifre sıfırlama e-postalarını özel SMTP gibi kendi e-posta ayarları üzerinden göndermeye devam eder. Brew, bu değişiklikler auth.users tablosuna yansıdıktan sonra otomasyon başlatır. Supabase, kimlik doğrulama e-postaları ile pazarlama e-postaları için ayrı gönderim alan adları kullanılmasını önerir.


## Bir olay görünüyor ama neden e-posta gönderilmiyor?

Bir olayın alınması ile e-posta gönderilmesi ayrı adımlardır. Eşleşen bir otomasyonun yayında olduğunu doğrulayın, ardından filtrelerini, çalıştırma geçmişini, alıcının uygunluğunu ve gönderim alan adını kontrol edin. E-posta adresi olmayan bir kullanıcıya ait olay (ör. henüz adres eklememiş anonim bir kullanıcı) kişi oluşturmaz ve otomasyon başlatmaz.


## Sınırlar ve sorun giderme

- Brew yalnızca auth.users tablosunu okur. Diğer tablolardan gelen olaylar için Brew içinde özel bir tetikleyici oluşturun ve bu tetikleyiciyi uygulamanızdan veya bir Supabase Edge Function üzerinden Brew API’si ile tetikleyin.
- Brew, Supabase kullanıcılarını oluşturamaz, yasaklayamaz veya silemez; Supabase Auth e-postalarını da göndermez.
- Teslimler imza kontrolünden geçemiyorsa Supabase Vault’taki anahtar Brew içindekiyle eşleşmiyordur. Yeni bir anahtar oluşturun, kurulum SQL kodunu bu anahtarla yeniden çalıştırın ve Supabase bağlantısını aynı değerle Brew içinde yeniden kurun.
- Hiç teslim gelmiyorsa kurulum SQL kodunu yeniden çalıştırın, ardından pgcrypto uzantısının yüklü olduğunu ve Vault’taki anahtarın Brew içindekiyle eşleştiğini doğrulayın.
- auth.user.email_changed olayından sonra Brew, yeni adresteki kişiyi oluşturur veya günceller. Eski adresteki kişi olduğu gibi kalır.
- auth.user.deleted olayı supabase_account_status alanını deleted olarak ayarlar. Kişi Brew içinden silinmez.
- Her e-postanın izin durumunu ve amacını gözden geçirin. Supabase kullanıcılarını senkronize etmek, tanıtım amaçlı gönderimler için izin vermez.

## Kaynaklar ve kurulum rehberleri

- [Supabase için e-posta araçlarını karşılaştırın](/tr/blog/best-email-tools-for-supabase-auth-emails-product-events-and-lifecycle-campaigns)
- [Supabase kurulum rehberi](https://docs.brew.new/integrations/import/supabase)
- [Otomasyon oluşturun](https://docs.brew.new/create-emails/build-an-automation)
- [Birleştirme etiketleri](https://docs.brew.new/create-emails/merge-tags)
- [Brew ile neler gönderebilirsiniz](https://docs.brew.new/get-started/what-you-can-send)
- [Supabase veritabanı webhookları](https://supabase.com/docs/guides/database/webhooks)
- [Supabase kullanıcı alanları](https://supabase.com/docs/guides/auth/users)
- [Supabase özel SMTP ayarları](https://supabase.com/docs/guides/auth/auth-smtp)

## İlgili sayfalar

- [Tüm entegrasyonlar](https://brew.new/tr/browse/integrations.md)
- [Kaydol](https://brew.new/tr/sign-up.md)
- Web sitesi: https://brew.new
