Zenovay links your payment data to visitor analytics, so you can see your recurring revenue alongside the traffic, campaigns, and journeys that produced it. This article covers how to get MRR into Zenovay and what the Revenue tab shows.
How MRR tracking works
Zenovay doesn't process payments. Instead, it reads transaction data from your billing provider and joins it to the visitor who made the purchase. Once a provider is connected, Zenovay computes revenue metrics (including a recurring-revenue view) automatically from the synced transactions.
There are two ways to get revenue into Zenovay:
| Method | Best for |
|---|---|
| Payment provider (Stripe, Lemon Squeezy, Polar, PayPal, Paddle) | Most SaaS businesses, automatic sync via webhooks |
Client-side tracking (zenovay('revenue', ...)) | Custom checkouts where you want to send revenue from your own code |
For subscription businesses, connecting your payment provider is the recommended path, since it keeps MRR in sync without any extra code.
Connect a payment provider
Open your domain's Revenue settings
Go to Domains, open the website you want, then open its settings and select the Revenue tab.
Choose your provider
Pick one of the supported providers: Stripe, Lemon Squeezy, Polar, PayPal, or Paddle.
Paste your API key
Enter the provider API key (for PayPal, also your Client ID). Zenovay validates the key with the provider before saving.
Let Zenovay set up the webhook
For Stripe, Paddle, and PayPal, Zenovay creates the webhook on your account automatically so new transactions sync in. If auto-creation isn't possible, the form explains how to create the webhook manually and paste the signing secret.
Once connected, payments flow in and the Revenue tab populates over the next few minutes.
Info
Zenovay never stores card numbers and never processes payments. It reads aggregate transaction data (amount, currency, customer email, timestamps) from your provider to build revenue analytics.
The Revenue tab
Open your website's dashboard and select the Revenue tab to see your revenue analytics. The main chart plots daily revenue over your selected time range, with summary cards above it.
| Card | What it shows |
|---|---|
| Total | Net revenue for the period (captures minus refunds) |
| Avg/Day | Average daily revenue |
| Best Day | Highest single-day revenue |
| Trend | Recent direction vs. the prior period |
| Refunds | Refunded amount (only appears when there are refunds) |
The chart can overlay visitors against revenue, so you can see how traffic correlates with sales.
Recurring revenue metric
Zenovay's MRR view compares this month's recurring revenue to last month's and reports:
- MRR for the current month
- MRR growth (absolute and percentage vs. last month)
- ARPU (average revenue per paying customer)
- LTV (a simple estimate based on current ARPU)
This gives you a fast read on whether recurring revenue is growing or contracting month over month.
Info
Detailed MRR movement breakdowns (new vs. expansion vs. churned MRR) and trial-conversion analytics are not built-in metrics today. Track those in your billing provider's own dashboards. Zenovay focuses on connecting revenue to acquisition: which channels, campaigns, and journeys produce paying customers.
Revenue by source and campaign
The real strength of Zenovay's revenue analytics is attribution: it shows which traffic sources and campaigns actually generated revenue, not just clicks.
- Revenue by source breaks revenue down by traffic source, with transactions, conversion rate, revenue per visitor, and average order value per source.
- Revenue by campaign does the same by UTM campaign.
This is how you tell whether your best-converting channel is also your highest-revenue channel. See Revenue by source for details.
LTV cohorts
Pro PlanThe Retention tab includes lifetime-value cohort analysis, grouping customers by when they first paid and tracking cumulative revenue per cohort over time. Use it to see whether newer cohorts are worth more or less than older ones.
Sending revenue from your own code
If you have a custom checkout and prefer to send revenue directly, the tracker exposes a client-side API:
// Send a revenue event when a purchase completes
zenovay('revenue', 99.99, 'USD', {
order_id: 'ORD-12345'
});
You can also attach a value to a goal:
zenovay('goal', 'purchase', {
value: orderTotal
});
Both attribute the revenue to the visitor's current session, so it shows up in revenue-by-source and campaign reports. See Revenue tracking overview for the full client API.
Recording a payment manually
For one-off or non-provider payments, you can record a conversion through the API with an amount, currency, and optional visitor ID. Zenovay backfills attribution from the linked visitor. See Revenue attribution setup.
Best practices
Connect the provider, don't hand-roll events
For subscription businesses, connecting Stripe (or your provider) is far more reliable than sending revenue from client code, since it captures upgrades, downgrades, refunds, and renewals automatically.
Use consistent values
Decide up front whether your tracked amounts include tax, shipping, or discounts, and stick to it so your Zenovay numbers reconcile with your accounting.
Reconcile regularly
Compare Zenovay's revenue totals against your billing provider periodically. If they drift, check the webhook is still connected (the Revenue settings tab shows the last verification status).
Common issues
Revenue not appearing
- Confirm the provider shows Connected and verified in the Revenue settings tab.
- Check that the webhook exists on your provider account.
- For client-side events, verify the tracking code is installed and the value is passed as a number, not a string.
Attribution looks off
- Confirm UTM parameters are present on your inbound links.
- Review the customer journey in the visitor's profile to see the recorded touchpoints.