# RevenueCat + Brew

Kích hoạt tự động hóa trong Brew từ các sự kiện RevenueCat về mua hàng trong ứng dụng, gói đăng ký và thanh toán trên Apple, Google, Amazon, Stripe và Web Billing. Yêu cầu gói RevenueCat Pro trở lên.

URL chính tắc: https://brew.new/vi/browse/integrations/revenuecat

- Chiều dữ liệu: Dữ liệu vào
- Kết nối: Webhook secret
- Sự kiện IAP + gói đăng ký

## Tính năng đang hoạt động

- **Trình kích hoạt sự kiện**: Kích hoạt tự động hóa trong Brew từ các sự kiện RevenueCat về mua hàng trong ứng dụng, gói đăng ký và thanh toán trên Apple, Google, Amazon, Stripe và Web Billing.

## Biến sự kiện gói đăng ký thành email hữu ích

Kết nối RevenueCat để bắt đầu gửi email chuẩn thương hiệu khi có người mua, gia hạn, hủy gói hoặc gặp sự cố thanh toán trong ứng dụng của bạn. Brew hỗ trợ 11 sự kiện vòng đời của RevenueCat, và cùng một luồng có thể phục vụ người đăng ký trên App Store, Google Play, Amazon, Stripe và Web Billing.

RevenueCat và các cửa hàng ứng dụng vẫn chịu trách nhiệm về giao dịch mua, gia hạn, hoàn tiền và entitlement (quyền truy cập). Brew tạo và gửi email.


## Bạn có thể xây dựng gì

- Email chào mừng người đăng ký: sự kiện INITIAL_PURCHASE xảy ra khi một gói đăng ký mới bắt đầu, kể cả khi bắt đầu dùng thử. Giao dịch mua một lần thì đến dưới dạng NON_RENEWING_PURCHASE.
- Biên nhận gia hạn: sự kiện RENEWAL xảy ra khi một gói đăng ký được gia hạn hoặc khi một người đăng ký có gói đã hết hạn quay lại đăng ký, kèm productId, priceUsd, pricePurchaseCurrency và currency.
- Thông báo sự cố thanh toán: sự kiện BILLING_ISSUE xảy ra khi một khoản thanh toán thất bại. Hãy dẫn liên kết tới nơi người đăng ký có thể cập nhật phương thức thanh toán.
- Email tiếp nối khi hủy gói: sự kiện CANCELLATION mang theo cancelReason, để email có thể xử lý trường hợp hoàn tiền hoặc lỗi thanh toán khác với trường hợp người đăng ký tự hủy gói.
- Email chào mừng quay lại: sự kiện UNCANCELLATION xảy ra khi người đăng ký khôi phục gói đăng ký đã hủy trước khi gói hết hạn.
- Tái tương tác sau khi hết quyền truy cập: sự kiện EXPIRATION xảy ra khi gói đăng ký thực sự kết thúc và mang theo expirationReason.
- Thông báo thay đổi gói: sự kiện PRODUCT_CHANGE mang theo previousProductId và newProductId. Sản phẩm mới có thể chỉ có hiệu lực về sau, nên hãy viết email theo hướng đây là thay đổi đã được yêu cầu.
- Thông báo tạm dừng và kéo dài thời hạn: sự kiện SUBSCRIPTION_PAUSED xảy ra khi một gói đăng ký Google Play được lên lịch tạm dừng vào cuối kỳ. SUBSCRIPTION_EXTENDED xảy ra khi cửa hàng ứng dụng kéo dài kỳ hạn hoặc Google Play hoãn một lần thu phí.

## Hủy gói chưa có nghĩa là hết quyền truy cập

Sự kiện CANCELLATION có thể báo một gói đăng ký đã bị hủy hoặc một khoản hoàn tiền, và tự nó không có nghĩa là quyền truy cập đã kết thúc. EXPIRATION mới là sự kiện cho biết quyền truy cập đã kết thúc. SUBSCRIPTION_PAUSED chỉ lên lịch cho một lần tạm dừng trong tương lai.

