Messaging & Notifications
Download this Setup Guide
Overview
Message templates let you write an email or text once and send it again and again — automatically when something happens on a job, or with one click when you need it. Templates live under Messaging → Templates in Pool Builder Geek.

The Messaging screen allows you to standardize the messages sent to customers, subcontractors, and internal staff based on specific project triggers or manual actions.
The dashboard is divided into two primary tabs for managing your communication strategy:
- Templates Tab: Use this area to build and edit the content of your messages.


- Message Queue Tab: Use this area to monitor the status of sent messages or those pending delivery.


The Mine tab shows the message in your organization
The Library tab shows available system templates available to be copied to your organization.
Template Management Table
The main table provides a detailed overview of your active message templates:
| Column | Description |
| Display Name | The internal name of the message template. |
| Audience | Who receives the message (e.g., Customer, Task Owner, or Sales). |
| Message Event | The specific action that triggers the message (e.g., “construction.phase.assigned”). |
| Type | Indicates if the message is Triggered automatically by the system or sent Manually. |
| Channels | Checkboxes indicating if the template is configured for Email, SMS, or Push notifications. |
| Status/Visibility | Shows if the template is currently Active and Published for use. |
- Create New Template: Click the blue + Add Template button in the top-right corner to start building a new communication workflow.

- Edit Existing Messages: Use the three-dot action menu on the far right of any template row to modify the content, change the audience, or adjust the trigger events.

The Edit Message Template window (or setup window) allows you to configure exactly how and when automated or manual communications are sent to your customers, staff, and partners. By utilizing dynamic tokens, you can create personalized messages that automatically pull in relevant project data.
Basic Template Information:
Display Name: Assign a clear, internal name to help you identify the template in your dashboard (e.g., “Construction Phase Assigned”).
Status & Visibility: Use the toggles to mark the template as Active or Inactive and determine if it is Published for use across the organization.
Template Type: (e.g., Construction or Sales).
Message Event: Select the specific system action that initiates the message, such as construction.phase.assigned.
Type: Define if the message is Triggered (sent automatically by the system) or Manual (sent by a user action).
Channels: Choose the delivery methods by toggling Email, SMS, or Push notifications.
Send To: Designate the recipient group, such as the Task Owner, Customer, or Sales team.
Subject: Create a compelling subject line. You can use tokens like {{task.name}} to make the subject dynamic.
Tokens (Dynamic Data): The window provides a library of data placeholders (e.g., task.name, task.due_date, task.assigned_to).
Body Editor: A full rich-text editor allows you to format your message with bolding, lists, and links. You can build out clear templates that include project names, numbers, and addresses using the available message tokens.
Signature: Optionally toggle a standardized signature to be appended to the bottom of the message.
Update/Create Template: Click the blue button at the bottom right to save your configuration and activate the message workflow.

