⚙️ App not configured — click Settings after logging in to enter your SharePoint site URL and Azure App ID

IT Asset Manager

🔒 Access is restricted — contact the IT Systems Team if you need to be registered.

💻
Total Laptops
India + Onsite
🖥️
Total Desktops
IND only
👤
Assigned
Active users
Available
Ready to deploy
🔧
Under Repair
In service
↩️
Return Pending
Needs collection
🚪
EXIT Pending
EXIT returns
IND Laptops
Laptops · India offices
— assets
Assigned
Available
Under Repair
Return Pending
EXIT Pending
Status
OS Distribution
Emp Type
Top Locations
Onsite Laptops
Laptops · Onsite offices
— assets
Assigned
Available
Under Repair
Return Pending
EXIT Pending
Status
OS Distribution
Emp Type
Top Locations
IND Desktops
Desktops at India offices
— desktops
Assigned
Available
Under Repair
Return Pending
Status Breakdown
Top Locations
Virtual Machines
Cloud & on-premise VM provisioning overview
— VMs
Active
Expired
Expiring Soon
Unassigned
Datacenters
By Datacenter
By Purpose
Scroll right for more columns
Asset ID Serial # Brand & Model Status Location Assigned To Assign Date OS CPU RAM Storage Warranty Actions
Scroll right for more columns
Asset ID Serial # Brand & Model Status Location Assigned To Assign Date OS CPU RAM Storage Warranty Actions
Scroll right for more columns
Asset ID Serial # Brand & Model Status Location Assigned To Assign Date OS CPU RAM Storage Warranty Actions
SW ID Software Name Category License Key Assigned To Department Issue Date Expiry Status Actions
Asset ID Ref Type Brand & Model Serial # Status Location Assigned To Issued Date Warranty Actions
Line # Country Username Assigned Device Issued Date Status Actions
Employee:
TimestampActionList Asset / RefChanged ByChanges
1 — Choose Target & Download Template
CSV Columns
Required: AssetID, SerialNumber, Brand, Model, Status, OS, Location
Optional: AssetType, SubStatus, EmpType, CPU, RAM, Storage, AssignedTo, AssignDate, WarrantyExpiry, PurchaseDate, PreviousUser, ReturnedDate, ReturnReason, Notes
EmpType valid values:
FTE-IND, FTE-US, FTE-UK, FTE-CAN, SUBK-IND, SUBK-US, SUBK-UK, SUBK-CAN, FREELANCER, IND-INTERN, US-INTERN, UK-INTERN, CAN-INTERN
AssetType defaults to Laptop if blank. Dates must be YYYY-MM-DD.
2 — Upload CSV
📂
Drag & drop CSV here
or click to browse
⚠️ Tick the confirmation checkbox first
📔
Daily Diary Bulk Import
One-time historical import — for migrating existing diary records into SharePoint
CSV Columns
Required: Date, Courier, HandledBy, ShipmentMode
Optional: SNo, PackageInfo, SerialNumber, TrackingNumber, Comments
Date: YYYY-MM-DD  |  ShipmentMode: Inbound / Outbound  |  SNo auto-assigned if blank
Upload CSV
📔
Drag & drop CSV here
or click to browse
⚠️ Tick the confirmation checkbox first
S.No Date Courier Handled By Shipment Mode Package Info Serial # Tracking # Comments Actions
Step 1 — Select Employee
VM ID Datacenter VM IP OS Purpose Status Current Owner Previous Owner Emp Type Assigned Date Valid Till Notes Actions
Part 1 — Create SharePoint Lists
  1. 1
    Go to your SharePoint site
    Open your SharePoint site in a browser. If you don't have one, create one at sharepoint.com → Create site → Team site. Name it something like IT Assets
  2. 2
    Create the "AssetsIndia" list
    Click New → List → Blank list. Name it exactly AssetsIndia. Then add these columns: Entity (default: "india"), AssetID (Single line), AssetType, Brand, Model, SerialNumber, OS, CPU, RAM, Storage, Condition, Status, Location, AssignedTo, AssignDate (Date), PurchaseDate (Date), WarrantyExpiry (Date), Cost (Number), AssetTag, PreviousUser, Notes (Multiple lines)
  3. 3
    Create the "AssetsOnsite" list
    Repeat the same steps as AssetsIndia. Name it exactly AssetsOnsite with identical columns but Entity defaulting to "onsite". This separates India and Onsite asset inventories while allowing global search in Exit Checklist.
  4. 4
    Create the "Phones" list
    Name it exactly Phones. Add columns: DateRequested (Date), Username (Single line), RequestType (Choice), DeviceType (Choice), LineNumber, UpgradeEligible (Choice: Yes/No), CurrentDevice, Issue, TradeInValue (Number), CheckAmount (Number), AssignedDeviceModel, UpgradeBuyOutCost (Number), IssuedDate (Date), Acknowledgment (Choice), OldDeviceStatus (Choice), Comments (Multiple lines), RecycleNo, RecycleAmount (Number). Restrict permissions so only Super Admins can access this list.
  5. 5
    Create the "EquipmentAssignments" list
    Repeat — New → List → Blank list. Name it exactly EquipmentAssignments. Columns: RecordID, EmployeeName, Department, EquipType, Brand, Model, SerialNumber, Condition, IssueDate (Date), IssuedBy, AssetRef, Acknowledged, ReturnDate (Date), ReturnReason, Notes
  6. 4
    Create the "Employees" list
    Name it exactly Employees. Columns: EmployeeName (Single line), Department, Email, Location. Add all your staff here — this feeds the dropdowns.
  7. 5
    ⭐ Create the "RoleAssignments" list (required for cross-device permissions)
    Name it exactly RoleAssignments. Add exactly 2 columns: UserEmail (Single line of text) and Role (Choice — choices: superadmin, admin, editor, viewer). Leave the list empty for now — you will populate it via the Roles & Access page inside the app. Important: only your IT Super Admins should have Edit/Contribute access to this list. Super Admin = full access including Phones page. Admin = same as before but no Phones. Editor = add/edit but no delete. Viewer = read-only.
