Changelog

Welcome to the changelog section of Freemius, here you'll find our weekly technical update notes. You can subscribe to all posts via Newsletter or follow us on Twitter to stay updated.

Support For Multiple Domains When Embedding The Customer Portal

This week we are releasing a new feature to support embedding our Customer Portal on more than one domain. Freemius allows you to embed the Customer Portal into your own WordPress website to provide a more seamless experience for your buyers. However, for security purposes, the portal will not load unless it has been embedded on the specified domain.

We understood this could be limiting in real-world workflows. Especially when testing the integration locally or in a staging environment, the URL is often different, making it impossible to see the portal in action.

To address this, you can now go to the Settings page of your Store and use the newly introduced Additional Whitelisted Domains configuration.

Whitelisted domains for customer portal embedding

You can add as many additional domains or hostnames as needed, and the Customer Portal will load securely on those domains without any issues.

WordPress.org Compliant Snippet Flag Now Enabled by Default

As per the updated guidelines from the wordpress.org review team, we are updating the integration snippet our system generates for the Freemius WP SDK. Previously, the is_org_compliant flag was only present in the snippet if it was explicitly set to false. Our SDK always treats the integration as WordPress.org compliant.

With the latest compliance update, the flag is now always present, defaulting to true.

Freemius WP SDK Integration Snippet

For new products, this change ensures your first submission won’t get rejected due to a missing compliance flag. For existing products, we recommend making this manual change in your integration snippet. We will also follow up soon with an update to our deployment mechanism so the flag is automatically added to your integration snippet in newly generated versions.

Refinements and Layout Fixes in the Customer Portal

This week we are rolling out a set of fixes addressing UI glitches in our Customer Portal.

Freemius Customer Portal

  1. We identified some elements that were still using legacy hard-coded colors, which could cause inconsistencies across themes. These have now been updated to use the correct design tokens.
  2. We reviewed and refined all tables to ensure consistent spacing and alignment, even for products with shorter titles.
  3. We also resolved a few minor layout glitches to improve overall visual stability and polish.

Read our documentation if you want to learn more about our Customer Portal.

Analytics Performance Improvements for Large Products

We noticed an issue in our Analytics pages where, for some large products, requests could time out due to high data volume. After identifying the root cause, we have deployed the first round of performance optimizations to improve response times and stability.

Freemius Analytics Page

If you continue to experience any slowdown on these pages, please reach out to our support team and let us know.

Customize Key Transactional Emails with Custom Content

This week we are releasing a feature requested by many of our makers. Freemius sends various transactional emails to your customers. For example, when someone purchases a subscription (or lifetime access), they receive an email with all the plan and pricing details. Similarly, customers are notified when subscriptions are renewed.

So far, all these emails were fully controlled by Freemius. While they are already fine-tuned and optimized for your buyers, we understood that having some level of customization can significantly improve your software integration and onboarding experience. For example:

  1. A SaaS or App product can include a short introduction and links to help users get started immediately.
  2. A WordPress product may include or link to usage instructions or next steps after activation.

With this in mind, we are deploying a feature this week that lets you do exactly that. You can now add a custom section to the following emails:

  1. New Subscription Email
  2. New Lifetime Purchase Email
  3. Subscription Renewal Email

Adding Custom Content to the Emails

Simply go to EmailsCustomization, where you will find a new section named Specific Email Customization.

Freemius Developer Dashboard for Email Customization

From there, select the email you want to customize and add a new section by defining its title and content.

The content area supports Markdown for basic formatting, and you can include custom links as needed. A live preview of the email is available below the form so you can verify exactly how it will appear to your buyers.

Email Preview with Custom Section

We believe this will help you better align transactional emails with your product’s onboarding and user journey. If you have any feedback, please let us know via the feature request board.

Resolved Regression in Review Submission Links

Freemius has a built-in review system that allows your verified customers to leave a review for your product. You can choose to display those reviews automatically in the Checkout, on the pricing page, and you can also use the API to show them on your own website or application.

Freemius Review Form

