Preview Emails with Test Data
Last updated on Sep 19, 2026
The email editor renders your templates against a set of sample subscriber data, so you can see exactly how a message resolves before it reaches anyone real. You can edit that sample data to match the scenarios you actually care about, and send yourself a preview of the result.
What the editor gives you
Four capabilities sit behind the preview pane.
- A live preview of any subscriber email.
- Editable sample data behind that preview.
- The ability to send a preview to the email address on file for your account.
- A WYSIWYG editor for changing the email as you go.
Preview a subscriber email
Opening the editor for any of your subscriber emails gives you a starting template. Use it as a base and customize it to carry whatever your subscribers need to know.
The screen has two panes: the email body editor on the left, and the preview on the right.
An example edit
The example below adds a mailing address and a link to a fictitious account update URL, using variables from the Customize Email Templates help article.

We see that your current mailing address is:<br>
{{customer.address}}<br>
{{customer.city}}, {{customer.state}} {{customer.zip}}Important: A plain
<br>is fine here, because template bodies aren't validated as XML. In a layout it isn't, and a bare<br>will be rejected. See the Build HTML Email Layouts help article.
Change the test data
Advanced Billing pre-populates the test data with a full set of sample values. When those values don't fit the scenario you're testing, edit them.
WARNING: Once you change a test data value, there's no way to restore the original. Note the default before you overwrite it if you might want it back.
To change a test data value
- Select Test Data in the upper right of the editor window.
- Change the field contents to your new value.
- Select Save, then Back.
In the example below, the email field changes from sue.smith@example.com to joe.smith@example.com.
The preview updates to match.

Send yourself a preview
Once the email looks right, send a copy to the address on file for your user. Select Send Preview.