Message Templates: Email & SMS Examples
Every template has three things that decide when it goes out and who gets it:
| Setting | What it controls | Examples |
|---|---|---|
| Type | When the message sends | Triggered (an event happens), Pre-Notification (a set number of days before a scheduled phase), Aging (something sits too long), Manual (you send it) |
| Message Event | The job activity it is tied to | construction.phase.scheduled, construction.phase.rescheduled, construction.phase.status.updated, construction.contact.assigned, construction.manual.message, media.shared.with.customer |
| Audience | Who receives it | Customer, Project Manager, Superintendent, Task Owner, Project Contacts, Admin, Sales |
Use Channels to send the same template by Email, SMS, Push, or any mix. One template can reach a homeowner by text and email at the same moment.
How to create a template
- Go to Messaging → Templates and click Add Template. To start from an existing one, open its row menu and choose Clone.
- Enter a Display Name your team will recognize, such as “Gunite Scheduled – Customer.”
- Pick the Message Event and Type. For Pre-Notification templates, set the phase and the number of Days before it.
- Turn on the Channels you want: Email, SMS, Push.
- Choose the Audience. You can select more than one.
- Write the Subject (email only) and Body. Insert tokens from the All Tokens list so each message fills in the right names and dates.
- Decide whether to include your Signature, set Status to Active, and set Visibility (Private or Published).
- Save, then send a test to yourself before relying on it.
Tokens (merge fields)
Tokens are wrapped in double curly braces and replaced with real job data when the message sends. Common ones:
| Token | Fills in |
|---|---|
{{customer.first_name}} | Homeowner’s first name |
{{customer.full_address}} | Homeowner’s address |
{{project.name}} / {{project.number}} | Job name or number |
{{project.service_address}} | Job site address |
{{task.name}} | Phase or task name, such as Gunite |
{{task.scheduled_date}} | Date the phase is scheduled |
{{task.assigned_to}} | Crew or sub assigned |
{{employee.name}} / {{loggedInUser.first_name}} | The staff member sending |
{{tenant.name}} / {{tenant.phone}} | Your company name and phone |
Available tokens depend on the Message Event; phase and task tokens appear only for phase or task events.
Email vs. SMS
- Email can carry detail: what to expect, checklists, links, and your signature.
- SMS should be short — one or two sentences, aim for under 160 characters, and include who it’s from.
- When a template sends both, write the body so it still reads well as a text.
Customer (homeowner) examples
Keep homeowners informed at every milestone so they call less and trust more.
Welcome to your project
Type: Triggered · Event: construction.contact.assigned · Audience: Customer · Channel: Email
Subject: Welcome to your {{tenant.name}} pool project!
Hi {{customer.first_name}},
Thank you for choosing {{tenant.name}}. Your project, {{project.name}}, is officially underway.
What happens next:
- You'll get an email or text each time a phase is scheduled or completed.
- Photos and updates will be posted to your project portal.
- Questions? Call us at {{tenant.phone}} or reply to this email.
We're excited to build your backyard!
Phase scheduled
Type: Triggered · Event: construction.phase.scheduled · Audience: Customer · Channels: Email + SMS
SMS: Hi {{customer.first_name}}, {{task.name}} is scheduled for {{task.scheduled_date}} at {{project.service_address}}. Please keep the work area clear. – {{tenant.name}}
Phase rescheduled
Type: Triggered · Event: construction.phase.rescheduled · Audience: Customer · Channel: SMS
Hi {{customer.first_name}}, heads up: {{task.name}} has moved to {{task.scheduled_date}}. Questions? Call {{tenant.phone}}. – {{tenant.name}}
Day-before reminder
Type: Pre-Notification (1 day before Gunite) · Audience: Customer · Channel: SMS
Reminder: our gunite crew arrives tomorrow, {{task.scheduled_date}}. Please unlock gates, move vehicles, and keep pets inside. – {{tenant.name}}
Phase completed
Type: Triggered · Event: construction.phase.status.updated (Completed) · Audience: Customer · Channel: Email
Subject: {{task.name}} is complete!
Hi {{customer.first_name}},
Good news — {{task.name}} is finished on {{project.name}}. Check your portal for new photos. We'll let you know as soon as the next phase is scheduled.
On my way (manual)
Type: Manual · Event: construction.manual.message · Audience: Customer · Channel: SMS
Hi {{customer.first_name}}, this is {{loggedInUser.first_name}} with {{tenant.name}}. I'm on my way and should arrive in about 20 minutes.
Subcontractor examples
Subs are usually set up as the Task Owner on a phase, so these templates reach the right crew without anyone texting from a personal phone.
Phase assigned
Type: Triggered · Event: construction.phase.assigned · Audience: Task Owner · Channels: Email + SMS
Subject: New job assigned: {{task.name}} – {{project.name}}
Hi, you've been assigned {{task.name}} on {{project.name}}.
Site: {{project.service_address}}
Scheduled: {{task.scheduled_date}}
Notes: {{task.description}}
Please confirm by replying or calling {{tenant.phone}}.
Schedule change
Type: Triggered · Event: construction.phase.rescheduled · Audience: Task Owner · Channel: SMS
Schedule change: {{task.name}} at {{project.service_address}} is now {{task.scheduled_date}}. Reply to confirm. – {{tenant.name}}
Day-before confirmation
Type: Pre-Notification (1 day before the phase) · Audience: Task Owner · Channel: SMS
Reminder: {{task.name}} tomorrow ({{task.scheduled_date}}) at {{project.service_address}}. Text back if anything changes. – {{tenant.name}}
Site ready for next trade
Type: Triggered · Event: construction.phase.status.updated (prior phase Completed) · Audience: Project Contacts · Channel: SMS
{{task.name}} is complete on {{project.name}} ({{project.service_address}}). The site is ready for the next trade. – {{tenant.name}}
Internal team examples
Use internal templates so project managers, superintendents, and office staff hear about changes the moment they happen.
New job handoff
Type: Triggered · Event: construction.contact.assigned · Audience: Project Manager, Superintendent · Channel: Email
Subject: New construction job: {{project.name}} (#{{project.number}})
You've been added to {{project.name}} for {{customer.full_name}}.
Address: {{project.service_address}}
Start date: {{project.start_date}}
Customer phone: {{customer.phone}}
Please review the plans and files in the project before kickoff.
Phase status changed
Type: Triggered · Event: construction.phase.status.updated · Audience: Project Manager · Channel: SMS
{{project.name}}: {{task.name}} is now {{task.status}}.
Customer posted a message
Type: Triggered · Event: post.customer.submitted · Audience: Project Contacts · Channels: Email + Push
Subject: New message from {{customer.full_name}}
{{customer.full_name}} posted on {{project.name}}. Please reply in the project feed within one business day.
All phases completed
Type: Triggered · Event: construction.phase.status.updated · Audience: Admin · Channel: Email
Subject: {{project.name}} – all phases complete
All construction phases are complete for {{customer.full_name}}. Next steps: final walkthrough, final invoice, and warranty registration.
Best practices
- Name templates by event and audience (“Gunite Scheduled – Customer”) so they’re easy to find and don’t get duplicated.
- Write one template per audience. Homeowners need reassurance; subs need address, date, and scope; PMs need status.
- Start small. Turn on a few high-value messages first — phase scheduled, rescheduled, and completed — then add more.
- Use Clone to copy a working template for a new phase instead of starting from scratch.
- Test before going live. Send to yourself and check that every token filled in.
- Set unused templates to Inactive instead of deleting them, so you can bring them back.
- Check the Message Queue tab to confirm what sent and when.
FAQ
Can one template go to the customer and the PM at the same time? Yes. Select multiple audiences. If they need different wording, create two templates on the same event.
What’s the difference between Private and Published? Private templates are visible only to your account; Published templates are shared for others to use from the Library.
Why didn’t a token fill in? The token may not be available for that Message Event, or the field is empty on the project. Check the All Tokens list for that event.
Can I send a template outside an automation? Yes. Create a template with Type Manual (for example, construction.manual.message) and send it from the project w