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​