Reviews are requested automatically a few days after the purchase. You can also go to the Developer Dashboard to generate a secure URL that allows your customers to leave a review directly.

Generate Review URL from the Developer Dashboard

We identified a regression where the review URL was not functioning correctly and was incorrectly redirecting to the Freemius homepage. The root cause has been resolved and the fix has been deployed.

One-Click Customer Portal Login via API

This week we’re releasing a new capability that lets you generate auto-login links to the Customer Portal for your buyers. We understand that in today’s SaaS & App marketplace, development speed is critical, so we aim to offload as much infrastructure and UX complexity from you as possible. As part of that, Freemius already provides a hosted Customer Portal where buyers can manage subscriptions, purchases, and even join the affiliate program.

Until now, there was no way to generate login links that automatically authenticated customers. Buyers always had to enter their Freemius password to access the portal. With today’s rollout, this is no longer required. You can now make an API call to generate a secure magic link and redirect your buyers directly into the Customer Portal without any manual login step.

Generating the Magic Login Link

You need to make an API call to the following endpoint using Bearer Token authentication:

POST https://api.freemius.com/v1/products/{product_id}/portal/login.json
{"email": "[email protected]"}

The response will be a JSON object with the following properties:

  • link – The magic login link
  • token – A login token for manual or more advanced integrations

Portal login API call

Once generated, you should immediately redirect your customer to the link, and they will be automatically logged in to the Customer Portal.

Logged in Customer Portal

More detailed documentation will follow shortly. Until then, please note that you can generate the login link using either:

  1. email – If you don’t store the Freemius User ID
  2. id – If you do store it, which is the preferred approach

Also note that the link generated by the API call is short-lived and expires after 5 minutes. You should only generate it when the customer explicitly requests access to the portal, and then redirect them immediately.

Redesigned Cart Recovery Unsubscribe Page

Freemius has a built-in cart recovery system that sends reminder emails to potential buyers who didn’t complete their purchase. Each of these emails includes an unsubscribe link, allowing recipients to opt out of future reminders at any time. Until now, the unsubscribe page behind this flow was using an outdated design.

Cart recovery form redesign

This week, we rolled out a complete redesign of the unsubscribe page. The refreshed layout brings it in line with our current visual language, making the opt-out experience clearer, more modern, and more consistent with the rest of the Freemius ecosystem.

Smarter Billing Cycle Selection and Coupon Fixes in Checkout

This week we have updated the Checkout with the following improvements and bug fixes:

Smarter Billing Cycle Selector UI

Our Checkout uses a set of Upsell UI components by default. One of them automatically shows up whenever there are billing-cycle-related discounts, such as annual-over-monthly pricing. The same UI is also used by your customers to toggle between billing cycles.

Checkout monthly switch UI

However, when there are no such discounts, we recommend using the explicit billing cycle selector UI by configuring it through the Checkout Config. While this works as expected, we understand that this behavior can be a bit confusing for new makers joining the platform—especially those selling SaaS & Apps, where billing-cycle discounts are not very common. In such cases, makers testing the Checkout would see the annual plan auto-selected, without a clear way to switch to a monthly billing cycle.

To address this, we’ve made the Checkout smarter by automatically detecting these scenarios and switching to the billing cycle selector UI when appropriate.

Checkout Billing Cycle Selector UI

Please note that in sandbox mode, a hint will also pop up to guide makers toward configuring discounts if they prefer to use the upsell UI instead. All other behaviors remain unchanged. For example, if you explicitly load the Checkout with an annual billing cycle, the option to switch to monthly will not be shown, preventing buyers from changing the intended configuration.

Fixed Non-USD Flat Discount Coupon

We identified a recent regression where applying a non-USD flat discount coupon did not work correctly in certain edge cases, particularly in some PayPal flows.

Checkout Coupon UI

This issue has been identified and fixed.

Clearer Templates & Kits and Small Dashboard Improvements

This week we are releasing some quality-of-life improvements to our Developer Dashboard app.

Better Visibility of Templates & Kits

