Tags are dynamic placeholders used in communication templates, including emails, SMS messages, and letters. When a message is generated, these tags are automatically replaced with real data from your system, such as customer names, job details, invoice totals, or vehicle information.
What is a Tag?
A tag is a piece of placeholder text enclosed in square brackets (e.g., [customer_name]
). When a message is sent, Commusoft replaces that tag with actual data from the system, like the client’s name or job date.
Example:
Template: Hi
[customer_name]
, your engineer is on the way.Sent message: Hi Sarah, your engineer is on the way.
How Tagging Works
Commusoft previously used separate templates for each individual communication, such as invoice templates or job confirmation templates. These legacy templates only displayed the tags that were supported for that specific record type (e.g., [invoice_total]
in an invoice template).
With universal templates, you can now view and use all available tags in the system from a single template interface. However, this flexibility also means that tags are no longer automatically filtered based on context.
Tags will only populate correctly if the communication is triggered from a record that contains the relevant data. For instance:
An invoice tag such as
[invoice_total]
will only populate if the communication is sent from an invoice record.If the same tag is used in a message sent from the customer communication timeline, and no invoice is associated, it will remain as plain text (
[invoice_total]
).
This behaviour applies across all tag types—estimate, job, diary, payment, etc. You can insert any tag, but it will only work if the system can pull data from the associated record type.
Example Scenarios
Communication context | Tag used | Result |
Invoice record |
| £240.00 (tag populates) |
Customer communication log |
|
|
Diary event confirmation |
| John Smith (tag populates) |
Job follow-up letter |
|
|
✅ To avoid issues:
Always confirm what type of record the message is being sent from.
Only include tags supported by that record type.
Preview and test communications with real data to verify correct output.
Available Tags
Client Tags
Client Tags
Customer Tags
Customer Tags
These are the details you will see in the left side panel when viewing a customer record.
[customer_account_no]
– Customer’s unique account number[customer_name]
– Customer’s first name[customer_surname]
– Customer’s last name[customer_telephone]
– Primary landline number[customer_mobile]
– Mobile phone number[customer_email]
– Email address[customer_address_line_1]
– First line of the address[customer_address_line_2]
– Second line of the address (optional)[customer_address_line_3]
– Third line of the address (optional)[customer_town]
– Town or city[customer_county]
– County or region[customer_postcode]
– Postcode[customer_advertising]
- How the customer heard about your business (e.g., Google, leaflet, referral)[customer_portal_url]
– Link to the full customer portal, used for property managers, eg. estate agents, to access the records directly.Not intended for use for private customers managing a single property).
Contact Tags
Contact Tags
[contact_name]
– Full name of the primary contact[contact_telephone]
– Primary telephone number[job_contact_mobile]
– Mobile number for job-specific contact[job_contact_email]
– Email for job-specific contact[job_address_primary_contact_email]
– Email of the main contact at the job address[job_address_primary_contact_mobile]
– Mobile of the main contact at the job address[contact_position]
– Contact’s job title or role[contact_login_role_name]
– Login role assigned to the contact
Estimate Tags
Estimate Tags
[estimate_no]
– Estimate reference number[estimate_created_date]
– Date the estimate was created[estimate_description]
– Description of the service or job[estimate_engineer_notes]
– Notes added by the engineer[estimate_exc_vat]
– Total excluding VAT[estimate_contact_name]
– Name of the contact[estimate_contact_telephone]
– Contact’s landline number[estimate_contact_mobile]
– Contact’s mobile number[estimate_contact_email]
– Contact’s email address[estimate_address_line_1]
– First line of the address[estimate_address_line_2]
– Second line (optional)[estimate_address_line_3]
– Third line (optional)[estimate_address_town]
– Town or city[estimate_address_county]
– County or region[estimate_address_postcode]
– Postcode or ZIP code[estimate_address_account_no]
– Account number linked to the property[estimate_address_name]
– Name of the site[estimate_portal_url]
– Self-service portal link to review and accept/reject an estimate and pay any deposit due upon accepting.
Job Tags
Job Tags
[job_no]
– Unique reference number for the job[job_contact_name]
– Name of the job’s primary contact[job_contact_telephone]
– Landline number of the contact[job_contact_mobile]
– Mobile number of the contact[job_contact_email]
– Email address of the contact[job_address_primary_contact_email]
– Email of the main contact at the job address[job_address_primary_contact_mobile]
– Mobile of the main contact at the job address[job_date]
– Scheduled job date[job_description]
– Description of the work being done[job_po_no]
– Purchase order number linked to the job[job_priority]
– Job priority level[job_quoted_amount]
– Quoted price for the job[job_customer_feedback_note]
– Customer feedback after the job[job_address_name]
– Name of the work address or site[job_address_line_1]
– First line of the job address[job_address_line_2]
– Second line of the job address (optional)[job_address_line_3]
– Third line of the job address (optional)[job_address_town]
– Town or city[job_address_county]
– County or region[job_address_postcode]
– Postcode[job_address_account_no]
– Account number for the job address[
rebooking_portal_url]
– Self-service portal where the customer can reschedule an appointment.[booking_portal_link]
– Self-service portal for work address tenants to schedule an appointment when a job has been created for the property they reside in.This portal tag is currently usable in: Work address job access template, and Work address estimate access template.
Service Reminder Tags
Service Reminder Tags
[service_reminder_name]
– Name of the service being reminded (e.g., Boiler Service[service_due_date]
– Date the service is due[service_contact]
– Contact person for this service[service_reminder_properties_due]
– Work address properties due for service reminders.Displays the properties due for a given month in a table for the service manager to review and schedule accordingly.
[service_reminder_booking_portal_url]
– Self-service portal for private customers (single property owners) to schedule their due service.
Appointment (Diary event) Tags
Appointment (Diary event) Tags
[diary_date]
– Date of the scheduled appointment[diary_time]
– General time label for the appointment[diary_start_time]
– Exact appointment start time[diary_end_time]
– Appointment end time[diary_engineer]
– Name of the assigned engineer[diary_description]
– Description of the task or visit[diary_engineer_notes]
– Notes added for the engineer[diary_service_window]
– Scheduled time window for the visit, (eg. Between 9 am - 12 pm)
Invoice Tags
Invoice Tags
[invoice_date]
– Date the invoice was issued[invoice_no]
– Unique invoice number[landlord_name]
– Name of the landlord[invoice_address_name]
– Property or billing address name[invoice_address_line_1]
– First line of the invoice address[invoice_address_line_2]
– Second line (optional)[invoice_address_line_3]
– Third line (optional)[invoice_address_town]
– Town or city[invoice_address_county]
– County or region[invoice_address_postcode]
– Postcode or ZIP code[invoice_description]
– Short description of the invoice[invoice_more_details]
– Additional breakdown of charges[invoice_exl_vat]
– Total excluding VAT[invoice_vat]
– VAT amount applied[invoice_total]
– Total including VAT[invoice_total_paid]
– Amount paid[invoice_remainder_to_pay]
– Outstanding balance[invoice_portal_url]
– Self-service portal for customers to view invoice details and make payment in full.
Payment Tags
Payment Tags
[payment_id]
– Unique payment ID[payment_date]
– Date payment was received[payment_reference]
– Payment reference (e.g., cheque number)[payment_method]
– Method used (e.g., card, cash)[payment_nominal_account]
– Assigned nominal account[payment_amount]
– Amount paid[payment_charge]
– Any processing fees applied[payment_invoice_no]
– Invoice number linked to the payment[payment_job_no]
– Job number linked to the payment[payment_invoice_list]
– All invoices linked to this payment
Statement Tags
Statement Tags
[statement_portal_url]
– Link to view the customer’s statement
Supplier/Purchase Order Tags
Supplier/Purchase Order Tags
[supplier_name]
– Supplier's name[supplier_address_line_1]
– First line of the supplier’s address[supplier_address_line_2]
– Second line (optional)[supplier_address_line_3]
– Third line (optional)[supplier_town]
– Town or city[supplier_county]
– County or region[supplier_postcode]
– Postcode[supplier_telephone]
– Supplier’s contact number[supplier_email]
– Supplier’s email address[po_date]
– Date the purchase order was created[po_no]
– Unique reference number of the purchase order[po_description]
– Description of requested items or services
Opportunity Tags
Opportunity Tags
[opportunity_no]
– Opportunity reference number[opportunity_date]
– Date the opportunity was created[opportunity_description]
– Summary of the proposed work[opportunity_engineer_notes]
– Engineer-entered notes[opportunity_invoice_category]
– Invoice category for the opportunity[opportunity_usergroup]
– Assigned user group[opportunity_pipeline]
– Pipeline stage (e.g., new, quoted)opportunity_reporting_line]
– Internal reporting structure[opportunity_sales_person]
– Assigned salesperson[opportunity_customer_reference]
– Customer reference[opportunity_customer_contact_name]
– Contact’s name[opportunity_customer_contact_telephone]
– Landline number[opportunity_customer_contact_mobile]
– Mobile number[opportunity_customer_contact_email]
– Email address[opportunity_address_name]
– Address label or name[opportunity_address_line_1]
– First address line[opportunity_address_line_2]
– Second line (optional)[
opportunity_address_line_3]
– Third line (optional)[opportunity_address_town]
– Town or city[opportunity_address_county]
– County or region[opportunity_address_postcode]
– Postcode or ZIP code[opportunity_address_account_no]
– Account number[opportunity_address_telephone]
– Site landline[opportunity_address_mobile]
– Site mobile[opportunity_address_email]
– Site email[opportunity_site_contact_name]
– On-site contact’s name[opportunity_site_contact_telephone]
– Telephone number[opportunity_site_contact_mobile]
– Mobile number[opportunity_site_contact_email]
– Email address[opportunity_access_method]
– Access instructions[opportunity_access_notes]
– Site access notes[opportunity_parking_instructions]
– Parking guidance
Proposal Tags
Proposal Tags
[proposal_created_by]
– User who created the proposal[proposal_created_on]
– Date the proposal was created[upload_media_portal_url]
– Self-service portal for the customer to upload images and videos, (eg. request a photo of the area the customer wishes to have a new asset installed to assist building their personalised proposal.[view_media_portal_url]
– Self-service portal for the customer to view media they previously uploaded to a proposal.[supplier_price_portal_url]
– Supplier-facing portal to provide up to date prices for parts they supply to you.
Contract Tags
Contract Tags
[contract_name]
– Name of the customer’s contract[contract_startdate]
– Contract start date[contract_enddate]
– Contract end date[contract_contact_email]
– Email of the main contract contact[contract_contact]
– Full name of the contract contact[contract_invoice_collection_table]
– Collection schedule table[contract_bank_name]
– Bank name associated with the contract[contract_bank_account_ending]
– Last digits of the bank account[contract_mandate_reference]
– Direct debit mandate reference[contract_invoice_contact]
– Name of the invoice handler[mandate_customer_approval]
– Link to approve a new Direct Debit mandateRequires GoCardless integration.
Fleet Management Tags
Fleet Management Tags
[vehicle_registration_number]
– Vehicle registration number[vehicle_known_as]
– Nickname or internal name of the vehicle[vehicle_reminder_name]
– Name of the upcoming reminder (e.g., MOT)[vehicle_reminder_date]
– Reminder due date[vehicle_maintenance_name]
– Name of scheduled maintenance[vehicle_maintenance_date_due]
– Due date for maintenance[vehicle_maintenance_mileage_due]
– Mileage for maintenance[vehicle_check_form_name]
– Name of inspection form[vehicle_driver]
– Driver assigned to the vehicle[geofence_location_name]
– Geofenced location name[engineer_profile_portal_url]
– Self-service portal customers can access when a user is on the way to their property to track their location and arrival when used with vehicle tracking.
After Sales Care Tags
After Sales Care Tags
[after_sales_care_portal_url]
– Self-service portal for customers to review the service they received from your business.
Personalised Tagging
Users may want to customise name and time/date tags to make messages feel more personal, professional, or consistent with their brand voice. This section details how to modify these tags correctly and avoid common syntax errors.
Name Tagging
To customise how a name appears, add :title
, :firstname
, or :lastname
to the tag.
Examples:
Hello, [job_contact_name]
➡️ Hello, Mrs Sue SmithHello, [job_contact_name:title lastname]
➡️ Hello, Mrs SmithHello, [job_contact_name:firstname lastname]
➡️ Hello, Sue SmithHello, [job_contact_name:firstname]
➡️ Hello, Sue
⚠️ It's important to use the correct syntax:
Do not add any spaces after the colon or between the words.
Use
lastname
instead ofsurname
, assurname
will not be recognised.
✅ Correct: [job_contact_name:firstname lastname]
❌ Incorrect: [job_contact_name: first name]
Personalised time/date formats
You can personalise how dates and times appear in your messages using format characters. These characters are added after a colon in a tag.
For example:
[diary_date:F j, Y]
➡️ "April 2, 2025"[diary_date:l, F j]
➡️ "Wednesday, April 2"
Use the format string to define exactly how the date or time should appear:
Day
Format Character | Description | Example returned values |
d | Day of the month, 2 digits with leading zeros | 01 to 31 |
D | A textual representation of a day, three letters | Mon through Sun |
j | Day of the month without leading zeros | 1 to 31 |
l(lowercase 'L') | A full textual representation of the day of the week | Sunday through Saturday |
Week
Format Character | Description | Example returned values |
W | ISO-8601 week number of year, weeks starting on Monday | Example: 42 (the 42nd week in the year) |
💭 What is the ISO-8601 week number?
💭 What is the ISO-8601 week number?
The ISO-8601 week number is part of an international date and time format standard. It defines a consistent way to number weeks in a calendar year.
Weeks begin on Monday
Week 1 is the first week with at least four days in the new year
There are 52 or 53 weeks in a year, depending on how the dates fall
This is especially useful for scheduling, reporting, and tracking work by week across years.
Example:
If a job is scheduled for Wednesday, October 9, 2024, the [diary_date:W]
tag will return 41
, since it falls in the 41st ISO week of the year.
Month
Format Character | Description | Example returned values |
F | A full textual representation of a month, such as January or March | January through December |
m | Numeric representation of a month, with leading zeros | 01 through 12 |
M | A short textual representation of a month, three letters | Jan through Dec |
n | Numeric representation of a month, without leading zeros | 1 through 12 |
Year
Format Character | Description | Example returned values |
Y | A full numeric representation of a year, 4 digits | Examples: 1999 or 2003 |
y | A two digit representation of a year | Examples: 99 or 03 |
Time
Format Character | Description | Example returned values |
a | Lowercase Ante meridiem and Post meridiem | am or pm |
A | Uppercase Ante meridiem and Post meridiem | AM or PM |
B | Swatch Internet time | 000 through 999 |
g | 12-hour format of an hour without leading zeros | 1 through 12 |
G | 24-hour format of an hour without leading zeros | 0 through 23 |
h | 12-hour format of an hour with leading zeros | 01 through 12 |
H | 24-hour format of an hour with leading zeros | 00 through 23 |
i | Minutes with leading zeros | 00 to 59 |
s | Seconds, with leading zeros | 00 through 59 |
Full Date and Time
Format Character | Description | Example returned values |
c | ISO 8601 date (added in PHP 5) | 2004-02-12T15:19:21+00:00 |
r | » RFC 2822 formatted date | Example: Thu, 21 Dec 2000 16:01:07 +0200 |
💭 What does c
(ISO 8601) mean?
💭 What does c
(ISO 8601) mean?
The c
format character returns the date and time in the ISO 8601 format: YYYY-MM-DDTHH:MM:SS+00:00
.
Example: 2025-07-08T14:30:00+01:00
This is ideal for consistent machine-readable timestamps or integrations with third-party systems.
💭 What does r
(RFC 2822) mean?
💭 What does r
(RFC 2822) mean?
The r
format character returns the date and time in RFC 2822 format, commonly used in email headers.
Example: Tue, 08 Jul 2025 14:30:00 +0100
This is a human-readable standard, typically used in communication and logging systems.
Portal Tagging
To customise the display text of a portal link in an email (e.g., to rebook, view an invoice, or access a portal page), you can add a colon after the tag, followed by your desired link text. This gives you full control over what customers see and improves clarity.
Just like name and date tagging, follow the same format rules: use a colon without any spaces, and input your custom text directly after it.
Example:
[rebooking_portal_url]
➡️ Click here to rebook portal[rebooking_portal_url:Click here to rebook your appointment]
➡️ Click here to rebook your appointment
✅ We recommend adjusting portal links to clearly explain their purpose—this helps customers trust and engage with your messages.
🚨 Portal tag customisation is not compatible with SMS communications. These URL is shortened when the SMS is generated and this cannot be changed.