How Customer.io sounds, how tone adjusts to context, and how to address people directly and inclusively.
Language can exclude people in ways that are immediately obvious to the person affected and invisible to everyone else. Words like "easy" and "simple" are a common example: they quietly invalidate the experience of anyone who finds the task hard.
Don't assume where or when someone is reading. Always specify a time zone when displaying a time, and use an internationally unambiguous date format whenever precision matters. Avoid idioms that don't translate, such as "low-hanging fruit", "hit the ground running", or "ballpark".
State a limit or a plan's boundaries plainly and let the person decide what to do about it. Countdowns and scarcity language pressure people into decisions they haven't had a chance to consider.
Use the most specific term available rather than a generic abstraction. Naming the actual people involved keeps copy concrete, and it keeps the word "user" out of the interface entirely.
Address the person directly as "you" and "your". Don't mix "my" and "your" on the same screen; pick one and use it consistently throughout a flow. When a possessive adds no meaning, drop it. And don't start a sentence with "this" or "that" unless the noun immediately follows; on its own the pronoun is ambiguous and difficult to translate.
| Use | Instead of |
|---|---|
| Favorites | Your Favorites (when "Favorites" is sufficient) |
| "This segment will be deleted after 30 days." | "This will be deleted after 30 days." |
| Your campaigns | My Favorites (when the rest of the screen uses "your") |
Never write "user". Use the term that fits who you actually mean. A profile is one of a workspace's end customers, the people in the audience and the data model behind them: "This profile is opted out of email." A member is a person who uses the Customer.io product, a teammate or a seat in an account: "Invite a member." When neither is specific enough, say person or people: "This message will send to 4,200 people."
The word "user" may remain only as a raw data-model field name in code, never in UI copy.
Tone adjusts to what the person is experiencing. Someone completing their first setup flow needs reassurance; someone facing a destructive action needs precision.
| Context | Tone | Example |
|---|---|---|
| AI output | Outcome-first, hedged | "Based on recent behavior, these people are more likely to re-engage." |
| Destructive / irreversible | Serious, precise | "Deleting this campaign is permanent and cannot be undone." |
| Empty state | Helpful, inviting | "No segments yet. Create one to start targeting your audience." |
| Error | Direct, actionable | "Your changes couldn't be saved. Check your connection and try again." |
| Onboarding / first use | Warm, clear | "You're all set. Your first message is ready to send." |
| Payment / account error | Passive voice, non-blaming | "Your payment was declined." |
| Promotional empty state | Benefit-led, outcome-first | "Automate your customer journeys." |
| Success | Brief, positive | "Campaign sent." |
| Task flow | Functional, invisible | "Add people" |
| Warning | Clear, non-alarmist | "Deleting this attribute will remove it from 4,200 people." |
Copy is direct, calm, helpful, and human. It is not chatty, apologetic, self-promotional, or passive.
| Characteristic | Do | Don't |
|---|---|---|
| Calm | "Connection lost. Check your network connection." | "Oops! Something went wrong." |
| Direct | "Save changes" | "Go ahead and click Save to save your work" |
| Helpful | "No segments found. Adjust your search filters." | "No segments found." |
| Human | "This message will send to 4,200 people." | "This message will be delivered to 4,200 recipients." |
| Neutral | "The Agent is ready." | "You've unlocked a powerful new feature!" |