User Analytics
Every contact in Joryio has a full profile: identity and attributes, subscription state, an event timeline, campaign and journey activity, purchases, devices, and predictive scores. This page covers how to find users and what the profile view shows.
Finding users
The Users list
Audience → Users lists everyone in the workspace, with a live count in the header.
- Columns: Name (with the user ID beneath it), Email, Phone, and Segments (member segments as chips) show by default, plus Created. External ID and Last seen are available from the Columns picker; Name, Email, Created, and Last seen are sortable. Default sort is newest first.
- Search: a single search box matches email, phone, user ID, and external ID as you type.
- Segment filter: the Segment popover filters the list to members of one or more segments. Active filters show as removable chips with a "Clear all" link.
- Pagination: page-size selector (default 25) with a "Showing X-Y of Z" readout.
- Row actions: View (opens the profile), Edit, and Delete. Import Users and Add live in the header.
Search Users
Audience → Search Users is a dedicated lookup page. Type a value, pick what to search by - All Fields, Email, Phone, User ID, or External ID - and press Enter. Results show identity columns (user ID, external ID, email, phone, name, created, last seen); clicking a row opens the profile.
The user profile
Clicking a user opens their profile. At the top:
- User Profile card - the default identity fields: User ID, External ID, First Name, Last Name, Email, Phone, Language, Most Recent Device Locale, Time Zone, Country, Created At, and Updated At. Locale, timezone, and country fall back to the most recent device's information when the attribute isn't set directly.
- Segments - chips for every segment the user currently belongs to.
- Export Data and Erase Data - GDPR data-subject actions for this contact (both ask for confirmation).
Below that, the profile is organized into tabs.
Overview
- Subscriptions - per-channel subscription status for Email, SMS, WhatsApp, and Push (Opted In / Subscribed / Unsubscribed / Not Set), with an Edit button. An email address that has bounced shows an Email Bounce Detected alert with the bounce type, count, and last bounce date, and an "Invalid" tag on the email channel. List Memberships shows the subscription lists the user belongs to (unsubscribed lists are flagged), each linking to the list.
- Subscription history - an audit trail of every subscribe/unsubscribe: channel, previous and new status, when, via which source, by whom, and the recorded reason.
Consent proof. Each entry shows what changed in plain words - a store checkout tick still waiting for an order or confirmation reads Consent pending - awaiting order or confirmation, an untick in the same checkout Withdrawn, and the order that confirmed it Subscribed (confirmed by order) - where it came from (for example "WooCommerce checkout", "Landing page", "API", "Admin", "Import", "Unsubscribe link", "Bounce", "Complaint" or "Keyword STOP"), when, and the exact consent text the person was shown (quoted; a long text opens with Show full text). Where it was stored, the entry also shows the page (the store or landing page) and the IP address. The IP address is personal data: only members with the
pii:viewpermission see it, others see that it is hidden. The consent text is not personal data and is always shown. The contact's data export (Export Data, and every access request) includes the same history asconsent_history, with the IP address. - User Attributes - the user's custom attributes as a key/value table (default identity fields already appear in the header card). Date values are localized. PII-restricted values render masked if your role can't view PII.
- ML Predictions - shown once the models have data for this user:
- Engagement Score - 0-100 with a qualitative label (from "Minimal activity" to "Highly engaged").
- Churn Risk - a percentage with a high/medium/low risk tag.
- Preferred Channel - the predicted best channel with a confidence percentage.
- Best Send Time - the predicted best hour and day of week with confidence.
- Predictive Events - per-event likelihood tiles (score out of 100 plus a high/medium/low likelihood tag) when predictive events are configured.
Event History
The user's complete event timeline, with two views:
- Table view - event name, property count (with a "View" link opening a details modal showing all properties, the session ID, and the event ID), timestamp, and session ID. Paginated server-side.
- Timeline view - events grouped by day with a category filter (Email, SMS, WhatsApp, Webhook, E-commerce, In-app, Push, Identity, Page Views, Custom). Key events like sign-ups and purchases render as prominent cards with synthesized summaries (a purchase shows the order number and amount; message events show the campaign); repetitive events auto-collapse with a count. "Load More Events" pages further back.
Both views share an event-name filter and a date-range picker (default All Time). A Group by visits toggle rolls the table up into sessions - each visit expands to its events and shows its time range.
Journey step events (canvas.step.entered / canvas.step.left) are hidden from both views - and from the event total - until you turn on Journey steps. The Timeline view then shows each journey run as one line, for example "Welcome - 4 steps - now at Delay (Oct 13, 14:05)" or "completed at Message"; expand it to see every step with its outcome (the branch taken, the experiment path, sent or skipped) and its time in step.
Campaigns & Journeys
A single chronological table of everything this user was targeted by, filterable by All / Campaigns / Journeys:
- Campaigns - name, channel, started, last interaction, and the count of engagement events recorded for this user on that campaign.
- Journeys - the journeys this user has entered, with when they entered, their last activity, and how many steps they've completed.
Purchases
- Purchase Behavior - total purchases, average purchase cycle (days between purchases), days since last purchase, and an Overdue / On Track status against their expected cycle.
- Lifetime Value & RFM - historical CLV with a tier tag, order count and average order value, RFM segment and score, purchase cycle and any open cart's value (its items subtotal), predicted CLV for the next 365 days, and predicted next order timing - plus top category and brand affinities.
- Store customer - for each connected store the contact bought from or has an account with: the store, the store's own customer ID, whether they are a registered customer or checked out as a guest (Shopify gives every checkout a customer record, so a Shopify row says "Store customer"), and the orders, total spent and last order Joryio holds from that store. Cancelled and fully refunded orders do not count. Read-only; hidden when the contact is no store's customer.
- Orders - the raw order list: order ID, status (delivered / shipped / processing / pending / cancelled / refunded), item count, total, and placed-at date.
Messages
Every message the user was sent - by a campaign or a journey, on any channel - and every reply they sent back over SMS and WhatsApp, newest first, from the last 12 months. Filter by direction (sent, received) and by channel. A sent message shows the channel, the campaign or journey that sent it, the email subject and how far it got (sent, delivered, opened, clicked, failed or bounced); a reply shows the sender, the receiving number/account, the timestamp and the message body.
Recent Devices
Every device the user has been seen on, grouped by platform. Each device lists its device ID, push token, web push endpoint and status, operating system, device type, browser, platform, timezone, language, screen and viewport size, user agent, and last-seen time.
Segments
The full list of segments this user currently belongs to (the same memberships shown in the header card).
Wallet
Wallet passes issued to this contact (Apple Wallet / Google Wallet): version, status, serial number, and how the pass was installed - manually, via a campaign, or via a journey (with a link to the source). Preview renders the pass with the contact's actual field values; History shows the pass's version history.
Profile-level engagement data
Engagement lives in three places on the profile:
- The Engagement Score tile (Overview → ML Predictions) is the single summarized engagement metric - 0-100 with a qualitative label.
- Event History contains the raw engagement events (message opens, clicks, sessions, page views), filterable by category.
- Campaigns & Journeys shows per-campaign engagement event counts and the last interaction date.
Recency signals: the header card's Updated At, per-device Last Seen (Recent Devices tab), and Days Since Last purchase (Purchases tab).
Managing users
- Add / Edit - the drawer on the Users list edits the identity fields: User ID (fixed once created), Email, Phone, First Name, and Last Name. Custom attributes are set via the API, SDK identify calls, or bulk import.
- Bulk Import (Data → Bulk Import) - import users, events, or entities from CSV/JSON files. User imports map source columns to External ID, Email, Phone, name fields, per-channel subscriptions, per-list consent, and custom attributes; a consent-override checkbox governs whether the import may re-subscribe prior opt-outs. A Recent Imports table tracks each job's progress with created/updated/skipped/failed counts and a downloadable error report.
- Export Data / Erase Data - per-user GDPR actions at the top of the profile.
Quick reference
| Question | Where to look |
|---|---|
| Is this user reachable by email/SMS/push? | Overview → Subscriptions (per-channel status + bounce alert) |
| Why did they stop getting messages? | Overview → Subscription history (who changed what, when, via which source) |
| What did they do last week? | Event History → date-range filter (Timeline view for a readable digest) |
| Which journeys are they in? | Campaigns & Journeys tab, filtered to Journeys |
| Are they likely to churn or buy again? | Overview → ML Predictions and Purchases → Purchase Behavior |
| What did we send them, and what did they reply? | Messages tab (sent by campaigns and journeys, replies over SMS/WhatsApp) |
| Which devices can receive push? | Recent Devices (push token, web push status) |
Related
-
Retention Analysis - retention over time across the whole audience
-
Event Explorer - workspace-wide event analytics