Ad Hoc Email Templates

Overview

Ad Hoc Emails allow you to send customized, pre-formatted messages to contacts while automatically pulling in details about the customer, appointments, proposals, or invoices. These templates save time, ensure consistency, and can be used in multiple workflows. You can create as many templates as you need and tailor them for communication, confirmations, marketing outreach, and more.

Ad Hoc Emails can be used in three primary ways:

  1. Send one-off emails: From a Contact or Appointment detail page, click Email, choose a template, and the message will auto-populate with customer-specific information. You can edit the email before sending it.
  2. Attach an Ad Hoc Email to a Service: For example, if you have a Sales or Estimate service that should not receive the default appointment completion email, you can create a custom Ad Hoc Email and attach it to the service via
    Control Panel > Service > Edit.
  3. Use Ad Hoc Emails in Drip Campaigns: Templates can be sent automatically through Drip Triggers or used as part of general marketing campaigns.

To access your templates, go to: Control Panel > Ad Hoc Emails.

From here, you can create new templates, edit existing ones, or duplicate templates to speed up setup.



Creating and Editing Ad Hoc Emails

Starting a New Template

The fastest way to create a new template is by duplicating an existing one.

You can also click Add to start from scratch. Choose from:

  • Pre-loaded themes
  • Existing HTML templates
  • Add a new HTML template

If you don't have an ad hoc template created yet, you can also copy the HTML from an existing Automated Email template that you like the framework of. To do this, open the email template, click the icon with the two arrows to open the code view, and copy the HTML. Open that code view in the new ad hoc template and paste it there.

Required Fields

When creating a new email, complete all fields marked with an asterisk (*), including:

  • Name – Internal name used for identification.
  • Type – Determines which Shortcodes and Drip Triggers will work. (Example: Appointment confirmations must be “Appointment” type.)
  • Subject – The customer-facing email subject line.

Important: Select the "Type" of the email template carefully. This will dictate where the template is available to use and which shortcodes it is compatible with. 

Editing Email Content

Inside the email editor, you can:

  • Add or modify text
  • Insert images or links
  • Use  Shortcodes to auto-fill customer, appointment, proposal, or invoice details
  • Switch to HTML view if you are comfortable editing code (optional)

Texting Templates

You may create a text message version of the template under the email editor.

  • If an automation trigger sends an email, you can send a coordinated text message at the same time.
  • Two-way texting must be enabled in ServiceMinder.
  • If you only want to send a text, simply leave the email body blank and use a Drip Trigger with Send Text.

Learn more about Texting Templates.


Adding Attachments

Attachments must be added as URL links, not file uploads.

  1. Upload the document to the Collateral Library (Control Panel > Collateral Library)
  2. Hover over the file and click Copy URL
  3. Paste the copied URL into the Ad Hoc Email where you want the attachment link to appear

When customers receive the email, they can click the link to open the document.

PDF versions of proposals and invoices work differently. On the proposal/invoice, click Actions > Email and choose the ad hoc email template you'd like to use. To include the PDF in the email for download, check the "Include Attachment" box.


Tips

For tips and tricks in creating your emails, check out our cheatsheet here.

  • If you'll be using your email in a campaign or on a drip trigger, or in place of automated emails for services, make sure your email type matches the type on your event.

  • For email campaigns, the contact-type email templates will be for campaigns launched on the contacts grid. For a proposal campaign, use a proposal-type template.

  • For a proposal-type drip campaign, you can send proposal-type emails, and will need to use a proposal type trigger action.


Public Print URLs

Sometimes you need to include a direct link to a printable version of a proposal, ad hoc template, or invoice—without requiring the user to log in. This is great for sharing documents via email or including them in automated notifications.

Here’s how to do it:

For Proposals

Use the following format to create a public link to a printable version of a proposal:

https://serviceminder.io/service/proposal/pdf/{proposal.hash_key}

Just replace {proposal.hash_key} with the actual hash key of the proposal.

For Ad Hoc Print Templates

If you’re linking to an ad hoc print template tied to a proposal, use this format:

https://serviceminder.io/service/proposal/adhocprinttemplate/{template_id}?proposal_id={proposal.hash_key}
  • Replace {template_id} with the ID of the specific print template.

  • Replace {proposal.hash_key} with the proposal’s hash key.

For Invoices

To create a similar link for invoices, simply swap the word proposal with invoice in either URL format above. For example:

https://serviceminder.io/service/invoice/pdf/{invoice.hash_key}

FAQs

How do I know which type to use?

Match the template type to:

  • The content of the email
  • The shortcodes you intend to use
  • Any Drip Triggers or Campaigns associated with the message

Examples:

  • Using contact shortcodes? → Choose Contact
  • Sending invoice payment reminders? → Choose Invoice
  • Sending appointment confirmations? → Choose Appointment

Consistency is important! Type, shortcodes, triggers, and campaigns all need to align.


Why aren't my shortcodes working as expected?

Common causes:

  • Shortcodes must use curly brackets { }, not square brackets [ ]
    → Example: {appointment.find} is correct.
    [appointment.find] will not work.

  • The shortcode must match the template type.
    Appointment shortcodes don't work in a Proposal-type template, etc.

  • Shortcodes should be copied directly from the ServiceMinder Shortcode List to avoid typos.