Changelog

Improvement and updates to the Firmhouse platform & ecosystem.
Weekly newsletter
No spam. Just the latest releases and tips, interesting articles, and exclusive interviews in your inbox every week.
Read about our privacy policy.
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
Follow us for updates

Picqer integration, a brand new Apps overview, and more

Michiel Sikkes
October 1, 2021

Managing your warehouse efficiently is a critical part of building a successful subscription business. As merchants scale, they rely on tools such as Picqer to manage stock and handle anything in the warehouse to run the fulfilment process.

This is why we're excited to announce Picqer as the first official integration in our new app store.

With the Picqer integration, orders in Firmhouse will be automatically pushed to Picqer and are ready to be picked up there. We create a link for every order between Firmhouse and Picker. That makes it easy for you to find and view all your orders in one place.

This also marks the beginning of our new app store! 🎉

It's a place to easily connect other services to your Firmhouse project. You can expect more services to become available within the next few weeks.

To enable the Picker integration, navigate to the new "Apps" section in the main menu of your Firmhouse project.

But there's more!

Added Danish Crowns and Japanese Yen

You can now select Danish Crowns or Japanese Yen as currency for your business on Firmhouse.

Enable and disable webhooks

You can now enable or disable a webhook, without having to remove and re-create it. Very useful when you're preparing webhooks but don't want them to always fire.

Custom SMTP for Pro customers

It is now possible to set up a custom SMTP for sending transactional emails via your own email service or servers. Get in touch to activate this feature on your Firmhouse projects.

Smaller fixes and improvements

  • Visually re-arrange Contact information and Shipping address on Checkout.
  • Small design improvements on Checkout.
  • On checkout fixed that "Order summary" heading was only shown when Firmhouse Cart was enabled on your project.
  • Fix Storefront SDK UI elements being overlapped by other elements on your site.
  • Allow Polish characters in payment and transaction statement descriptions.
  • Fixed Payment Provider configuration when no payment provider set up but you already had subscriptions imported via API.
  • Expose additional Liquid template tags in emails and webhooks.

What else have we worked on?

  • Our upcoming integration with Klaviyo. Connect your Klaviyo to Firmhouse and use Klaviyo to handle all transactional customer communication.
  • Upcoming support for flexible and custom billing cycles (daily, weekly, monthly and everything in-between).
  • A new product shipment scheduling system that can generate orders from the top of a queued list for each billing cycle. Queue, skip and shift shipments.

New Storefront SDK with support for Shopify, and more

Michiel Sikkes
September 17, 2021

We've released the first version of our brand new Storefront JavaScript SDK in addition to our powerful GraphQL API.

Our Storefront SDK allows merchants and developers to easily add rental, subscription, and membership e-commerce featurestheir existing website, webshop, or Shopify store. To read more about our new SDK you can take a look at the guides and documentation on https://developer.firmhouse.com/storefront.

With the Firmhouse Storefront SDK, you can turn any website into a subscription e-commerce business with only 3 lines of code.

The Storefront SDK offers an out out-of-the-box on-page Cart user interface, including little dialogs that pop up when your customers add something to their carts. From the on-page cart your customers can check out their order via our Firmhouse Checkout flow, specifically designed and built to support lease, rental, and subscription models.

But there's more!

Migrate and import data via our GraphQL API

We've added a importSubscription mutation to our GraphQL API. This mutation allows you to import subscriptions into Firmhouse, without triggering or needing any signup flows or confirmations from your customers.

Perfect when you're moving your existing subscriber base to Firmhouse.

Manually confirm pending orders

You can now manually confirm pending orders via the press of a button on the orders overview, or via the customer detail page. By manually confirming a pending order, the order will be marked as confirmed so that any logistics and shipment processes are triggered.

Perfect for if you want people to sign up and pay for their subscription and you are shipping their products days or weeks later.

Separate billing and shipping addresses via API

We've added a beta feature that allows you to specify a separate billing address from the primary shipping address for your customers. Get in touch to enable this feature for your project.