Hãy dùng CANCELLATION cho email giành lại khách hàng hoặc khảo sát lý do rời đi, và EXPIRATION cho mọi email mặc định rằng quyền truy cập đã hết. Sự kiện UNCANCELLATION không dừng lượt chạy đã bắt đầu từ sự kiện hủy gói, vì vậy hãy kiểm tra revenuecat_subscription_status bằng một điều kiện trước mỗi email gửi sau đó.

Hãy lọc theo environment để các sự kiện SANDBOX không lọt vào những tự động hóa chạy thực tế.


## Thiết lập RevenueCat trong Brew

- Webhook của RevenueCat yêu cầu gói RevenueCat Pro trở lên.
- Mở mục Tích hợp, chọn RevenueCat rồi chọn Tạo URL webhook.
- Trong RevenueCat, mở Integrations > Webhooks và thêm một cấu hình. Dán URL Brew, chọn Production, Sandbox hoặc cả hai, rồi chọn các sự kiện vòng đời cần gửi.
- Bật tính năng ký webhook bằng HMAC trong cấu hình đó và sao chép signing secret ngay lập tức. RevenueCat chỉ hiển thị secret này một lần. Dán secret vào Brew rồi chọn Kết nối. Đừng dán khóa REST API của RevenueCat hay giá trị của header Authorization tùy chọn.
- Gửi một webhook thử nghiệm từ RevenueCat. Lần gửi TEST có chữ ký sẽ kích hoạt kết nối nhưng không bao giờ khởi chạy tự động hóa nào cho khách hàng.
- Đặt thuộc tính người đăng ký $email cho từng khách hàng để Brew có địa chỉ gửi email.
- Khi bạn chọn Kết nối, Brew tạo trình kích hoạt cho cả 11 sự kiện. Không có công tắc bật/tắt cho từng sự kiện. Tạo một tự động hóa, chọn sự kiện RevenueCat cho tự động hóa đó rồi gửi thử khi tự động hóa vẫn ở trạng thái Bản nháp. Chỉ những tự động hóa ở trạng thái Đang hoạt động mới chạy khi có sự kiện khớp được gửi đến.

## Các sự kiện RevenueCat được hỗ trợ

Brew hỗ trợ 11 loại sự kiện sau:

- INITIAL_PURCHASE
- RENEWAL
- NON_RENEWING_PURCHASE
- PRODUCT_CHANGE
- CANCELLATION
- UNCANCELLATION
- EXPIRATION
- BILLING_ISSUE
- SUBSCRIPTION_PAUSED
- SUBSCRIPTION_EXTENDED
- TRANSFER

## Đồng bộ liên hệ và cá nhân hóa

Brew lấy người nhận từ thuộc tính người đăng ký $email trước, sau đó mới chấp nhận app user ID, original app user ID hoặc alias có dạng địa chỉ email làm phương án dự phòng. Alias của RevenueCat là lịch sử các app user ID, nên hãy đặt $email một cách tường minh thay vì dựa vào alias. Nếu không trường nào trong số này chứa địa chỉ thật, Brew ghi nhận sự kiện là chưa xác định được người nhận, không tạo liên hệ và không khởi chạy tự động hóa nào.

Mỗi sự kiện đã xác minh có địa chỉ email thật đều tạo hoặc cập nhật một liên hệ trong Brew (khớp theo email), bất kể có tự động hóa nào dùng sự kiện đó hay không. Khi có dữ liệu, Brew điền revenuecat_app_user_id, revenuecat_store và revenuecat_environment.

Các sự kiện vòng đời đặt revenuecat_subscription_status thành active, cancelled, expired, billing_issue hoặc pause_scheduled. Brew cũng lưu revenuecat_product_id, revenuecat_cancel_reason, revenuecat_expiration_reason, revenuecat_last_purchase_at và revenuecat_pending_product_id khi sự kiện cung cấp các giá trị này.