Freemius supports selling templates and kits out of the box. We also support uploading ZIP files and distributing them to your buyers.

However, we realized that this capability was not very visible when creating a new product, as it was previously placed under the “WordPress Products” category. From a UX perspective, this made it easy to miss.

To address this, we’ve improved the new product creation flow so the Templates & Kits option is now visible right in the first step.

Template Kits in the New Product Form

We are also rolling out improved documentation shortly to better explain how to properly use this category.

Other Improvements

  • Removed some unneeded API calls made by the Developer Dashboard as part of general housekeeping.
  • On the Sites page, the Change Plan button is now disabled when a product has only one paid plan, along with a clear message explaining why. In such cases, changing plans for sites is not possible.

Bug Fixes for Weekly Reports and License Activation

We are rolling out the following bug fixes across our system:

  1. We identified an issue where some makers were not receiving their weekly report email. The underlying cause has been resolved, and the emails are now being delivered as expected.
  2. In certain edge cases, some apps were unable to activate licenses via the API. This issue has been fixed, and license activation should now work reliably.

New Side Panel View for Licenses in the Developer Dashboard

This week we are rolling out a new feature to the Licenses page in the Developer Dashboard. Until now, makers could only view licenses in a tabular (data-heavy) format. While functional, we understood from a UX perspective that this could feel overwhelming, and it wasn’t always easy to quickly surface key information about the user or the subscription associated with a license. In many cases, you had to navigate away from the table to dedicated pages to find those details.

License sidepane view

With this update, you can now open a side panel view for a license, consistent with how other entities are presented across the dashboard. The side panel provides quick access to essential license information and exposes common actions such as extending the license, changing the quote, or adjusting related settings.

It also surfaces details about the connected user and the associated subscription, all in one place.

User and Subscription information in the license sidepane

The goal here is to reduce context switching and make day-to-day license management faster and more intuitive. As always, if you have feedback or ideas on how this can be improved further, we’d love to hear them on the feature board.

As a follow-up to this change, we’ve also updated the Subscriptions side panel to align with the same design system and interaction patterns.

Subscription sidepane

New Checkout Events for Tracking Coupon Interactions

Our Freemius Checkout supports tracking several events across the buyer journey — from when the checkout is loaded, to when billing information is entered, or when a plan is changed.

Today, we’re rolling out a few new events focused on tracking interactions with coupons.

Freemius Checkout coupon code

  • coupon-added: Triggered when a new coupon is applied through the checkout UI.
  • coupon-removed: Triggered when a coupon is removed, either explicitly from the UI or when the coupon is no longer valid for the selected quota/licenses or billing cycle.
  • coupon-updated: Triggered when a coupon’s discount value changes due to an update in quota/licenses or billing cycle.

These events make it easier to understand how buyers interact with coupons during checkout and which discounts are ultimately applied based on the selected configuration.

Sample tracking of coupon events

You can read more about this in our documentation.

Enriched Webhook Payloads for Plugin Version Release Events

Responding to a feature request from one of our makers, we’ve enriched the plugin.version.released, plugin.version.beta.released, and plugin.version.release.suspended events to include more detailed information about the tag and deployment.

Previously, the payload only included a reference like tag: <ID>. From now on, the webhook payload will include richer data, for example:

{"tag": "1234", "version": "3.0.1", "release_mode": "released"}

This makes webhook automation simpler and more self-contained, especially for workflows like notifying buyers after a new version is released. Earlier, this required an additional API call to fetch deployment details; the webhook payload now includes everything you need upfront.

Email Tone Preferences Now Applied Consistently

Freemius allows customizing the tone of the emails sent to your buyers on your behalf. The tone can be set anywhere between Playful—including emojis and more expressive language in the subject and body—and Professional, keeping the communication formal, clear, and emoji-free.

Email tone customization

It came to our attention that this setting was not being consistently respected for a few system-generated emails, particularly some payment and subscription-related notifications.

We’ve deployed a fix to address this. All emails will now correctly respect your selected tone setting across all supported email types.

Load more