Skip to content

User Disambiguation

How VERA identifies a user when a tool needs a target person.


Resolution order

When a tool receives a user reference, VERA resolves it in this order:

  1. Slack mention (user_slack_id or pm_slack_id) — always resolved via mention-matching, never name-matching
  2. Internal ID (user_id) — direct integer lookup
  3. Name string (user_name, pm_name, vendor_name, person, current_name) — exact-match or dialing menu

Mention forms (Rule A — bulletproof)

When the message contains any of the following, VERA extracts the Slack user ID directly and looks up the user without any name matching:

FormExample
Standard mention<@U0ADQ6UAVKR>
Mention with label<@U0ADQ6UAVKR|alice>
Bare Slack user IDU0ADQ6UAVKR
Markdown profile link[@alice](https://workspace.slack.com/team/U0ADQ6UAVKR)
Bare profile URLhttps://workspace.slack.com/team/U0ADQ6UAVKR
At-handle@alice (requires Slack API lookup)
Email mention<mailto:alice@example.com|alice@example.com> (requires Slack API lookup)

If the Slack user ID is extracted but that person is not registered in VERA, the error is exact: "that Slack user (UXXXXXXXX) isn't registered in VERA yet." VERA never falls back to a name search.


Name-based resolution (Rule B — exact or menu)

When a plain name is provided (e.g. user_name: "Alice"), VERA applies a two-step process:

Step 1 — Exact match (case-insensitive) If exactly one user's name matches the query, VERA proceeds without confirmation. If two users have the same name, a dialing menu is shown for both.

Step 2 — Fuzzy candidates (always a menu, never auto-pick) If no exact match is found, VERA collects candidates via:

  • Substring match (query contains stored name or vice versa)
  • Word-overlap match (any word in the query matches a word in a stored name)
  • Levenshtein distance ≤ 2 and ≤ 30% of the longer string

Even if only one fuzzy candidate is found, VERA shows a numbered menu. It never auto-picks a near-miss.


Dialing menus

When VERA cannot auto-resolve a name, it returns a numbered list:

Multiple matches for "Al". Reply with the number:

1. Alice (owner)
2. Alan (user)

Reply with the number (e.g. 1). VERA resumes the original action immediately — no re-paraphrase, no re-confirmation.

The pending action expires after 10 minutes. If you send any other message in the meantime, the pending action is discarded.


No match

If no candidates are found at all, VERA returns:

❌ Failed: no user named "Zephyr" exists. Check the spelling or add them first.

Use list users to see the current roster.

VERA by talktalkmake