Enable the preview
This feature is currently a staff-enabled preview. Ask Firmhouse to enable Customer Portal Flow & Components under New Features for your project. You also need Customer Portal v2. The same switch makes the cancellation flow builder available; customers use that flow only after you publish it.Create a component
- Open Customer Portal → Components and choose Create component. Choose Create with Oppy on the creation page if you want Oppy to generate the content from a description.
- Enter a name. Firmhouse generates the template key from it, for example
cancellation_reassurance. The key stays fixed after creation. - Switch between Preview and Code to review and edit the content. Choose Edit with Oppy to iterate on its content and layout.
- Save the component. The components overview shows a live preview of each component and where it is used. You can delete a component from there.
subscription, project, locale, and churn_request Liquid context. Use unique translation keys with the t filter; translations for referenced components appear in the surrounding page’s translation editor. Components cannot contain other component tags.
Add a component to a page
Open Customer Portal → Templates and edit a page in the visual editor. Hover or select any part of the page and choose + Component above or below it. Pick a component, and Firmhouse saves a new draft of the page with the component in place. Publish the draft to show it to customers. Select an added component to choose who sees what at that spot:- Add more than one component to show different customers different content.
- Add conditions to each component for the customer’s products, plan, segment, subscription status, deliveries, revenue, Shopify order tags, or selected cancellation reason. Every condition must match.
- Components are checked from top to bottom, and the first match is shown. A component without conditions is shown to everyone who did not match an earlier one.
- If nothing matches, customers see nothing.
Customize cancellation pages
The template library includes Cancellation reasons (cancellation.liquid) and Cancellation follow-up (cancellation_follow_up.liquid). Keep the corresponding control component in each layout: