Shift Happens
Week of Apr 20, 2026
·
5
improved
·
2
fixed
Prepare for upcoming subscription billing with a new webhook
Shipped
Areas
Developers, Subscriptions, Shopify, Customer Portal
Improvements
·
5
Prepare for upcoming subscription billing with a new webhook
Order-based projects with plan management can now use the subscription_upcoming_billing webhook to prepare customer communications or operational workflows before the next charge. Choose a lead time from one to five days; Firmhouse checks eligible subscriptions nightly.
Customer Portal v2 dashboard now shows a payment issue banner for non-paying subscriptions
The Customer Portal v2 dashboard now shows a dedicated banner when a subscription is marked as non-paying, explaining what happens next and linking customers to their invoices to settle the outstanding payments.
Subscription audit log now includes extra field answer changes
Updates to subscription extra field answers are now visible in the subscription audit log so it’s now easy to view history of all changes.
More filters for subscription products batch operations
Subscription product batch operations now support extra filters for subscription status, products without a custom price, and an Added At date range.
Refresh outdated Shopify draft orders from Firmhouse
Teams can now recreate an outdated Shopify draft from the Firmhouse order page so checkout uses the latest order details. Firmhouse removes the old draft and queues an up-to-date replacement in Shopify.
Fixes
·
2
Keep subscription assets linked to the right product
Asset updates through the API now reliably preserve the subscription owner while linking the asset to the intended ordered product. Invalid reassignments continue to return a clear validation error, keeping asset data consistent.
Case-insensitive email matching for Shopify customer account extension
The Shopify customer account extension now matches subscriptions to the logged-in customer even when the email stored on the subscription and the email returned by Shopify differ only by letter casing (for example customer@example.com vs Customer@Example.com).