In this article:
Create or Edit Email Templates
Navigate to:
Setup > Templates > Email Templates
Select New Email Template or Edit next to an existing one.
Edit the Name, Subject, Recipient, & Body of the email by entering the desired text.
💡 To copy an internal recipient on every email sent with this template, add their address in the Recipient field. If a dynamic recipient code is already there, add the address next to it, separated by a comma. This is set per template, so repeat it on each template where you want it.
Optional: Edit Order Priority and Type. These options are only available on templates you create. Built in templates can't have their Order Priority or Type changed.
Order Priority - This determines what order this template will be sorted in when selecting an email template.
Type:
This determines Automation category type. Example: Selecting 'Proposal' will allow this email template to be used under Proposal-related Automations.
This also triggers the "Sent" Proposal Status. The Email templates must be "Proposal" type for Status to show as "Sent".
Preview any changes made to your email template by selecting a visit from the dropdown to the right of the edit form. To refresh a rendered email, select the Refresh button at the top-right of the rendered email to show your most recent edits.
Once all desired updates are made, select Save Email Template.
Add Images/Logo
To add an image or logo to your email:
Select the picture icon on the Email Template page (shown below)
Once selected, you will be prompted to fill out the Insert/Edit Image Source field. (All other fields are optional):
⚠️ Source note: The image must be publicly available online. A file saved on your computer or a restricted file link won't work. Navigate to your website, right click on the logo you wish to apply, select Copy Image Address, and paste this address into the Source field.
When finished pasting the Source, click Ok
To save, click Save Email Template
Add Hyperlinks
Navigate to:
Setup > Templates > Email Templates
Select New Email Template or Edit next to an existing one
Select Insert/Edit Link
Paste desired URL and Insert Text to Display
Add SingleOps Link
The SingleOps Links allow you to add a hyperlink to SingleOps pages such as the Proposal or Invoice preview.
Navigate to:
Setup > Templates > Email Templates
Select New Email Template or Edit next to an existing one
Select Insert/Edit Link
Paste desired Link Liquid Alias into the URL field, and Insert Text to Display
Add SingleOps Button
Upgrade the look and feel of your SingleOps links by adding a button using the steps below.
Navigate to:
Setup > Templates > Email Templates
Select New Email Template or Edit next to an existing one
In the new window, copy URL and Text to Display from table below to add a button.
Button Display | Text To Display |
{{ visit.public_proposal_button }} | |
{{ visit.public_invoice_button }} | |
{{ visit.public_prepay_button }} |
Dynamic Fields
What are Dynamic Fields?
Dynamic fields allow you to pull through specific job information to personalize your emails. You can use data tags and liquid markup to pull through dynamic information such as client name or visit date.
For example, if you wanted the email template to read 'Hello Leslie,' for your client Leslie. You would include:
Hello :object.client.first_name:
Add Dynamic Fields to an Email Template
Navigate to:
Setup > Templates > Email Templates
Select Edit next to an existing Email Template
In the Subject line, enter a : and your search term.
Select desired option from dropdown
Leave in subject line, or copy/paste into body.
💡The list of Liquid Aliases in SingleOps is constantly growing. Use the tables below to find commonly used dynamic fields. You can copy the Liquid Alias right into your SingleOps Email Template.
Liquid Alias Codes
Client/Contact Name & Email
Liquid Alias | Description |
:visit_all_emails: | Client's and Contact's Email. *Note: For a Contact's email to auto-populate in the "To" field, the Contact must be added to the Job. |
:visit_primary_emails: | Client's Email |
:visit_all_names: | Client's and Contact's Name. *Note: For a Contact's email to auto populate in the "To" field, the Contact must be added to the Job. |
:visit_primary_names: | Client's Name |
{{ visit.client.first_name }} | Client's First Name (Only) |
Current User Data
Liquid Alias | Description |
:current_user_name: | Current User's Full Name |
:current_user_first_name: | Current User's First Name |
:current_user_email: | Current User's Email |
:current_user_office: | Current User's Office Phone Number |
:current_user_mobile: | Current User's Mobile Phone Number |
:current_user_custom_field_displays_title: | User-Level Custom Input |
Emails
Liquid Alias | Description |
:all_emails: | Email addresses for all Clients and Contacts associated with the visit/job/invoice. *Note: The contact must be added to the Job for this liquid code to auto-populate both the Client and Contact email address in the "To" field. |
:primary_emails: | Email addresses for all Clients associated with visit/job/invoice (contacts email if no client) |
:client_email: | Email address associated with visit/job/invoice (usually client) or client email address |
Invoice Data
Liquid Alias | Description |
:invoice_balance: | Remaining Invoice Balance |
${{ invoice.balance | money }} | Invoice Balance - full balance |
${{invoice.balance | times: 0.25 | money}} | Invoice Balance - partial |
:invoice_total: | Invoice Total with Tax included |
{{ visit.job.client.invoices_balance }} | Total balance due including unpaid amount from previous invoices |
Links
Liquid Alias | Description |
:visit_online_proposal_link: | Customer can view, accept, and make deposit payments for proposal |
:visit_proposal_pdf_url: | Customer can view proposal in pdf form |
:visit_work_order_pdf_url: | Customer can view work order in pdf form |
:visit_online_invoice_link: | Customer can view portal and pay invoices |
:visit_invoice_pdf_url: | Customer can view invoice pdf |
Location
⚠️ Location aliases only fill in when a location address exists on the Lead or Job. If an address alias shows up blank, check the location on the record.
Liquid Alias | Description |
:job_location_street_address: | Job Location's Street and Number |
:job_location_city: | Job Location's City |
:job_location_state: | Job Location's State |
:job_location_zip: | Job Location's Zip Code |
Names
Liquid Alias | Description |
:all_names: | Names for all contacts and client associated with the object |
:primary_names: | Names for all contacts associated with the object (client email if no contacts) |
:client_name: | Client name |
Notes
Liquid Alias | Description |
:visit_client_notes: | Client notes attached on a visit level |
:job_client_notes: | Client notes attached on a job level |
:visit_crew_notes: | Crew notes attached on a visit level |
:job_crew_notes: | Crew notes attached on a job level |
:visit_internal_notes: | Internal notes attached on a visit level |
:job_internal_notes: | Internal notes attached on a job level |
Phone Numbers
Liquid Alias | Description |
:client_mobile: | Client's mobile number |
:account_doc_phone: | Phone number associated with account |
Reference
Liquid Alias | Description |
:job_reference_number: | Job reference number |
:visit_reference_number: | Visit reference number |
:reference_number: | Reference number |
:job_name: | Job name |
:visit_name: | Visit name |
:account_inc_name: | Account inc name |
:visit_job_custom_field_displays_pets: | Job-Level Custom Input |
{{job.operation.name}} | Job Level Operation |
Sales Rep Data
Liquid Alias | Description |
:sales_rep_name: | Assigned Sales Rep's Full Name |
:sales_rep_first_name: | Assigned Sales Rep's First Name |
:sales_rep_email: | Assigned Sales Rep's Email |
:sales_rep_office: | Assigned Sales Rep's Office Phone Number |
:sales_rep_mobile: | Assigned Sales Rep's Mobile Phone Number |
Task
Liquid Alias | Description |
:task_start: | If referencing a specific task object, this will render the task start date and time, if referencing a job with tasks, it will render the first onsite tasks start date and time |
:task_start_date: | If referencing a specific task object, this will render the task start date, if referencing a job with tasks, it will render the first onsite tasks start date |
:task_start_time: | If referencing a specific task object, this will render the task start time, if referencing a job with tasks, it will render the first onsite tasks start time |
Visit Information
⚠️ Visit aliases only fill in when the preview record has that visit data. For example, visit date and time aliases need a scheduled visit with a date and time. All day visits may show a time such as 12:00 AM.
Liquid Alias | Description |
:visit_start_date: | Short Visit Date- (MM/DD/YYYY) |
{{ visit.start | date: "%A, %B %e, %Y" }} | Long Visit Date- Day, Month DD, YYYY |
:visit_start_time: | Visit Time (12 hour)- 3:00PM |
{{visit.location.address }}, {{ visit.location.city }} | Visit Location- street address, city |
Weather Information
Liquid Alias | Description | Display Example |
{{ visit.wind_speed }} | Wind Speed | Wind Speed: 17.77 |
{{ visit.wind_direction_compass }} | Wind Direction | Wind Direction: S |
{{ visit.wind_gust }} | Wind Gust | Wind Gust: 30.34 |
{{ visit.temperature }} | Temperature | Temperature: 79.14 |
{{ visit.weather_updated }} | Recorded as Y/M/D H:M:S | Recorded at 2023-03-07 11:10:07 -0500 |
Building & Using Email & Text Templates Video
*Note: Some of the content in this video may reflect a previous version of SingleOps
