Email Template

Overview and details on email templates within RevCent.

Use our HTML builder to create your own email templates. Send emails when specific events occur, including new sales, shipments and more.

SMTP Profile Required

In order to send an email using an Email Template you must have at least one active SMTP Profile. RevCent does not send emails on behalf of our users via our own SMTP server, you must have your own.

View All Email Templates

View all email templates by clicking the Integrations > SMTP > Email Templates link on the sidebar or going to https://revcent.com/user/email-templates

All Email Templates

Create or Edit An Email Template

Create a new email template by clicking the Create New Email Template button when viewing all email templates or go to https://revcent.com/user/new-email-template

Edit an existing email template by clicking the edit button when viewing all email templates.

Email Template Details

Create Email Template Details

Name

Set a name for the email template. Required.

Description

Set a description for the email template.

Status

Set the status for the email template.

SMTP Profile

Assign the email template an SMTP profile. Required.

Email Template Content

Basic Fields

Edit Email Template Content Basic

From

The from address. Default is your RevCent account email.

To

Enter email addresses separated by comma. For customer, use ‘customer’.

Cc

Enter email addresses separated by comma. For customer, use ‘customer’.

Bcc

Enter email addresses separated by comma. For customer, use ‘customer’.

Subject

Email subject. Shortcodes are allowed.

Handlebars Syntax

The design editor and code editor both support dynamic data using Handlebars templating language, allowing you to personalize an email template. Handlebars takes the Input Data and extracts data based on the notation. Handlebars syntax allows you to generate customized email templates by inserting data to make an email relevant to a specific recipient.

For example, if you had the item data { name: 'my product' }, you can reference this in a template using handlebars syntax: {{name}} which will output the string “my product”.

In addition to substituting values, you can use Handlebars in your designs to format dates, iterate over lists, and conditionally render content. Handlebars offers numerous advanced capabilities including conditionals, expressions and more.

Please view the Email Template Triggers section for information on trigger type and input data the handlebars compiler will receive.

Handlebars Documentation

  • Handlebars website: Read about all of the capabilities of Handlebars at the official Handlebars website.
  • Twilio SendGrid: For detailed examples, please read the SendGrid Handlebars reference.RevCent’s email template system follows the same principles as the SendGrid documentation pertaining to handlebars syntax use and capabilities. Formatting, substitutions, iterations and conditional statements contained in the SendGrid documentation are also supported in RevCent.

Custom Helpers

Several custom helpers are available for you to format the output of an input string, number and more. These helpers are available in addition to the built-in Handlebars helpers.

Helper Shortcode Input Data Output Description
formatDate {{formatDate created_date_unix 'MM/DD/YYYY' '-0500'}}
{
created_date_unix: 1672956769
}
01/05/2023 Uses MomentJS format display tokens. Please read the detailed explanation below.
formatCurrency {{formatCurrency amount}}
{
amount: 20.42,
iso_currency: 'USD'
}
$20.42 Uses the iso_currency value from item data to determine the number format.
findWhereEquals {{findWhereEquals 'metadata' 'name' 'affiliate_id' 'value'}}
{
metadata: [
{
name: 'affiliate_id',
value: '12345',
entry_date: '2023-01-05'
}
]
}
12345 Finds a value within an array of objects. Please read the detailed explanation below.
math {{math 'add' shipping_amount tax_amount 'currency'}}
{
shipping_amount: 10.40,
tax_amount: 1.42
}
$11.82 Perform a mathematic calculation between two numbers with result formatting. Please read the detailed explanation below.
parseInt {{parseInt amount}}
{
amount: 14.42
}
14 Converts a value into an integer.
parseFloat {{parseFloat amount}}
{
amount: "14.42"
}
14.42 Converts a value into a floating point number.
toString {{toString amount}}
{
amount: 14.42
}
14.42 Converts a value into a string.
startCase {{startCase customer.first_name}}
{
customer: {
first_name: 'stanley'
}
}
Stanley Converts a string value to capitalize the first letter of each word.
upperCase {{upperCase customer.first_name}}
{
customer: {
first_name: 'stanley'
}
}
STANLEY Converts a string value to capitalize all words.
lowerCase {{lowerCase customer.first_name}}
{
customer: {
first_name: 'Stanley'
}
}
stanley Converts a string value to lowercase all word.

formatDate

The formatDate helper will take a valid ISO time or unix timestamp and convert it into the format you specify. The second argument is an optional token format, default is ‘MM/DD/YYYY’. The third argument is an optional timezone offset, default is UTC 0. If providing timezone offset, second argument token format is required. Uses MomentJS format display tokens.

Note: You can use the term now to use the timestamp at time of template compilation. Ex: {{formatDate now 'MM/DD/YYYY' '-0500'}}

Example Data:

javascript
{
	created_date_unix: 1672956769
}
Handlebars Output
{{formatDate created_date_unix}} 01/05/2023
{{formatDate created_date_unix 'MM/DD'}} 01/05
{{formatDate created_date_unix 'MM/DD/YYYY hh:mm:ssa'}} 01/05/2023 10:12:49pm
{{formatDate created_date_unix 'MM/DD/YYYY hh:mm:ssa' '-500'}} 01/05/2023 05:12:49pm

formatCurrency

The formatCurrency helper uses the iso_currency value from item data to determine the number format.

Example Data:

javascript
{
	amount: 20.42,
	iso_currency: 'USD'
}
Handlebars Output
{{formatCurrency amount}} $20.42

findWhereEquals

The findWhereEquals helper will find the value for a specific object property within an array of objects. Mostly useful for parsing the metadata array, searching for a value where another value equals something.