Part 2 — Register the App in Azure AD
  1. 1
    Open Azure Portal
    Go to portal.azure.com → sign in as Global Admin → search for App registrations
  2. 2
    New Registration
    Click New registration. Name: IT Asset Manager. Supported account types: Accounts in this organizational directory only. Redirect URI: select Single-page application (SPA) and enter the URL where you host this HTML file (e.g. https://yoursite.netlify.app or http://localhost for local testing)
  3. 3
    Copy your IDs
    After creating, copy the Application (client) ID and the Directory (tenant) ID — you'll need both in Settings
  4. 4
    Add API Permissions
    Go to API permissions → Add a permission → Microsoft Graph → Delegated permissions. Add: Sites.ReadWrite.All and User.Read. Then click Grant admin consent
  5. 5
    Enter details in Settings
    Go to the Settings page in this app and paste in your Client ID, Tenant ID, and your SharePoint site URL. Click Save & Connect.
💡 Version History & Rollback

SharePoint Lists automatically track every single change made to every row. To view or restore a previous version:

1. Open your SharePoint site → go to the Assets list
2. Click the three dots next to any row
3. Select Version history
4. You'll see every edit with timestamp and who made it
5. Click Restore on any version to roll back

This is completely automatic — no setup needed.

🔗 SharePoint Connection
If blank, falls back to the hardcoded Azure Static Web App URL
⚠️ Security note: Client ID and Tenant ID are non-secret identifiers — safe to store here. Never paste a Client Secret into a browser app.
⚡ Power Automate Webhook URLs

Paste the HTTP trigger URL from each Power Automate flow.

Auto-fires last day of month + manually via "📊 Send Report" on Dashboard
Fires when 🔔 Notify is clicked on any asset or equipment row
Fires from the Email Report button on Asset Lookup page
Auto-fires when Exit Checklist is marked complete
📖 Power Automate Setup — Create One Flow, Reuse for All Notifications
  1. 1
    Open Power Automate
    Go to make.powerautomate.com → Create → Instant cloud flow → name it e.g. IT Assets — Email Sender
  2. 2
    Set trigger: "When an HTTP request is received"
    Search HTTP in triggers → select When an HTTP request is received. Set Method: POST. Paste this as the Request Body JSON Schema:
    {"type":"object","properties":{"subject":{"type":"string"},"body":{"type":"string"},"to":{"type":"string"}}}
  3. 3
    Add "Send an email (V2)" action
    + New step → Office 365 Outlook → Send an email (V2)
    To: triggerBody()?['to']
    Subject: triggerBody()?['subject']
    Body: triggerBody()?['body'] (set to HTML mode)
  4. 4
    Save → Copy URL → Paste above
    Save the flow. Copy the HTTP POST URL. You can use the same URL for all webhook fields — the email content differs but the flow is identical.
  1. 5
    Monthly auto-schedule (optional)
    Create a Scheduled cloud flow → repeat every 1 month → check if formatDateTime(utcNow(),'dd') equals the last day of the month → call HTTP POST to your webhook URL.
  2. 6
    Test each button
    Use the Test buttons below to verify. You should receive an email within 30 seconds. Check Power Automate run history if anything fails.
  3. 7
    Emails come from your account
    All emails are sent from your Microsoft 365 account — no external services, no extra cost.
Send test emails:
📋 Dropdown Lists

Edit these comma-separated values to control all dropdowns in the app. Changes take effect immediately after saving.

👤 Employee Types Reference

These are the fixed employee types used in the app. They are not editable — contact a superadmin if you need a new type added.

${['FTE-IND','FTE-US','FTE-UK','FTE-CAN','SUBK-IND','SUBK-US','SUBK-UK','SUBK-CAN','FREELANCER','IND-INTERN','US-INTERN','UK-INTERN','CAN-INTERN'].map(t=>`${t}`).join('')}
🏷️ Asset Status Reference

Fixed status values and their sub-status options.

StatusSub-Status Options
${statusBadge('Assigned')}
${statusBadge('Available')}New · ReadyToAssign · ResetDue · ClearanceDue
${statusBadge('Under Repair')}Cosmetic-Damages · Repair · Repair-External
${statusBadge('Pending Return')}
${statusBadge('EXIT - Return Pending')}
${statusBadge('Retired')}
${statusBadge('Lost/Stolen')}
Powered by Power Automate — emails sent from your Microsoft account
Each button calls a Power Automate HTTP trigger webhook. Set up the flows once (instructions below), paste the URLs into Settings, and all emails are sent through your M365 tenant automatically.
👤 Send All Assets Report for Employee:
📧 Email Recipients
Receives asset updates, equipment alerts, exit completion emails, monthly reports
CC'd on monthly dashboard reports only
⚙️ Enable / Disable
Monthly Report
Auto-sends last day of each month
🔔 Notify Buttons
On each asset and equipment row
⚡ Smart Paste — Auto-fill from Email
Paste employee details from email (table row or label:value format) — fields auto-detected and filled
Manual Entries
Auto-Populated
⚡ PowerShell Commands
Fill in the form and click Generate
Permission Matrix
Permission Superadmin Admin Editor Read-only
User Role Assignments

Roles are saved to the RoleAssignments SharePoint list — they apply on every device instantly. Unassigned users default to Read-only.

User Email Department M365 Status Role Actions

💡 Three roles available: Admin full access & role management  ·  Editor add/edit/delete + notifications  ·  Read-only view only, no changes.
Roles are stored in this browser's localStorage. For multi-device production use, store them in a SharePoint List named AppRoles (columns: UserEmail, Role).

🔔 Notification Log

No notifications sent yet