{"id":68328,"plugin_id":"plugin_asdk_app_6ad62fc9c0208191b0683a6b5829d0a8","kind":"skill","collection_source":"plugin_package","comparison_source":null,"observed_at":"2026-10-28T13:14:26.063Z","digest":"1c049a389c1cda23a3589f847032f09525f3a97fe03371df744712c09986b106","against":null,"payload":{"description":"Route vendor and payables questions to Yardi Virtuoso Procure-to-Pay MCP tools. Use this skill whenever someone asks about vendors, vendor lists, vendor status, vendor categories, invoices, payables, bills, accounts payable, payment status, purchase orders, vendor spend, expense tracking by vendor, or any procure-to-pay data. Also trigger when the user mentions \"vendor\", \"payable\", \"invoice\", \"bill\", \"AP\", \"accounts payable\", \"payment\", \"supplier\", or asks about who they're paying or how much they owe. Even if the user doesn't use these exact terms — if they're asking about vendor management or invoice/payment tracking, use this skill. Do NOT use for financial reports (use GL Manager), work orders (use Work Order Manager), or KPIs (use AssetIQ).\n","included_files":[],"name":"virtuoso-p2p-manager","skill_md_contents":"---\nname: virtuoso-p2p-manager\ndescription: >\n  Route vendor and payables questions to Yardi Virtuoso Procure-to-Pay MCP tools.\n  Use this skill whenever someone asks about vendors, vendor lists, vendor status, vendor\n  categories, invoices, payables, bills, accounts payable, payment status, purchase orders,\n  vendor spend, expense tracking by vendor, or any procure-to-pay data. Also trigger when\n  the user mentions \"vendor\", \"payable\", \"invoice\", \"bill\", \"AP\", \"accounts payable\",\n  \"payment\", \"supplier\", or asks about who they're paying or how much they owe. Even if\n  the user doesn't use these exact terms — if they're asking about vendor management or\n  invoice/payment tracking, use this skill. Do NOT use for financial reports (use GL Manager),\n  work orders (use Work Order Manager), or KPIs (use AssetIQ).\n---\n\n# Virtuoso P2P Manager\n\nThis skill routes vendor management and payables questions to Yardi Virtuoso's Procure-to-Pay\ntools. Payables tools use **HMY IDs** (integers) for property and vendor filters. Use\n`get_autocomplete` to resolve names to HMY IDs before filtering.\n\n## Tool Catalog (4 tools)\n\n| Tool | When to use |\n|------|------------|\n| `p2p_vendormcp_get_vendors` | List or search vendors. Optional filters: `status` (`\"active\"`, `\"inactive\"`, `\"all\"`), `category`, `expenseType`, `vendorCode`, `maxResults` (default 1000), `includeTransactionInfo` (shows last transaction date/amount). |\n| `p2p_payable_get_payables` | List payables/invoices. Required: `DateFrom`, `DateTo`. Optional: `PropertyIds` (int array), `VendorIds` (int array), `Status`, `BatchIds`, `PayableIds`, `PostMonthFrom`/`PostMonthTo`, `ItemsPerPage`, `StartIndex` for pagination. |\n| `vn_mcpframework_get_autocomplete` | **Call first to resolve property/vendor names to HMY IDs.** Pass `autoCompleteType` (`\"property\"` or `\"vendor\"`) and `searchTerm`. The `id` field in results is the HMY ID. |\n| `vn_mcpframework_list_autocomplete_types` | Discover available entity types for autocomplete. |\n\n## Routing Logic\n\n1. **User asks about a vendor list or vendor lookup?**\n   - → `get_vendors` with optional filters (`status`, `category`, `expenseType`)\n   - For a specific vendor by code → `get_vendors` with `vendorCode`\n\n2. **User asks about invoices, payables, or bills?**\n   - → `get_autocomplete` with `autoCompleteType: \"property\"` and/or `\"vendor\"` to get HMY IDs\n   - → `get_payables` with `DateFrom`/`DateTo` and optional `PropertyIds`/`VendorIds`\n\n3. **User asks about vendor spend or payment history?**\n   - → `get_vendors` with `includeTransactionInfo: true` for last transaction overview\n   - → `get_payables` filtered by `VendorIds` for detailed transaction list\n\n## Workflow Recipes\n\n### Vendor Directory\n**Trigger**: \"Show me our active vendors\" / \"list all vendors\"\n1. `get_vendors` with `status: \"active\"`, `includeTransactionInfo: true`\n2. Present: vendor name, code, category, last transaction date/amount\n3. Highlight vendors with no recent activity if relevant\n\n### Vendor Spend Detail\n**Trigger**: \"How much are we paying [vendor]?\" / \"show me invoices from [vendor]\"\n1. `get_autocomplete` with `autoCompleteType: \"vendor\"` and vendor name → get HMY ID\n2. `get_payables` with `VendorIds: [<HMY_ID>]`, `DateFrom`/`DateTo` for the period\n3. Present: total spend, invoice count, individual invoice details\n\n### Property Payables Review\n**Trigger**: \"Show me all payables for [property]\" / \"what invoices are pending?\"\n1. `get_autocomplete` with `autoCompleteType: \"property\"` and property name → get HMY ID\n2. `get_payables` with `PropertyIds: [<HMY_ID>]`, `DateFrom`/`DateTo`\n3. Present: total payable amount, vendor breakdown, status summary\n\n### Vendor Category Analysis\n**Trigger**: \"Show me all our landscaping vendors\" / \"vendors by category\"\n1. `get_vendors` with `category` filter and `includeTransactionInfo: true`\n2. Present: vendor list with spend data, sorted by category\n\n## Common Pitfalls\n\n- **`get_payables` requires `DateFrom` and `DateTo`** — always specify a date range.\n- **`PropertyIds` and `VendorIds` in `get_payables` are integer arrays** (e.g. `[3, 35]`), not strings. Use `get_autocomplete` to get these HMY IDs.\n- **Never use `search_properties` for P2P tools** — it returns property codes, not HMY IDs. Always use `get_autocomplete`.\n- **`get_vendors` returns up to 1000 results by default.** Adjust `maxResults` for larger datasets.\n- **`includeTransactionInfo: true` adds the last transaction date and amount** to vendor results — useful for spend overviews without pulling full payables.\n\n## Presentation Guidelines\n\n- **Lead with totals.** Total spend, total invoices, total vendors — then break down.\n- **Group payables by vendor or property** depending on the question.\n- **Flag large invoices or unusual amounts** proactively.\n- **Use AP terminology naturally.** Invoice, payable, batch, post month, vendor code.\n- **Cite Yardi Virtuoso as the data source.**\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}