SAM Forms Specification
JSM portal forms for Software Asset Management. Enable SAM teams to manage software requests, track entitlements, record installations, monitor compliance, and process cost allocations through a governed self-service interface.
📖 25 min read
📝 Forms v1.0
💎 Pro Tier
Portal Structure
SAM Portal Groups
| Portal Group |
Forms |
SAM Function |
| Software Catalog |
New Publisher, New Product |
Maintain software catalog |
| License Management |
New Agreement, New Entitlement |
Manage license contracts |
| Deployment Tracking |
New Installation, Update Device |
Track software installations |
| Compliance |
Compliance Position, Compliance Report |
Monitor license compliance |
| Renewals |
New Renewal, Renewal Decision |
Manage agreement renewals |
| User Requests |
Software Request, License Reclamation |
User-facing requests |
Form: Software Request
Enable users to request new software licenses.
Field Specifications
| Field |
Type |
Required |
Help Text |
| Requested Software |
Assets Object Picker |
Yes |
Select the software you need |
| Request Type |
Select |
Yes |
New License, Additional License, Version Upgrade |
| Quantity |
Number |
No |
Number of licenses needed (default: 1) |
| Business Justification |
Textarea |
Yes |
Explain why you need this software |
| Target Device(s) |
Assets Object Picker (Multi) |
No |
Devices where software will be installed |
Form: New License Agreement
Register software license contracts with vendors.
Field Specifications
| Field |
Type |
Required |
Help Text |
| Agreement Name |
Text |
Yes |
Descriptive name (e.g., "Microsoft EA 2024-2027") |
| Publisher |
Assets Object Picker |
Yes |
Select the software vendor |
| Agreement Type |
Select |
Yes |
Enterprise Agreement, Volume License, Subscription, etc. |
| Agreement Number |
Text |
No |
Vendor's official identifier (required for audits) |
| Start Date |
Date |
Yes |
Agreement effective date |
| End Date |
Date |
No |
Agreement expiration (blank for perpetual) |
| Total Value |
Number |
No |
Total contract value |
| Auto-Renew |
Select |
No |
Does this agreement automatically renew? |
Conditional Logic
- When Total Value > $100,000: Show "Business Justification" textarea (required)
- When Total Value > $500,000: Show "Executive Sponsor" field, route to CFO
- When Auto-Renew = "Yes": Show "Auto-Renewal Notice Period (Days)" field
Form: New Entitlement
Document specific license grants under an agreement.
Field Specifications
| Field |
Type |
Required |
Help Text |
| Entitlement Name |
Text |
Yes |
E.g., "Microsoft 365 E3 - 500 Users" |
| Agreement |
Assets Object Picker |
Yes |
Select the license agreement |
| Product |
Assets Object Picker |
Yes |
Select the software product |
| Quantity |
Number |
Yes |
Number of licenses entitled |
| Metric |
Select |
Yes |
Per User, Per Device, Per Core, Per Processor, etc. |
| Unit Cost |
Number |
No |
Cost per license unit |
| Maintenance Included |
Select |
No |
Is support/updates included? Yes/No |
Form: License Reclamation Request
Request return of unused licenses.
Field Specifications
| Field |
Type |
Required |
Help Text |
| Reclamation Type |
Select |
Yes |
User License, Device License, Unused Installation |
| Affected User |
Assets Object Picker |
No |
User whose license is being reclaimed |
| Affected Device |
Assets Object Picker |
No |
Device from which license is being removed |
| Software Product |
Assets Object Picker |
Yes |
Product license being reclaimed |
| Reclamation Reason |
Select |
Yes |
User Terminated, Non-Usage, Budget, Hardware Retirement |
Approval Chain Design
Financial Thresholds
| Agreement Value |
Approval Authority |
| < $25,000 |
SAM Manager |
| $25,000 - $100,000 |
SAM Manager + Procurement Lead |
| $100,000 - $500,000 |
Finance Controller |
| > $500,000 |
CFO |
Object Picker Filters
Common Filter Patterns
| Picker |
Filter AQL |
| Active Software Products |
objectType = "Software Product" AND Status = "Active" |
| Active Publishers |
objectType = "Software Publisher" AND Status = "Active" |
| Active Agreements |
objectType = "License Agreement" AND Status IN ("Active", "Draft") |
| Active Users |
objectType = "User" AND Status = "Active" |
| Active Devices |
objectType = "Device" AND Status = "Active" |