Understanding placeholders and dynamic content

Modified on Thu, 4 Dec at 11:32 AM

Understanding placeholders and dynamic content

Placeholders are the key to creating personalized and dynamic messages in Hubhus. They automatically insert real lead, event, brand, or user information into your Email and SMS templates at send-time.

On this page

Jump to any section using the links below

Placeholders are the key to creating personalized and dynamic messages in Hubhus. They automatically insert real lead, event, brand, or user information into your Email and SMS templates at send-time.

This guide explains how placeholders work, which types exist, and how to use them correctly.


What are placeholders?

Placeholders are variables that pull live data into your message.

Examples:

  • %lead_name% → customer name

  • {{api_name}} → custom field

  • %assigned_person_email% → assigned staff

  • %event_start_date% → event date

Placeholders remove manual writing and ensure consistency.


Available placeholder types

1. System placeholders (built-in)

These relate to the lead, campaign, or brand:

  • %lead_name%

  • %lead_email% / %lead_phone%

  • %lead_status_slug%

  • %assigned_person_email%

  • %assigned_person_phone%

  • %event_resource_email%

  • %brand_contact_email%


These can be used in emails and SMS that relate to a calendar event.

Relevant event placeholders:

  • %event_title%

  • %event_location%

  • %event_datetime% (date + time interval)

  • %event_start_date%

  • %event_start_time%

  • %event_end_date%

  • %event_end_time%

  • %event_duration_minutes%

  • %event_created_at%

  • %event_updated_at%

Note: %booking_datetime% is only available inside a booking form and cannot be used in messages.


3. Custom field placeholders

Any custom field created in the campaign can be inserted using its API name:

{{api_name}}

Examples:

  • {{zipcode}}

  • {{project-notes}}

  • {{address}}


4. Select-field placeholders

Used when a field has pre-defined selectable values.

  • @select[field] → returns the label

  • @select[field,slug] → returns the slug (best for logic)

Examples:

@if(@select[priority,slug] == high){ … }

5. Conditional placeholders

Conditional logic lets you personalize sections of your message:

@if(%lead_email%){ We will contact you at %lead_email% }@endif

Or for routing recipients:

@if(%assigned_person_email%){ %assigned_person_email% }@else{ %brand_contact_email% }@endif

Using placeholders in message templates

You can use placeholders in:

  • Subject line

  • Body text (email + SMS)

  • URLs

  • Buttons

  • Conditional content

  • Recipient fields (“To”)

Example:

Hello %lead_name%, Your upcoming event is on %event_start_date% at %event_start_time%.

Button example:

<hh-email.button url="@page[offer,url]" color="%brand_color%"> View your offer </hh-email.button>

Common placeholder patterns

1. Simple personalization

Hello %lead_name%,

2. Select-based conditional content

@if(@select[customer-type,slug] == business){ Thank you for your business inquiry. }@else{ Thank you for your inquiry. }@endif

3. Using fallback recipients

@if(%assigned_person_email%){ %assigned_person_email% }@else{ %brand_contact_email% }@endif

4. Using custom fields

Your address: {{full-address}}

5. Only show text if data exists

@if({{notes}}){ Additional notes: {{notes}} }@endif

Use the Editor to test logic and find placeholders instantly

In any input field inside the editor, you can press:

  • CTRL + K (Windows)

  • CMD + K (Mac)

This opens the placeholder search modal, where you can quickly look up:

  • Lead placeholders (name, email, phone, address, etc.)

  • Event placeholders (date, time, ICS links, resource emails, duration, etc.)

  • HTML components (buttons, signatures, branding blocks)

  • Links to pages (@page[...])

  • Booking forms

  • Custom fields (API-based placeholders)

  • Assigned person & brand placeholders

You can search using natural words like:
“lead name”, “address”, “event date”, “signature”, “brand contact”.

Using this tool is the fastest and safest way to locate the correct placeholder and ensure your logic is valid.



Troubleshooting missing data

1. A placeholder shows nothing (empty output)

Check:

  • Does the lead actually have a value?

  • Is the API name correct?

  • Is the placeholder valid in this context (e.g., event placeholders require an event)?

2. Conditional logic not triggering

Typical causes:

  • Missing slugs

  • Comparing label instead of slug

  • Field has no value

Correct example:

@if(@select[priority,slug] == high){ … }

3. Wrong API name

Verify in:
Campaign Settings → Fields → Show API names


Learning outcome

After reading this, you should understand:

  • What placeholders are

  • How system, custom, and event placeholders work

  • How to use conditional logic

  • How to build personalized messages

  • How to troubleshoot missing or incorrect values

Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select at least one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article