> ## 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 example templates

The following examples contain JSON payloads that can be sent to Klaviyo instead of email. See [Using Klaviyo](using-klaviyo.md) for how to link Klaviyo for sending notification emails.

You can extend these examples yourself using the [Liquid tags](https://developer.firmhouse.com/liquid/email-template-overview) Firmhouse provides.

## Confirmation email

```json theme={null}
{%- capture ProductnamesListString -%}
 {%- for product in subscription.products -%}
 {"title": "{{product.title}}", "ProductImage": "{{product.product_image_url}}", "ProductPrice": "{{product.price}}"};
 {%- endfor -%}
{%- endcapture -%}
{% assign ProductnamesList = ProductnamesListString | split:';' | join:"," %}

{
 "Name": "{{subscription.name}}",
 "ProductnamesList": [{{ProductnamesList}}],
 "MarketingConsent": "{{subscription.marketing_opt_in_accepted?}}",
 "InvoiceAmount": "{{invoice.amount_price}}",
 "LoginUrl": "{{subscription.login_url}}"
}
```

## Upcoming order notice

```json theme={null}
{%- capture ProductnamesListString -%}
 {%- for product in subscription.next_upcoming_products -%}
 {"title": "{{product.title}}", "quantity": "{{product.quantity}}", "shipmentdate": "{{product.shipment_date}}"};
 {%- endfor -%}
{%- endcapture -%}
{% assign ProductnamesList = ProductnamesListString | split:';' | join:"," %}

{
 "Name": "{{subscription.name}}",
 "UpcomingProductsList": [{{ProductnamesList}}],
 "SelfServiceCenterUrl": "{{project.self_service_center_url}}"
}
```

## Cancellation initiation email

```json theme={null}
{
 "Name": "{{subscription.name}}"
}
```

## Cancellation confirmation email

```json theme={null}
{
 "Name": "{{subscription.name}}"
}
```

## Billing cycle notification

```json theme={null}
{%- capture ProductnamesListString -%}
 {%- for product in subscription.products -%}
 {"title": "{{product.title}}", "ProductImage": "{{product.product_image_url}}", "ProductPrice": "{{product.price}}"};
 {%- endfor -%}
{%- endcapture -%}
{% assign ProductnamesList = ProductnamesListString | split:';' | join:"," %}

{
 "Name": "{{subscription.name}}",
 "ProductnamesList": [{{ProductnamesList}}],
 "InvoiceAmount": "{{invoice.amount_price}}",
 "Paymentmethod": "{{subscription.payment_method}}",
 "InvoiceUrl": "{{invoice.pay_now_url}}"
}
```

## Failed payment

```json theme={null}
{% assign failed_invoices = outstanding_invoices %}
{% assign failedInvoicesCount = failed_invoices | size %}

{%- capture failedInvoicesString -%}
 {%- for invoice in failed_invoices -%}
{"number": "{{invoice.number}}", "amount": "{{invoice.amount_price}}", "statusTranslated":
"{{invoice.status_translated}}", "pendingRetriesBoolean": {{invoice.pending_retries?}},
"payNowUrl": "{{invoice.pay_now_url}}" };
 {%- endfor -%}
{%- endcapture -%}

{% assign failedInvoicesList = failedInvoicesString | split:';' | join: ", " %}

{
 "Name": "{{subscription.name}}",
 "paymentAmount": "{{payment.amount_price}}",
 "paymentPayNowUrl": "{{payment.pay_now_url}}",
 "failedInvoicesCount": "{{failedInvoicesCount}}",
 "failedInvoicesList": [{{failedInvoicesList}}]
}
```

## Manual charge notification

```json theme={null}
{%- capture ProductnamesListString -%}
 {%- for product in subscription.products -%}
 {"title": "{{product.title}}", "ProductImage": "{{product.product_image_url}}"};
 {%- endfor -%}
{%- endcapture -%}
{% assign ProductnamesList = ProductnamesListString | split:';' | join:"," %}

{
 "Name": "{{subscription.name}}",
 "ProductnamesList": [{{ProductnamesList}}],
 "Amount": "{{payment.amount_price}}",
 "Description": "{{payment.description}}"
}
```

## Outstanding invoices

```json theme={null}
{% assign failed_invoices = outstanding_invoices %}
{% assign failedInvoicesCount = failed_invoices | size %}

{%- capture failedInvoicesString -%}
 {%- for invoice in failed_invoices -%}
{"number": "{{invoice.number}}", "amount": "{{invoice.amount_price}}", "statusTranslated":
"{{invoice.status_translated}}", "pendingRetriesBoolean": {{invoice.pending_retries?}},
"payNowUrl": "{{invoice.pay_now_url}}" };
 {%- endfor -%}
{%- endcapture -%}

{% assign failedInvoicesList = failedInvoicesString | split:';' | join: ", " %}

{
 "Name": "{{subscription.name}}",
 "failedInvoicesList": [{{failedInvoicesList}}]
}
```

## Invoice reminder

```json theme={null}
{
 "Name": "{{subscription.name}}",
 "InvoiceAmount": "{{invoice.amount_price}}",
 "InvoiceNumber": "{{invoice.number}}",
 "InvoiceUrl": "{{invoice.pay_now_url}}",
 "FinalReminder": "{{invoice_reminder.final_reminder}}",
 "ReminderNumber": "{{invoice_reminder.reminder_number}}"
}
```

## Self service center login

```json theme={null}
{
 "Name": "{{subscription.name}}",
 "Login": "{{subscription.login_url}}"
}
```
