# RevenueCat + Brew

Activa automatizaciones de Brew con eventos de compras dentro de la app, suscripciones y facturación de RevenueCat en Apple, Google, Amazon, Stripe y Web Billing. Requiere el plan Pro de RevenueCat o superior.

URL canónica: https://brew.new/es/browse/integrations/revenuecat

- Dirección: Entrada de datos
- Conexión: Secreto del webhook
- Eventos de compras in-app y suscripciones

## Funciones disponibles

- **Disparadores por eventos**: Activa automatizaciones de Brew con eventos de compras dentro de la app, suscripciones y facturación de RevenueCat en Apple, Google, Amazon, Stripe y Web Billing.

## Convierte los eventos de suscripción en emails útiles

Conecta RevenueCat para activar emails fieles a tu marca cuando alguien compra, renueva, cancela o tiene un problema de facturación en tu app. Brew admite 11 eventos del ciclo de vida de RevenueCat, y un mismo flujo puede servir para suscriptores de App Store, Google Play, Amazon, Stripe y Web Billing.

RevenueCat y las tiendas siguen encargándose de las compras, las renovaciones, los reembolsos y los derechos de acceso (entitlements). Brew crea y envía los emails.


## Qué puedes crear

- Emails de bienvenida para suscriptores: el evento INITIAL_PURCHASE se emite cuando empieza una suscripción nueva, incluido el inicio de una prueba. En cambio, las compras únicas llegan como NON_RENEWING_PURCHASE.
- Recibos de renovación: el evento RENEWAL se emite cuando una suscripción se renueva o cuando alguien cuya suscripción había vencido vuelve a suscribirse, con productId, priceUsd, pricePurchaseCurrency y currency.
- Avisos de problemas de facturación: el evento BILLING_ISSUE se emite cuando falla un pago. Enlaza al lugar donde el suscriptor actualiza su método de pago.
- Seguimiento tras una cancelación: el evento CANCELLATION incluye cancelReason, así que el email puede tratar un reembolso o un error de facturación de forma distinta a una cancelación voluntaria.
- Emails para quien vuelve: el evento UNCANCELLATION se emite cuando un suscriptor anula la cancelación de su suscripción antes de que venza.
- Reactivación cuando termina el acceso: el evento EXPIRATION se emite cuando una suscripción termina de verdad e incluye expirationReason.
- Avisos de cambio de plan: el evento PRODUCT_CHANGE incluye previousProductId y newProductId. El nuevo producto puede entrar en vigor más adelante, así que redacta el email como un cambio solicitado.
- Avisos de pausa y de ampliación: el evento SUBSCRIPTION_PAUSED se emite cuando se programa la pausa de una suscripción de Google Play al final de su periodo. El evento SUBSCRIPTION_EXTENDED se emite cuando una tienda amplía el periodo o Google Play aplaza un cobro.

## Una cancelación no pone fin al acceso

El evento CANCELLATION puede indicar una suscripción cancelada o un reembolso, y por sí solo no significa que el acceso haya terminado. El evento que indica que el acceso terminó es EXPIRATION. El evento SUBSCRIPTION_PAUSED solo programa una pausa futura.

Usa CANCELLATION para emails de recuperación o con una encuesta de salida, y EXPIRATION para todo lo que dé por hecho que el acceso ya terminó. Un evento UNCANCELLATION no detiene una ejecución por cancelación que ya esté en curso, así que comprueba revenuecat_subscription_status en una condición antes de cada email posterior.

Filtra por environment para que los eventos SANDBOX no lleguen a las automatizaciones activas.


## Configura RevenueCat en Brew

- Los webhooks de RevenueCat requieren el plan Pro de RevenueCat o superior.
- Abre Integraciones, elige RevenueCat y selecciona Generar URL del webhook.
- En RevenueCat, abre Integrations > Webhooks y añade una configuración. Pega la URL de Brew, elige Production, Sandbox o ambos, y selecciona los eventos del ciclo de vida que quieres enviar.
- Activa la firma HMAC del webhook en esa configuración y copia el secreto de firma enseguida: RevenueCat solo lo muestra una vez. Pégalo en Brew y selecciona Conectar. No pegues una clave de la API REST de RevenueCat ni el valor opcional del encabezado Authorization.
- Envía un webhook de prueba desde RevenueCat. Una entrega TEST firmada activa la conexión, pero nunca inicia una automatización para un cliente.
- Define el atributo de suscriptor $email de cada cliente para que Brew tenga una dirección a la que enviar.
- Al conectar, Brew crea disparadores para los 11 eventos. No hay ningún interruptor para activar o desactivar eventos. Crea una automatización, selecciona su evento de RevenueCat y envía una prueba mientras siga siendo un borrador. Cuando llega un evento que coincide, solo se ejecutan las automatizaciones activas.

