Grammar and mechanics

Capitalization, punctuation, and how to format numbers, time, and dates.


Capitalization

Use sentence case everywhere: capitalize the first word and proper nouns only. That applies to headings, labels, buttons, tooltips, placeholder text, empty states, error messages, nav items, and column headers alike.

Title case in labels adds visual noise and creates a second capitalization system that readers have to learn. It's harder to scan, harder to localize, and inconsistent with the rest of the interface. When in doubt, use sentence case.

table
UseInstead of
Create a segmentCreate A Segment
No results foundNo Results Found
Send your first campaignSend Your First Campaign

Product-area and feature names are proper nouns

Beyond Customer.io, product-area and feature names are proper nouns: capitalize them when you're naming the feature or area, and use lowercase for the common adjective or noun form. The same word can go either way depending on how it's used, so the rule is contextual rather than a fixed always-capitalize list. As a rule of thumb, if you're naming the feature or area, capitalize; if you're describing the thing generically, use lowercase.

Do
  • "In-app messages reach customers where they are." (common adjective → lowercase)
  • "Have you tried our new In-App features?" (the In-App product area → capitalized)
  • "Create segments to group your audience." (common noun → lowercase)
  • "Open the Segments page." / "I love the Customer.io Segments feature." (the Segments feature → capitalized)
  • "Upload your assets." (common noun → lowercase)
  • "Browse the Assets library." (the Assets area → capitalized)
Don't
  • "Open the segments page." (naming the feature → should be capitalized)
  • "Create Segments to group your audience." (generic common noun → should be lowercase)

Two branded phrases have no common-noun form and are always fully capitalized: Data Pipelines and Design Studio, alongside Customer.io itself. Every other multi-word area is sentence case (Data index, Email layouts, Inbox preview, Message library, Custom objects).

The product areas that follow the contextual rule:

Assets · Broadcasts · Campaigns · Collections · Custom objects · Data index · Data Pipelines (always) · Deliveries · Design Studio (always) · Destinations · Email layouts · Exports · Geofences · Goals · Imports · In-App · Inbox preview · Integrations · Journeys · Message library · Newsletters · Reports · Segments · Snippets · Sources · Transactional · Workspaces

Proper nouns

Always capitalize proper nouns and keep their capitalization everywhere, including mid-sentence. That covers Customer.io, Liquid (the templating language), and established product, feature, plan, and program names:

  • Customer.io
  • Liquid
  • Global Styles, Premium, Premium Integrations
  • Startup Program, Customer.io Academy
  • Community (the Customer.io Community forum, a named surface like Academy)
  • AMP (and "AMP for email")
  • Slack Agent (a surface-qualified name for the Agent)

Common nouns are not proper nouns and stay lowercase mid-sentence: segment, campaign, broadcast, message, profile, member, automations. Field and preposition words are lowercase too (from address, reply to address, to, from), capitalized only when they start a label. "From address" works as a field label, but mid-sentence it's "Add a from address". When a term names a specific product surface, it's a proper noun; when it's a generic concept, it's lowercase.

Numbers, time, and dates

Dates

Write dates in full so they read unambiguously across regions. In dense data tables, where space is tight, the numeric form is acceptable.

table
ContextFormat
DefaultJuly 28, 2025
Dense data tables onlyMM/DD/YYYY

Numbers

Always use Arabic numerals, even at the start of a sentence, and format thousands with commas. When space is constrained, abbreviate, and do it consistently within a view.

table
UseInstead of
1,2001200
1.2K, 4.8M (space-constrained)1,200, 4,800,000 (in the same constrained view)
4,200 peopleFour thousand two hundred people

Relative time

Use relative time for timestamps and activity feeds. Switch to the next unit once it reaches its threshold, so 1 hour ago rather than 60 minutes ago.

Elapsed time:

  • Just now
  • 1 minute ago
  • X minutes ago
  • 1 hour ago
  • X hours ago
  • 1 day ago
  • X days ago
  • 1 month ago
  • X months ago
  • 1 year ago

Remaining time:

  • X hours remaining
  • X minutes remaining
  • X seconds remaining
  • About X minutes remaining (use "about" for estimates)

