Copy as markdown[View .md](https://docs.funnelfizz.com/concepts/users "View the raw markdown for this page")[Open in Claude](https://claude.ai/new?q=Read%20https%3A%2F%2Fdocs.funnelfizz.com%2Fconcepts%2Fusers.md%20and%20help%20me%20with%20this%20FunnelFizz%20topic%3A%20Users "Open this page in Claude with context")[Open in ChatGPT](https://chat.openai.com/?q=Read%20https%3A%2F%2Fdocs.funnelfizz.com%2Fconcepts%2Fusers.md%20and%20help%20me%20with%20this%20FunnelFizz%20topic%3A%20Users "Open this page in ChatGPT with context")

# Users

A user (sometimes called a *profile* in the schema) is FunnelFizz's record of one real person. Every visitor gets a row the moment they fire their first event. As more identifying signals arrive (an `identify` call, a Stripe checkout, an email click) they're stitched onto the same record so you end up with one row per actual human, not one per cookie.

This is where the funnel stops being numbers and becomes individual customers you can read about.

For the stitching mechanics, see [Tracking & identity](https://docs.funnelfizz.com/concepts/tracking.md).

## In the dashboard[​](#in-the-dashboard "Direct link to In the dashboard")

**Users** in the left nav opens a searchable, sortable, filterable table. Click any row to open the detail page.

The detail page shows three things:

1. **Header.** Name (or visitor ID if anonymous), email, country, device, browser, identified-at timestamp, lifetime totals (sessions, pageviews, goals, total spent).
2. **Funnel cards.** One per funnel this person is in: current stage with the trichotomy bucket (Retained / Upgraded / Churned), stage history timeline, engagement score, first source / referrer / UTM, subscription status and plan.
3. **Activity timeline.** Reverse-chronological list of every event for this person across every device and funnel.

## What lands on the activity timeline[​](#what-lands-on-the-activity-timeline "Direct link to What lands on the activity timeline")

The timeline updates automatically as the person interacts with you. Events come from six sources:

| Source                              | Events you'll see                                                                                                                |
| ----------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- |
| **Tracking script**                 | `pageview`, `goal`, `identify`, `form_start`, `form_submit`, `outbound_click`, `session_start`, plus any `custom` event you fire |
| **Stripe webhooks**                 | `stripe_trialing`, `stripe_active`, `stripe_canceled`, `payment`, `trial_ending_soon`                                            |
| **Email engine**                    | `email_sent`, `email_delivered`, `email_open`, `email_click`, `email_bounced`, `email_complained`                                |
| **Form submissions**                | `form_submission` for FunnelFizz-hosted forms                                                                                    |
| **Stage-entry API**                 | `stage_entry_api` for explicit stage promotions                                                                                  |
| **Cohort + automation diagnostics** | `cohort_assigned`, `stage_exited`, `cohort_unresolvable_at_replay`, `automation_trigger_evaluated`                               |

Each event carries enough context to read at a glance: path + referrer for pageviews, campaign name for email events, product + amount for Stripe events.

### Cohort + automation diagnostic events[​](#cohort--automation-diagnostic-events "Direct link to Cohort + automation diagnostic events")

Four event types are written by FunnelFizz itself to make cohort and automation behavior auditable:

| Event                           | When it fires                                                                                                                                                                                                                                  | Useful for                                                                                                     |
| ------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- |
| `cohort_assigned`               | A profile joins a [split](https://docs.funnelfizz.com/concepts/splitting.md) track at a stage.                                                                                                                                                 | Confirming which branch a profile actually landed on, with the trackId in metadata.                            |
| `stage_exited`                  | An open cohort membership closes (cancel, downgrade, archive).                                                                                                                                                                                 | Tracking when someone leaves a paid tier or extension cohort. The `reason` says why.                           |
| `cohort_unresolvable_at_replay` | A [Stripe history replay](https://docs.funnelfizz.com/getting-started/connect-stripe.md#what-backfill-can-and-cant-resolve) couldn't evaluate a track condition for this profile (e.g. geography on a customer with no prior tracking events). | Spotting profiles that need manual track resolution.                                                           |
| `automation_trigger_evaluated`  | An [automation trigger](https://docs.funnelfizz.com/concepts/automations.md#why-didnt-my-automation-fire) ran for this profile.                                                                                                                | Diagnosing "why didn't my automation fire?" — the event records whether the profile enrolled and, if not, why. |

## Tags and custom fields[​](#tags-and-custom-fields "Direct link to Tags and custom fields")

Per-funnel-link, not per-user, so the same person can be tagged differently across funnels.

* **Tags** — short labels ("design-partner", "high-value") that filter the list view.
* **Custom fields** — arbitrary key/value pairs you set via `funnelfizz('identify', { userId, plan: 'pro' })`. Surface on the detail page; queryable in splits.

## Reading users via your AI agent[​](#reading-users-via-your-ai-agent "Direct link to Reading users via your AI agent")

Two MCP tools (PRO), both read-only:

| Tool                  | What it returns                                 |
| --------------------- | ----------------------------------------------- |
| `search_profiles`     | Paginated user search by email or name          |
| `get_profile_journey` | Latest 100 events for one user (PII redactable) |

So *"show me the journey for the person who just signed up"* runs as one tool call. See [MCP](https://docs.funnelfizz.com/ai-agents/mcp.md).

## Privacy[​](#privacy "Direct link to Privacy")

Users are workspace-scoped. Deleting a user (detail page → Delete) removes the row, all identifiers, all funnel links, and every tracking event. Use this for GDPR right-to-be-forgotten requests.

***

**Related:** [Tracking & identity](https://docs.funnelfizz.com/concepts/tracking.md) · [Conversion](https://docs.funnelfizz.com/concepts/conversion.md) · [MCP](https://docs.funnelfizz.com/ai-agents/mcp.md)