Smaller fixes and improvements

  • Added various fields to GraphQL API for fetching contract term commitments.
  • User interface improvements for managing products in the Firmhouse Self Service Center for customers.
  • Allow project managers to edit Self Service Center custom JS and CSS code.
  • Allow manually confirming a pending Order so that it gets pushed to Shopify.
  • Don't allow updating quantity of products subscribed to as part of a plan.
  • Added a Helpcenter article for configuring a FAQ and Support page in your Self Service Center.
  • Improve error messages when you try to add a product to a Subscription without quantity.

Klaviyo, meet Firmhouse

Michiel Sikkes
November 12, 2021
Klaviyo log inside an "App" style icon
Klaviyo, meet Firmhouse

We're excited to announce that you can now use Klaviyo with Firmhouse! 🎉

Klaviyo is a service that helps you communicate with your customer. Send simple transactional emails or set up advanced communication workflows that help you stay in touch with your customer during their entire lifecycle.

When you enable the Klaviyo app in your Firmhouse project, all customer communication will run through your Klaviyo account. That means that instead of sending emails from Firmhouse, we will send events to your Klaviyo account. That way, you can have Klaviyo handle all relevant customer communication that's part of the customer lifecycle in Firmhouse.

And the cool thing is that just like configuring email templates in Firmhouse, you can also configure the event name and payload that we send to Klaviyo. This way, you can use any piece of dynamic information available in Firmhouse and send it along with your Klaviyo event.

Enabling and configuring the app might need some instructions. So don't hesitate to get in touch with us!

Use your own TaxJar account

You can now add the TaxJar app integration to your Firmhouse project and hook up your own TaxJar account for dynamic tax determination.

We already had TaxJar power our Dynamic Tax Rate feature under the hood. Our Dynamic Tax Rate feature allows you to determine VAT and sales tax based on origin and destination addresses. Determining tax on the origin and destination addresses is necessary for US sales tax determination or EU e-commerce tax determination.

Some of our merchants had advanced Nexus setups in their TaxJar accounts. Unfortunately, our previous TaxJar integration didn't allow using those. So now that you can use our own TaxJar account, we enable any merchants to have proper VAT determination according to their configuration.

Preview: Better price breakdown on Checkout

We've been re-thinking and redesigning the price breakdown on Firmhouse Checkout. Previously there was sometimes confusion about what amount customers would pay at Checkout and what amount would make up their subscription payments. With our redesigned Firmhouse Checkout price breakdown, we hope to tackle these problems.

We are still testing and collecting feedback on our new Checkout. We are getting very positive feedback from merchants already onboarded. If you would also like to start using our new Checkout already: please get in touch!

Better support for Shopify shipping methods

We now handle Shopify shipping methods much better. The most significant improvement is passing the correct shipping method back to Shopify when creating an order. The correct shipping method on the Shopify order ensures that any logistics, fulfillment, or label writing apps will work.

Smaller fixes and improvements

General improvements:

  • Solved a problem in passing house numbers with extensions (e.g., 45D) to Focum.
  • Corrected a wrongly nested <tbody> element in failed payment email notification template.
  • Improvements to Polish language translations in Self Service Center.
  • Added discount (code) used to Customers CSV export.
  • Added Cancellation initiated and Cancelled at columns in Customers overview.
  • Don't include standard Firmhouse reply-to email header anymore.
  • Various UI and UX improvements to previewing and installing apps and integrations from the Apps section.

For developers:

  • GraphQL API: Fixed returning a proper GraphQL error response when attempting to modify a non-existent record.
  • GraphQL API: Added serviceChannel field to Subscription object type.
  • GraphQL API: Added createdAt and updatedAt fields to Discount Code object type.
  • Storefront SDK: Added configuring a custom cart URL to return to from Checkout.
  • Storefront SDK: Added resetCart() function which allows you to reset the cart.
  • Webhooks: Added a Subscription Address Changed webhook that fires whenever account details are updated.
  • Webhooks: Added a Payment Failed webhook that fires on failed or charged back payments.
  • Webhooks: Added Subscriptions signed up and Subscription activated events.
  • Add information about contract term in dataLayer variable on Checkout confirmation page.

