Appearance
User Tools
add_user
Create a new team member. Owner only.
Writes to: 03. Users
Parameters:
| Param | Required | Description |
|---|---|---|
requesting_user_slack_id | ✅ | |
slack_user_id | ✅ | Must message the bot first for auto-detection |
user_name | ✅ | Display name |
role | ✅ | "owner" | "manager" | "user" |
discipline_id | FK → 08. Disciplines.id | |
employment_type | "fte" (default) | "contractor" | "vendor" | |
hours_per_week | Float. Working hours per week. FTE: omit — defaults to 40. Contractor: required — VERA will ask if not provided. Vendor: omit — defaults to 40 (not used for capacity). |
list_users
All active users with disciplines.
Reads from: 03. Users, 08. Disciplines
Inactive users appear with (inactive) next to their name.
update_user_role
Change a user's permission role. Owner only.
Updates: 03. Users col D
Parameters: requesting_user_slack_id, user_name or slack_user_id, new_role
rename_user
Change a user's display name. Owner only.
Updates: 03. Users col C
Parameters: requesting_user_slack_id, current_name or slack_user_id, new_name
assign_pm
Assign a project manager to a project. Owner only.
This is a two-in-one operation:
- Promotes the user to
managerrole (if currentlyuser) - Sets
pm_user_idon the project
Updates: 02. Projects col G, 03. Users col D
Parameters: requesting_user_slack_id, project_name, pm_name or pm_slack_id
If the user hasn't messaged the bot yet, they won't be in the system. They need to send at least one message to be auto-registered before they can be assigned as PM.
deactivate_user
Mark a user as inactive. They cannot log time or take any actions. Historical entries are preserved. Owner only.
Updates: 03. Users col E (status → "inactive")
Parameters: requesting_user_slack_id, user_name or slack_user_id
Natural language triggers: "delete user", "remove user", "deactivate user" — all map to this tool.
reactivate_user
Restore an inactive user. Owner only.
Updates: 03. Users col E (status → "active")
Parameters: requesting_user_slack_id, user_name or slack_user_id
Natural language triggers: "reactivate", "restore", "re-enable"
ensure_user
Internal tool — auto-creates a user record if one doesn't exist for the given Slack ID. Called automatically when a new person messages the bot. Creates with role = "user" and employment_type = "fte".
Display name auto-sync: On every message, VERA compares the caller's current Slack display name to the stored name. If they differ (e.g. after a Slack workspace rename), the stored name is silently updated. Manual renames via rename_user are only needed if you want a name different from what appears in Slack.
list_disciplines
All functional discipline categories.
Reads from: 08. Disciplines
Parameters: requesting_user_slack_id
add_discipline
Create a new functional discipline category. Owner only.
Writes to: 08. Disciplines
Parameters: requesting_user_slack_id, name
The words "Designer," "Developer," "Project Manager" may refer to a person name or a discipline. VERA confirms before acting when the context is ambiguous.
get_project_assignments
Who is allocated to a project. Manager/Owner.
Shared with Envelope Tools — documented there.