Arguments:

  1. The array to search in the item data. In the example shortcode, we want to search the metadata array.
  2. The property to match. In the example shortcode, we want to match the value where property is “name”.
  3. The property value must equal to. In the example shortcode, we want to match the value where property is “name” (from #2) and value is “affiliate_id”.
  4. The other property value to retrieve. In the example shortcode, we want to get the value for the “value” property within the same object found using 2 & 3.

Format: {{findWhereEquals #1 #2 #3 #4}}

Example Shortcode: {{findWhereEquals 'metadata' 'name' 'affiliate_id' 'value'}}

Example Data:

javascript
{
	"metadata": [
		{
    		name: 'coupon_code',
    		value: '10percent',
    		entry_date: '2023-01-05'
		},
		{
    		name: 'affiliate_id',
    		value: '12345',
    		entry_date: '2023-01-05'
		}
	]
}
Handlebars Output
{{findWhereEquals 'metadata' 'name' 'affiliate_id' 'value'}} 12345
{{findWhereEquals 'metadata' 'name' 'coupon_code' 'value'}} 10percent
{{findWhereEquals 'metadata' 'value' '10percent' 'name'}} coupon_code

math

The math helper will perform a mathematic calculation between two numbers with result formatting.

Arguments:

  1. The mathematical computation to perform. Can be either ‘add’, ‘subtract’, ‘multiply’ or ‘divide’.
  2. The first number value.
  3. The second number value.
  4. The format to return. Can be either ‘integer’, ‘float’ or ‘currency’. Note: ‘float’ will return a value to two decimal places.

Format: {{math #1 #2 #3 #4}}

Example Shortcode: {{math 'add' shipping_amount tax_amount 'currency'}}

Example Data:

javascript
{
	"shipping_amount": 10.40,
	"tax_amount": 1.42
}
Handlebars Output
{{math 'add' shipping_amount tax_amount 'currency'}} $11.82
{{math 'add' shipping_amount tax_amount 'float'}} 11.82
{{math 'subtract' shipping_amount tax_amount 'integer'}} 8
{{math 'multiply' shipping_amount tax_amount 'float'}} 14.76
{{math 'divide' shipping_amount tax_amount 'float'}} 7.32

Design Editor

The Design Editor is a WYSIWYG html editor. You can change text, place shortcodes and more using the design editor. Both the Design and Code editors share the same HTML code, and are updated simultaneously when either is modified.

Important: For more complex templating, including handlebars conditionals or iterations, we highly recommend using the Code Editor.

Edit Email Template Content Design

Code Editor

The Code editor is the raw email template code, which is visible in the Design Editor and the rendered in the Preview. Both the Design and Code editors share the same HTML code, and are updated simultaneously when either is modified.

Note: Remote stylesheets and <style> tags are converted to inline styles when the template is compiled before sending to a recipient. Custom fonts may or may not render depending on email recipient.

Edit Email Template Content Code

Preview

The Preview is the generation of an example email using the Input Data and editor code. This is what the recipient will see with filled in shortcodes using the values in the Input Data. In production, the data being used will be specific to the event and trigger that occurred.

Edit Email Template Content Preview

Input Data

The Input Data directly corresponds to the template trigger you have selected. For example, if selecting a “sale” trigger, then the data used for rendering the email will be sale JSON. Select a template trigger first, then view the Input Data to see an example of what the system will use when compiling an email before sending.

Please view the Email Template Triggers section for information on trigger type and input data the handlebars compiler will receive.

Edit Email Template Content Input Data

Custom Data

You can add custom data to the Input Data when a template is compiled.

The custom data source can be either a JSON object inputted by you, or a JSON object returned from a function. If enabling custom data, the “custom_data” property will appear and be available in the handlebars shortcode syntax.

Edit Email Template Content Input Data Custom Data

Custom Data: JSON Object

Input a valid JSON object into the JSON editor. This JSON data will be available in the handlebars syntax via custom_data.

In the example image below, {{custom_data.custom_property}} will output “custom field”.

Edit Email Template Content Input Data Custom Data Json

Custom Data: RevCent Function

You have the ability to generate custom data during template compilation via a RevCent Function. The function must have an Email Template trigger type. The function will receive the item details corresponding to the Input Data, allowing you to return custom JSON data based on the Input Data during compilation. The return JSON object will be accessible via handlebars using {{custom_data.XXXX}}, where XXXX is a property within the JSON object returned from the function.

Important: The function must return a valid JSON object in order to be amended to the Input Data as custom_data, i.e. callback(null, {"custom_property": "custom value"});

Edit Email Template Content Input Data Custom Data Function

Custom Data Function Example

Let’s say you have an email template which triggers when a new sale is created. The item type for the template will be a Sale, as the item type corresponds to the trigger. Now, if you enabled custom data, and the source is a function, the function will receive the details of the specific sale that triggered the email template. The details are accessible in the function via the event.data.item_details object.

  1. The email template is triggered for a new sale.
  2. The base Input Data for handlebars is the details of the sale, i.e. a sale event.
  3. A function is called, which receives the same sale event object accessible in the function via event.data.item_details
  4. The function runs and returns a JSON object.
  5. The JSON object returned from the function is amended to the handlebars Input Data as the “custom_data” property.

Input Data for a Sale Trigger is a Sale Event, redacted for brevity.

javascript
{
    "amount_captured": 12,
    "customer": {
      "address_line_1": "1600 Pennsylvania Ave",
      "address_line_2": "",
      "blocked": false,
      "city": "Washington",
      "company": "",
      "country": "USA",
      "email": "george@gmail.com"
    }
    ....
}

Example Function Code. The same Input Data is also supplied to the function via event.data.item_details

javascript

let customer_email = event.data.item_details.customer.email; // will be george@gmail.com

let custom_data = {
    'my_custom_field': 'A custom value',
    'email_capitalized': customer_email.toUpperCase(),
    'email_local_part': customer_email.split('@')[0],
    'customer_email': customer_email
};

callback(null, custom_data);

New Input Data with custom_data object inserted. The function generated additional data for the email template to use. {{custom_data.my_custom_field}} would output “A custom value” when compiled.

javascript
{
    "amount_captured": 12,
    "custom_data": {
    	"my_custom_field": "A custom value",
    	"email_capitalized": "GEORGE@GMAIL.COM",
    	"email_local_part": "george",
    	"customer_email": "george@gmail.com"
    },
    "customer": {
      "address_line_1": "1600 Pennsylvania Ave",
      "address_line_2": "",
      "blocked": false,
      "city": "Washington",
      "company": "",
      "country": "USA",
      "email": "george@gmail.com"
    }
    .....
}

The above a very simple example of what the custom_data via a RevCent Function can do.

Some advanced uses:

  1. Generate product recommendations to show in the email based on what the customer purchased.
  2. Create a custom coupon code on the fly based on the amount the customer purchased in the sale. Even name it after the customer, i.e. George25 for 25% off. Include it in the email.

Custom Arguments

If triggering the email template via the RevCent API or as part of an AI System Tool, you have the option to include custom arguments. This is especially useful for AI as custom arguments allow the AI to pass dynamically generated information into the email template. You specify the name and description of each argument and the AI does the rest. It is important to write the description of a custom argument in a way that the AI will understand what you want outputted.

If you wanted to include the custom arguments in your email, you would access it via the {{custom_arguments.*}} handlebars in your template, where * is a custom argument.

Important: Please read more in detail about Custom Arguments.

Prebuilt Templates

We have provided some email templates pertaining to most of the template triggers available. Select a trigger, load the corresponding template and you are ready to go. Change the logo and style using the Design or Code editors.

Edit Email Template Content Prebuilt Templates

Email Template Triggers

Triggers for sending an email including applicable timing and descriptions.

If using handlebars to format your email template according to the item type, the handlebars compiler will receive the item_details object from the related event. When viewing events related to a trigger, the email template compiler will not receive any data other than the item_details object content.

Available Triggers

The following table shows the available triggers. Notice the Item Type and Input Data columns. The Input Data column provides a link to the JSON object the handlebars compiler will receive. Depending on the trigger, you can compile via handlebars by accessing the raw input data JSON.

Trigger Applicable Timing Description Item Type Input Data
Direct
No Trigger Immediate Select No Trigger if a draft or using the email template within an external process. None
API/AI Immediate Trigger the template to send an SMTP message via the RevCent API or AI through AI Web Chat or AI Assistants. AI can trigger an email template via System Tools and provide custom arguments to the template when triggered. None
Events
AI Memo Created

Immediate

Specific > After

An AI Assistant created an AI Memo. AI Memo AI Memo
Customer Created

Immediate

Specific > After

A customer was created using the customer create method, not due to a new sale. Customer Customer
Fraud Detection Created Immediate A fraud detection was created and attached to a sale. Fraud Detection Fraud Detection
Invoice Create Success

Immediate

Specific > After

An invoice was created with a unique URL. Invoice Invoice
Pending Refund Created

Immediate

Specific > After

A pending refund was created. Pending Refund Pending Refund
Sale Success

Immediate

Specific > After

A sale was created and payment was successful. Sale Sale
Sale Fail

Immediate

Specific > After

A sale was created, but all payment attempt(s) failed either due to error or decline. Sale Sale
Sale Fraud Alert Immediate A sale was created, either successfully or not, and fraud was detected. However, payment was not prevented and therefore a Fraud Detection was not created. Instead, the sale was marked with a fraud alert allowing manual review. Sale Sale
Sale Pending No Payment

Immediate

Specific > After

A pending sale was created, however no payment attempt(s) were ever made. I.e. abandoned cart. Sale Sale
Sentinel Alert Immediate A sentinel fraud detection occurred. Sentinel Sentinel
Shipping Item Created Immediate A shipment was created in RevCent. Useful for emailing a warehouse. Shipping Shipping
Shipping Item Shipped Immediate A shipment was marked as shipped, either via web, API or fulfillment. Shipping Shipping
Shipping Item Delivered Immediate A shipment was delivered according to the shipping provider tracking number. Shipping Shipping
Shipping Item Voided Immediate A shipment was voided and or cancelled. Useful for emailing a warehouse. Shipping Shipping
Subscription Renewal Success

Immediate

Specific > After

A subscription renewal payment was successful. Subscription Renewal Subscription Renewal
Subscription Renewal Fail

Immediate

Specific > After

A subscription renewal payment failed due to error or decline. Subscription Renewal Subscription Renewal
Subscription Renewal Upcoming Specific > Before A subscription renewal payment attempt is upcoming. Subscription Subscription
Trial Expire Success

Immediate

Specific > After

A trial expiration was successful. Trial Trial
Trial Expire Fail

Immediate

Specific > After

A trial expiration failed due to error or decline. Trial Trial
Trial Expire Upcoming Specific > Before A trial expiration is upcoming. Trial Trial

Email Template Timing

Specify the timing for sending the email relative to the trigger.

Immediate

Email will be sent immediately upon the trigger occurring.

Specific

Email will be sent depending on trigger and time settings.

Create Email Template Settings Timing Specific

Time Relative

The time relative to the trigger to send the email.

Options:

  • Before Trigger
  • After Trigger
Time Unit

The time unit.

Options:

  • Hours
  • Days
  • Weeks
  • Months
  • Years
Time Value

The time value, when combined with the time unit specifies the specific timing to send the email relative to the event.

Specific Timing Examples

Example 1

You want to send an email three hours after a new sale.

Time Relative: After Trigger

Time Unit: Hours

Time Value: 3

Example 2

You want to send an email 1 day before a subscription renewal.

Time Relative: Before Trigger

Time Unit: Days

Time Value: 1

Email Template Settings

Create Email Template Settings

Trigger

The event that will trigger the email to be sent. Read more about triggers in the Email Template Triggers section.

Campaigns Allowed

Select specific campaigns to allow, preventing non-selected campaigns from using this template.

Third Party Shops Allowed

Select specific third party shops to allow, preventing non-selected third party shops from using this template.

Product Groups Allowed

Select specific product groups to allow, preventing products not contained in selected product groups from using this template.

Products Allowed

Select specific products to allow, preventing non-selected products from using this template.

Products Visible

Select specific products that are to be visible in the resulting email, preventing non-selected products from being visible and/or listed.

Additional Shortcodes

Additional shortcodes can be used in the subject and body of the email.

Important: Shortcodes must be surrounded by double curly braces when placing into the subject or body of an email template.

Shortcode Applicable Trigger(s) Description
{{item_date}} All The date the item relative to the trigger was created. I.e. sale date, renewal date, etc.
{{date_now}} All The current date when the email is sent.

Handlebars Data

The following JSON is provided to the handlebars compiler based on the trigger item type. For example, if the trigger is Sale Create Success, the item type is Sale, therefore the compiler will receive the Sale JSON object.

AI Memo

The JSON below is the data the handlebars compiler will receive for a subscription related trigger.

Triggers Applicable:

  • AI Memo Created

Handlebars Examples

{{message}} Will insert the message value in the JSON object, i.e. The AI Assistant wishes…

{{ai_assistant.name}} Will insert the AI Assistant name value in the JSON object, i.e. My AI Assistant

javascript
{
  "ai_assistant": {
    "name": "My AI Assistant",
    "id": "9RalBJOYBnuYlVov8AaA"
  },
  "ai_thread": {
    "id": "ZmvWKPVYjbFWogA8ZmRM"
  },
  "created_date_unix": 1746193406,
  "id": "r1Rk26bMZEIZMEKB9jWP",
  "item_id": "WgV5zgEWBOTQyZ14nA8v",
  "item_type": "sale",
  "message": "The AI Assistant wishes to tell you that one of your gateways is not able to process.",
  "source_type": "item",
  "status": "Unread",
  "subject": "A Gateway Is Disabled.",
  "updated_date_unix": 1746193406
}

Customer

The JSON below is the data the handlebars compiler will receive for a subscription related trigger.

Triggers Applicable:

  • Customer Created

Handlebars Examples

{{first_name}} Will insert the first_name value in the JSON object, i.e. George

{{last_name}} Will insert the last_name value in the JSON object, i.e. Washington

javascript
{
  "address_line_1": "1600 Pennsylvania Ave",
  "address_line_2": "",
  "anonymous": false,
  "api_calls": [
    "nbOKqrgz9gFvV1WwMG6M"
  ],
  "blocked": false,
  "campaign_id": "mJ1zZoOobEuP8pnWKXd1",
  "campaign_name": "Adwords Campaign",
  "chargebacks": [],
  "check_directs": [],
  "city": "Washington",
  "company": "",
  "country": "USA",
  "created_date_unix": 1653658541,
  "customer_card": [
    {
      "created_date_unix": 1653658541,
      "updated_date_unix": 1653658543,
      "id": "rmnkqrJlWJImQ7g2NbJ9",
      "type": "visa",
      "last_4": "4242",
      "expiry_date": "11/23",
      "expiry_month": "11",
      "expiry_year": "2023",
      "is_default": true
    }
  ],
  "customer_group": [],
  "customer_group_blocked": [],
  "discounts": [
    "2rW4yQqyr9Hwd8b7BYLd"
  ],
  "email": "george@gmail.com",
  "enabled": true,
  "first_name": "George",
  "fraud_detection_requests": [],
  "fraud_detections": [],
  "full_address": "",
  "geocode_success": false,
  "google_place_id": "",
  "has_paypal_dispute": false,
  "id": "Q4nGRNpLgpS92QqGLwlX",
  "internal_id": "",
  "invoices": [],
  "last_name": "Washington",
  "lat": "0",
  "license_keys": [],
  "lifetime_value": {
    "all": {
      "amount_discounted": 5,
      "amount_gross": 230.02,
      "amount_net": 224.27,
      "amount_refunded": 0,
      "amount_remaining": 129.99,
      "amount_to_salvage": 0,
      "amount_total": 360.01
    },
    "sale": {
      "amount_discounted": 5,
      "amount_gross": 230.02,
      "amount_net": 224.27,
      "amount_refunded": 0,
      "amount_remaining": 129.99,
      "amount_to_salvage": 0,
      "amount_total": 360.01,
      "num": 2,
      "avg": 115.01
    },
    "subscription_renewal": {
      "amount_discounted": 0,
      "amount_gross": 0,
      "amount_net": 0,
      "amount_refunded": 0,
      "amount_remaining": 0,
      "amount_to_salvage": 0,
      "amount_total": 0,
      "num": 0,
      "avg": 0,
      "num_overdue": 0
    },
    "fraud_detection": {
      "amount": 0,
      "num": 0,
      "avg": 0
    },
    "chargeback": {
      "amount": 0,
      "num": 0,
      "avg": 0
    },
    "pending_refund": {
      "num": 0
    },
    "last_subscription_renewal_date": null,
    "last_sale_date": "2023-01-16T14:21:00.766Z"
  },
  "lon": "0",
  "metadata": [
    {
      "name": "landing_page",
      "value": "v1",
      "entry_date": "2022-05-27"
    }
  ],
  "notes": [],
  "offline_payments": [],
  "paypal_disputes": [],
  "paypal_transactions": [],
  "pending_refunds": [],
  "phone": "1234567890",
  "product_sales": [
    "mJjWqrwqJaHqrYyw9m4l",
    "P6NoRw9R6yHzPVwGBY18",
    "0pnQyg6ypMSnVvapmNGY"
  ],
  "products_purchased": [
    {
      "id": "k6EXjKzd7PHOpgvdYjXG",
      "name": "USB HDD",
      "internal_id": "usb_hdd",
      "sku": "usb_hdd_sku",
      "quantity": 2,
      "price": 89.99,
      "amount_gross": 176.23,
      "amount_refunded": 0,
      "purchase_count": 2,
      "purchase_dates": [
        1673878862,
        1673837925
      ]
    },
    {
      "id": "6r8O5MLbw2t6n4v1lGqK",
      "name": "AV 2017",
      "internal_id": "av_2017",
      "sku": "av_2017_sku",
      "quantity": 1,
      "price": 29.99,
      "amount_gross": 28.74,
      "amount_refunded": 0,
      "purchase_count": 1,
      "purchase_dates": [
        1673880787
      ]
    }
  ],
  "quota_accounts": [],
  "sales": [
    "gYEWq5gAvgI72EqZp58R"
  ],
  "salvage_transactions": [],
  "shipping": [
    "9r1vQ52QrAHMArwvab8J"
  ],
  "smtp_messages": [],
  "state": "DC",
  "state_long": "DC",
  "status": "Enabled",
  "subscription_renewals": [],
  "subscriptions": [
    "X8JoRPvR8VSoBjyEq8gn",
    "qZNyq4wqZjTXaP7rQGEE"
  ],
  "tax": [],
  "transactions": [
    "d98k5ry59AclpaQzRYNX"
  ],
  "trials": [
    "nbOKqrlqbESvV1WwMGaO"
  ],
  "updated_date_unix": 1653658543,
  "zip": "20500"
}

Fraud Detection

The JSON below is the data the handlebars compiler will receive for a subscription related trigger.

Triggers Applicable:

  • Fraud Detection Created

Handlebars Examples

{{amount}} Will insert the raw amount value into the email template, i.e. 12

{{formatCurrency amount}} Will insert the formatted amount value in the related currency, i.e. $12.00

{{customer.first_name}} Will insert the customers’ first name into the email template, i.e. George

javascript
{
  "amount": 12,
  "api_calls": [
    "rmnkjBZWBZuJBBMoBMod"
  ],
  "arn": "",
  "bill_to_submitted": null,
  "campaign_id": "mJ1zZoOobEuP8pnWKXd1",
  "campaign_name": "Adwords Campaign",
  "case_number": "",
  "chargebacks": [],
  "check_directs": [],
  "created_date_unix": 1653662724,
  "customer": {
    "address_line_1": "1600 Pennsylvania Ave",
    "address_line_2": "",
    "blocked": false,
    "city": "Washington",
    "company": "",
    "country": "USA",
    "email": "george@gmail.com",
    "enabled": true,
    "first_name": "George",
    "full_address": "1600 Pennsylvania Avenue NW, Washington, DC 20500, USA",
    "geocode_success": true,
    "google_place_id": "ChIJGVtI4by3t4kRr51d_Qm_x58",
    "id": "Q4nGRNpLgpS92QqGLwlX",
    "internal_id": "",
    "last_name": "Washington",
    "lat": "38.8976633",
    "lon": "-77.0365739",
    "metadata": [
      {
        "name": "landing_page",
        "value": "v1",
        "entry_date": "2022-05-27"
      }
    ],
    "phone": "1234567890",
    "state": "DC",
    "state_long": "DC",
    "status": "Enabled",
    "zip": "20500"
  },
  "customer_submitted": null,
  "details_response": "{}",
  "discounts": [],
  "event_date": "2022-05-27T14:45:24+00:00",
  "event_date_unix": 1653662724,
  "false_positive": false,
  "fraud_detection_date": "2022-05-27T14:45:24+00:00",
  "fraud_detection_date_unix": 1653662724,
  "fraud_detection_requests": [],
  "has_paypal_dispute": false,
  "id": "nbOKvER9ERS6mm8dm87X",
  "invoices": [],
  "ip_address": null,
  "is_third_party_integration": false,
  "iso_currency": "USD",
  "license_keys": [],
  "live_mode": false,
  "metadata": [],
  "notes": [],
  "offline_payments": [],
  "origin_api_call": {
    "id": "l4MzqmnJ4Lu54b6QJ804",
    "date": "2022-05-27T14:04:05+00:00",
    "date_unix": 1653660245,
    "type": "sale",
    "method": "create",
    "ip_address": "1.2.3.4"
  },
  "payment_type": {
    "id": "KnQ0KlNE6kf5mobyV0pN",
    "name": "Credit Card"
  },
  "paypal_disputes": [],
  "paypal_transactions": [],
  "pending_refunds": [],
  "product_sales": [],
  "quota_accounts": [],
  "sale_id": "nbOKqEW988c6Vyp52dmX",
  "sales": [
    "nbOKqEW988c6Vyp52dmX"
  ],
  "salvage_transactions": [],
  "ship_to_submitted": null,
  "shipping": [
    "5r6wQ0J4yJs72XnG5N8q"
  ],
  "smtp_messages": [],
  "status": "Created",
  "subscription_renewals": [],
  "subscriptions": [
    "ALZBomzd4zszqKMWGjAk"
  ],
  "tax": [],
  "third_party_fraud_detection_id": "",
  "third_party_integration": null,
  "third_party_order_id": "",
  "third_party_shop": null,
  "tracking_visitor_populated": null,
  "transactions": [
    "LYjVRJLdMLhlM06B4bEd"
  ],
  "trials": [
    "JNGnQkVd2Vslg97mrEAb"
  ],
  "updated_date_unix": 1653662724
}

Invoice

The JSON below is the data the handlebars compiler will receive for a subscription related trigger.

Triggers Applicable:

  • Invoice Create Success

Handlebars Examples

{{amount_total}} Will insert the raw amount_total value into the email template, i.e. 89.99

{{formatCurrency amount_total}} Will insert the formatted amount_total value in the related currency, i.e. $89.99

{{customer.first_name}} Will insert the customers’ first name into the email template, i.e. George

javascript
{
  "amount_original_total": 89.99,
  "amount_total": 89.99,
  "api_calls": [
    "YabYG01LyJtA11bG1JVW"
  ],
  "campaign_id": "pgEmEjP5z9FKzl6YrZmA",
  "campaign_name": "Acme Campaign",
  "chargebacks": [],
  "check_directs": [],
  "created_date_unix": 1653662971,
  "customer": {
    "address_line_1": "1600 Pennsylvania Ave",
    "address_line_2": "",
    "blocked": false,
    "city": "Washington",
    "company": "",
    "country": "USA",
    "email": "george@gmail.com",
    "enabled": true,
    "first_name": "George",
    "full_address": "1600 Pennsylvania Avenue NW, Washington, DC 20500, USA",
    "geocode_success": true,
    "google_place_id": "ChIJGVtI4by3t4kRr51d_Qm_x58",
    "id": "Q4nGRNpLgpS92QqGLwlX",
    "internal_id": "",
    "last_name": "Washington",
    "lat": "38.8976633",
    "lon": "-77.0365739",
    "metadata": [
      {
        "name": "landing_page",
        "value": "v1",
        "entry_date": "2022-05-27"
      }
    ],
    "phone": "1234567890",
    "state": "DC",
    "state_long": "DC",
    "status": "Enabled",
    "zip": "20500"
  },
  "date_paid": null,
  "discounts": [],
  "download_url": "",
  "fraud_detection_requests": [],
  "fraud_detections": [],
  "has_paypal_dispute": false,
  "hosted_url": "https://securehost.revcent.com/MyCompanyName/invoice?invoice_id=P6NoZjbyVJIlMMN5M46X",
  "id": "P6NoZjbyVJIlMMN5M46X",
  "invoice_profile": {
    "id": "k6KA6Rv7LXUzlMWkXq6W",
    "name": "Hosted Invoice Page"
  },
  "is_sale": true,
  "is_subscription_renewal": false,
  "iso_currency": "USD",
  "license_keys": [],
  "metadata": [],
  "notes": [],
  "offline_payments": [],
  "paid": false,
  "payment_type": null,
  "paypal_disputes": [],
  "paypal_transactions": [],
  "pending_refunds": [],
  "product_sales": [],
  "products_detailed": [
    {
      "id": "k6EXjKzd7PHOpgvdYjXG",
      "price": 89.99,
      "quantity": 1,
      "name": "USB HDD",
      "description": "Great USB for data storage.",
      "total_amount": 89.99,
      "discount_amount": 3.75,
      "is_subscription": false,
      "is_trial": false,
      "internal_id": "usb_hdd",
      "sku": "usb_hdd_sku",
      "url": "https://www.google.com",
      "images": [
        {
          "id": "6rQvQG1K07FLbwdl1jlJ",
          "featured": true,
          "file_name": "6rQvQG1K07FLbwdl1jlJ",
          "file_ext": "jpg",
          "image_width": 612,
          "image_height": 612,
          "mimetype": "image/jpeg",
          "base_url": "https://productimg.revcent.com",
          "full_url": "https://productimg.revcent.com/6rQvQG1K07FLbwdl1jlJ.jpg",
          "compressed_extensions": [
            "_resize_150",
            "_resize_600",
            "_resize_300"
          ]
        }
      ]
    }
  ],
  "quota_accounts": [],
  "sales": [
    "k6GlaEVRmLIYMMZgMBGv"
  ],
  "salvage_transactions": [],
  "shipping": [],
  "smtp_messages": [],
  "status": "Unpaid",
  "subscription_renewals": [],
  "subscriptions": [],
  "tax": [],
  "transactions": [],
  "trials": [],
  "updated_date_unix": 1653662971,
  "void": false
}

Pending Refund

The JSON below is the data the handlebars compiler will receive for a subscription related trigger.

Triggers Applicable:

  • Pending Refund Created

Handlebars Examples

{{amount}} Will insert the raw amount value into the email template, i.e. 1.57

{{formatCurrency amount}} Will insert the formatted amount value in the related currency, i.e. $1.57

{{customer.first_name}} Will insert the customers’ first name into the email template, i.e. George

javascript
{
  "amount": 1.57,
  "api_calls": [
    "ZV1WbRzdKWH5P9A6jJL0"
  ],
  "campaign_id": "mJ1zZoOobEuP8pnWKXd1",
  "campaign_name": "Adwords Campaign",
  "chargebacks": [],
  "check_directs": [],
  "created_date_unix": 1653661564,
  "customer": {
    "address_line_1": "1600 Pennsylvania Ave",
    "address_line_2": "",
    "blocked": false,
    "city": "Washington",
    "company": "",
    "country": "USA",
    "email": "george@gmail.com",
    "enabled": true,
    "first_name": "George",
    "full_address": "1600 Pennsylvania Avenue NW, Washington, DC 20500, USA",
    "geocode_success": true,
    "google_place_id": "ChIJGVtI4by3t4kRr51d_Qm_x58",
    "id": "Q4nGRNpLgpS92QqGLwlX",
    "internal_id": "",
    "last_name": "Washington",
    "lat": "38.8976633",
    "lon": "-77.0365739",
    "metadata": [
      {
        "name": "landing_page",
        "value": "v1",
        "entry_date": "2022-05-27"
      }
    ],
    "phone": "1234567890",
    "state": "DC",
    "state_long": "DC",
    "status": "Enabled",
    "zip": "20500"
  },
  "discounts": [],
  "fraud_detection_requests": [],
  "fraud_detections": [],
  "gateway_id": "LYE26MW8Rlh5VbJmlp2l",
  "gateway_name": "Authorize.net",
  "has_paypal_dispute": false,
  "id": "RJYjbRKQLjtdjLZpPRrk",
  "invoices": [],
  "iso_currency": "USD",
  "license_keys": [],
  "live_mode": false,
  "metadata": [
    {
      "name": "landing_page",
      "value": "v1",
      "entry_date": "2022-05-27"
    }
  ],
  "notes": [],
  "num_attempts": 0,
  "offline_payments": [],
  "payment_type": {
    "id": "KnQ0KlNE6kf5mobyV0pN",
    "name": "Credit Card"
  },
  "paypal_disputes": [],
  "paypal_transactions": [],
  "processed": false,
  "product_sales": [],
  "quota_accounts": [],
  "refund_transaction_id": "Bvm2G4EJr2Sw6EZQvVQZ",
  "sales": [],
  "salvage_transactions": [],
  "shipping": [],
  "smtp_messages": [],
  "status": "Processing",
  "subscription_renewals": [],
  "subscriptions": [],
  "success_transaction_id": null,
  "tax": [],
  "third_party_shop": null,
  "trials": [],
  "updated_date_unix": 1653661564,
  "web_user": {
    "id": "EMwsqWXE05RAm90jK4da",
    "username": "JaneDoe",
    "first_name": "Jane",
    "last_name": "Doe"
  }
}

Sale

The JSON below is the data the handlebars compiler will receive for a subscription related trigger.

Triggers Applicable:

  • Sale Success
  • Sale Fail
  • Sale Fraud Alert
  • Sale Pending No Payment

Handlebars Examples

{{amount_gross}} Will insert the raw amount_gross value into the email template, i.e. 12

{{formatCurrency amount_gross}} Will insert the formatted amount_gross value in the related currency, i.e. $12.00

{{customer.first_name}} Will insert the customers’ first name into the email template, i.e. George

javascript
{
  "amount_captured": 12,
  "amount_discounted": 0,
  "amount_fees": 0.26,
  "amount_gross": 12,
  "amount_net": 11.74,
  "amount_original_total": 141.99,
  "amount_refunded": 0,
  "amount_remaining": 129.99,
  "amount_settled": 0,
  "amount_to_salvage": 0,
  "amount_total": 141.99,
  "amount_void": 0,
  "api_calls": [
    "l4MzqmnJ4Lu54b6QJ804"
  ],
  "campaign_id": "mJ1zZoOobEuP8pnWKXd1",
  "campaign_name": "Adwords Campaign",
  "cancelled": false,
  "chargebacks": [],
  "check_directs": [],
  "created_date_unix": 1653660246,
  "customer": {
    "address_line_1": "1600 Pennsylvania Ave",
    "address_line_2": "",
    "blocked": false,
    "city": "Washington",
    "company": "",
    "country": "USA",
    "email": "george@gmail.com",
    "enabled": true,
    "first_name": "George",
    "full_address": "1600 Pennsylvania Avenue NW, Washington, DC 20500, USA",
    "geocode_success": true,
    "google_place_id": "ChIJGVtI4by3t4kRr51d_Qm_x58",
    "id": "Q4nGRNpLgpS92QqGLwlX",
    "internal_id": "",
    "last_name": "Washington",
    "lat": "38.8976633",
    "lon": "-77.0365739",
    "metadata": [
      {
        "name": "landing_page",
        "value": "v1",
        "entry_date": "2022-05-27"
      }
    ],
    "phone": "1234567890",
    "state": "DC",
    "state_long": "DC",
    "status": "Enabled",
    "zip": "20500"
  },
  "discounts": [],
  "fraud_detection_requests": [],
  "fraud_detections": [],
  "has_fraud_alert": false,
  "has_paypal_dispute": false,
  "hosted_endpoint": null,
  "hosted_page": null,
  "hosted_page_template": null,
  "hosted_page_visit": null,
  "id": "nbOKqEW988c6Vyp52dmX",
  "internal_id": "",
  "invoices": [],
  "iso_currency": "USD",
  "license_keys": [],
  "live_mode": false,
  "metadata": [
    {
      "name": "landing_page",
      "value": "v1",
      "entry_date": "2022-05-27"
    }
  ],
  "notes": [],
  "offline_payments": [],
  "payment_attempt_status": {
    "payment_attempted": true,
    "payment_success": true,
    "payment_decline": false,
    "payment_fail": false,
    "payment_held": false,
    "payment_error": false,
    "payment_attempts_num": 1,
    "payment_attempts": [
      {
        "attempt_date": "2022-05-27T14:04:08+00:00",
        "attempt_date_unix": 1653660248,
        "code": 1,
        "attempt_message": "Approved",
        "attempt_result": "success",
        "api_call": {
          "id": "l4MzqmnJ4Lu54b6QJ804"
        },
        "transaction": {
          "id": "LYjVRJLdMLhlM06B4bEd",
          "amount": 12
        },
        "customer_card": {
          "id": "rmnkqrJlWJImQ7g2NbJ9",
          "last_4": "4242",
          "expiry_month": "11",
          "expiry_year": "2023",
          "type": "visa"
        }
      }
    ]
  },
  "payment_profile": {
    "id": "VP6ER4oZVdIldBz7kpWy",
    "name": "AuthorizeNet",
    "results": {
      "final_amount": 12,
      "num_declined_transactions": 0,
      "original_amount": 12,
      "payment_profile_id": "VP6ER4oZVdIldBz7kpWy",
      "step_array": [
        {
          "step_action": "initial",
          "step_amount": 12,
          "step_card": "rmnkqrJlWJImQ7g2NbJ9",
          "step_cascade_result": null,
          "step_gateway": "Authorize.net",
          "step_gateway_id": "LYE26MW8Rlh5VbJmlp2l",
          "step_modifier": "",
          "step_num": 1,
          "step_result": "Approved",
          "step_setting": "initial",
          "step_source": "gateway",
          "step_transaction": "LYjVRJLdMLhlM06B4bEd",
          "swap_card": false
        }
      ],
      "successful_gateway": "Authorize.net",
      "successful_step_num": 1
    }
  },
  "payment_type": {
    "id": "KnQ0KlNE6kf5mobyV0pN",
    "name": "Credit Card"
  },
  "paypal_disputes": [],
  "paypal_transactions": [],
  "pending_payment": false,
  "pending_refunds": [],
  "product_sales": [
    "rmnkqBV6GVSJQVKd6oNA"
  ],
  "products_detailed": [
    {
      "id": "k6EXjKzd7PHOpgvdYjXG",
      "price": 89.99,
      "quantity": 1,
      "name": "USB HDD",
      "total_amount": 89.99,
      "discount_amount": 3.75,
      "is_subscription": false,
      "is_trial": false,
      "internal_id": "usb_hdd",
      "sku": "usb_hdd_sku",
      "url": "https://www.google.com",
      "images": [
        {
          "id": "2r14zlG0mjF5zbQ24XAl",
          "featured": true,
          "file_name": "2r14zlG0mjF5zbQ24XAl",
          "file_ext": "jpg",
          "image_width": 612,
          "image_height": 612,
          "mimetype": "image/jpeg",
          "base_url": "https://productimg.revcent.com",
          "full_url": "https://productimg.revcent.com/2r14zlG0mjF5zbQ24XAl.jpg",
          "compressed_extensions": [
            "_resize_150",
            "_resize_600",
            "_resize_300"
          ]
        }
      ],
      "description": "Great USB for data storage.",
      "is_bundle": true,
      "bundle_settings": {
        "products": [
          {
            "quantity": 1,
            "price": 100,
            "product": {
              "id": "1rY6BPMwNAiMG15BAXv9",
              "name": "Utensils",
              "sku": "83",
              "internal_id": "26",
              "is_trial": false,
              "is_subscription": false,
              "is_shippable": true
            }
          },
          {
            "quantity": 1,
            "price": 99.99,
            "product": {
              "id": "X8JK4KJABjiE6n98aE5y",
              "name": "Horse Chair",
              "sku": "82",
              "internal_id": "29",
              "is_trial": false,
              "is_subscription": false,
              "is_shippable": true
            }
          }
        ],
        "unbundle_method": "unbundle_at_fulfillment"
      }
    }
  ],
  "quota_accounts": [],
  "salvage_transactions": [],
  "ship_to": {
    "first_name": "George",
    "last_name": "Washington",
    "address_line_1": "1600 Pennsylvania Ave",
    "address_line_2": "",
    "city": "Washington",
    "state": "DC",
    "zip": "20500",
    "country": "USA",
    "company": "",
    "email": "george@gmail.com",
    "phone": "1234567890",
    "metadata": [],
    "notes": []
  },
  "shipping": [
    "5r6wQ0J4yJs72XnG5N8q"
  ],
  "shipping_amount": 12,
  "shipping_calculated": [
    {
      "amount": 12,
      "discount_amount": 0,
      "provider": "ups",
      "provider_method": "ups_ground",
      "system_generated": false
    }
  ],
  "smtp_messages": [],
  "status": "Partially Captured",
  "subscription_renewals": [],
  "subscriptions": [
    "ALZBomzd4zszqKMWGjAk"
  ],
  "tax": [],
  "tax_amount": 0,
  "third_party_shop": null,
  "tracking_visitor": null,
  "transactions": [
    "LYjVRJLdMLhlM06B4bEd"
  ],
  "trials": [
    "JNGnQkVd2Vslg97mrEAb"
  ],
  "unique_request_id": "01affb2a-17cd-45e7-b9b6-0a2a40374509",
  "updated_date_unix": 1653660248,
  "web_user": null
}

Sentinel

Please read more about Sentinel and additional event examples. Sentinel events differ based on the Sentinel rejection reason.

The JSON below is the data the handlebars compiler will receive for a subscription related trigger.

Triggers Applicable:

  • Sentinel Alert

Handlebars Examples

{{sale.amount_gross}} Will insert the raw amount_gross value into the email template, i.e. 128.66

{{formatCurrency sale.amount_gross}} Will insert the formatted amount_gross value in the related currency, i.e. $128.66

{{customer.first_name}} Will insert the customers’ first name into the email template, i.e. George

javascript
{
  "api_call": {
    "api_account": {
      "id": "P6jO1qXVLlFY9567l284",
      "name": "My API",
      "description": "My API account.",
      "enabled": true
    },
    "code": 5,
    "completed": true,
    "created_date_unix": 1679714585,
    "elapsed_ms": 2850,
    "elapsed_request_ms": null,
    "end_ms": 1679714588732,
    "end_request_ms": null,
    "fraud_detection_requests": [],
    "fraud_detections": [
      "wLvowgwjJZUZaZg9znVJ"
    ],
    "id": "Bvq8NdLMG0sMEB8mB0Xp",
    "ip_address": "123.456.789.0",
    "live_mode": false,
    "method": "create",
    "notes": [],
    "request": {
      "bill_to": {
        "first_name": "George",
        "last_name": "Washington",
        "address_line_1": "1600 Pennsylvania Ave",
        "address_line_2": "",
        "city": "Washington",
        "state": "DC",
        "zip": "20500",
        "country": "USA",
        "company": "",
        "email": "george@gmail.com",
        "phone": "1234567890"
      },
      "campaign": "Facebook Campaign",
      "customer": {
        "first_name": "George",
        "last_name": "Washington",
        "address_line_1": "1600 Pennsylvania Ave",
        "address_line_2": "",
        "city": "Washington",
        "state": "DC",
        "zip": "20500",
        "country": "USA",
        "company": "",
        "email": "george@gmail.com",
        "phone": "1234567890"
      },
      "ip_address": "123.456.789.0",
      "metadata": [
        {
          "name": "coupon_code",
          "value": "10percent"
        },
        {
          "name": "landing_page",
          "value": "v1"
        },
        {
          "name": "revcent_track_id",
          "value": "nbpP66ZqGvSpZd92aLlk"
        }
      ],
      "method": "create",
      "payment": "Redacted",
      "payment_profile": "My Payment Profile",
      "product": [
        {
          "id": "laptop_x400_sku",
          "quantity": 1
        }
      ],
      "ship_to": {
        "first_name": "George",
        "last_name": "Washington",
        "address_line_1": "1600 Pennsylvania Ave",
        "address_line_2": "",
        "city": "Washington",
        "state": "DC",
        "zip": "20500",
        "country": "USA",
        "company": "",
        "email": "george@gmail.com",
        "phone": "1234567890"
      },
      "type": "sale"
    },
    "response": {
      "api_call_date": "2023-03-25T03:23:08+00:00",
      "api_call_id": "Bvq8NdLMG0sMEB8mB0Xp",
      "api_call_unix": 1679714588,
      "code": 5,
      "customer_id": "JNZMJdlbMBsoz6LP6Wmb",
      "fraud_detected": true,
      "fraud_detection_created": [
        "wLvowgwjJZUZaZg9znVJ"
      ],
      "message": "Payment not processed.",
      "request_method": "create",
      "request_type": "sale",
      "result": "Payment request failed.",
      "sale_id": "0pO0rYqg0RCk6jMwjogG"
    },
    "result": "Fraud Detected",
    "sales": [
      "0pO0rYqg0RCk6jMwjogG"
    ],
    "start_ms": 1679714585882,
    "start_request_ms": null,
    "status": "Complete",
    "third_party_shop": null,
    "type": "sale"
  },
  "customer": {
    "address_line_1": "1600 Pennsylvania Ave",
    "address_line_2": "",
    "blocked": false,
    "city": "Washington",
    "company": "",
    "country": "USA",
    "email": "george@gmail.com",
    "enabled": true,
    "first_name": "George",
    "full_address": "1600 Pennsylvania Avenue NW, Washington, DC 20500, USA",
    "geocode_success": true,
    "google_place_id": "ChIJGVtI4by3t4kRr51d_Qm_x58",
    "id": "Q4nGRNpLgpS92QqGLwlX",
    "internal_id": "",
    "last_name": "Washington",
    "lat": "38.8976633",
    "lon": "-77.0365739",
    "metadata": [
      {
        "name": "landing_page",
        "value": "v1",
        "entry_date": "2022-05-27"
      }
    ],
    "phone": "1234567890",
    "state": "DC",
    "state_long": "DC",
    "status": "Enabled",
    "zip": "20500"
  },
  "fraud_detection": {
    "arn": "",
    "bill_to_submitted": {
      "internal_id": "",
      "id": "",
      "first_name": "George",
      "last_name": "Washington",
      "address_line_1": "1600 Pennsylvania Ave",
      "address_line_2": "",
      "city": "Washington",
      "state": "DC",
      "state_long": "DC",
      "zip": "20500",
      "email": "george@gmail.com",
      "phone": "1234567890",
      "company": "",
      "country": "usa"
    },
    "case_number": "",
    "created_date_unix": 1679714588,
    "customer_submitted": {
      "internal_id": "",
      "id": "",
      "first_name": "George",
      "last_name": "Washington",
      "address_line_1": "1600 Pennsylvania Ave",
      "address_line_2": "",
      "city": "Washington",
      "state": "DC",
      "state_long": "DC",
      "zip": "20500",
      "email": "george@gmail.com",
      "phone": "1234567890",
      "company": "",
      "country": "usa"
    },
    "event_date": "2023-03-25T03:23:08+00:00",
    "event_date_unix": 1679714588,
    "false_positive": false,
    "fingerprint": "3aae703419228b1a05710423c22ca5e1",
    "fraud_detection_date": "2023-03-25T03:23:08+00:00",
    "fraud_detection_date_unix": 1679714588,
    "fraud_detection_requests": [
      "8r0oE1lYoRCYpaj4arvY"
    ],
    "id": "wLvowgwjJZUZaZg9znVJ",
    "ip_address": "123.456.789.0",
    "is_sentinel": true,
    "is_third_party_integration": false,
    "iso_currency": "USD",
    "live_mode": false,
    "payment_type": {
      "id": "KnQ0KlNE6kf5mobyV0pN",
      "name": "Credit Card"
    },
    "ship_to_submitted": {
      "internal_id": "",
      "id": "",
      "first_name": "George",
      "last_name": "Washington",
      "address_line_1": "1600 Pennsylvania Ave",
      "address_line_2": "",
      "city": "Washington",
      "state": "DC",
      "state_long": "DC",
      "zip": "20500",
      "email": "george@gmail.com",
      "phone": "1234567890",
      "company": "",
      "country": "usa"
    },
    "status": "Created",
    "third_party_fraud_detection_id": "",
    "third_party_integration": null,
    "third_party_order_id": "",
    "third_party_shop": null,
    "updated_date_unix": 1679714588
  },
  "fraud_detection_request": {
    "created_date_unix": 1679714586,
    "fraud_detections": [
      "wLvowgwjJZUZaZg9znVJ"
    ],
    "fraud_score": 1,
    "id": "8r0oE1lYoRCYpaj4arvY",
    "is_error": false,
    "is_fraud_detected": true,
    "is_payment_allowed": false,
    "is_sentinel": true,
    "is_third_party_integration": false,
    "iso_currency": "USD",
    "payment_type": {
      "id": "KnQ0KlNE6kf5mobyV0pN",
      "name": "Credit Card"
    },
    "score_threshold": 0,
    "score_threshold_bound": "upper",
    "status": "Fraud Detected",
    "third_party_fraud_detection_id": "",
    "third_party_integration": null,
    "third_party_shop": null,
    "updated_date_unix": 1679714588
  },
  "fraud_detection_response": {
    "code": 5,
    "fraud_detected": true,
    "fraud_detection_created": [
      "wLvowgwjJZUZaZg9znVJ"
    ],
    "fraud_detection_request": {
      "code": 2,
      "fraud_detected": true,
      "fraud_score": 1,
      "id": "8r0oE1lYoRCYpaj4arvY",
      "message": "Fraud detected by Sentinel.",
      "raw_response": {
        "fraud_detected": true,
        "tracking_visitor_check": {
          "enabled": false,
          "id": null
        },
        "customer_check": {
          "enabled": true,
          "id": "JNZMJdlbMBsoz6LP6Wmb",
          "passed": true
        },
        "ip_check": {
          "enabled": false
        },
        "card_check": {
          "enabled": true,
          "id": "Q4vXqdlNX0f8vAj1AymQ",
          "passed": false,
          "reason": "Tracking visitor rejected for IP lookup parameters."
        }
      },
      "score_threshold": 0,
      "score_threshold_bound": "upper",
      "step": 1
    },
    "fraud_score": 1,
    "is_sentinel": true,
    "message": "Fraud detected by Sentinel. Not continuing payment."
  },
  "metadata": [
    {
      "name": "coupon_code",
      "value": "10percent",
      "entry_date": "2023-03-25"
    },
    {
      "name": "landing_page",
      "value": "v1",
      "entry_date": "2023-03-25"
    },
    {
      "name": "revcent_track_id",
      "value": "nbZqGvSpZdpP6692aLlk",
      "entry_date": "2023-03-25"
    }
  ],
  "sale": {
    "amount_captured": 0,
    "amount_discounted": 0,
    "amount_fees": 0,
    "amount_gross": 0,
    "amount_net": 0,
    "amount_original_total": 128.66,
    "amount_refunded": 0,
    "amount_remaining": 0,
    "amount_settled": 0,
    "amount_to_salvage": 0,
    "amount_total": 128.66,
    "amount_void": 0,
    "api_calls": [
      "Bvq8NdLMG0sMEB8mB0Xp"
    ],
    "campaign_id": "X849YQm7BEf0ZQd7Ol1K",
    "campaign_name": "Facebook Campaign",
    "cancelled": true,
    "created_date_unix": 1679714586,
    "fraud_detection_requests": [
      "8r0oE1lYoRCYpaj4arvY"
    ],
    "fraud_detections": [
      "wLvowgwjJZUZaZg9znVJ"
    ],
    "has_fraud_alert": false,
    "id": "0pO0rYqg0RCk6jMwjogG",
    "internal_id": "",
    "iso_currency": "USD",
    "live_mode": false,
    "notes": [],
    "payment_type": {
      "id": "KnQ0KlNE6kf5mobyV0pN",
      "name": "Credit Card"
    },
    "products_detailed": [
      {
        "id": "qZd0dL5WL4fEGJKK824m",
        "price": 120.24,
        "quantity": 1,
        "name": "Laptop X400",
        "total_amount": 120.24,
        "discount_amount": 0,
        "is_subscription": false,
        "is_trial": false,
        "internal_id": "laptop_x400",
        "sku": "laptop_x400_sku",
        "url": "",
        "images": [],
        "description": ""
      }
    ],
    "ship_to": {
      "first_name": "George",
      "last_name": "Washington",
      "address_line_1": "1600 Pennsylvania Ave",
      "address_line_2": "",
      "city": "Washington",
      "state": "DC",
      "zip": "20500",
      "country": "USA",
      "company": "",
      "email": "george@gmail.com",
      "phone": "1234567890"
    },
    "status": "Fraud Detected",
    "third_party_shop": null,
    "unique_request_id": "8a1a33d8-5c43-4fe9-8384-55eb14af517b",
    "updated_date_unix": 1679714588
  },
  "sentinel_details": {
    "outcome": "Sentinel detected fraud.",
    "reason": "Tracking visitor rejected for IP lookup parameters.",
    "is_third_party": false,
    "third_party": null,
    "third_party_integration": null,
    "raw_response": ""
  },
  "tracking_visitor": {
    "id": "nbpP66ZqGvSpZd92aLlk",
    "ip_address": "123.456.789.0",
    "user_agent": "Chrome/106.0.5249.126 Mobile Safari/537.36",
    "tracking_domain": {
      "id": "zGX7z0ggKKFAWg5XXmXa",
      "name": "mysite.com"
    }
  }
}

Shipping

The JSON below is the data the handlebars compiler will receive for a subscription related trigger.

Triggers Applicable:

  • Shipping Item Created
  • Shipping Item Shipped
  • Shipping Item Delivered
  • Shipping Item Voided

Handlebars Examples

{{amount_gross}} Will insert the raw amount_gross value into the email template, i.e. 12

{{formatCurrency amount_gross}} Will insert the formatted amount_gross value in the related currency, i.e. $12.00

{{customer.first_name}} Will insert the customers’ first name into the email template, i.e. George

javascript
{
    "amount_captured": 12,
    "amount_discounted": 0,
    "amount_fees": 0.26,
    "amount_gross": 12,
    "amount_net": 11.74,
    "amount_original_total": 12,
    "amount_refunded": 0,
    "amount_remaining": 0,
    "amount_settled": 0,
    "amount_to_salvage": 0,
    "amount_total": 12,
    "amount_void": 0,
    "api_calls": [
      "RJYjRwG8YoIdyXP16MVQ"
    ],
    "campaign_id": "mJ1zZoOobEuP8pnWKXd1",
    "campaign_name": "Adwords Campaign",
    "chargebacks": [],
    "check_directs": [],
    "complete": false,
    "cost": 0,
    "created_date_unix": 1653658961,
    "customer": {
      "address_line_1": "1600 Pennsylvania Ave",
      "address_line_2": "",
      "blocked": false,
      "city": "Washington",
      "company": "",
      "country": "USA",
      "email": "george@gmail.com",
      "enabled": true,
      "first_name": "George",
      "full_address": "1600 Pennsylvania Avenue NW, Washington, DC 20500, USA",
      "geocode_success": true,
      "google_place_id": "ChIJGVtI4by3t4kRr51d_Qm_x58",
      "id": "Q4nGRNpLgpS92QqGLwlX",
      "internal_id": "",
      "last_name": "Washington",
      "lat": "38.8976633",
      "lon": "-77.0365739",
      "metadata": [
        {
          "name": "landing_page",
          "value": "v1",
          "entry_date": "2022-05-27"
        }
      ],
      "phone": "1234567890",
      "state": "DC",
      "state_long": "DC",
      "status": "Enabled",
      "zip": "20500"
    },
    "customer_notification": {
      "customer": {
        "notified_shipped": false,
        "notified_delivered": false
      }
    },
    "description": "",
    "discounts": [],
    "fraud_detection_requests": [],
    "fraud_detections": [],
    "fulfillment_account": {
      "id": "j0o25b2YJRFdJb8EEXE1",
      "name": "ShipWorks",
      "fulfillment_center": {
        "id": "EM0dr7aOjzt7pqr8NqMr",
        "name": "ShipWorks",
        "integration_type": "endpoint",
        "fulfillment_account_is_api": false
      }
    },
    "fulfillment_account_is_api": false,
    "fulfillment_account_notified": false,
    "fulfillment_account_notified_date": null,
    "fulfillment_packages": [],
    "has_merged": false,
    "has_merged_with": [],
    "has_paypal_dispute": false,
    "id": "d98k5JQ4QAslpaQzREvr",
    "invoices": [],
    "is_delivered": false,
    "is_free": false,
    "is_merged": false,
    "is_merged_with": null,
    "is_received": false,
    "is_shipped": false,
    "iso_currency": "USD",
    "license_keys": [],
    "live_mode": false,
    "metadata": [
      {
        "name": "landing_page",
        "value": "v1",
        "entry_date": "2022-05-27"
      }
    ],
    "name": "ups ups_ground",
    "notes": [],
    "offline_payments": [],
    "payment_type": {
      "id": "KnQ0KlNE6kf5mobyV0pN",
      "name": "Credit Card"
    },
    "paypal_disputes": [],
    "paypal_transactions": [],
    "pending_refunds": [],
    "product_sales": [
      "1rYoljEZEOFJXE1r6Gkg",
      "0pnQyPVaVMFnVvapmKoP",
      "ZV1WRXQkQ2h5B7jKN2pJ"
    ],
    "products_detailed": [
      {
        "id": "k6EXjKzd7PHOpgvdYjXG",
        "price": 89.99,
        "quantity": 1,
        "name": "USB HDD",
        "total_amount": 89.99,
        "discount_amount": 3.75,
        "is_subscription": false,
        "is_trial": false,
        "internal_id": "usb_hdd",
        "sku": "usb_hdd_sku",
        "url": "https://www.google.com",
        "images": [
          {
            "id": "2r14zlG0mjF5zbQ24XAl",
            "featured": true,
            "file_name": "2r14zlG0mjF5zbQ24XAl",
            "file_ext": "jpg",
            "image_width": 612,
            "image_height": 612,
            "mimetype": "image/jpeg",
            "base_url": "https://productimg.revcent.com",
            "full_url": "https://productimg.revcent.com/2r14zlG0mjF5zbQ24XAl.jpg",
            "compressed_extensions": [
              "_resize_150",
              "_resize_600",
              "_resize_300"
            ]
          }
        ],
        "description": "Great USB for data storage."
      }
    ],
    "provider": "usps",
    "provider_delivered_date_unix": null,
    "provider_method": "priority_mail",
    "provider_received_date_unix": null,
    "provider_tracking": "4095511206218844523600",
    "provider_tracking_url": "https://tools.usps.com/go/TrackConfirmAction?tLabels=4095511206218844523600",
    "provider_update_error": false,
    "provider_update_last_unix": null,
    "provider_update_response": null,
    "quota_accounts": [],
    "sale": {
       "id": "d98k5JErXbslpaQzREq8"
     },
    "sale_initial": true,
    "sales": [],
    "salvage_transactions": [],
    "send_notification": true,
    "ship_date_unix": null,
    "ship_to": {
      "first_name": "George",
      "last_name": "Washington",
      "address_line_1": "1600 Pennsylvania Ave",
      "address_line_2": "",
      "city": "Washington",
      "state": "DC",
      "zip": "20500",
      "country": "USA",
      "company": "",
      "email": "george@gmail.com",
      "phone": "1234567890",
      "metadata": [],
      "notes": []
    },
    "shipping_profile": null,
    "shipping_status": "Not Shipped",
    "smtp_messages": [],
    "status": "Fully Captured",
    "subscription_renewals": [],
    "subscriptions": [],
    "tax": [],
    "tax_rate": 0,
    "third_party_shop": null,
    "transactions": [
      "d98k5JErXbslpaQzREq8"
    ],
    "trials": [],
    "updated_date_unix": 1653658961,
    "weight": 0
  }

Subscription

The JSON below is the data the handlebars compiler will receive for a subscription related trigger.

Triggers Applicable:

  • Subscription Renewal Upcoming

Handlebars Examples

{{amount}} Will insert the raw amount value into the email template, i.e. 5.99

{{formatCurrency amount}} Will insert the formatted amount value in the related currency, i.e. $5.99

{{customer.first_name}} Will insert the customers’ first name into the email template, i.e. George

javascript
{
  "amount": 5.99,
  "api_calls": [
    "nbOKqrgz9gFvV1WwMG6M"
  ],
  "billing": {
    "next_renewal_date": "2023-04-06T15:38:27+00:00",
    "next_renewal_date_unix": 1680795507,
    "last_renewal_amount": 29.99,
    "last_renewal_date_unix": 1673019506,
    "last_renewal_id": "y24koyoq10tE9OJJMQqk",
    "last_renewal_date": "2023-01-06T15:38:26+00:00"
  },
  "campaign_id": "mJ1zZoOobEuP8pnWKXd1",
  "campaign_name": "Adwords Campaign",
  "chargebacks": [],
  "check_directs": [],
  "coupons": [
    "VPmmrpbVl7cQ9JaXEanl"
  ],
  "created_date_unix": 1653658543,
  "customer": {
    "address_line_1": "1600 Pennsylvania Ave",
    "address_line_2": "",
    "blocked": false,
    "city": "Washington",
    "company": "",
    "country": "USA",
    "email": "george@gmail.com",
    "enabled": true,
    "first_name": "George",
    "full_address": "",
    "geocode_success": false,
    "google_place_id": "",
    "id": "Q4nGRNpLgpS92QqGLwlX",
    "internal_id": "",
    "last_name": "Washington",
    "lat": "0",
    "lon": "0",
    "metadata": [
      {
        "name": "landing_page",
        "value": "v1",
        "entry_date": "2022-05-27"
      }
    ],
    "phone": "1234567890",
    "state": "DC",
    "state_long": "DC",
    "status": "Enabled",
    "zip": "20500"
  },
  "discounts": [
    "2rW4yQqyr9Hwd8b7BYLd"
  ],
  "expired_date": null,
  "expired_date_unix": null,
  "fraud_detection_requests": [],
  "fraud_detections": [],
  "future_renewal_dates": [],
  "has_paypal_dispute": false,
  "has_replacement": false,
  "id": "X8JoRPvR8VSoBjyEq8gn",
  "invoices": [],
  "is_active": false,
  "is_cancelled": false,
  "is_expired": false,
  "is_occurrence_limit": false,
  "is_overdue": false,
  "is_replacement": false,
  "is_suspended": false,
  "iso_currency": "USD",
  "license_keys": [],
  "live_mode": false,
  "metadata": [
    {
      "name": "landing_page",
      "value": "v1",
      "entry_date": "2022-05-27"
    }
  ],
  "notes": [],
  "num_overdue": 0,
  "offline_payments": [],
  "payment_type": {
    "id": "KnQ0KlNE6kf5mobyV0pN",
    "name": "Credit Card"
  },
  "paypal_disputes": [],
  "paypal_transactions": [],
  "product": {
    "id": "0pBLXVZW08SNw0XOKZ7X",
    "internal_id": "robo_vac",
    "list_price": 4.99,
    "name": "Robo Vac",
    "price": 129.99,
    "quantity": 1,
    "sku": "robo_vac_sku",
    "is_shippable": true
  },
  "product_sales": [
    "mJjWqrwqJaHqrYyw9m4l"
  ],
  "products_detailed": [
    {
      "id": "k6EXjKzd7PHOpgvdYjXG",
      "price": 89.99,
      "quantity": 1,
      "name": "USB HDD",
      "total_amount": 89.99,
      "discount_amount": 3.75,
      "is_subscription": false,
      "is_trial": false,
      "internal_id": "usb_hdd",
      "sku": "usb_hdd_sku",
      "url": "https://www.google.com",
      "images": [
        {
          "id": "2r14zlG0mjF5zbQ24XAl",
          "featured": true,
          "file_name": "2r14zlG0mjF5zbQ24XAl",
          "file_ext": "jpg",
          "image_width": 612,
          "image_height": 612,
          "mimetype": "image/jpeg",
          "base_url": "https://productimg.revcent.com",
          "full_url": "https://productimg.revcent.com/2r14zlG0mjF5zbQ24XAl.jpg",
          "compressed_extensions": [
            "_resize_150",
            "_resize_600",
            "_resize_300"
          ]
        }
      ],
      "description": "Great USB for data storage."
    }
  ],
  "quota_accounts": [],
  "sales": [
    "gYEWq5gAvgI72EqZp58R"
  ],
  "salvage_transactions": [],
  "ship_to": {
    "first_name": "George",
    "last_name": "Washington",
    "address_line_1": "1600 Pennsylvania Ave",
    "address_line_2": "",
    "city": "Washington",
    "state": "DC",
    "zip": "20500",
    "country": "USA",
    "company": "",
    "email": "george@gmail.com",
    "phone": "1234567890",
    "metadata": [],
    "notes": []
  },
  "shipping": [],
  "smtp_messages": [],
  "status": "Trial",
  "subscription_profile": {
    "id": "LYE26aKJpPi5VbJmlp2A",
    "name": "Monthly",
    "description": "",
    "occurrences": "specific",
    "occurrences_value": 2,
    "subscription_specific": false,
    "subscription_id": null,
    "frequency_unit": {
      "unit_value": 3,
      "unit": "months"
    },
    "frequency_calendar": null,
    "frequency_fiscal": null,
    "frequency": "unit"
  },
  "subscription_renewals": [],
  "subscription_replaced": null,
  "subscription_replaced_with": null,
  "subscription_start_date_unix": 1653744943,
  "tax": [],
  "transactions": [],
  "trial": {
    "id": "nbOKqrlqbESvV1WwMGaO",
    "start_date": "2022-05-27T13:35:43+00:00",
    "end_date": "2022-05-28T13:35:43+00:00",
    "start_date_unix": 1653658543,
    "end_date_unix": 1653744943,
    "active": true
  },
  "trials": [
    "nbOKqrlqbESvV1WwMGaO"
  ],
  "updated_date_unix": 1653658543
}

Subscription Renewal

The JSON below is the data the handlebars compiler will receive for a subscription renewal related trigger.

Triggers Applicable:

  • Subscription Renewal Success
  • Subscription Renewal Fail

Handlebars Examples

{{amount}} Will insert the raw amount value into the email template, i.e. 5.99

{{formatCurrency amount}} Will insert the formatted amount value in the related currency, i.e. $5.99

{{customer.first_name}} Will insert the customers’ first name into the email template, i.e. George

javascript
{
  "amount": 5.99,
  "amount_captured": 5.99,
  "amount_discounted": 0,
  "amount_fees": 0.13,
  "amount_gross": 5.99,
  "amount_net": 5.86,
  "amount_original_total": 5.99,
  "amount_refunded": 0,
  "amount_remaining": 0,
  "amount_settled": 0,
  "amount_to_salvage": 0,
  "amount_total": 5.99,
  "amount_void": 0,
  "api_calls": [
    "8rbd4GvjnPflNXmQRk7M"
  ],
  "campaign_id": "mJ1zZoOobEuP8pnWKXd1",
  "campaign_name": "Adwords Campaign",
  "chargebacks": [],
  "check_directs": [],
  "created_date_unix": 1653660709,
  "customer": {
    "address_line_1": "1600 Pennsylvania Ave",
    "address_line_2": "",
    "blocked": false,
    "city": "Washington",
    "company": "",
    "country": "USA",
    "email": "george@gmail.com",
    "enabled": true,
    "first_name": "George",
    "full_address": "1600 Pennsylvania Avenue NW, Washington, DC 20500, USA",
    "geocode_success": true,
    "google_place_id": "ChIJGVtI4by3t4kRr51d_Qm_x58",
    "id": "Q4nGRNpLgpS92QqGLwlX",
    "internal_id": "",
    "last_name": "Washington",
    "lat": "38.8976633",
    "lon": "-77.0365739",
    "metadata": [
      {
        "name": "landing_page",
        "value": "v1",
        "entry_date": "2022-05-27"
      }
    ],
    "phone": "1234567890",
    "state": "DC",
    "state_long": "DC",
    "status": "Enabled",
    "zip": "20500"
  },
  "discounts": [],
  "fraud_detection_requests": [],
  "fraud_detections": [],
  "has_paypal_dispute": false,
  "id": "d98kb6oKMqFEp9B08KJp",
  "invoices": [],
  "is_overdue": false,
  "iso_currency": "USD",
  "license_keys": [],
  "live_mode": false,
  "metadata": [
    {
      "name": "landing_page",
      "value": "v1",
      "entry_date": "2022-05-27"
    }
  ],
  "notes": [],
  "offline_payments": [],
  "payment_profile": {
    "id": "ajyXm76OpjSL4p5oO2By",
    "name": "AuthBrainStripe",
    "results": {
      "final_amount": 5.99,
      "num_declined_transactions": 0,
      "original_amount": 5.99,
      "payment_profile_id": "ajyXm76OpjSL4p5oO2By",
      "step_array": [
        {
          "step_action": "initial",
          "step_amount": 5.99,
          "step_card": "rmnkqrJlWJImQ7g2NbJ9",
          "step_cascade_result": null,
          "step_gateway": "Authorize.net",
          "step_gateway_id": "LYE26MW8Rlh5VbJmlp2l",
          "step_modifier": "",
          "step_num": 1,
          "step_result": "Approved",
          "step_setting": "initial",
          "step_source": "gateway",
          "step_transaction": "JNGnYq8VjMulg97mrbJM",
          "swap_card": false
        }
      ],
      "successful_gateway": "Authorize.net",
      "successful_step_num": 1
    }
  },
  "payment_type": {
    "id": "KnQ0KlNE6kf5mobyV0pN",
    "name": "Credit Card"
  },
  "paypal_disputes": [],
  "paypal_transactions": [],
  "pending_refunds": [],
  "product": {
    "id": "0pBLXVZW08SNw0XOKZ7X",
    "internal_id": "robo_vac",
    "list_price": 4.99,
    "name": "Robo Vac",
    "price": 129.99,
    "quantity": 1,
    "sku": "robo_vac_sku"
  },
  "product_sales": [],
  "products_detailed": [
    {
      "id": "k6EXjKzd7PHOpgvdYjXG",
      "price": 129.99,
      "quantity": 1,
      "name": "USB HDD",
      "total_amount": 129.99,
      "internal_id": "robo_vac",
      "sku": "robo_vac_sku",
      "url": "https://www.google.com",
      "images": [
        {
          "id": "2r14zlG0mjF5zbQ24XAl",
          "featured": true,
          "file_name": "2r14zlG0mjF5zbQ24XAl",
          "file_ext": "jpg",
          "image_width": 612,
          "image_height": 612,
          "mimetype": "image/jpeg",
          "base_url": "https://productimg.revcent.com",
          "full_url": "https://productimg.revcent.com/2r14zlG0mjF5zbQ24XAl.jpg",
          "compressed_extensions": [
            "_resize_150",
            "_resize_600",
            "_resize_300"
          ]
        }
      ],
      "description": "Great USB for data storage."
    }
  ],
  "quota_accounts": [],
  "sales": [],
  "salvage_transactions": [],
  "ship_to": {
    "first_name": "George",
    "last_name": "Washington",
    "address_line_1": "1600 Pennsylvania Ave",
    "address_line_2": "",
    "city": "Washington",
    "state": "DC",
    "zip": "20500",
    "country": "USA",
    "company": "",
    "email": "george@gmail.com",
    "phone": "1234567890"
  },
  "shipping": [
    "RJYjbpMOPAfMyjK82RzR"
  ],
  "shipping_amount": 5.24,
  "smtp_messages": [],
  "status": "Fully Captured",
  "subscription_id": "ALZBomzd4zszqKMWGjAk",
  "subscription_profile": {
    "id": "LYE26aKJpPi5VbJmlp2A",
    "name": "Monthly",
    "description": "",
    "occurrences": "specific",
    "occurrences_value": 2,
    "subscription_specific": false,
    "subscription_id": null,
    "frequency_unit": {
      "unit_value": 3,
      "unit": "months"
    },
    "frequency_calendar": null,
    "frequency_fiscal": null,
    "frequency": "unit"
  },
  "subscriptions": [],
  "tax": [],
  "tax_amount": 1.23,
  "third_party_shop": null,
  "transactions": [
    "JNGnYq8VjMulg97mrbJM"
  ],
  "trials": [],
  "updated_date_unix": 1653660710
}

Trial

The JSON below is the data the handlebars compiler will receive for a trial related trigger.

Triggers Applicable:

  • Trial Expire Success
  • Trial Expire Fail
  • Trial Expire Upcoming

Handlebars Examples

{{amount}} Will insert the raw amount value into the email template, i.e. 129.99

{{formatCurrency amount}} Will insert the formatted amount value in the related currency, i.e. $129.99

{{customer.first_name}} Will insert the customers’ first name into the email template, i.e. George

javascript
{
  "active": true,
  "amount": 129.99,
  "amount_captured": 0,
  "amount_discounted": 0,
  "amount_fees": 0,
  "amount_gross": 0,
  "amount_net": 0,
  "amount_original_total": 129.99,
  "amount_refunded": 0,
  "amount_remaining": 129.99,
  "amount_settled": 0,
  "amount_to_salvage": 0,
  "amount_total": 129.99,
  "amount_void": 0,
  "api_calls": [
    "qZNyqnd14LSX6nOy7GMW"
  ],
  "campaign_id": "JN0Zpj7RGJiwKqAnRoy6",
  "campaign_name": "Twitter Campaign",
  "chargebacks": [],
  "check_directs": [],
  "coupons": [],
  "created_date_unix": 1653659468,
  "customer": {
    "address_line_1": "1600 Pennsylvania Ave",
    "address_line_2": "",
    "blocked": false,
    "city": "Washington",
    "company": "",
    "country": "USA",
    "email": "george@gmail.com",
    "enabled": true,
    "first_name": "George",
    "full_address": "1600 Pennsylvania Avenue NW, Washington, DC 20500, USA",
    "geocode_success": true,
    "google_place_id": "ChIJGVtI4by3t4kRr51d_Qm_x58",
    "id": "Q4nGRNpLgpS92QqGLwlX",
    "internal_id": "",
    "last_name": "Washington",
    "lat": "38.8976633",
    "lon": "-77.0365739",
    "metadata": [
      {
        "name": "landing_page",
        "value": "v1",
        "entry_date": "2022-05-27"
      }
    ],
    "phone": "1234567890",
    "state": "DC",
    "state_long": "DC",
    "status": "Enabled",
    "zip": "20500"
  },
  "days_remaining": 1,
  "days_total": 1,
  "discounts": [],
  "end_date_unix": 1653745868,
  "expired_date": "2022-05-27T13:51:38+00:00",
  "expired_date_unix": 1653659498,
  "fraud_detection_requests": [],
  "fraud_detections": [],
  "has_paypal_dispute": false,
  "id": "gYEWqLlaWlU7NWk6q5Xl",
  "invoices": [],
  "iso_currency": "USD",
  "license_keys": [],
  "live_mode": false,
  "metadata": [
    {
      "name": "landing_page",
      "value": "v1",
      "entry_date": "2022-05-27"
    }
  ],
  "notes": [],
  "offline_payments": [],
  "payment_type": {
    "id": "KnQ0KlNE6kf5mobyV0pN",
    "name": "Credit Card"
  },
  "paypal_disputes": [],
  "paypal_transactions": [],
  "pending_refunds": [],
  "product": {
    "id": "0pBLXVZW08SNw0XOKZ7X",
    "product_id": "0pBLXVZW08SNw0XOKZ7X",
    "internal_id": "robo_vac",
    "sku": "robo_vac_sku",
    "name": "Robo Vac",
    "quantity": 1,
    "price": 129.99,
    "list_price": 4.99
  },
  "product_sales": [
    "pg9lqNvOlvF4Q0VMZPW2"
  ],
  "products_detailed": [
    {
      "id": "k6EXjKzd7PHOpgvdYjXG",
      "price": 129.99,
      "quantity": 1,
      "name": "USB HDD",
      "total_amount": 129.99,
      "internal_id": "robo_vac",
      "sku": "robo_vac_sku",
      "url": "https://www.google.com",
      "images": [
        {
          "id": "2r14zlG0mjF5zbQ24XAl",
          "featured": true,
          "file_name": "2r14zlG0mjF5zbQ24XAl",
          "file_ext": "jpg",
          "image_width": 612,
          "image_height": 612,
          "mimetype": "image/jpeg",
          "base_url": "https://productimg.revcent.com",
          "full_url": "https://productimg.revcent.com/2r14zlG0mjF5zbQ24XAl.jpg",
          "compressed_extensions": [
            "_resize_150",
            "_resize_600",
            "_resize_300"
          ]
        }
      ],
      "description": "Great USB for data storage."
    }
  ],
  "quota_accounts": [],
  "request_end": null,
  "sales": [
    "KnMaR2wlX8tkWNRa8XM6"
  ],
  "salvage_transactions": [],
  "shipping": [],
  "shipping_amount": 5.24,
  "smtp_messages": [],
  "start_date_unix": 1653659468,
  "status": "Active",
  "subscription_renewals": [],
  "subscriptions": [
    "y2Jdwba7daSPBZMvQVdY"
  ],
  "tax": [],
  "tax_amount": 1.23,
  "third_party_shop": null,
  "transactions": [],
  "updated_date_unix": 1653659468
}