Skip to content

Email Automations

Six moments in the quote lifecycle trigger a notification. Where and how you configure them depends on your site:

  • Voxel-powered sites configure everything — in-app notifications and email, together — in Voxel → Settings → App Events. See Voxel App Events below.
  • Everywhere else, each notification has an editable subject and body under Quote Requests → Settings, and can be switched off individually. See The plugin's own email settings.
NotificationSent toWhen
New RequestAdmin, vendor (multi-vendor mode), and customer confirmationA request is submitted
Quote ReadyCustomerStatus changes to Quoted
Status UpdateCustomer + adminStatus changes to In Progress, Completed, or Cancelled
Quote DecisionVendor + adminThe customer accepts or declines
Vendor Contact DetailsCustomerThe customer accepts — the only way a guest customer without an account receives the vendor's contact info

On Voxel-powered sites: Voxel App Events

If your site runs Voxel, every notification above is registered as a Voxel App Event — configure it from Voxel → Settings → App Events, in the same place as every other Voxel notification on your site. Each event gives you:

  • An in-app notification, shown in Voxel's own notification bell, for any recipient with a WordPress account.
  • An email, with its own editable subject and message.

Both can be turned on or off independently, and both support Voxel's dynamic tags — type @quote( in the editor to see everything available:

TagValue
@quote(:entry_reference)The request reference, e.g. QR-7K3M9P — use this anywhere a customer or vendor sees the request
@quote(:entry_id)The internal record number. Prefer the reference above for anything customer-facing
@quote(:quote_amount)The vendor's quoted amount
@quote(:quote_note)The vendor's note alongside the amount
@quote(:quote_items)The requested items as linked titles
@quote(:quote_items_text)The requested items as plain text — no links, for email designs that render every link as a button
@quote(:form_details)Every submitted form field as "Label: value" lines
@quote(:vendor_name) / @quote(:vendor_email)The vendor
@quote(:customer_name) / @quote(:customer_email)The customer
@quote(:status) / @quote(:status_reason)The new status and the vendor's cancellation reason
@quote(:decision)"accepted" or "rejected"
@quote(:dashboard_link)Link to the customer's dashboard
@quote(:vendor_dashboard_link)Link that drops the vendor straight into that request on their own dashboard
@quote(:calendar_link)Downloads the request as a calendar file — works for guest customers too
@quote(:vendor_phone) / @quote(:vendor_whatsapp_link)The vendor's number, and a WhatsApp link to it
@quote(:accept_url) / @quote(:reject_url)The one-click decision links

Guests still get every email

Most quote requests come from visitors without an account, and Voxel's own event system only notifies real accounts. This plugin sends its own guest-safe version of each email alongside Voxel's, so nothing changes for customers without a login — they simply never get an in-app notification, since there's no account for one to belong to.

Nothing is lost if you'd customized the old templates

Switching a site to Voxel doesn't touch your previous settings — they stay in the database, just no longer used. The Quote Requests → Settings screen collapses them behind a "Show previous email settings (inactive)" toggle so you can copy over any wording you'd customized into Voxel's editor.

On other sites: the plugin's own email settings

Without Voxel, each notification has an editable subject and body under Quote Requests → Settings, and each can be switched off. Bodies support HTML (<strong>, links, etc.); subjects are plain text.

The Quote Ready email

The workhorse. It carries the amount, the note, the items, the customer's own request details, and one-click Accept / Decline buttons that work without an account. Two lines adapt to the recipient automatically:

  • Customers with an account get "view and manage your quote requests online" linking to the dashboard page.
  • Customers without one get "Register here using this same email address…" linking to your registration page.

Whichever doesn't apply is removed from the email — any template line whose variable resolves to nothing is dropped automatically.

Replying to this email reaches the vendor and admin directly ("Replies Go to the Vendor" setting), so customers can ask questions before deciding.

Template variables

VariableValue
{quote_items}The requested items as linked titles
{quote_items_text}The requested items as plain text, without links
{form_details}Every submitted form field as "Label: value" lines
{quote_amount}The vendor's quoted amount
{quote_note}The vendor's note alongside the amount
{vendor_name}Vendor name (or vendor profile title — see Multi-Vendor Mode)
{vendor_email}Vendor email
{accept_button} / {reject_button}Styled one-click decision buttons
{accept_link} / {reject_link}The same secure links as plain URLs
{dashboard_link} / {register_link}The account-aware links described above
{vendor_dashboard_link}Link that drops the vendor straight into that request on their own dashboard
{calendar_link}Downloads the request as a calendar file — works for guest customers too
{vendor_phone} / {vendor_whatsapp_link}The vendor's number, and a WhatsApp link to it
{consents}Privacy / Terms confirmations with links
{status} / {status_reason}New status and the vendor's cancellation reason (Status Update email)
{decision}"accepted" or "declined" (Quote Decision email)
{entry_reference}The request reference, e.g. QR-7K3M9P — use this anywhere a customer or vendor sees the request
{entry_id} / {entry_link}The internal record number, and a link to the right view for the recipient. Prefer {entry_reference} for anything customer-facing
form fieldsEvery form field by its key, e.g. {full_name}, {phone_number}

The variables panel under each template shows exactly which are available there, including your own form fields.

Templates you'd customized are updated for you

The default templates used to identify a request by its record number (#{entry_id}). On update, saved templates using that pattern are switched to {entry_reference} automatically — including the Voxel App Event subjects. {entry_id} still resolves, so nothing breaks if you were using it deliberately as a record number.

Deliverability

The plugin sends through wp_mail(), so it works with any SMTP plugin (FluentSMTP, WP Mail SMTP, …) — strongly recommended so the quote emails reliably reach customers.

Built by Code Wattz.