🎉 Tickety V3 has now been released! Read more →
Placeholders

Placeholders

This page shows the common, readable set of placeholders and the smaller, context-specific additions used in certain messages.

Treat the tables below as:

  • Base placeholders: available everywhere.
  • Context additions: only present in specific message types (ticket events, panels, support-hours, etc.).

Base placeholders

These are available in most message contexts.

PlaceholderDescription
{currentTime}Current timestamp (Unix)
{guild.id}Server ID
{guild.name}Server name
{guild.memberCount}Member count
{guild.createdAt}Server creation timestamp (Unix)
{member.id}Member ID
{member.displayName}Member display name (nickname or username)
{member.username}Member username
{member.avatarUrl}Member avatar URL
{member.joinedAt}When the member joined (Unix)
{member.createdAt}Member account creation (Unix)
{member.roles}List of member role IDs

Statistics placeholders

These are global placeholders that resolve to numbers (or 0 when unavailable).

PlaceholderDescription
{statistics.tickets.averageRating}Average ticket rating
{statistics.tickets.created}Total tickets created
{statistics.tickets.closed}Total tickets closed
{statistics.tickets.open}Total tickets currently open
{statistics.tickets.claimed}Total tickets claimed
{statistics.applications.total}Total applications submitted
{statistics.applications.pending}Total applications pending
{statistics.applications.accepted}Total applications accepted
{statistics.applications.denied}Total applications denied
{statistics.giveaways.total}Total giveaways created
{statistics.giveaways.totalParticipants}Total giveaway participants (all giveaways combined)
{statistics.giveaways.averageParticipants}Average participants per giveaway
{statistics.verifications.total}Total verifications processed
{statistics.verifications.failed}Total failed verifications
{statistics.verifications.passed}Total passed verifications

Context-specific placeholders

Below are additional placeholders that are only available in specific contexts (tickets, panels, support hours). Expand the sections to view details.

Ticket-related placeholders. These are merged with the Base placeholders for ticket messages.

PlaceholderDescription
{ticket.number}Ticket numeric identifier
{ticket.id}Ticket unique id
{ticket.creator.id}Ticket creator's member ID
{ticket.creator.displayName}Ticket creator's display name
{ticket.creator.username}Ticket creator's username
{ticket.creator.avatarUrl}Ticket creator's avatar URL
{ticket.closer.id}Ticket closer's member ID (when closed)
{ticket.closer.displayName}Ticket closer's display name
{ticket.claimer.id}Ticket claimer's member ID (when claimed)

Note: all messages that are about a ticket will include ticket.creator.*. Close-related messages will include ticket.closer.*; claim events include ticket.claimer.*.

Panel-related placeholders exposed on panel views and messages.

PlaceholderDescription
{panel.name}Panel display name
{panel.supportRoles}Array of role IDs that can support this panel
{panel.openTickets}Number of currently open tickets for this panel

These map to your panel document such as panelDocument.panelName, panelDocument.supportRoles, and panelDocument.openTickets.

Support hours placeholders shown where support-hours are configured.

PlaceholderDescription
{supportHours.status}Current support status (open/reduced/emergency/closed)
{supportHours.nextOpen}Timestamp of next open time (Unix)
{supportHours.closesAt}Timestamp of when support closes (Unix)

Roblox placeholders are available everywhere where member placeholders are available.

PlaceholderDescription
{roblox.bloxlink.id}The member's roblox account ID
{roblox.bloxlink.url}The link to the member's roblox profile
{roblox.bloxlink.name}The member's roblox profile username
{roblox.bloxlink.displayName}The member's roblox profile display name
{roblox.bloxlink.about}The about description of the roblox profile
{roblox.bloxlink.createdAt}Roblox account creation timestamp (Unix)

Placeholder resolution behavior

Use these rules when deciding which placeholders to include in a message:

  1. Base placeholders (for example, member.* and guild.*) are available in most message contexts.
  2. Context-specific placeholders (for example, ticket.*, panel.*, supportHours.*) only resolve when that context exists.
  3. Statistics placeholders resolve to a number and fall back to 0 when data is unavailable.
  4. If a context-specific placeholder is used where that context does not exist, it may resolve to an empty value or remain unresolved depending on the message type.

When combining placeholders with parsers, place the placeholder inside the parser payload, for example: {timestamp(relative):{member.joinedAt}}.

Parser reference

Use these parser pages for formatting, logic, and text manipulation:

ParserPurposeLink
DateFormat timestamps using custom date/time patterns/docs/placeholders/parsers/date
TimestampConvert timestamps into readable formats/docs/placeholders/parsers/timestamp
String FormatChange casing, escape text, and format ordinals/docs/placeholders/parsers/stringFormat
ReplaceReplace characters or substrings/docs/placeholders/parsers/replace
IfReturn one of two values from a condition/docs/placeholders/parsers/ifStatements
IncludesCheck whether text contains a value/docs/placeholders/parsers/includes
JoinJoin values into a single string/docs/placeholders/parsers/join
SliceExtract part of a string by range/docs/placeholders/parsers/slice
TruncateShorten text to a fixed length/docs/placeholders/parsers/truncate
PaddingPad text to a target length/docs/placeholders/parsers/padding
MathRun arithmetic expressions/docs/placeholders/parsers/math
LogicalEvaluate boolean-style expressions/docs/placeholders/parsers/logical
StopPrevent further processing when a condition is met/docs/placeholders/parsers/stop

Practical examples

Ticket notification

Ticket #{ticket.number} opened by {member.displayName} at {date(MM/DD/YYYY HH24:MI):{currentTime}}.

Support-hours status message

Support status: {upper:{supportHours.status}}
Next open: {timestamp(relative):{supportHours.nextOpen}}

Conditional message output

{if({contains(1234567890):{member.roles}}):Welcome back, staff member.|Welcome!}

Common mistakes and troubleshooting

  • Use escaped placeholders in docs/examples (\{placeholder}) when you want to display literal placeholder syntax.
  • Verify context before using context-specific placeholders. For example, ticket.* placeholders are only available in ticket-related messages.
  • Keep parser syntax exact. Missing separators like : or | can cause the parser to return unexpected output.
  • Confirm timestamp format expectations before parsing. Use date or timestamp parsers when you need readable output.
  • If a value appears blank, test with a known base placeholder first (for example, {member.username}) to confirm the message context is correct.

On this page