> ## Documentation Index
> Fetch the complete documentation index at: https://docs.firmhouse.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Klaviyo metrics via outgoing webhooks

> Send Firmhouse outgoing webhook events directly to Klaviyo as metrics so you can use subscription events as triggers in flows and segmentation.

Send Firmhouse events directly to Klaviyo as metrics using outgoing webhooks.

Use this when you want Klaviyo flows for events that are not part of Firmhouse email notifications, such as subscription status changes.

For the native integration's ready-made event payloads, start with [Klaviyo v2 lifecycle events](/integrations/klaviyo/getting-started#send-lifecycle-events). Custom outgoing webhooks and lifecycle events are managed separately. Check existing webhooks before enabling a lifecycle event for the same action to avoid overlapping flows.

## Before you start

Make sure the Klaviyo app is enabled and connected with credentials that can send events. For a new connection, [install the Firmhouse Klaviyo app](/integrations/klaviyo/getting-started#install-the-firmhouse-klaviyo-app).

Custom Klaviyo metric webhooks deliver independently of the customer communication channel. You can keep Firmhouse email selected for transactional notifications.

## Create a Klaviyo metric webhook

1. Go to **Apps** in the sidebar.
2. Open **Webhooks** and click **Configure**.
3. Click **New outgoing webhook**.
4. Enter a **Name**. Firmhouse uses this as the Klaviyo metric name.
5. Set **Content type** to **Klaviyo metric**.
6. Choose the Firmhouse **Event** that should trigger the Klaviyo metric.
7. Add a JSON payload template.
8. Click **Save**.

## Template format

The template must render valid JSON. The JSON object becomes the Klaviyo metric properties.

Example:

```json theme={null}
{
  "subscription_id": "{{ subscription.id }}",
  "full_name": "{{ subscription.full_name }}",
  "status": "{{ subscription.status }}",
  "plan_name": "{{ subscription.active_plan.name }}"
}
```

If the template renders blank, Firmhouse sends an empty properties object.

## How delivery works

For **Klaviyo metric** webhooks:

* Firmhouse records the metric through the connected Klaviyo app credentials.
* The webhook **Name** becomes the Klaviyo metric name.
* The selected webhook **Event** controls when the metric is sent.
* Failed responses are retried automatically up to 3 attempts.

## Verify and troubleshoot

Open the webhook detail page and inspect **Webhook event log**:

* Request body
* Response code
* Response body

If a request fails, update your template and use **Resend**.

To send a manual test to Klaviyo, open the saved webhook and click **Send test event**. Firmhouse uses the saved template with sample subscription data, then sends the final Klaviyo event body through the connected Klaviyo app.

Klaviyo metric test events use the profile email `john.doe-klaviyo-test@firmhouse.com`. Search for this profile in Klaviyo to confirm that the test metric arrived. Klaviyo can accept events sent to example or fake-looking email domains without showing the event on a profile, so Firmhouse uses a Firmhouse-owned test address for manual Klaviyo metric tests.

## Related articles

* [Use Klaviyo to Send Email Notifications](/integrations/klaviyo/klaviyo-v1)
* [Adding, managing, and removing webhooks](/integrations/webhooks)
