> ## 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.

# Complete JSM Employee Onboarding System (No Premium Required)
- URL: https://projectflow.co.uk/complete-jsm-employee-onboarding-system/
- Published: 2026-01-02T13:38:03.000Z
- Updated: 2026-01-23T17:14:42.000Z
- Author: Mike
- Tags: JSM, tutorial

# 

**Real client story:** Last month, a 1,500-person insurance company in London called me. Their onboarding was a disaster—new employees waiting weeks for laptops, system access, everything. We rebuilt the entire system in JSM. Three weeks of delays became three days of efficiency.

This is exactly how we did it.

## Why This Matters (And Why I'm Sharing It)

I build these onboarding systems in 3-5 days for clients ranging from 100 to 5,000 employees. What takes most teams 2-3 weeks of trial and error, I can have running in under a week because I've done it dozens of times.

**The system I'm showing you today:**

- ✅ No Premium required (though I'll show you the Assets version tomorrow)
- ✅ Works for companies of any size
- ✅ Reduces onboarding time from weeks to days
- ✅ Creates accountability at every step
- ✅ Scales as you grow

Want automatic hardware tracking? See [Onboarding with Assets](https://projectflow.co.uk/jsm-onboarding-system-with-assets/) (requires Premium).

**This is part 1 of a 3-part series:**

1. **Today:** Complete onboarding system (Standard JSM)
2. **Tomorrow:** Onboarding with Assets (automatic hardware tracking)
3. **Coming soon:** Complete offboarding system

Complete the lifecycle with [secure offboarding](https://projectflow.co.uk/how-to-build-a-secure-offboarding-system-in-jsm/).

Let's dive in.

## What We're Building

Here's what this onboarding system includes:

**Frontend (What HR/Managers See):**

- Clean, intuitive form on the customer portal
- Dynamic fields that change based on selections
- Zero confusion about what information is needed

This system uses [JSM Forms](https://projectflow.co.uk/jsm-forms/) to capture new hire info.

**Backend (What IT/Admins See):**

- Structured workflow with clear stages
- Approval process (optional, can be skipped)
- SLAs tracking preparation and provisioning time
- Automated notifications to managers
- Dedicated queues separating onboarding from other tickets

**The Result:**

- New employee requests processed in days, not weeks
- Complete visibility into onboarding status
- Nothing falls through the cracks
- Automated handoffs between teams

## Step 1: Build the Request Form (The Foundation)

I use **Forms** for onboarding, not traditional request types. Here's why:

### Why Forms Beat Traditional Request Types

**✅ Clean, modern design** \- Looks professional, not like a 2010 web form  
**✅ Lightning-fast setup** \- Build complex forms in minutes  
**✅ Dynamic content** \- Fields appear/disappear based on user selections  
**✅ Easy to modify** \- Change field types with one click  
**✅ Better user experience** \- Reduces confusion and errors

**The killer feature:** Dynamic content. Watch this—when someone selects "Full-time employee," they see standard fields. Switch to "Contractor," and boom—additional contract-specific fields appear. No apps needed. This is native Forms functionality.

### Creating Your Onboarding Form

**Before you start:** Document your onboarding process. Talk to HR. Talk to IT. Get alignment on what information you actually need. This isn't optional—misalignment here causes problems later.

**To create the form:**

1. Go to your JSM project
2. Navigate to **Forms** (in the left sidebar)
3. Click **Create Form**
4. Name it: "Employee Onboarding Request"

### Essential Form Sections

Here's the structure that works for most organizations:

#### Section 1: Employee Information

- **New Employee Name** (Short text, required)
- **Personal Email** (Email field, required)
- **Start Date** (Date picker, required)
- **Department** (Dropdown: IT, Finance, Sales, Marketing, Operations, HR)
- **Location** (Dropdown: London Office, Manchester Office, Remote, etc.)
- **Job Title** (Short text, required)
- **Manager** (User picker, required)

#### Section 2: Employment Type

- **Employment Type** (Dropdown, required)
  - Full-time
  - Part-time
  - Contractor
  - Intern

**Here's where dynamic content shines:**

**If "Contractor" is selected → Show:**

- **Contract End Date** (Date picker)
- **Contract Duration** (Number field, in months)
- **Agency/Company** (Short text)

**How to set this up:**

1. Add the "Contract End Date" field
2. Click the **eye icon** next to the field
3. Select "Show this field when..."
4. Set condition: "Employment Type = Contractor"
5. Click **Save**

Repeat for other contractor-specific fields.

#### Section 3: System Access Required

- **Email Account** (Checkbox, checked by default)
- **Software Access** (Checkboxes, multiple selection)
  - Office 365
  - Salesforce
  - Slack/Teams
  - HR System
  - CRM
  - Project Management Tools
  - Other (specify)

**Pro tip:** Keep this simple. Don't list 50 software options. List your core 5-8 systems, plus "Other" with a text field.

#### Section 4: Hardware Requirements

This is where dynamic content gets really powerful.

- **Computer Type** (Dropdown, required)
  - PC (default selection)
  - MacBook
  - No computer needed

**Dynamic logic:**

**If "PC" is selected → Show:**

- **PC Model** (Dropdown)
  - Dell Latitude 5430
  - HP EliteBook 840
  - Lenovo ThinkPad X1
  - Other (specify)

**If "MacBook" is selected → Show:**

- **MacBook Model** (Dropdown)
  - MacBook Air M2
  - MacBook Pro 14"
  - MacBook Pro 16"
  - Other (specify)

**Additional hardware:**

- **Monitor Required** (Checkbox)
- **Keyboard/Mouse** (Checkbox)
- **Headset** (Checkbox)
- **Mobile Phone** (Checkbox)
- **Additional Equipment** (Long text, optional)

#### Section 5: Additional Information

- **Special Requirements** (Long text, optional)
- **Security Clearance Level** (Dropdown, if applicable)
- **Budget Code** (Short text, if applicable)

### The Final Touch: Hidden Fields

Add these fields but hide them from users:

1. **Summary** (Short text, hidden)
  - Set default value: "New Employee Onboarding - \[Employee Name\]"
  - This becomes your ticket title
2. **Request Type** (Hidden)
  - Set to: "Employee Onboarding"

**Why hidden fields matter:** They ensure consistency without asking users for redundant information.

## Step 2: Create the Request Type

Now we connect the form to JSM.

**Important:** Create a **dedicated request type** for onboarding. Don't add it to generic "IT Support" or "General Requests."

**Why?**

- You need a custom workflow (we'll build this next)
- Dedicated SLAs
- Separate queues
- Different automation rules

**To create the request type:**

1. Go to **Project Settings** \> **Request Types**
2. Click **Create Request Type**
3. Name it: "Employee Onboarding"
4. Description: "Submit this request to onboard a new employee"
5. Choose an icon (person icon works well)
6. Click **Create**

### Link the Form

1. Click on your new "Employee Onboarding" request type
2. Scroll to **Request Form**
3. Click **Change form**
4. Select your "Employee Onboarding Request" form
5. Click **Save**

**Here's what just happened:** When users select "Employee Onboarding" from the portal, they'll see your beautiful dynamic form instead of a clunky traditional request type.

### Configure Fields (Keep It Minimal)

Since the form handles most fields, you only need:

1. **Summary** (hidden, auto-populated)
2. **Participants/Approvers** (if using approval process)

**Don't add every form field as a custom field.** The form captures the data. That's enough for most use cases.

## Step 3: Build the Workflow

This is where onboarding becomes a structured process instead of chaos.

### The Onboarding Workflow Structure

Here's the workflow that works for most organizations:

```
1. New Request
   ↓
2. Waiting for Approval (optional)
   ↓
3. Approved
   ↓
4. Prepare Access
   ↓
5. Facility Setup
   ↓
6. Pre-Arrival Checklist
   ↓
7. Ready for Day One
   ↓
8. Complete

```

**Why this structure?**

- Clear stages everyone understands
- Each stage has a responsible team
- Easy to see where delays happen
- SLAs can track each phase

### Creating the Custom Workflow

**Important note:** I still use the old workflow editor because it works reliably. The new one is fine too—use whichever you prefer.

1. Go to **Project Settings** \> **Workflows**
2. Click **Add Workflow**
3. Select **Create from scratch**
4. Name it: "Employee Onboarding Workflow"
5. Click **Create**

### Add Statuses

Click **Add Status** for each stage:

**Status 1: New Request**

- Category: To Do
- This is your starting status

**Status 2: Waiting for Approval** (optional)

- Category: To Do
- Include approval functionality

**Status 3: Approved**

- Category: In Progress
- Transition from: Waiting for Approval

**Status 4: Prepare Access**

- Category: In Progress
- IT creates accounts, sets permissions

**Status 5: Facility Setup**

- Category: In Progress
- Facilities prepares workspace, orders equipment

**Status 6: Pre-Arrival Checklist**

- Category: In Progress
- Final verification before start date

**Status 7: Ready for Day One**

- Category: In Progress
- Everything confirmed, ready to go

**Status 8: Complete**

- Category: Done
- Employee started successfully

### Add Transitions

Connect your statuses with transitions:

- New Request → Waiting for Approval
- Waiting for Approval → Approved (when approved)
- Waiting for Approval → Rejected (if rejected)
- Approved → Prepare Access
- Prepare Access → Facility Setup
- Facility Setup → Pre-Arrival Checklist
- Pre-Arrival Checklist → Ready for Day One
- Ready for Day One → Complete

**Pro tip:** Don't create transitions for every possible path. Keep it linear. If something needs to go backwards, agents can manually move it.

### About the Approval Process

**Do you need approvals?** Depends on your organization.

**Use approvals if:**

- Budget approvals required for equipment
- Manager sign-off needed for contractors
- Security clearance verification needed
- Multiple departments need to sign off

**Skip approvals if:**

- HR already vetted the hire
- Standard onboarding process
- Speed is more important than gates

**How to add approval:**

1. In the "Waiting for Approval" status
2. Click **Add Approver**
3. Select: Manager (from the form), HR Lead, Department Head, etc.
4. Set approval rules: All must approve, or any can approve
5. Click **Save**

**My approach:** Start without approvals. Add them later if you discover you need gates. Don't over-engineer from day one.

### Associate Workflow with Request Type

1. Go to **Project Settings** \> **Request Types**
2. Click on "Employee Onboarding"
3. Scroll to **Workflow**
4. Select your "Employee Onboarding Workflow"
5. Click **Save**

Now your onboarding requests use this dedicated workflow.

## Step 4: Configure SLAs

SLAs create accountability and visibility.

**Standard SLAs (Default in JSM):**

- Time to First Response
- Time to Resolution

**For onboarding, you probably don't need "First Response."** The request creates action automatically.

### Custom SLAs for Onboarding

Here are the SLAs I recommend:

#### SLA 1: Access Preparation

**What it tracks:** How long IT takes to prepare accounts

**Configuration:**

- Name: "Access Preparation"
- Goal: 2 business days
- Start: When status changes to "Approved"
- Stop: When status changes to "Facility Setup"
- Calendar: Business hours (Mon-Fri, 9am-5pm)

#### SLA 2: Equipment Provisioning

**What it tracks:** How long to order/prepare equipment

**Configuration:**

- Name: "Equipment Provisioning"
- Goal: 5 business days
- Start: When status changes to "Facility Setup"
- Stop: When status changes to "Pre-Arrival Checklist"
- Calendar: Business hours

#### SLA 3: Overall Onboarding

**What it tracks:** Total time from request to ready

**Configuration:**

- Name: "Overall Onboarding Time"
- Goal: 10 business days
- Start: When issue is created
- Stop: When status = "Ready for Day One"
- Calendar: Business hours

**Why these specific SLAs?**

- They track the stages that typically cause delays
- They create accountability for each team
- They give you data to improve the process

**To create an SLA:**

1. Go to **Project Settings** \> **SLAs**
2. Click **Create SLA**
3. Fill in the details above
4. Click **Save**

## Step 5: Set Up Automation (The MVP)

Automation isn't required on day one, but these rules make life much easier.

### Automation 1: Auto-Assign Based on Location/Department

**What it does:** Automatically assigns the ticket to the right team based on employee location or department.

**Rule setup:**

1. Go to **Project Settings** \> **Automation**
2. Click **Create Rule**
3. **Trigger:** Issue Created
4. **Condition:** Request Type = Employee Onboarding
5. **Add Condition:** Location = London Office
6. **Action:** Assign Issue to "London IT Team"
7. Name it: "Auto-assign onboarding - London"
8. Click **Turn on rule**

**Repeat for each location/department.**

**Alternative approach:** Assign to a general "Onboarding Queue" and let agents claim them.

### Automation 2: Manager Notification via Teams/Slack

**What it does:** Notifies the employee's manager when onboarding starts.

**Why not email?** I'm trying to reduce email overload. Webhook notifications to Teams/Slack work better.

**Rule setup (Teams):**

1. Create rule
2. **Trigger:** Status Changed to "Approved"
3. **Action:** Send Web Request
4. **Webhook URL:** \[Your Teams incoming webhook URL\]
5. **Body (JSON):**

```json
{
  "@type": "MessageCard",
  "summary": "New Employee Onboarding",
  "sections": [{
    "activityTitle": "Onboarding Started",
    "facts": [{
      "name": "Employee:",
      "value": "{{issue.customfield_newemployeename}}"
    },{
      "name": "Start Date:",
      "value": "{{issue.customfield_startdate}}"
    },{
      "name": "Department:",
      "value": "{{issue.customfield_department}}"
    }],
    "markdown": true
  }]
}

```

1. Name it: "Notify manager via Teams"
2. Click **Turn on rule**

**For Slack:** Use Slack's incoming webhook format instead.

**Pro tip:** Test webhooks with a test channel first. Don't spam your CEO's channel with test notifications.

### Automation 3: Pre-Arrival Checklist

**What it does:** Adds a comment with a checklist when status moves to "Pre-Arrival Checklist"

**Rule setup:**

1. Create rule
2. **Trigger:** Status Changed to "Pre-Arrival Checklist"
3. **Action:** Add Comment
4. **Comment:**

```
Pre-Arrival Checklist - Verify all items before marking complete:

☐ Email account created and tested
☐ System access provisioned
☐ Computer prepared and configured
☐ Monitor/peripherals ready
☐ Desk/workspace prepared
☐ Building access badge ready
☐ Welcome email sent to employee
☐ Manager notified of start date
☐ IT orientation scheduled

Tag the assignee when complete.

```

1. Name it: "Add pre-arrival checklist"
2. Click **Turn on rule**

**Why this works:** The checklist ensures nothing is forgotten. It's visible to everyone. It creates accountability.

### Automation 4: Status Change Notification

**What it does:** Comments on the ticket when status changes, creating an audit trail.

**Rule setup:**

1. Create rule
2. **Trigger:** Status Changed
3. **Condition:** Request Type = Employee Onboarding
4. **Action:** Add Comment
5. **Comment:** "Status changed from {{changelog.fromString}} to {{changelog.toString}} by {{initiator.displayName}}"
6. Name it: "Log status changes"
7. Click **Turn on rule**

**My philosophy on automation:** Start with these 3-4 rules. Run the system for a few weeks. Then add more automation based on what you discover you're doing manually over and over.

Don't create 20 automation rules on day one. You'll create a nightmare to debug.

## Step 6: Configure Queues

Queues help your team organize onboarding work separately from other tickets.

**Why separate queues?**

- Onboarding has different priorities than break-fix tickets
- Different teams work on onboarding
- Easier to see onboarding workload at a glance
- Reduces confusion

### Creating Onboarding Queues

#### Queue 1: All Onboarding Requests

**JQL:**

```
"Request Type" = "Employee Onboarding" AND status != Complete

```

This shows all active onboarding requests.

#### Queue 2: Pending Approval

**JQL:**

```
"Request Type" = "Employee Onboarding" AND status = "Waiting for Approval"

```

For managers/approvers to see what needs their attention.

#### Queue 3: In Progress Onboarding

**JQL:**

```
"Request Type" = "Employee Onboarding" AND status IN ("Prepare Access", "Facility Setup", "Pre-Arrival Checklist")

```

Active work that needs attention.

#### Queue 4: Upcoming Start Dates

**JQL:**

```
"Request Type" = "Employee Onboarding" AND "Start Date" <= 7d AND status != Complete

```

Employees starting in the next 7 days. Critical visibility.

#### Queue 5: Overdue Onboarding

**JQL:**

```
"Request Type" = "Employee Onboarding" AND "Start Date" < now() AND status != Complete

```

Red flag queue. These are problems.

### Setting Favorites

Make these queues easy to access:

1. Click the **star icon** next to "All Onboarding Requests"
2. This pins it to the top for quick access

**Pro tip:** Set the "All Onboarding Requests" queue as the default view for your onboarding team.

## Step 7: Testing the Complete System

Before going live, test the entire workflow:

### Test Checklist

**1\. Submit a test request**

- Does the form work correctly?
- Do dynamic fields appear/disappear properly?
- Does the request create successfully?

**2\. Check ticket creation**

- Is the summary formatted correctly?
- Are all form fields captured?
- Is it assigned to the right person/team?

**3\. Move through workflow**

- Can you transition between statuses?
- Do SLAs start/stop correctly?
- Does the approval process work (if enabled)?

**4\. Verify automation**

- Do notifications fire correctly?
- Do comments add when expected?
- Are status changes logged?

**5\. Check queues**

- Does the ticket appear in the right queues?
- Do JQL queries work correctly?

**Fix any issues before going live.** It's much easier to debug with test data than production data.

## Going Live: The Rollout Plan

You've built the system. Now you need people to use it.

### Week 1: Soft Launch

- Send announcement to HR team only
- Ask them to submit all new hire requests through the new system
- Monitor closely for issues
- Collect feedback

### Week 2: Training

- 30-minute session with IT team showing:
  - How to work tickets in the new workflow
  - What each status means
  - How to use queues
  - Key automation rules
- Q&A time
- Provide quick reference guide

### Week 3: Full Launch

- Announce to all managers
- Share portal URL and instructions
- Make old process unavailable
- Monitor adoption

### Week 4+: Optimize

- Review metrics:
  - Average onboarding time
  - SLA breaches
  - Common bottlenecks
- Adjust workflow/SLAs based on real data
- Add automation for repetitive tasks

## Real Results from Real Clients

**Insurance company (1,500 employees):**

- Before: 3 weeks average onboarding time
- After: 3 days
- Eliminated: Laptop delivery delays, access request confusion
- ROI: Massive improvement in new hire experience

**Tech startup (120 employees):**

- Before: Spreadsheet tracking, frequent missed items
- After: Zero missed onboarding steps
- Benefit: Professional onboarding experience for rapid hiring

**Healthcare organization (800 employees):**

- Before: Compliance nightmares, security gaps
- After: Complete audit trail, proper access controls
- Benefit: Passed regulatory audit with flying colors

## Common Mistakes to Avoid

### ❌ Mistake #1: Over-Engineering Day One

**Problem:** Building 15-step workflows, 50 automation rules, complex approval chains before testing with real users.

**Solution:** Start with the MVP I showed you. Add complexity based on real needs.

### ❌ Mistake #2: Not Getting HR Buy-In

**Problem:** Building a system IT thinks is great, but HR refuses to use.

**Solution:** Involve HR from the beginning. Show them the form. Get their feedback. Make them part of the design.

### ❌ Mistake #3: Ignoring the Form Experience

**Problem:** Ugly, confusing forms that intimidate users.

**Solution:** Use Forms (not traditional request types). Test the form with a non-technical person. If they're confused, simplify.

### ❌ Mistake #4: No Dedicated Queues

**Problem:** Onboarding requests mixed with "printer is broken" tickets. Chaos ensues.

**Solution:** Separate queues. Separate workflow. Separate focus.

### ❌ Mistake #5: Set-It-and-Forget-It

**Problem:** Launch the system, never look at it again, wonder why it doesn't work perfectly.

**Solution:** Review metrics monthly. Talk to your team. Continuously improve.

## What's Next: The 3-Part Series

This is your complete onboarding system using standard JSM features. But we're not done.

**Tomorrow: Onboarding with Assets**  
I'll show you how to add automatic hardware tracking:

- Assets database integration
- Auto-assign equipment during onboarding
- Track who has what
- Prepare for offboarding

**Coming Soon: Complete Offboarding System**  
The flip side of onboarding:

- Equipment recovery
- Access revocation
- Knowledge transfer
- Compliance requirements

Subscribe so you don't miss these.

## The Bottom Line

This onboarding system works. I've deployed it dozens of times for companies ranging from 100 to 5,000 employees.

**You can spend 2-3 weeks building this yourself**, dealing with trial and error, figuring out what works.

**Or I can have it running in your environment in under a week.** I've done this so many times I can practically do it in my sleep.

**The system I showed you today:**

- Reduces onboarding from weeks to days
- Creates accountability at every step
- Eliminates "forgot to provision access" disasters
- Scales with your organization
- Requires no Premium license

If you want this running this week instead of spending three weeks figuring it out, book a 15-minute discovery call. We'll talk about your specific needs, and I'll show you exactly how this will work for your organization.

---

**Coming tomorrow:** Assets integration for automatic hardware tracking. Hit subscribe so you don't miss it.

**Have questions?** Drop them in the comments. I read every single one and respond.