Existing API-key connections keep working. Connect with OAuth from Apps > Klaviyo > Configure when you are ready to use the new integration.
Migrate from Klaviyo v1 to Klaviyo v2
Already using the previous Klaviyo integration? Follow the migration steps to install the new app and set up its features while keeping your existing flows working.What you can do with the new Klaviyo integration
Firmhouse sends data and events; you create the segments, flows, and messages in Klaviyo. Installing the app does not create or publish Klaviyo flows.
Install the Firmhouse Klaviyo app
- In Firmhouse, open Apps > Klaviyo > Configure.
- Click Connect Klaviyo. Account details are shown on the Configuration tab.
- Sign in to the Klaviyo account you want to use and approve the requested access.
- Return to Firmhouse. Check that Account connection confirms your account is connected and shows the expected account name.
Connection status and recovery
Open Apps > Klaviyo > Configure and check the account on Configuration:
Firmhouse refreshes expiring OAuth tokens automatically. If access is revoked or the refresh token is rejected, reauthorize when prompted. Reauthorization is different from disconnecting the account: disconnecting removes synchronized segments from Firmhouse.
Test mode applies to legacy API-key setups preparing notification events before switching the email channel. It is not an OAuth sandbox mode. A connected native integration can send enabled lifecycle events independently of the email channel.
Synchronize customer profiles
Firmhouse automatically synchronizes customer name, phone number, address, and subscription properties to Klaviyo while the native integration is enabled and connected. Completed signups using the same email address in your project share one Klaviyo profile; email matching ignores letter case. Firmhouse combines their subscription properties on that profile. For example, if a customer has two active subscriptions—one for coffee and one for tea—their profile shows two current subscriptions and lists both products. Use event details when a flow needs information about one specific subscription.Standard properties
The Profile properties tab shows the standard properties. They are always included when profiles are synchronized and cannot be renamed or removed.
For example, build a Klaviyo segment where
firmhouse_current_subscription_count is greater than zero to find customers with a current subscription. This includes paused subscriptions. Combine it with status conditions when your audience needs a narrower definition.
To find customers subscribed to a particular product, use firmhouse_current_recurring_product_ids containing its Firmhouse product ID. For example, a customer who bought deodorant once and subscribes to razors will match the razor product ID, but not the deodorant product ID. Product IDs stay the same when a product is renamed.
Recurring products include products charged or shipped repeatedly, including the default product in a product queue. Individual queue entries and one-off add-ons are excluded. These lists include paused subscriptions and are empty when no recurring products qualify.
Run Synchronize all profiles to populate these properties for existing customers before using them in a segment. Compare Klaviyo’s profile count with unique customer email addresses in Firmhouse; several subscriptions can share one profile.
Add optional properties
- Open Profile properties and click Add property.
- Enter Property name in Klaviyo and choose a predefined source under Value to send.
- Click Save profile properties.
firmhouse_; standard property keys are reserved.
Property values use the source’s data type: counts and project IDs are numbers, subscription IDs and statuses are lists, and Has a current subscription is a boolean. This editor uses predefined sources rather than custom Liquid expressions. Liquid JSON templates are available separately for lifecycle event payloads.
Removing or renaming a configured key clears the old property’s value on a subsequent profile synchronization. Review Klaviyo segments and flow conditions that use that key before changing it.
Update existing customers
Subscription changes synchronize automatically. To populate existing customers or apply changed property mappings across them, open Profile properties and click Synchronize all profiles. Follow the progress shown beside the button, then inspect a known customer’s profile in Klaviyo. The synchronization processes completed signups with an email address. It updates profile data; it does not replay historical lifecycle events.Send lifecycle events
The Lifecycle events tab lets you choose which Firmhouse events become Klaviyo metrics. New v2-only connections enable all supported events automatically. Existing installations and v1 migrations keep their saved choices; reconnecting does not turn on every event. You can switch individual events on or off, or use Enable all and Disable all. Available categories include subscriptions, plans, subscription products, orders, invoices, payments, returns, acceptance checks, collection cases, retention, offers and referrals, customer access, assets, and customer details. The events shown depend on your project’s setup. See Available lifecycle events for the full list and the properties each event sends.- Open Lifecycle events and find the event you need.
- Review the metric name and included properties, and check whether the event is enabled.
- For a configured event, expand Customize event payload and click Edit payload template to inspect or customize its Liquid JSON. If a newer default is available, click Load update into editor, review it, then Save changes. Saved payloads are not silently replaced.
- Send a test event where that control is available, or trigger the event with a test subscription.
- Check the received metric and properties in Klaviyo before using it in a live flow.
sendSubscriptionKlaviyoEvent GraphQL mutation. See Outstanding invoices for details.
If an event is already configured as a custom Klaviyo webhook, manage that existing webhook through Klaviyo metrics via outgoing webhooks.
Build flows around events
Examples of flow starting points include:
In Klaviyo, choose the received metric as the flow trigger, inspect its event properties, and design your message. Use event data for the subscription or order that triggered the flow and profile properties for the customer’s current overall state. Test the flow before making it live, including any conditions that should stop a message when the customer’s situation changes.
Personalize event messages
The upcoming-order lifecycle payload includes aproducts list with names, quantities, SKUs, images, and product identifiers. It also includes order counts and Customer Portal action links. Offers can include product details and signed acceptance links when eligible.
Expand Customize event payload and click Edit payload template to review the payload, then use the actual test event to select variables in Klaviyo. Your saved payload may differ from the latest default.
Bring Klaviyo segments into Firmhouse
Create your audience definitions in Klaviyo, then open Klaviyo segments in Firmhouse:- Wait for the automatic synchronization to import the segment list and its memberships.
- Use Refresh to update a segment sooner, and check its Last synced status.
- Click the subscription count to view the matching subscriptions.
Personalize the Customer Portal
Customer Portal v2 Liquid templates can use synchronized segment membership to show a message or product action to a specific audience, such as VIP customers. Usesubscription.segments for enabled memberships stored in Firmhouse. See Use Klaviyo segments in the Customer Portal for typed fields, examples, and synchronization steps. Template preview uses stored membership too; use Refresh and check Last synced before testing a segment change.
Migration steps
Klaviyo v1 is the previous integration for sending Firmhouse email notification events to Klaviyo. The new Firmhouse Klaviyo app adds customer profile updates, segment synchronization, and events you can enable and configure individually. Install the app in the same Klaviyo account to keep your existing metrics and flows in that account. Your saved transactional event names and JSON payloads remain in place. Migration does not require replacing them with lifecycle events.What changes
1. Prepare your existing setup
Before connecting, check:- Which Klaviyo account the existing public API key belongs to.
- The metric names used by your active transactional flows.
- Your current customer communication channel and any custom Klaviyo metric webhooks.
- Any Zapier automation that writes Firmhouse profile data to Klaviyo. Compare its property keys with the new native properties before deciding whether to retire it.
2. Install the app in the same Klaviyo account
- Open Apps > Klaviyo > Configure in Firmhouse.
- Click Connect Klaviyo.
- Sign in to the existing Klaviyo account and approve access.
- Confirm that Firmhouse shows the expected account name and that the account is connected.
3. Configure and test v2 events
- Open Apps > Klaviyo > Lifecycle events and select an event you want to use.
- Review its metric name and properties, and enable it if needed.
- Expand Customize event payload and click Edit payload template to inspect or customize its payload.
- Send a test event to an address you control where the test control is available, or trigger the event with a test subscription.
- Inspect the received event in Klaviyo and build or adapt your flow using that metric and its properties.
sendSubscriptionKlaviyoEvent GraphQL mutation. See Outstanding invoices for details.
V2 lifecycle metrics are separate from your existing v1 metrics. Keep existing v1 flows working while testing the new flow, and prevent overlapping messages before making it live. Installing the app preserves saved v1 event templates but does not convert them into v2 lifecycle events.