Change product quantities, additional information in Adyen, and more

Michiel Sikkes
October 22, 2021

It's been a busy two weeks! We're working on numerous improvements across our platform. Some are a bit bigger and are still in progress. But, some are already good to share. So here we go:

Change quantity of active products

You can now edit the quantity of active products on a subscription. Changing a product's quantity was already possible by your customer in their self-service center, but it was not possible in our portal yet.

Additional information in Adyen

We now push more information to Adyen. The additional information in Adyen makes cash matching processes and finding transactions for particular customers much more effortless.

Information about your customer will now show up on Adyen transactions. In addition, we now also fill every transaction's merchantReference with the customer's subscription token or invoice number.

Smaller fixes and improvements
  • Portal: You can now view and update a customer's currently active locale (language).
  • Portal: Stability fix in opening and closing dialogs and modal windows.
  • Adyen: Fixed an issue where signup payments were not coming through correctly in case of 3Dsecure.
  • Storefront SDK: A firmhouse:ready event will now trigger when the Storefront SDK finishes loading on your page.
  • Checkout: Fixed a translation issue with opening/closing order summary on mobile.
  • Checkout: Fixed an issue with pulling in shipping rates from Shopify.
  • Self Service Center: Minimum commitment dates for plans and products are now visible.
  • App Store: Don't show status/health information if app not set up yet.

Custom styling for Storefront SDK and more

Michiel Sikkes
December 10, 2021
Custom styling for Storefront SDK

You can now make our standard Storefront SDK UI your own!

We've added the option to override our standard Storefront SDK user interface with your own custom styles. Easily update colors, spacing, padding, fonts, sizes, etc., with a new .firmhouse-storefront-custom CSS selector.

Preview update: Shopify import/sync

Since our previous Changelog post, we've been testing and gathering a lot of feedback on our new Shopify synchronization feature. As a result, we've given the Shopify sync a proper place in our soon-to-be-released Shopify integration app.

If you already have the preview enabled, you can access it via the new Shopify app via Apps > Shopify > Configure > Product sync.

And we're happy to release a bunch of nice improvements today:

  • Take the firmhouse.subscription_price metafield value from the Shopify Product if it does not exist on the Shopify Product Variant.
  • Renamed firmhouse.price metafield to firmhouse.subscription_price.
  • Added the first version of the documentation article on tagging your products.
  • Added option to only create products in Firmhouse if you've tagged them in Shopify. This is now the default.
Edit and customize discounts on invoices

You can now customize how discounts will show up on customer invoices. So instead of just having our standard "Discount 10%" line, you can give discounts your own description, like "First welcome discount for 10%". This is an optional field, so we will revert to "Discount 10%" or local language equivalent if you don't set it.

We also let you edit the internal name and invoice description for currently active discounts. Previously you had to first deactivate a discount before you could edit it.

Smaller fixes and improvements
  • Fixed pushing city names with special characters to Focum.
  • Add {{invoice.billing_period_starts_at}} and {{invoice.billing_period_ends_at to available Liquid tags for emails and webhooks.
  • Always set the first created plan in a project to the default plan for Checkout and new subscriptions.
  • A minor visual tweak in Payments overview for payments with retries.
  • Add the ability to re-retry any failed payment from the Payments overview.
  • Fix an issue that sometimes a modal dialog flickers on the screen due to a UI caching bug.
  • API: Added Assets and AssetsConnection
  • Prevent setting an item in the Firmhouse Cart to 0.
  • New in Checkout Preview: Reword contract terms to subscription duration.
  • API: Return an error when attempting to cancel an inactive subscription.
  • Expose all minimum, maximum, and grace period contract term fields in Liquid tags for emails and webhook templates.

Preview: Shopify imports based on tags and metafields

Michiel Sikkes
November 26, 2021

We're happy to share that we've been working on a much better way to sync your Shopify product catalog to Firmhouse. We now offer a self-service Shopify import option that you can trigger any time you want. The import will look at certain tags and metafields on your Shopify products and variants to decide how it creates a product in Firmhouse.

Previously you had to request an import from our team manually. Then, based on your business model, we would correct prices, contract terms, and shipment schedules for you. Of course, we were happy to do so any time! But it will save all of us a lot of time and waiting now that you can run your own Shopify synchronization.

There are several cases we now support with some settings and tags:

  • Mark a product as one-time sales and subscription.
  • Define available shipment schedules.
  • Automatically apply a % discount on regular sales price for subscription products.
  • Create a physical asset for each product. Very useful if you have a "library" business model where there's only one piece of inventory per listed product.
  • Automatically create new products or update prices on each import.

We're still working on validating if we cover all cases. And we're still writing documentation. So if you'd like to get on board on the new Shopify import feature: let us know!

Improved Self Service Center login flow

We've received feedback that some subscribers have difficulty logging in to the Self Service Center. For example, subscribers were unaware that they'd receive an email with a valid link for only 30 minutes. Or, some customers would bookmark the expired link expecting to log in days or weeks later. Other customers were not aware that they signed up with a different email address.

Hopefully, with several user interface and copy tweaks, it becomes clearer how people can log in to the Self Service Center to manage their subscription.

Smaller fixes and improvements

General improvements:

  • Added Name column and Payment status to Invoices export.
  • Fixed active subscription count on project Dashboard.
  • Render simple HTML tags in multi-line Extra Fields.
  • Improved New Checkout (In preview) copy.
  • Added ability to put conditions/validations on First Name and Last Name fields.
  • Improved timely processing status of Refunds from Mollie.
  • Stripe: Fixed a problem that customers would end up on the wrong page after updating their payment method.
  • Don't show recurring shipment schedule settings when editing a one-time sales product.

For developers:

  • GraphQL API: Expose ID on Product type.
  • GraphQL API: Expose related Promotion type on DiscountCode type.

Storefront SDK implementation improvements, including support for purchasing via Shopify Checkout

Michiel Sikkes
October 8, 2021

We've introduced some major improvements to our Storefront JavaScript SDK and Shopify integration.

One of the major updates is that we're now smart in choosing the most appropriate Checkout flow depending on the type of products your buyer has added to their cart.

When your buyer only as one-time purchase products in their cart, we direct the buyer to Shopify Checkout. When there's a hybrid or subscription-only cart the buyer will subscribe via Firmhouse Checkout.

In addition there are a few more updates that make the lives easier to implement and create a custom experience with our Storefront SDK:

  • Added a loading spinner when a buyer presses the Checkout button.
  • Added Firmhouse.currentCart for easy access to the current cart and products programatically.
  • Added Firmhouse.checkout() which can be used to initiate our smart checkout flow programatically or via an onclick handler on a button.
  • Fixed that buyers cannot remove a "Always include on signup" product from their cart.
  • Added a firmhouse:cart_updated JavaScript event that will fire on any cart addition or update.
  • The functions to modify the cart like Firmhouse.addToCart() will now return the full updated cart as return value.
  • Added Firmhouse.performQuery() as an easy shorthand to call our Storefront GraphQL API directly on the current cart.
  • Added a configuration option to disable all out-of-the-box Firmhouse Storefront UI so that you can build your own.
  • Small UI and animation improvements to the "Added to cart" alerts and Cart slide-out.
Smaller fixes and improvements
  • Taxes: Improved the way how we handle and show US taxes on Checkout via our TaxJar integration.
  • Adyen: We now push additional information about your buyer as Shopper details (name, email, phone number).
  • Checkout: (Company) Name fields are now listed under Shipping address.
What else have we worked on?

Klaviyo: We're almost ready to bring our Klaviyo integration out of private testing phase. Hopefully by next week you'll be able to add the Klaviyo app to your project so that you can send all transactional subscriber-facing emails from Klaviyo.