stripe.currentSubscriptionStatus. Rules read a trait by its path, so the same order decides which value a segment, flag, playbook trigger, lifecycle rule or accounts-table filter sees. A trait your product sends through Segment or PostHog is ranked by the same order when a synced trait has its name.
Trait name precedence is where you decide which. Find it under Settings → Organization → Accounts.
When this matters
Most orgs never need it. It becomes relevant when a second connection starts syncing traits with the same names as one you already have — connecting Stripe to an org that already has Vitally, for example, where both sync around fortystripe.* trait names.
The default: your first connection keeps the name
With nothing configured, the connection you had first wins. That is deliberate: connecting a new platform never silently changes what an existing formula reads. The losing trait is not lost to formulas. It stays reachable at its connection-qualified full path, so a formula can always address it unambiguously:Two kinds of conflict
The settings panel separates them, because only one kind can be fixed by reordering. Names claimed by more than one connection. Reordering the list changes which one wins. The panel lists them and the order control is right above. Names claimed twice within a single connection. Two traits from the same connection want the same short name — a trait calledcountry and another called stripe.country, say. Connection order cannot settle this; the winner is stable but fixed. If a formula needs the shadowed one, write it against that trait’s full path instead.
Whether winning the name changes anything
A contested name is not necessarily a problem. Two connections can syncstripe.customerId and agree on it for every
account, in which case handing the name over changes nothing at all.
So next to each contested name, Zudo says how many accounts the two copies actually disagree on, with an example:
