> ## Content Index
> Fetch the complete content index at: https://projectflow.co.uk/llms.txt
> Use this file to discover other available public pages before exploring further.

# JSM Onboarding System with Assets: Automatic Hardware Tracking (Premium)
- URL: https://projectflow.co.uk/jsm-onboarding-system-with-assets/
- Published: 2026-01-02T14:36:09.000Z
- Updated: 2026-01-23T17:14:43.000Z
- Author: Mike
- Tags: JSM, assets, tutorial

**Yesterday I showed you the complete onboarding system using JSM Standard.** Today, we're adding Assets for automatic hardware tracking.

New to Assets? Start with my [JSM Assets tutorial](https://projectflow.co.uk/jsm-assets-management/).

**Same client. Same 1,500-person insurance company.** But now we're tracking every laptop, monitor, and phone from assignment to return. Complete lifecycle management.

This is Part 2 of the 3-part onboarding series. If you haven't read Part 1: Complete Onboarding System, start there. I won't re-explain workflows or automation today—that's all covered in Part 1.

**Today's focus:** Pure Assets integration. How to connect your hardware database to your onboarding form. How to implement basic stock control. How to track equipment throughout the employee lifecycle.

## What's Different with Assets

The onboarding form looks almost identical to yesterday's version, but with crucial upgrades:

**Software Selection:** Now pulls from Assets database, allowing multiple selections

**Hardware Selection:**

- PC models (Dell Inspiron, HP EliteBook) pulled from Assets
- Mac models (MacBook Air, Pro) pulled from Assets
- Dynamic fields that change based on PC vs Mac selection
- **Basic stock control** \- only shows available equipment

**Backend Integration:**

- Assets appear on the right side of every ticket
- Full visibility into what's assigned
- Ability to update status directly from ticket
- Complete audit trail

**The power:** When someone requests a MacBook Pro during onboarding, you're not just noting it in a field. You're assigning a specific asset (serial number, specs, purchase date) and tracking it through its entire lifecycle with that employee.

## The Business Case for Assets

**JSM Premium costs $57.30/agent/month.** Standard is $25\. That's a $32.30 difference per agent.

Don't have Premium? See my [standard onboarding system](https://projectflow.co.uk/complete-jsm-employee-onboarding-system/).

**For 10 agents:** $323/month = $3,876/year extra

**Is it worth it?**

Let me tell you about this 1,500-person company. Before Assets:

- Using 3 separate tools to track equipment
- Still didn't know where half their laptops were
- "Ghost equipment" everywhere
- Compliance nightmares during audits

**After implementing Assets:**

- £10,000/year savings from tool consolidation
- Zero lost equipment
- Complete audit trail for compliance
- Equipment automatically tracked through employee lifecycle

**ROI achieved in under 3 months.**

If you're tracking equipment in spreadsheets, using separate asset management tools, or just... not tracking it at all, Premium pays for itself quickly.

## Step 1: Set Up Your Assets Database

Before connecting Assets to forms, you need an Assets database. Let's build one quickly.

### Access Assets (Premium Only)

1. Ensure you have JSM Premium activated (30-60 day free trial available)
2. Click **Assets** in the top navigation
3. You'll see the Assets management area

**First time here?** You'll be prompted to create an object schema.

### Choose Your Starting Point

Atlassian gives you three pre-built templates:

1. **IT Asset Management** (recommended for most)
2. **HR Management**
3. **Facilities Management**

**My recommendation:** Start with IT Asset Management template.

**Why?**

- Pre-configured object types (Laptops, Phones, Software, etc.)
- Sensible attributes already set up
- Proper relationships configured
- You can customize everything later

**To create from template:**

1. Click **Create Object Schema**
2. Select **IT Asset Management**
3. Name it: "IT Infrastructure" or "Company Assets"
4. Click **Create**

**Pro tip:** The out-of-the-box IT setup is actually pretty good. I added minor tweaks for clients, but you can use it as-is for most organizations.

### What You Get Out-of-the-Box

The IT Asset Management template includes:

**Object Types:**

- Laptops
- Desktops
- Mobile Devices
- Monitors
- Software Licenses
- Network Equipment

**Pre-configured Attributes:**

- Serial Number
- Manufacturer
- Model
- Purchase Date
- Warranty Information
- Status
- Owner/Assigned To

**This is 90% of what most organizations need.**

### Add Custom Object Types (Optional)

I added a "Mac" object type separate from "Laptops" for a client who wanted clear differentiation. But honestly, **you don't need to do this**. You can filter laptops vs Macs using AQL (I'll show you).

**Only add custom object types if:**

- Your organization has unique equipment categories
- You need very different attributes for different types
- Your workflow demands it

Otherwise, use the defaults.

### Critical Addition: Asset Status Field

The one thing I **always** modify: Asset Status options.

**Default statuses are usually:**

- Active
- Inactive

**I change this to:**

- **In Stock** (available for assignment)
- **In Use** (assigned to employee)
- **In Transit** (being shipped)
- **In Repair** (with IT/vendor)
- **Retired** (end of life)

**Why this matters:** Status drives your stock control. When someone requests equipment during onboarding, you only want to show "In Stock" items. Not items already assigned or in repair.

**To modify statuses:**

1. Go to your Assets schema
2. Click on "Laptops" object type
3. Click **Configure** \> **Attributes**
4. Find "Status" attribute
5. Click **Edit**
6. Modify the select list options
7. Click **Save**

### Add Some Demo Assets

Before connecting to forms, add 3-5 test assets:

**Example: Dell Laptop**

1. Navigate to "Laptops" object type
2. Click **Create Object**
3. Fill in:
  - Name: "Dell Inspiron 15 - SN12345"
  - Serial Number: "ABC123XYZ"
  - Manufacturer: "Dell"
  - Model: "Inspiron 15"
  - Status: "In Stock"
  - RAM: "16GB"
  - SSD: "512GB"
4. Click **Create**

**Add 2-3 more laptops** (mix of Dell, HP, maybe a Mac).

Set some to "In Stock" and one to "In Use" (for testing your AQL filters later).

## Step 2: Create the Asset-Enabled Form

Now let's modify your onboarding form to pull from Assets.

**If you built the form from Part 1:** We're just swapping some fields to Asset fields.

**If you're starting fresh:** Follow Part 1 first, then come back here.

### Convert Hardware Fields to Assets

#### Original Field: PC Model (Dropdown)

**Change to:** Assets field

1. Go to your onboarding form
2. Find the "PC Model" field
3. Click the field settings
4. Change field type to **Assets**
5. We'll configure the AQL in Step 3

#### Original Field: Mac Model (Dropdown)

**Change to:** Assets field (same process)

#### Original Field: Software (Checkboxes)

**Change to:** Assets field

**Pro tip on software:** Allow **multiple selections** for software. An employee might need Office 365 AND Salesforce AND Slack.

**The beauty of Forms:** Swapping field types takes literally 1-2 clicks. No rebuilding. No data loss. Just change the type.

### Keep Dynamic Fields Working

Your dynamic content still works with Asset fields!

**PC selected →** Show PC Models (Assets field)  
**Mac selected →** Show Mac Models (Assets field)

**The dynamic logic doesn't change.** You're just pulling options from Assets instead of static dropdowns.

## Step 3: Configure Asset Fields with AQL

This is where the magic happens. AQL (Assets Query Language) filters which assets appear in your form.

### Create the Asset Field

1. Go to **Project Settings** \> **Fields**
2. Click **Create Custom Field**
3. Select **Assets** as field type
4. Name it: "Mac Models" (or "PC Models", "Software", etc.)
5. Click **Create**

### Configure the Field

When you open the field configuration, you'll see several sections. Let's go through the important ones.

#### Filter Scope

**This is your AQL query.** It determines which assets appear.

**Example: Mac Models**

```
objectType = "Macs" AND objectSchema = "IT Infrastructure"

```

**Breaking this down:**

- `objectType = "Macs"` \- Only show objects from the Macs type
- `AND` \- Both conditions must be true
- `objectSchema = "IT Infrastructure"` \- From this specific schema

**Example: PC Models**

```
objectType = "Laptops" AND objectSchema = "IT Infrastructure"

```

**Example: All Computers**

```
objectType IN ("Laptops", "Macs") AND objectSchema = "IT Infrastructure"

```

**Example: Software**

```
objectType = "Software" AND objectSchema = "IT Infrastructure"

```

#### Display Attributes

**These are the columns users see** when selecting an asset.

**For laptops/Macs, I show:**

- Name
- Asset Tag/Serial Number
- Status
- RAM
- SSD

**Why these?** They help users (and IT) identify the right equipment. "MacBook Pro - 16GB RAM - 512GB SSD" is clearer than just "MacBook Pro."

**To configure:**

1. In the field configuration, find **Display Attributes**
2. Select which attributes to show
3. Order them (most important first)
4. Click **Save**

**Pro tip:** Don't go crazy. 5-6 attributes maximum. Too many columns overwhelm users.

#### Multiple Selection

**Critical setting:** Can users select multiple objects?

**For laptops/computers:** **NO** (one laptop per person)  
**For software:** **YES** (multiple licenses per person)  
**For monitors:** **YES** (some employees need dual monitors)

**To configure:**

1. Find **Field can store multiple objects**
2. Toggle Yes/No based on need
3. Click **Save**

## Step 4: Add Stock Control with AQL

Here's the game-changer: **Only show available equipment.**

You don't want users selecting laptops already assigned to other employees. You only want to show items with status "In Stock."

### The Stock Control AQL

**Basic query (shows all Macs):**

```
objectType = "Macs" AND objectSchema = "IT Infrastructure"

```

**With stock control (shows only available Macs):**

```
objectType = "Macs" AND objectSchema = "IT Infrastructure" AND "Asset Status" = "In Stock"

```

**The key addition:** `AND "Asset Status" = "In Stock"`

**This filters the list to only show assets marked as available.**

### How Stock Control Works

**Scenario: Onboarding Request**

1. User requests MacBook Pro
2. Form only shows Macs with status "In Stock"
3. User selects "MacBook Pro 14 - SN56789"
4. Ticket is created with that specific asset linked
5. IT prepares the laptop
6. IT updates asset status from "In Stock" to "In Use"
7. Next onboarding request **won't show that MacBook** (it's no longer "In Stock")

**The result:** No double-assigning. No confusion. Complete visibility.

### Updating Asset Status

**Two ways to update status:**

**Method 1: From the Ticket**

1. Open the onboarding ticket
2. On the right side, you'll see linked assets
3. Click on the asset
4. This opens the asset detail page
5. Change Status from "In Stock" to "In Use"
6. Click **Save**

**Method 2: From Assets**

1. Navigate to Assets
2. Find the asset (search by name or serial number)
3. Click to open
4. Update Status field
5. Click **Save**

**Method 3: Automation** (Advanced)

- Create automation rule
- Trigger: When onboarding ticket status = "Complete"
- Action: Update linked asset status to "In Use"
- I'll cover this in a future tutorial

## Step 5: Add Asset Fields to Form

Now let's add these configured asset fields to your onboarding form.

1. Go to your **Employee Onboarding** form
2. Navigate to the Hardware section
3. Click **Add Field**
4. Select your "PC Models" custom field
5. Add conditional logic:
  - Show when: Computer Type = "PC"
6. Click **Add**
7. Add another field
8. Select your "Mac Models" custom field
9. Add conditional logic:
  - Show when: Computer Type = "Mac"
10. Click **Add**

**Result:** Dynamic asset selection. When users select PC, they see available PCs from Assets. When they select Mac, they see available Macs.

### Software Asset Field

1. In the Software section of your form
2. Click **Add Field**
3. Select your "Software" custom field
4. **Important:** Ensure multiple selections are enabled
5. Click **Add**

**Users can now select multiple software licenses:** Office 365 + Salesforce + Slack + CRM

## Step 6: Test the Complete Flow

Before going live, test everything:

### Test Checklist

**1\. Submit test onboarding request**

- Does the form show only "In Stock" assets?
- Can you select a laptop?
- Can you select multiple software?
- Does dynamic switching (PC/Mac) work?

**2\. Check ticket creation**

- Open the created ticket
- Are assets visible on the right side?
- Can you click through to asset details?

**3\. Test status updates**

- Change asset status from "In Stock" to "In Use"
- Submit another test request
- The previously selected asset should NOT appear

**4\. Verify asset linking**

- Go to Assets
- Find the asset you assigned in the test
- Does it show the linked ticket?
- This creates your audit trail

**If everything works: You're ready to go live.**

**If something's broken:**

- Double-check your AQL syntax
- Verify object type names match exactly (case-sensitive)
- Ensure assets have correct status values

## The Complete Workflow in Action

Let's walk through a real onboarding with Assets:

### Day 1: Request Submitted

- Manager submits onboarding request for new employee
- Selects "MacBook Pro 14" from available options
- Selects Office 365, Salesforce, Slack licenses
- Ticket created: Issue #123

### Day 2: IT Preparation

- IT agent views ticket
- Sees specific MacBook assigned: "MBP14-SN789 - 16GB - 512GB"
- Retrieves laptop from storage
- Installs software licenses (all listed in ticket)
- Updates asset status: "In Stock" → "In Use"

### Day 3: Employee Start Date

- Laptop delivered to employee
- All software pre-installed
- Asset record shows:
  - Assigned to: John Smith
  - Assignment date: \[Today\]
  - Linked ticket: Issue #123
  - Status: In Use

### Ongoing: Complete Lifecycle Tracking

- If laptop needs repair: Update status to "In Repair"
- If employee reports issue: New ticket auto-links to asset
- If employee leaves: Offboarding ticket links to same asset
- Full history visible in asset record

**This is lifecycle management.** From assignment to return, every interaction is tracked.

## Advanced: AQL Query Examples

Once you're comfortable with basics, here are more powerful queries:

### Filter by Manufacturer

```
objectType = "Laptops" AND Manufacturer = "Dell" AND "Asset Status" = "In Stock"

```

Shows only available Dell laptops.

### Filter by Specifications

```
objectType = "Laptops" AND RAM >= "16GB" AND "Asset Status" = "In Stock"

```

Shows only laptops with 16GB+ RAM (for power users).

### Filter by Purchase Date

```
objectType = "Laptops" AND "Purchase Date" >= "2023-01-01" AND "Asset Status" = "In Stock"

```

Shows only laptops purchased after 2023 (newer equipment).

### Exclude Specific Items

```
objectType = "Laptops" AND Manufacturer != "HP" AND "Asset Status" = "In Stock"

```

Shows all laptops except HP.

### Multiple Statuses

```
objectType = "Laptops" AND "Asset Status" IN ("In Stock", "In Transit")

```

Shows laptops that are available or being shipped.

**Pro tip:** Start simple. Add complexity only when you have a specific need.

## Common AQL Mistakes (And How to Fix Them)

### Mistake #1: Case Sensitivity

❌ `objecttype = "laptops"`  
✅ `objectType = "Laptops"`

**AQL is case-sensitive.** Match your object type names exactly.

### Mistake #2: Wrong Quote Types

❌ `objectType = "Laptops"`  
✅ `objectType = "Laptops"`

Use straight quotes, not curly quotes (Word loves adding curly quotes—watch out).

### Mistake #3: Missing Schema Reference

❌ `objectType = "Laptops" AND "Asset Status" = "In Stock"`  
✅ `objectType = "Laptops" AND objectSchema = "IT Infrastructure" AND "Asset Status" = "In Stock"`

Always include schema reference if you have multiple schemas.

### Mistake #4: Attribute Name Spaces

If your attribute has spaces, wrap it in quotes:  
❌ `Asset Status = "In Stock"`  
✅ `"Asset Status" = "In Stock"`

### Mistake #5: Testing with Wrong Data

**Problem:** Your AQL looks correct but shows no results.

**Solution:** Check your actual asset data. Maybe all laptops are marked "In Use" and none are "In Stock." Create a test asset with correct status.

## Reporting on Assets

With Assets integrated, you can now answer questions like:

**Asset Reports:**

- How many laptops are currently assigned?
- Which assets are available for new hires?
- What equipment needs replacement (old purchase dates)?
- Who has what equipment?

**Onboarding Reports:**

- Average time from request to equipment assignment
- Most commonly requested equipment
- Stock availability issues (ran out of Macs?)

**To access reports:**

1. Go to **Assets** \> **Reports**
2. Create custom reports based on object types
3. Filter by status, assignment, dates, etc.

**Honest take:** Assets reporting is still basic. For complex analytics, I usually export to CSV and analyze in Excel. But for quick visibility, built-in reports work fine.

## Maintenance: Keeping Assets Updated

**Assets are only valuable if data is accurate.**

### Weekly Tasks

- \[ \] Review "In Transit" assets (anything stuck?)
- \[ \] Check for assets marked "In Use" with no linked tickets (orphaned?)
- \[ \] Verify new equipment was added to Assets

### Monthly Tasks

- \[ \] Audit asset status (do statuses match reality?)
- \[ \] Review warranty expiration dates
- \[ \] Check for equipment due for replacement

### Quarterly Tasks

- \[ \] Full asset count (physical verification)
- \[ \] Remove retired equipment from database
- \[ \] Update asset values (for financial reporting)

**Assign ownership:** Someone needs to be responsible for asset data quality. Usually IT Manager or Asset Coordinator.

## What's Coming: Advanced Topics

This tutorial covers the foundation. In future articles, I'll show you:

**CSV Import:** Bulk load 500+ assets in minutes (coming this week)

**Python Scripts for API:** Automate asset creation and updates programmatically

**Full Stock Control:** Track quantity, not just status. Alert when running low.

**Automated Status Updates:** When ticket status changes, update asset status automatically

**Offboarding Integration:** Tomorrow's tutorial - how to track equipment return during employee exit

## The Reality Check

**Assets isn't perfect.** Here's what I wish was better:

**❌ No native quantity tracking** \- You need workarounds or custom fields  
**❌ Reporting is basic** \- Not enterprise BI level  
**❌ No automatic depreciation** \- Financial tracking requires manual updates  
**❌ AWS/Azure integration limited** \- Can't auto-discover cloud resources (yet)

**But here's what Assets does really well:**

**✅ Tight JSM integration** \- Assets linked to tickets seamlessly  
**✅ Simple for teams to use** \- Not overwhelming like enterprise CMDB tools  
**✅ Fast to implement** \- Running in days, not months  
**✅ Flexible** \- AQL gives you powerful filtering  
**✅ Audit trail** \- Complete history of asset lifecycle

**For most organizations:** Assets is more than enough. You don't need a $100K enterprise CMDB. You need visibility and control. Assets delivers that.

## Assets vs Alternatives

**Should I use JSM Assets?**

**Use JSM Assets if:**

- You're already using JSM for service desk
- You need tight integration with service requests
- Your team is < 5,000 employees
- You want fast implementation
- Budget is moderate

**Consider alternatives if:**

- You need advanced financial asset management (depreciation, etc.)
- You're managing 10,000+ assets across multiple locations
- You need AWS/Azure cloud resource discovery
- You have complex compliance requirements (heavy industry, gov)
- You already have a mature CMDB you're happy with

**My take after 14+ years:** For 90% of organizations, JSM Assets is the sweet spot of functionality, cost, and implementation speed.

## Next Steps

You now have onboarding with automatic hardware tracking. Here's what to do:

**This Week:**

1. Activate Premium trial (if not already)
2. Create Assets schema using IT template
3. Add 10-20 demo assets
4. Configure asset fields with AQL
5. Add fields to onboarding form
6. Test complete flow

**Next Week:**  
7\. Import bulk assets via CSV (tutorial coming)  
8\. Train team on asset status updates  
9\. Go live with asset-enabled onboarding

**Tomorrow:**  
10\. Read Part 3: Complete offboarding system  
11\. Learn how to track equipment return  
12\. Build the full employee lifecycle

## The Bottom Line

**This system works.**

The 1,500-person insurance company isn't hypothetical. It's real. Three weeks to three days is real. £10,000/year savings is real.

**Assets integration transforms onboarding from:**

- "Order a laptop for the new person"
- Into: "Assign MacBook Pro SN789 to John Smith, track through entire tenure, recover during offboarding"

**That's the difference between chaos and control.**

If you want this running in your environment this week—complete object schemas, AQL filters, form integration, production-ready—[book a consultation](https://projectflow.co.uk/consultation/).

I build these systems in 3-5 days. You'll spend 2-3 weeks figuring out AQL syntax and debugging queries. Let me handle it.

---

**Tomorrow: Complete Offboarding System** \- Equipment recovery, access revocation, exit interviews. The system that ensures nothing disappears when employees leave.

**This Week: CSV Import & Python Scripts** \- Bulk load hundreds of assets. Automate updates programmatically.

Subscribe so you don't miss these.

**Questions about Assets or AQL?** Drop them in the comments. I respond to every one.