Glossary
Contact: A unique individual who can receive messages. Each Contact is associated with one or more Properties and/or Customers, and is considered unique on the platform based on either their primary email address or primary mobile number.
Consent: Explicit permission from a Contact to receive SMS/Text messages. By law, text messaging requires prior opt-in consent, which can be collected verbally (using the approved script) or electronically (via email confirmation). Until consent is collected, SMS/Text message delivery is blocked.
Channel: The medium through which BuildOps delivers messages to Contacts. We support two Channels: Email and SMS/Text.
Message: A notification or informational payload sent to a Contact about an activity or event that occurs within BuildOps.
Message Type: A predefined category describing when and why a Message is sent (e.g. Job Created, Visit Reminder). Message Types help users define the correct content to be sent out for that activity.
Service Message: Message Type focused specifically on Service + Maintenance workflows, for eg: "Job Created," or "Visit Reminder" messages.
Message Template: A reusable layout that defines the structure, data, and default copy of a Message. Templates may include static text and Smart Fields.
Smart Field: A dynamic placeholder (e.g., Contact name, Job Date) that is automatically populated with live data before the Message is sent to Contacts, allowing Templates to be personalized at send‑time without manual editing.
Audit Log: An immutable history of every Message event, including Message Type, Date, Channels, and Customer. The Audit Log supports troubleshooting, compliance, and performance analytics.
Problem Statement
Your operations depend on timely, accurate communication among your office staff, field technicians, and the property contacts you serve. When those messages live in personal inboxes, ad‑hoc texts, or phone calls outside of BuildOps, important details slip through the cracks causing avoidable delays, higher costs, and frustrated customers.
What happens today
Uncertainty around technician arrivals
Property contacts do not always know when a technician is on the way or running late, which can lead to access issues, scheduling conflicts, and idle time on site.Manual reminders for critical follow‑ups
Your team must remember to email or call for visit reminders, technician travelling to site, approvals, or payment confirmations. A single missed reminder can significantly impact your operations.No single source of truth
Conversations are scattered across multiple channels, making it difficult to verify what was sent, to whom, and when complicating dispute resolution and compliance audits.Hidden operational costs
Every manual call or copy‑and‑paste email adds overhead. Across dozens of jobs each week, those minutes add up to hours of non‑billable work.
Impact on your business
Slower job completion and extended time on site
Higher administrative workload and service costs
Limited visibility into communication history for quality assurance
The BuildOps solution
Customer Messages brings customer‑facing communication into the platform and automates key touchpoints so you can:
Keep property contacts informed in real time with “Technician Dispatched,” "Job Completed,” and other status updates.
Reduce back‑office busywork by using templates and smart fields to generate personalized messages in seconds.
Maintain an immutable Audit Log for full transparency and accountability.
By centralizing and automating business‑critical communications, BuildOps optimizes the service cycle, lowers administrative and operation costs, and delivers a smoother experience for everyone involved.
Pricing
SMS consumption will be priced. Pricing details are not included in this release and may change in upcoming versions.
What’s New
We’re thrilled to roll out the Early Access release of Customer Messages, bringing automated, in‑platform customer messaging to BuildOps.
Contacts — your single source of truth
Standalone entity: Contacts now live independently of Customers and Properties.
Enforced uniqueness: Each Contact is identified by its primary email address or primary mobile, preventing duplicates for your organization.
Linked relationships: A single Contact can be associated with one or many Customers and/or Properties.
Clean data: Update a Contact once and see the change everywhere, eliminating duplicate “customer rep” or “property rep” records and reducing data inconsistencies.
Customer Messages - Message Types and Templates
A new Customer Messages page appears under Admin ▸ Customer Messages, giving you full control over outbound messages.
In this release Service messages are provided, and other messages such as for Quotes and Invoices will be provided in future releases.
Service message types available today
Job Created: Sent when a job is created for a customer
Visit Reminder: Sent 24 hours before a scheduled visit
Technician Dispatch: Sent when a technician changes visit status to Travelling
Visit Completed: Sent when a visit is marked as completed
Job Completed: Sent when a job is marked as completed
Each message type supports both Email and SMS/Text channels, with configurable templates and Smart Fields so every notification is customized to the customer.
Audit Log
Track every outbound message type, date, channels, and customer in one immutable log for effortless troubleshooting, and compliance.
Messages Preferences
A self-service page where each contact can review and adjust their message preferences for both Email and SMS channels—subscribing or unsubscribing from specific message types at any time.
Contacts Data Migration
Contacts list has been created from your current list of representatives for Customers and Properties. While most of your data would have been migrated automatically, Contacts with no mobile and no email cannot be migrated automatically due to new uniqueness constraints on contacts.
Algorithm we are using for data migration is the following
Step1: Update cellphone duplicate records to null value for all records except last updated
Step2: We ignore all rep records with email and cellphone both empty.
Since we have uniqueness enforcement and requirement to have email or phone no these reps will not get migrated. See this section for more details
Step 3: Remove email duplicate records , keep last updated record, and associate new Contact record to all customers and properties across all the duplicated records
Step 4: Associate all properties associated across all duplicated rep records to the new contact records
Migration Impacts
Customer and Property Reps with no email or phone no will not get migrated over (See this section for more details )
If the same mobile was used across multiple reps with different emails, only the last updated customer or property rep will have that mobile
If same email is used across multiple reps, we use the last updated rep for migrating to Contacts. If the other reps were used in any of other entities such as Jobs, Quotes, then those records will not show any value in Contact field and tenants will need to select the new migrated Contact to those records
for eg:
Before migrationTenant A has two contact reps , rep1 and rep2 with the same email ,and rep1 is last updated
Job 1 has rep1, and Job 2 has rep 2
After migration
rep 1 and rep 2 are migrated as rep
Job 1 will have rep, Job2 will not have any rep and tenant will have to add rep to Job2
Data Migration Helper Tool
To help customers understand how their data has been migrated, we have build an in-app tool that shows a snapshot of the data before migration.
The Data Migration Helper tool can be accessed by clicking on the “Review Contact Updates” link on the “Contacts Migrated” banner.
This Data Migration Helper tool banner does not reflect real-time changes and will remain visible on the Contacts List page until all tenants have been fully migrated.
There are two tabs in the helper tool:
Warning tab - If any contact data was merged to create the new Migrated Contact this tab shows the data lost or merged into Migrated Contact. This tab has three sections
Migrated Contact - This sections shows the new contact created along with all the metadata
Potential Data Loss - If there were more than one contact sharing the same email this sections shows all the previous records and highlights in yellow the names that are lost, and mobile that is assigned to another contact
Customer, Property and Mobile Associations - If a mobile number associated with a different email is now associated to migrated contact (migrated contact also had the same mobile and was last updated with the mobile) it is shown in this section. The customer and property associations from these contacts are preserved in both set of migrated contacts created from the two emails.
The data sheet provided to you consists of the sheets below, and is provided for you to refer to and in case you need to migrate some data manually to the new contacts list.
All Contacts Data - This sheet contains all your contacts (customer and property representatives)
Contacts with No Email and No Phone No - This sheet contains contacts with no email and no phone no, and these set of contacts have not been migrated to new contact list so you will need to Add them in the new list by providing a unique no or email
Contacts Data consolidated by Email - This sheet presents your contact list grouped by email
Contacts Data consolidated by Mobile - This sheet presents your contacts list grouped by mobile
Page-Wise Feature Explanation
Contacts List Page
The Contacts page is your centralized directory and single source of truth for everyone your business communicates with. Access it from the main navigation bar under Directory ▸ Contacts.
Active
The Active tab lists every contact that can currently be linked to Customers and Properties. These records appear throughout BuildOps—for example, when creating Jobs, or Quotes.
Actions available
Add Contact – Create a new record by entering a unique primary email or primary mobile/phone number. Optionally link the contact to one or more Customers and Properties, and add additional contact methods.
Edit Contact – Update personal details or adjust linked relationships.
Archive Contact – Archive a contact that is no longer in use; the record moves to the Archived tab and is not available in other modules.
Delete Contact – Permanently remove a contact that was created in error. Once deleted there is no way to recover a contact.
Export – Download the active list as CSV for analysis or backup
Archived
The Archived tab stores archived contacts that cannot be linked to Customers or Properties and remain hidden across the platform. Archived contacts preserve historical data for reference but will not appear in any selection lists i.e. when you create or edit records.
Actions available
Unarchive Contact – Restore the record to the Active tab so it can be used again.
Edit Contact – Correct data without re‑activating the record.
Delete Contact – Permanently remove the record when it is no longer required (irreversible)
Contacts Details Page
The Contact Details page provides a 360‑degree picture of an individual contact - notes, linked customers and properties, and message preference all in one place. Open it by clicking a contact’s name from the Contacts list.
Activity tab
Add & view notes – Capture internal notes in this section. Notes are listed newest‑to‑oldest and grouped by month so recent interactions surface first.
Customers tab
Linked customers – Shows every Customer this contact relates to; a single contact may belong to multiple customers.
Actions available:
Add Customer – Link an existing Customer record.
Edit Customer – Edit the role or Remove association with customer
Remove Customer – Detach the relationship without deleting either record. Previous relations are maintained but for new records Contacts will not be associated with Customer.
Properties tab
Works just like the Customers tab, but for Properties. Add, edit, or remove linked Properties and navigate to their detail pages with a single click.
Message Preferences tab
Here you control exactly which messages the contact receives, per Message Type and per Channel (Email or SMS/Text).
Status definitions
No Email / No Mobile – Contact lacks a valid email address or phone number. Add the missing info before taking further action.
No Consent - Contact has a mobile no but consent hasn’t been captured for the contact
Unavailable – Message type is disabled globally by your BuildOps administrator. Cannot be changed here. Will need Admin to enable the channel [see Customer Message section below.]
Pending – A confirmation request was sent but the contact has not yet been accepted.
Not Subscribed – Channel is enabled but this contact has not opted in. You can subscribe the contact at any time.
Subscribed – Contact will receive this Message Type on the given channel. You may unsubscribe at any time.
Unsubscribed – Contact has opted out or filed a complaint. Status is locked and cannot be overridden.
Not Delivered – Previous attempts bounced (temporary) or could not be delivered. After fixing the address/number you can resend.
Blocked – Address/number hard‑bounced. The channel is permanently disabled for this contact.
You can adjust Messages preferences for multiple Message Types for both channels at once. Subscription confirmations are sent via SMS for the text channel and via email for the email channel, and the contact’s opt‑in preferences are stored separately for each channel. Contacts can also manage their preferences independently through the Contacts Preference page.
Consent Workflow
Why Consent is Required
Before BuildOps can send any customer communication by SMS/Text, the recipient must provide explicit consent. This requirement is driven by industry regulations and consumer protection laws (such as TCPA in the U.S.), which prohibit unsolicited text messages.
Without documented consent SMS/Text channels remain disabled for the contact (“No Consent” status).
Consent Flow
Consent can be collected in two ways:
Request via Email
The system sends a consent confirmation email to the contact.
Collect Verbally
A staff member reads the legally required consent script directly to the contact.
The contact must agree verbally.
Staff confirms consent in BuildOps by checking the box (“I read the script and the contact gave their consent”) and saving the record.
In both cases, BuildOps records the opt-in so every future SMS/Text message is compliant and auditable.
Once contact has consented,, the contact is automatically subscribed to SMS/Text messages when the message type is enabled.
Customer Messages
Located under Admin ▸ Customer Messages , the Customer Messages page is divided into two tabs: Customer Messages (configuration) and Audit Log (history).
Customer Messages tab
Per‑channel toggles – Every Message Type row has independent Email and SMS/Text switches. Turning a switch on both enables that channel system‑wide and makes it available for Contact‑level subscriptions.
Template editor – Turn on the channel to enable the channel and to open a rich‑text editor for Email or a plain‑text editor for SMS. Modify subject lines, static text and smart fields to update the template for that message type and channel. Smart Fields menu – Type “/” inside the editor to insert dynamic placeholders (e.g., {JobDate}, {TechnicianName}) that auto‑populate at send‑time, and are highlighted.
Save & preview – Save after you are done to update the template for that type and channel only.
Audit Log tab
The Audit Log tab provides a transparent, filterable record of every customer‑facing message that has left BuildOps.
Following details are provided:
ID — Unique identifier for every message event; click to open a side panel with the full rendered message, template version, and Smart Field values.
Message Type — The Message Type triggered (e.g., Technician Dispatched, Job Created).
Date — Timestamp of send event, shown in your local timezone.
Channels — Icons indicating whether the message was sent by Email and/or SMS/Text
Customer — The Customer linked to the originating Job or Visit.
Message Preferences
Your contacts can manage their own messaging preferences from a secure Message Preferences page. Each channel (Email and SMS) has its own page, which a contact can open via:
The link in the subscription-confirmation Email or SMS for that channel.
The Manage your preferences link included at the bottom of every outgoing email.
Turning a message type ON
The contact’s Message Preference for that channel is set to Subscribed (visible on the Contact Details page), and the contact will receive messages of that type on that channel.
Turning a message type OFF
The contact’s Message Preference for that channel is set to Unsubscribed, and the contact will no longer receive messages of that type on that channel.