Test Liquid conditions
Because the sample data is editable, you can use it to exercise Liquid conditionals rather than just check wording. Set a value that makes a branch true, preview it, then set one that makes it false. See the Customize Emails with Liquid Examples help article for the conditionals worth testing this way.
Things to know
Keep the following in mind while testing:
- Test data values are used only for previewing. They're never used in a real email.
- You can produce scenarios in test data that Advanced Billing would never generate in practice, so a preview that renders isn't proof the same combination can occur.
- Not every editable field appears in email templates. Some exist only to populate other fields. See the Customize Email Templates help article for the variables you can actually use.
Test data reference
Every value you can configure in the email editor, with its default.
| Email field | Default value | Description |
| customer.address | 123 Market St | Customer street address |
| customer.address_2 | Unit 4 | Customer street address, second line |
| customer.billing_portal? | No | Is the billing portal enabled for the subscriber? yes/no |
| customer.city | Boston | Customer city |
| customer.country | US | Customer country |
| customer.created_at | Current day | Timestamp of when the customer was created |
| customer.email | sue.smith@example.com | Email address of customer |
| customer.first_name | Sue | Customer first name |
| customer.id | 1 | ID of the customer |
| customer.last_name | Smith | Customer last name |
| customer.organization | Initrode | Organization of the customer |
| customer.phone | 1-555-555-1234 | Phone number of the customer |
| customer.reference | Sue 222 | Reference value for the customer |
| customer.state | MA | Customer state |
| customer.zip | 02116 | Customer zip |
| billing_portal.invite_url | http://billing-portal.example.com/management/123132132 | The URL inviting this customer into the Billing Portal |
| billing_portal.seller_name | Acme, Inc. | Your seller name, as shown in the Billing Portal invitation |
| direct_debit.creditor_name | Creditor Inc. | Creditor’s name |
| direct_debit.scheme_identifier_reference | 1234567 | Scheme identifier reference |
| direct_debit.scheme_identifier_name | GoCardless | Scheme identifier name |
| direct_debit.bank_name | ABC Bank | Bank name |
| direct_debit.masked_bank_branch_code | XXXX9 | Masked bank branch code |
| direct_debit.mandate_url | http://acme-inc.test-chargifypay.com/go_cardless_mandate_pdfs?links%5Bmandate%5D=1234567 | URL to the GoCardless mandate in the PDF form |
| payment_profile.bank_account_holder_type | personal | Type of bank account. Personal or business. |
| payment_profile.bank_account_type | checking | Type of bank account. Checking or savings. |
| payment_profile.bank_name | Chase | Name of bank where ACH information originates |
| payment_profile.billing_address | 123 Market St | Billing street address |
| payment_profile.billing_address_2 | Unit 4 | Billing street address, line 2 |
| payment_profile.billing_city | Boston | Billing city |
| payment_profile.billing_country | US | Billing country |
| payment_profile.billing_state | MA | Billing state |
| payment_profile.billing_zip | 02116 | Billing zip code |
| payment_profile.brand | Visa | Card type/brand |
| payment_profile.card_type | visa | Card type/brand |
| payment_profile.current_vault | stripe_connect | The vault storing the payment method |
| payment_profile.expiration_month | 02 | Card expiration month |
| payment_profile.expiration_year | 2021 | Card expiration year |
| payment_profile.first_name | Sue | Payment profile first name |
| payment_profile.gateway_handle | stripe-handle | The handle of the gateway the payment method is stored against |
| payment_profile.id | 2 | Payment profile ID |
| payment_profile.last_name | XXXXXXX1111 | Payment profile last name |
| payment_profile.masked_bank_account_number | XXXX XXXX XXXX 1 | Masked bank account number |
| payment_profile.masked_bank_routing_number | XXXX XXXX XXXX 1 | Masked bank routing number |
| payment_profile.masked_card_number | XXXX XXXX XXXX 1 | Masked card number |
| payment_profile.method_masked_number | XXXX XXXX XXXX 1 | Masked card number |
| payment_profile.method_type | card | Payment profile method |
| payment_profile.verification_url | https://123.com/verify/123/456 | URL to verify ACH account |
| payment_profile.verified? | No | Is the ACH account verified? |
| payment.amount | $10.89 | Payment amount |
| payment.amount_in_cents | 1089 | Payment amount in cents |
| payment.card_number | XXXX XXXX XXXX 1 | Card number used for current payment |
| payment.card_type | visa | Card type used for current payment |
| payment.component_proration? | No | Was the payment a component proration charge? |
| payment.gateway_transaction_id | transaction-123 | Gateway transaction ID, generated by the gateway |
| payment.memo | Payment of $10.89 | Payment memo |
| payment.success | No | Was the payment successful? |
| payment.test | No | Was the payment made when the site was in test mode? |
| product_family.name | Acme Online | Product family name |
| product.accounting_code | AC 1111 | Account code of the product |
| product.archived_at | 31 December, 1969 | Timestamp when the product was archived |
| product.archived? | No | Is the product archived? |
| product.currency | USD | The current currency of the site |
| product.description | A delightful free product | Description of the product |
| product.expiration_duration | 1 month | Product expiration duration |
| product.expires? | No | Does the product expire? |
| product.handle | free | Product API handle |
| product.id | 2 | Product ID |
| product.initial_charge | $0.00 | Initial setup charge for the current product |
| product.initial_charge_in_cents | 0 | Initial setup charge for the product in cents |
| product.initial_charge? | No | Is there an initial charge associated with the product |
| product.interval | 1 | Product renewal interval |
| product.interval_unit | month | Product renewal interval unit |
| product.name | Free | Product name |
| product.offers_trial? | Yes | Does the product offer a trial? |
| product.price | $10.99 | Current price of the product |
| product.price_in_cents | 1099 | Current price of the product in cents |
| product.qualified_name | Acme Online - Free | Qualified name of the product |
| product.recurring_duration | 1 month | Product recurring duration |
| product.request_credit_card? | Yes | Does the product purchase request a credit card? |
| product.require_credit_card? | Yes | Does the product purchase require a credit card? |
| product.trial_duration | 1 month | Duration of the trial of the product |
| product.trial_interval | 30 | Duration of the trial of the product |
| product.trial_interval_unit | day | Unit of measure for the trial period |
| product.trial_price | $2.99 | Product trial price |
| product.trial_price_in_cents | 299 | Product trial price in cents |
| product.update_return_params | return=true | The parameters string used to construct the return URL |
| product.update_return_url | https://yoursite.example.com?update=true&return=true | URL provided to the subscriber after successful update via self-service page |
| subscription.activated_at | Current day | Timestamp in which the subscription was activated at |
| subscription.agreement_terms | by accepting this you agree that Acme Inc may charge your account | Agreement terms associated with the subscription, as provided on the Public Signup Page |
| subscription.authorizer_first_name | Jane | First name of authorizing party for the ACH/bank account on file |
| subscription.authorizer_last_name | Doe | Last name of authorizing party for the ACH/bank account on file |
| subscription.balance_in_cents | 1001 | Subscription’s current balance in cents. If a subscription is canceled, the balance in cents it had when being canceled. |
| subscription.bank_account_on_file? | No | Is there a bank account / ACH information on file for the subscription currently? |
| subscription.billing_portal_management_url | http://billing-portal.example.com/management/1231321321 | Billing portal management URL |
| subscription.billing_portal? | No | Is the billing portal currently enabled for the subscriber? |
| subscription.cancel_at_end_of_period | Yes | Is the subscription configured to cancel at the end of the billing period? |
| subscription.canceled_at | Current day | Timestamp in which the subscription was canceled at |
| subscription.cancellation_message | | Cancellation message associated with the cancellation |
| subscription.card_on_file? | Yes | Is there a credit card on file for the subscription? |
| subscription.coupon_code | FREESTUFF | Current coupon code applied to the subscription |
| subscription.currency | USD | The current currency of the subscription |
| subscription.current_account_balance | $47.50 | The current account balance, formatted in the subscription's currency |
| subscription.current_billing_amount | $10.99 | Current amount due as per the “next billing amount” |
| subscription.current_billing_amount_in_cents | 1099 | Current amount due as per the “next billing amount” in cents |
| subscription.current_period_ends_at | Current day | Timestamp of when the current billing period ends at |
| subscription.current_period_starts_at | Current day | Timestamp of when the current billing period starts at |
| subscription.dunning_final_step_at | Current day | The date and time of the final step of the active dunning schedule |
| subscription.estimated_renewal_amount | $10.99 | Estimated renewal amount formatted in currency |
| subscription.estimated_renewal_amount_in_cents | 1099 | Estimated renewal amount in cents |
| subscription.expires_at | Current day | Timestamp of the subscription’s expiration |
| subscription.expires_at_end_of_period? | Yes | Does the subscription expire at the end of the current period? |
| subscription.id | 1 | ID of the subscription |
| subscription.payment_collection_method | automatic | Payment collection method of the subscription. Sites using invoice-centric billing can see automatic, remittance, or prepaid; other sites can see automatic or invoice instead. |
| subscription.payment_method_on_file? | Yes | Is there a valid payment method on file |
| subscription.reference | Custom identifier | The unique identifier used within your application for this subscription |
| subscription.referral_code | REFCODE123 | Subscription’s referral code |
| subscription.state | active | Subscriber’s current subscription state |
| subscription.subscriber_name | Sue Smith | Subscriber’s full name |
| subscription.total_revenue | $100.99 | Total revenue of the subscription, formatted in its currency |
| subscription.total_revenue_in_cents | 10099 | Total revenue of the subscription in cents |
| subscription.trial_ended_at | Current day | Timestamp when the subscription’s trial ended at in the past (if any) |
| subscription.trial_ends_at | Current day | Timestamp when the subscription’s trial ends in the future (if any) |
| subscription.trial_started_at | Current day | Timestamp when the subscription’s trial began (if any) |
| subscription.require_trial_information? | Yes | Is the Subscription currently on an Introductory Offer Trial Period? |
| subscription.introductory_offer_period_length | 1 month | Length of the Introductory Offer Trial Period |
| subscription.introductory_offer_ends_at | Current day + 1 month | Estimated day on which the Subscription will end its Introductory Offer Trial Period |
| subscription.introductory_offer_estimated_renewal_amount | $10.00 | Estimated amount of the first subsequent transaction at the end of Subscription’s Introductory Offer Trial Period |
| subscription.update_url | http://example.com/update/subscription | URL for the self-service page associated with the customer |
Related information
To edit the template you are previewing, see Customize Email Templates.
For Liquid snippets whose output is worth previewing carefully, see Customize Emails with Liquid Examples.
To see what was actually delivered once an email goes out for real, see Review Email Archives.
Still need help?
Reach out and our support team will take it from here.