Dùng lược đồ payload đã khai báo của sự kiện được chọn cho thẻ cá nhân hóa. Mọi sự kiện đều có email, productId, priceUsd, pricePurchaseCurrency, currency, store, environment và createdAt khi có dữ liệu. Trường priceUsd là giá tính bằng USD, còn pricePurchaseCurrency là giá tính theo đơn vị tiền tệ ghi trong currency. Payload của RevenueCat không cung cấp tên hay họ cho Brew.

Giá trị của store được chuyển nguyên từ RevenueCat, chẳng hạn APP_STORE hoặc PLAY_STORE, và RevenueCat có thể bổ sung giá trị mới. Hãy so khớp theo những giá trị bạn quan tâm.

Giao dịch mua không đồng nghĩa với việc khách hàng đã đồng ý nhận email tiếp thị. Hãy ghi nhận sự đồng ý riêng và kiểm tra trước khi gửi email quảng cáo.


## Vì sao TRANSFER không bao giờ gửi email?

RevenueCat gửi TRANSFER kèm các app user ID nhưng không có email người nhận. Brew ghi nhận sự kiện này là chưa xác định được người nhận và không khởi chạy tự động hóa nào.


## Vì sao sự kiện đã xuất hiện nhưng không có email nào được gửi?

Nhận sự kiện và gửi email là hai bước riêng biệt. Hãy xác nhận có một tự động hóa khớp đang ở trạng thái Đang hoạt động, rồi kiểm tra bộ lọc và lịch sử thực thi của tự động hóa đó, điều kiện của người nhận và tên miền gửi. Lần gửi TEST không bao giờ khởi chạy tự động hóa. Khi chưa xác định được người nhận, hãy kiểm tra $email trước; Brew cũng chấp nhận app user ID, original app user ID và alias có dạng địa chỉ email.


## Giới hạn và khắc phục sự cố

- Brew không thể cấp hay thu hồi entitlement, hoàn tiền hay thay đổi gói đăng ký.
- Lỗi 401 do thiếu header chữ ký thường có nghĩa là tính năng ký bằng HMAC đang tắt, hoặc giá trị Authorization đã được dán thay cho signing secret. Hãy bật ký bằng HMAC, sao chép secret mới và kết nối lại.
- Lỗi 401 do HMAC không khớp nghĩa là Brew đang giữ một secret khác hoặc đã cũ. Việc xoay vòng secret trong RevenueCat sẽ vô hiệu hóa secret cũ, nên hãy sao chép giá trị mới và kết nối lại Brew.
- Nếu hoàn toàn không có webhook nào đến, hãy kiểm tra xem gói RevenueCat của bạn có bao gồm webhook không.
- Xem lại sự đồng ý và mục đích của từng email. Việc đồng bộ người đăng ký không có nghĩa là bạn được phép gửi email quảng cáo.

## Nguồn và hướng dẫn thiết lập

- [Hướng dẫn thiết lập RevenueCat](https://docs.brew.new/integrations/import/revenuecat)
- [Tạo một tự động hóa](https://docs.brew.new/create-emails/build-an-automation)
- [Thẻ cá nhân hóa](https://docs.brew.new/create-emails/merge-tags)
- [Những gì bạn có thể gửi bằng Brew](https://docs.brew.new/get-started/what-you-can-send)
- [Webhook của RevenueCat](https://www.revenuecat.com/docs/integrations/webhooks)
- [Thuộc tính khách hàng của RevenueCat](https://www.revenuecat.com/docs/customers/customer-attributes)

## Liên quan

- [Tất cả tích hợp](https://brew.new/vi/browse/integrations.md)
- [Đăng ký](https://brew.new/vi/sign-up.md)
- Website: https://brew.new