## Eventos de RevenueCat compatibles

Brew admite 11 tipos de evento:

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

## Sincronización de contactos y personalización

Brew toma primero el destinatario del atributo de suscriptor $email y, como alternativa, acepta un ID de usuario de la app, un ID de usuario original de la app o un alias, siempre que tenga formato de email. Los alias de RevenueCat son el historial de ID de usuario de la app, así que define $email de forma explícita en lugar de depender de ellos. Si ninguno de estos campos contiene una dirección real, Brew registra el evento como no resuelto, no crea ningún contacto y no inicia ninguna automatización.

Cada evento verificado con una dirección de email real crea o actualiza un contacto de Brew, identificado por su email, tanto si alguna automatización usa el evento como si no. Cuando los datos están disponibles, Brew completa revenuecat_app_user_id, revenuecat_store y revenuecat_environment.

Los eventos del ciclo de vida establecen revenuecat_subscription_status en active, cancelled, expired, billing_issue o pause_scheduled. Brew también guarda revenuecat_product_id, revenuecat_cancel_reason, revenuecat_expiration_reason, revenuecat_last_purchase_at y revenuecat_pending_product_id cuando el evento los aporta.

Usa el esquema de payload declarado del evento seleccionado para las etiquetas de combinación. Todos los eventos incluyen email, productId, priceUsd, pricePurchaseCurrency, currency, store, environment y createdAt cuando están disponibles. El campo priceUsd es el precio en USD, y pricePurchaseCurrency, el precio en la moneda que indica currency. Los payloads de RevenueCat no le dan a Brew ni el nombre ni el apellido.

El campo store llega tal cual desde RevenueCat, con valores como APP_STORE o PLAY_STORE, y RevenueCat puede añadir valores nuevos. Filtra por los valores que te interesen.

Una compra no acredita el consentimiento para emails de marketing. Guarda el consentimiento por separado y compruébalo antes de hacer envíos promocionales.


## ¿Por qué TRANSFER nunca envía un email?

RevenueCat envía TRANSFER con los ID de usuario de la app, pero sin el email del destinatario. Brew lo registra como no resuelto y no inicia ninguna automatización.


## ¿Por qué aparece un evento sin que se envíe ningún email?

Recibir un evento y enviar un email son pasos distintos. Confirma que haya una automatización coincidente activa; después, revisa sus filtros y su historial de ejecuciones, y comprueba que el destinatario pueda recibir el email y el estado del dominio de envío. Una entrega TEST nunca inicia una automatización. Si un destinatario queda sin resolver, revisa primero $email; Brew también acepta ID de usuario de la app, ID de usuario originales de la app y alias, si tienen formato de email.


## Límites y solución de problemas

- Brew no puede conceder ni revocar derechos de acceso, emitir reembolsos ni modificar suscripciones.
- Un error 401 por falta del encabezado de firma suele significar que la firma HMAC está desactivada o que se pegó el valor de Authorization en lugar del secreto de firma. Activa la firma HMAC, copia el secreto nuevo y vuelve a conectar.
- Un error 401 porque el HMAC no coincide significa que Brew tiene un secreto distinto o desactualizado. Rotar el secreto en RevenueCat invalida el anterior, así que copia el valor nuevo y vuelve a conectar Brew.
- Si no llega ningún webhook, comprueba que tu plan de RevenueCat incluya webhooks.
- Revisa el consentimiento y la finalidad de cada email. Sincronizar suscriptores no autoriza a hacer envíos promocionales.

## Fuentes y guías de configuración

- [Guía de configuración de RevenueCat](https://docs.brew.new/integrations/import/revenuecat)
- [Crea una automatización](https://docs.brew.new/create-emails/build-an-automation)
- [Etiquetas de combinación](https://docs.brew.new/create-emails/merge-tags)
- [Qué puedes enviar con Brew](https://docs.brew.new/get-started/what-you-can-send)
- [Webhooks de RevenueCat](https://www.revenuecat.com/docs/integrations/webhooks)
- [Atributos de cliente de RevenueCat](https://www.revenuecat.com/docs/customers/customer-attributes)

## Relacionado

- [Todas las integraciones](https://brew.new/es/browse/integrations.md)
- [Crear cuenta](https://brew.new/es/sign-up.md)
- Sitio web: https://brew.new
