Skip to main content

Properties

Properties are the details attached to your data. JourneyLayer has two kinds, and the difference matters for how you analyze and target users:

  • Event properties describe a single occurrence of an event.
  • User properties (profile traits) describe the person.

Event properties

Event properties are arbitrary JSON you send along with an event. They capture the specifics of that action — what was bought, which plan, how much.

journeylayer.track("Order Completed", {
plan: "pro",
amount: 4999,
currency: "USD",
items: 3,
});

Here plan, amount, currency, and items are event properties. They belong to this one Order Completed event and say nothing about the user's other activity.

Event properties power:

  • Breakdowns in analytics — for example, Order Completed split by plan.
  • Filters in funnels and trends — for example, only steps where amount is greater than 1000.
  • Segment conditions — for example, "performed Order Completed with plan = pro." See Segments overview.

User properties (profile traits)

User properties — also called traits — describe the person, not a single event. They are set with identify() and persist on the profile across all of that user's activity.

journeylayer.identify({
name: "Ada Lovelace",
phone: "+15551234567",
city: "London",
});

Common traits include email, name, phone, city, plan, signup date, and lifecycle stage. Because they live on the profile, you can segment on them directly ("all users where city = London") without referencing any specific event. To learn how traits relate to identity, see Profiles & identity.

Where user properties come from

User properties are populated two ways:

  • identify() traits sent from the SDK, as above.
  • CSV upload. When you import users (from a custom-list segment or under Settings -> CSV uploads), any column that is not a reserved profile field — email, phone, name, identity, user_id, first_name, last_name, avatar_url — is stored as a user property. So a plan or city column becomes a plan / city trait automatically.

There is no separate registration step: a new property becomes usable as soon as it lands on a profile.

Viewing your user properties

Go to Settings -> Schema -> User properties to see every user property on your project's profiles, with an inferred type (string / number / boolean / date), how many profiles carry it, and a few sample values. This is the quickest way to confirm a trait imported correctly and to check its spelling before using it in a segment or token.

Using user properties to target

Because traits live on the profile, you can target on them directly — no event required:

  • In segments, as a property filter.
  • In a campaign audience, via the User property rule (for example, city equals delhi).
  • As personalization tokens in message content, so each recipient sees their own value (for example, their plan or name).

Event property or user property?

A quick rule of thumb:

QuestionUse
Does it describe one action that just happened?Event property
Does it describe the person over time?User property (trait)

For example, the amount of a single order is an event property; the user's total lifetime spend is a user property you maintain via identify().

How properties are used

Properties are what turn raw events into answerable questions. Across JourneyLayer you will use them to:

  • Break down metrics (revenue by plan, signups by source).
  • Filter funnels and trends to a meaningful slice.
  • Build segments that combine traits and event-property conditions, then use those segments in Analytics and messaging.

When you send a new property, JourneyLayer records it against the event (or the profile) so it shows up automatically in the event catalog and the relevant builders.

Tips

A little discipline up front keeps your data clean and your reports trustworthy.

Keep types consistent

Always send the same property with the same type. If amount is a number on some events and a string ("4999") on others, breakdowns and numeric filters become unreliable. Pick a type per property and stick to it.

Use clear, stable property names

As with event names, consistency beats cleverness. Prefer short, descriptive keys (plan, source, amount) and reuse them across events so the same filter works everywhere.

Do not put PII in URLs

When tracking page views, avoid placing personal data — email, phone, names, or other identifiers — in the page URL or path. URLs are easily logged and shared. Send identity through identify() traits instead, where it is handled as profile data.

caution

Anything you put in a tracked URL can end up in analytics breakdowns and shared links. Keep emails and other identifiers out of URLs.

Useful properties to consider

A few properties tend to pay off across many products:

  • Revenue and currency on purchase events (amount, currency) for revenue reporting.
  • Source / channel on signup and key conversion events (source, campaign) to compare acquisition.
  • Plan or tier on upgrade and feature events to break down by customer value.
  • Quantity or count (items, seats) where it helps you measure scale.

Next steps