Most CRM Analytics dashboards open the same way for every viewer: a title, a set of filters, and a wall of charts. Functionally that's fine, but it also makes the dashboard feel dull an unpersonalized for the person looking at it.

One small change fixes that: greet the user by name when the dashboard loads. It takes a single custom query and a text widget, and it's one of those details that quietly signals a dashboard was designed with care.

Here's how to set it up, plus a few things worth knowing before you ship it.

Why even bother with a personalized greeting

CRM Analytics dashboards are often shared across teams, regions, or partner organizations, and the same asset gets reused by dozens or hundreds of people. A greeting doesn't change the data, but it does three useful things:

It confirms to the viewer that they're looking at *their* view of the dashboard, which matters more than it sounds once you're layering in row-level security or user-based filtering. It gives you a natural place to surface other user-specific context later — role, region, last login — without redesigning the layout. And it simply makes the dashboard feel a bit more welcoming.

Step 01: Create a custom query against the User object

In Analytics Studio, add a new Custom Query widget to your dashboard (or open the dashboard editor and add one from the widget panel). When prompted to select a data source, choose Salesforce Object, then search for and select User.

Step 02: Write the SOQL

SELECT FirstName FROM User WHERE Id = '!{User.Id}'

!{User.Id} is a CRM Analytics bind variable that resolves to the Id of whoever is currently viewing the dashboard — so this query automatically returns a different row for every viewer, with no filters or parameters to manage.

A couple of notes on the query itself:

FirstName reads more naturally in a greeting than Name, which would return the full name and make "Welcome, Rasmus Dyhr" feel a bit more like a form letter than a hello. Use whichever field fits your tone — Name, FirstName, or even Alias all work the same way.

If your org allows blank first names (some integration or system users don't have one set), FirstName will come back null for those users. It's worth deciding upfront whether that's acceptable or whether you want a fallback — more on that below.


Step 03: Wire the query into a text widget

Add a Text widget to the dashboard, then use Add Query Data. Select the query you just built, choose the FirstName field, and check Result under Interaction Type. This binds the widget's text to the query's output at render time, so the widget updates per-viewer without any extra configuration.

From there, format the text however fits your dashboard's style — a bold, colored "Welcome, {FirstName}" banner across the top works well as a first pass.


A few things to watch for

Null or missing names. As mentioned above, not every User record has FirstName populated. If your dashboard is viewed by integration users, community users, or anyone provisioned without a full profile, you'll want to handle the blank case — either with a generic fallback greeting or by filtering those edge cases out of your testing plan.

Guest and unauthenticated users. If the dashboard is embedded somewhere that allows guest access, !{User.Id} will resolve to the guest user, and the greeting will reflect that generic record rather than a real person. Decide whether the greeting widget should even render in guest contexts.

Row-level security is separate from this. This query only reads the User object to fetch a name — it doesn't enforce any data-level security by itself. If you need the rest of the dashboard to be scoped per-user, that's a separate security predicate or sharing configuration, not something this technique provides on its own.

It's a pattern, not just a greeting. Once you have a working query against User.Id, you can extend it to pull in a role, a manager's name, a region, or anything else on the User record (or a related object) — and use it to drive conditional formatting, default filters, or other light personalization elsewhere on the dashboard.

Wrapping up

It's a small piece of configuration — one custom query and one text widget — but it changes how a dashboard feels to open. If you try this on one of your own dashboards, we'd like to hear how it goes, and whether you take the personalization further than a greeting.