---
name: handout-account-support
description: Turn an Owner or Property Manager's company/contact change or problem description into a reviewed Handout profile update or support request; read public replies without administrator notes or credential/role changes. Not Tenant or SP self-service.
metadata:
  version: 1.1.1
---

# Handout Account and Support

## Check for Skill Updates

At each activation, read `https://handout.us/oauth/agent-setup` and compare this package's `metadata.version` with `skill_release.versions` for its name. If a newer version is available, tell the user in their conversation language and offer to update the installed Skill and its complete declared files in the same language. Preserve working connections, credentials and permissions; continue the current business task without waiting for an update. Treat an MCP `handout_notice` as the same check and avoid repeating the reminder for this release in the conversation. Report installation only after the host confirms it. If version discovery is unavailable, continue without claiming the Skill is current or outdated.

Language: English. [中文说明](https://handout.us/skills/handout-account-support/zh-CN/SKILL.md). For installation, choose the setup catalog's matching localizations entry and preserve its files; instruction language does not choose the business-data storage language.

Audience: Owner and Property Manager (PO/PM) workflows only. Tenant and SP Skills are not available. Confirm the caller's intended PO/PM workflow; managed Tenant profiles do not create Tenant logins or grant access.

Use the connected user's own account. If connection is missing, use [Handout Connection Guide](https://handout.us/skills/handout-connect/SKILL.md). Keep credentials in secure client settings. Discover `me.get`, then `app_schema.get` for `account` or `support` and use the live accepted fields.

A query-only connection may read but cannot stage changes. Ask for explicit write authorization before a requested update or support submission; do not silently upgrade access.

## Translate the User's Intent

"My company is now Oak Management" proposes an edit of this caller's company profile, not property ownership or another user's account. Read account.get, use canonical company_name (or user_name,phone,address for their corresponding facts), and show returned alias changes in the preview.

"Upload keeps failing" is initially a problem report, not a completed Support form. Use the description and safe error evidence to draft subject,description,category and related record when known. Ask only for missing reproduction facts; do not invent a cause or require the user to retrieve system logs. A request for troubleshooting alone does not authorize sending the support message.

"Did Support answer?" is a read of the caller's existing ticket, not a second new request. Search before proposing duplicates; no arbitrary edits of a saved ticket or agent reply actions are currently exposed.

## Profile

1. `account.get` reads contact/company fields.
2. Prepare changes using `account.prepare_update(data:{...})`. Follow the live allowlist, not every field returned elsewhere. Company/name/phone/address aliases may change together; include the server's full before/after diff in confirmation.
3. Ask for explicit approval, then call `account` with `action:"confirm_update",preview_id,user_confirmed:true`. Changed content or revision requires a new preview.
4. A profile edit does not change authentication email, property roles, ownership, keys, quotas, billing or plans. Route those requests to the actual supported workflow rather than submitting hidden fields.

Preserve personal/company names, phone numbers and addresses exactly. A company name used in reporting is profile data, not proof of access to another person's portfolio.

## Support

- `support.list` lists the caller's requests. `get(ticket_id)` reads the caller's ticket and public replies, never internal admin notes.
- Prepare a new message with `data:{subject,description,category?,priority?,attachments?,related_entity_type?,related_entity_id?}`. Use the live attachment schema and real file references, not invented URLs.
- Capture the user's issue, minimal reproduction steps, expected/actual behavior and safe error/support reference. Confirm whether newly written message text should be stored in English or the original language; the caller translates only with agreement.
- Show the final message, related target, category/priority and attachment list. Obtain approval, then `confirm_create` with only `action,preview_id,user_confirmed:true`.
- The result creates a request in Handout's existing admin inbox. It is not a promise of resolution, billing credit or an administrator reply. Check the returned ticket before reporting success; reread after a timeout instead of creating duplicates.
- Do not put passwords, API keys, access/refresh tokens, authorization codes, raw credential-bearing URLs or full sensitive logs into a ticket. Ask for a redacted error or support reference instead.

Attachments use actual authorized file URLs with names and optional content_type, not local paths or invented links. Current Storage uploads require an accessible property; a user without one can still submit text. Do not create a fake Property to upload a screenshot or claim personal Support upload exists when the live tools do not provide it.

Users do not reply as administrators or change internal triage fields through this Skill. If the live MCP lacks an action, state that it needs App/service support.

For connection failures follow the connection guide's bounded recovery. A failed attempt does not remove a successful connection; preserve old credentials, and ask before creating or revoking any credential. Installing this Skill alone does not establish a working account connection.
