Walkthrough
Examples
Attributes are whatever you want them to be. Some common shapes:- Stage of buyer journey: awareness, consideration, decision.
- Audience type: SMB, mid-market, enterprise.
- Use case: ergonomics, productivity, aesthetics.
- Geography or market when one project covers multiple regions.
- Anything specific to your client’s business that you want to be able to slice on.
Built-in vs custom
OpenLens ships a small set of built-in attributes that get assigned automatically. Everything else you define yourself.- Built-in:
- Branded: assigned to prompts that name a brand (your own or a competitor) in the question itself. See the worked example below.
- Language: one tag per language present in your project (English, Italian, Spanish, etc.), assigned by the language the prompt is written in.
- Custom: anything you add at the project level. Platform, audience, journey stage, geography, whatever you want. No real limit on count.
How attributes get assigned
Four paths a prompt can pick up attributes:- During onboarding. You list the attributes you care about up front. OpenLens auto-generates prompts that try to fit them, and labels each generated prompt with the attributes it fits best.
- Inline when editing a prompt. Open any prompt in the Prompts tab, type a new attribute in the attribute field, click the plus (creates the project-level attribute if it doesn’t exist), then Save. Useful when you discover a useful slice mid-flight.
- In Settings. Project-level attribute management for bulk add, edit, and archive.
- Via the MCP server or REST API. Same actions exposed programmatically. See the MCP server and REST API.
How attributes flow through OpenLens
Once a prompt has an attribute, that attribute is available as a filter everywhere downstream:- Dashboard: filter the visibility score by attribute. Compare your awareness-stage SOV against your decision-stage SOV.
- Citations: see which sources get cited for which slice of your prompt library.
- Reports: include per-attribute breakdowns in PDF exports.
- MCP and REST API: every read endpoint that returns scores or mentions accepts an attribute filter parameter.
Filter modes
The dashboard’s attribute filter has three modes you can mix:- All of: a prompt has to have every selected attribute to pass. Use this to narrow down to an intersection (branded AND Italian).
- Any of: a prompt only needs one of the selected attributes. Use this to union (Italian OR English).
- Hide: exclude every prompt with the selected attribute. Use this for negation (hide branded to see only unbranded).
Example: branded vs unbranded
The clearest example of why attributes matter. A prompt can name a brand in the question itself or not. OpenLens ships this as an attribute on every prompt.- Branded prompts name your brand or a competitor in the question. Example: ‘Is Acme better than Roost for desk setups?’
- Unbranded prompts describe a need without naming any brand. Example: ‘Best laptop stand for a standing desk.’
- Branded SOV answers: when someone asks about us by name, what does the model say?
- Unbranded SOV answers: when someone asks for the category we live in, do we even come up?
Lifecycle
- Add an attribute in project settings, or directly when editing a prompt.
- Edit an attribute’s value on a prompt by opening the prompt and changing the attribute.
- Archive a custom attribute. Marks it inactive for new prompts. Existing prompts keep the historical label so reports stay readable.
- Unarchive. Same place, reverses the archive.
How to use it
- Pick two or three attributes that match the way you talk about your client’s market. Add them up front.
- Audit your prompts after the first run. Anything mis-labeled? Fix it.
- Apply attribute filters on the dashboard to validate that your slices look like the business.
- When a client asks ‘how are we doing for [audience X]?,’ filter by that attribute and have the answer in one click.
- If the manual tagging is taking too long, drive it from Claude via MCP. The MCP tools cover add, remove, archive on attributes and edit on individual prompts.