Time

Use the 12-hour format with lowercase am/pm, and include the time zone whenever it's relevant. Ranges take an en dash; see Em dashes and en dashes.

table
ContextFormat
Time10:30 am, 4:00 pm
With time zone10:30 am ET

Punctuation

Ampersands

Ampersands (&) belong in established product names and in space-constrained UI; and belongs in prose and full sentences.

table
UseWhere
Data & IntegrationsEstablished product names
email, SMS, and pushProse and full sentences
Preview & testing, Tips & resourcesLabels, tabs, panel titles, nav items, table headers, tags

Colons

Use colons to introduce a list or a label-value pair, with no space before the colon. When layout already separates the label from its value, omit the colon.

table
UseInstead of
Channels: Email, SMS, and push
Sent to: 4,200 peopleSent to : 4,200 people
You can send across three channels: email, SMS, and push.

Ellipses

Ellipses indicate that something is in progress or that more input is needed. There are two valid uses.

Buttons that require additional input

Use an ellipsis (…) when a button opens a dialog or requires additional input before the action completes. It signals "there's more to do before this happens" and removes hesitation from people who aren't sure what will be affected.

Do
  • Export… (opens a dialog asking what to export and in what format)
Don't
  • Create campaign… (navigates to a new page immediately)

Don't use a trailing ellipsis anywhere else in UI text. Placeholders in particular never take one: the field itself is the input, so write "Search", not "Search…".

Loading and progress states

Use an ellipsis after present participles in loading and progress messages. It marks something the system is doing, not a trailing thought.

Do
  • Sending…
  • Loading…
Don't
  • Not sure what to do next…

One ellipsis character

Always use the single ellipsis character (…), never three periods (...). Three periods look like AI-generated filler and don't render as a true ellipsis.

table
UseInstead of
Loading…Loading...

Em dashes and en dashes

Don't use em dashes (—). They have become strongly associated with AI-generated text and add visual noise in dense interfaces. Restructure the sentence or use a comma instead. An en dash (–) is fine, and preferred, for ranges.

table
UseInstead of
10–20 people
9:00 am–5:00 pm9 am - 5 pm, or 9 am to 5 pm (in compact data displays)
Steps 1–4
"The segment updates every hour, so results may vary.""The segment updates every hour—so results may vary."

Exclamation points

Reserve exclamation points for genuine milestones and warm moments (a welcome, a thank-you, a standout positive result) so they keep their impact. Don't use them for routine confirmations like a save, and never in errors or warnings. Use at most one per screen.

Do
  • "Your campaign is live!" (first campaign milestone)
Don't
  • "Changes saved!"
  • "Enter a valid email address!"

Oxford comma

Always use an Oxford comma in lists of three or more.

table
UseInstead of
email, SMS, and pushemail, SMS and push

Parentheses

Use parentheses to define an acronym or term on first use, and for short qualifiers or scoping ("Forced dark (Outlook)", "(No subject)"). Don't use them for asides or extra thoughts; restructure the sentence instead.

Do
  • "Customer Data Platform (CDP)"
  • "Liquid (a templating language) lets you personalize messages."
Don't
  • "Your segment is ready (it may take a moment to populate)."

Periods

Use periods for full, complete sentences. Leave them off standalone labels, button text, short and incomplete phrases, nav items, column headers, and modal titles. A period on a label signals that something requires comprehension rather than a quick scan.

table
ElementUseInstead of
ButtonSave changesSave changes.
ColumnLast sent
ErrorYour changes couldn't be saved. Check your connection and try again.
Helper textChanges are saved automatically every 30 seconds.Changes are saved automatically every 30 seconds
Nav itemCampaignsCampaigns.

Question marks

Question marks seek confirmation for an action that's about to be performed. They typically mark destructive actions, where a pause helps prevent mistakes, but they also fit other cases like asking for feedback. Whatever the question, name the action or object so the person knows what they're answering.

Do
  • Delete campaign?
  • Turn off feature?
  • How can we help you?
Don't
  • Delete?
  • Are you sure?