Understanding User Properties

Profile properties contain user attributes and traits.

The property section allows you see all of the information related to your customer. Properties span from first-name and last-name to email and fundamental traits your users have or you need to monitor.

💡 Property information can support up to two nested groups.

Properties coming from API

Plainflow allows you to connect a user to their actions and record user traits. It includes a unique User ID and any optional traits that you know about them.

Calling the Identify API in one of our libraries is one of the first steps to getting started with Plainflow.

Learn more here 👈

Properties coming from integrations

Some profile properties could also come from 3rd-party integrations like Clearbit and MadKudu.

Let’s say that you have created a workflow where you use the action “Enrich user profile” with Clearbit. In this case, the “enriched” information will be saved under the enriched user profile and will be nested under the label “Clearbit” as in the example below.


Add, edit or remove a new property

We don’t allow change to your properties in a manual way. We allow change of properties in a programmatic way. You are able to add, edit or remove properties systematically in your workflow section.

How to get nested default properties

Suppose that you want to get in the email body a nested propperty called coming from Clearbit.

💡 You can access properties nested into object using the dot notation.

To access to the Clearbit property emplyment.role you will type:


Default properties

address ObjectStreet address of a user optionally containing: city, country, postalCode, state or street
age numberAge of a user
avatar StringURL to an avatar image for the user
birthday dateUser’s birthday
created_at dateDate the user’s account was first created. Dates must be formatted using ISO-8601 format
description Description of the user 
email StringEmail address of a user
first_name StringFirst name of a user
gender StringGender of a user
last_name StringLast name of a user
name StringFull name of a user. If you only pass a first and last name we’ll automatically fill in the full name for you.
phone StringPhone number of a user
idTRUEStringUnique ID in your database for a user
subscription ObjectContains all the info related to a subscription.
title StringThe person’s website
username StringThe best avatar url we have
website StringCompany name

The Subscription object

The subscription object has the following default properties:

subscription.plan_nameStringThe subscription plan name.
subscription.plan_idStringThe unique identifier of the subscription plan.
subscription.statusStringThe subscription status can be: never subscribed, trial active, trial canceled, trial expired, active, blocked, canceled, expired, unknown
subscription.payment_statusStringThe last payment status can be: pending, paid, dunning, past due, unpaid, canceled, disputed, refunded, unknown.
subscription.plan_interval_countNumberThe number of intervals (specified in the interval property) between subscription billings. For example, plan_interval_count=month and plan_interval_unit=3 bills every 3 months.
subscription.plan_interval_unitStringOne of day, week, month or year. The frequency with which a subscription should be billed.
subscription.service_trial_period_start_atDateIf the subscription has a trial, the beginning of that trial.
subscription.service_trial_period_end_atDateIf the subscription has a trial, the end of that trial.
subscription.service_period_start_atDateWhen the subscription period started.
subscription.service_period_end_atDateWhen the subscription will end.
subscription.service_period_cancelled_atDateIf the subscription has been canceled, the date of that cancellation.
subscription.due_dateDateThe date on which payment for this subscription is due.
subscription.amount_in_centsStringThe amount in cents to be charged on the interval specified.
subscription.currencyStringThree-letter ISO currency code, in lowercase.
subscription.discount_codeStringHash describing the coupon applied to create this discount.
subscription.discount_amount_in_centsStringThe amount in cents to be charged on the interval specified.
subscription.tax_amount_in_centsStringThe amount in cents related to the tax rate.

Not using Plainflow yet? Get your free account here. 👈