Componentsv2.189.0
Iconsv1.19.0
MCPv0.8.61
Tokensv0.34.3

Principles

Guiding ideas to building Customer.io interfaces.


These three principles are the layer everything else expresses. A generic prompt produces defensible, average-case UI because it has no reason to prefer one good option over another, so it hedges toward convention. Principles give you a reason. Principles help us make decisions when numerous choices are reasonable. The principles intentionally pull against each other: flexibility vs. familiarity, speed vs. friction.

One paved road, many dirt roads

Our champions love us for knowing anything is possible. Power and flexibility are at our core. We will continue to build dirt roads to allow customers to realize this power. Not everyone wants to go offroading. There must be a paved road. We are opinionated about the primary path our customer should take. That provides the focus needed to deliver a quality experience. It is hard to create a quality experience for everyone or every path.

We acknowledge teams use Customer.io. A paved road looks different for a growth practitioner than a data partner. We always offer guidance and direction to help customers make progress toward their goal. We aim to help customers level up their skills, instead of requiring them.

A paved road...

  • is a smooth ride, free from unwanted bumps. There cannot be an unresolved edge case, inconsistent label, or a missing empty state.
  • is built by sequencing capabilities, not removing them. Functionality is contextually relevant instead of always visible.
  • leads to a destination. That's your north star. This is how power can feel personal.

Apply:

  • Design the primary path first and make it the visual and interactive default. Power-user and edge-case affordances should remain reachable but should not compete with the primary path for attention.
  • Reveal capability by sequence and context, not all at once. Surface a control when its moment arrives; do not show every option upfront.
  • Every screen on the paved road resolves all five states (loading, empty, error, success, permission-denied). A missing empty state, an inconsistent label, or an unhandled edge case means the road is not paved. Do not ship it.
  • Every primary flow has a clear destination and a next step toward it. No screen is a dead end.
  • Exception: Advanced or escape-hatch paths may expose more and guide less, but only when the primary path is fully built first. The dirt road must be a deliberate detour, not the default.

Do the least surprising thing

Our customers trust us to orchestrate their messaging strategy. Sending real messages to real people is high stakes. Trust is non-negotiable. We build trust through predictable and accepted patterns. We exhaust the system first before innovating. We invent to move the system forward, not to move faster in the moment.

Our innovation is what the product does for customers: the insight, the automation, the capability. Our customer's messaging strategy should be novel. Our interface should feel familiar. Predictable patterns help us deliver clarity, usability, and accessibility.

Apply:

  • When a choice has a conventional pattern and a novel one and both work, take the conventional one. "Least surprising" is the tiebreaker.
  • Exhaust Pluma before inventing. Reuse an existing component, token, or pattern rather than composing a new one. A new primitive is a last resort that goes through #pluma, never a shortcut to ship faster.
  • Locate novelty in what the product does, not in how the interface looks or behaves. The insight, automation, and capability should be novel. A novel layout for a familiar task is a defect, not a feature.

Every action builds confidence

Our customers aren't trying to start a campaign, they're trying to grow their business. We design with their ambition in mind, not just their workflow. Customers should feel certain they completed the task, did it well, and know what to do next. They should feel more capable than when they started. That confidence will compound and build momentum over time. The moment after the click is as important as the click itself.

Speed is a virtue in most of our product. AI can compress the work of creating segments or building campaigns. We deliberately introduce friction at the seam. A small change to a segment can change behavior in a campaign, and ultimately send the wrong messages to the wrong audience. Our Agent knows more than our customer when it comes to their event data, audience, campaigns, etc. The product can be a thought partner, but our customers always remain in control. They are the expert.

Apply:

  • Every action resolves to an unambiguous outcome: a success state confirming it completed, and where relevant, the next step toward the customer's goal. The moment after the click is part of the design, not an afterthought.
  • Default to speed. Do not add confirmation steps, interstitials, or "Are you sure?" friction to routine, low-stakes, or reversible actions.
  • AI proposes, the customer decides. The Agent may suggest, draft, or pre-fill using what it knows about the customer's data, but high-stakes changes are surfaced for explicit confirmation, never auto-executed. Keep the customer in control. They are the expert on their intent.
  • Exception: Insert a deliberate confirmation step only where a change cascades into live messaging. This includes editing a segment that feeds a running campaign, changing an audience, or altering a trigger. Name the downstream effect in the confirmation ("This segment feeds 3 live campaigns"), not a generic warning.