IT Support & Help Desk Fundamentals Module 1 – The support role and a troubleshooting method
IT support roles, tiers and channels
Route support requests to the right tier and team, tell help desk, desktop, NOC and SOC roles apart, and work each channel, from phone to walk-up.
What you will learn
- Describe what self-service, tier 1, tier 2 and tier 3 support each own and hand on
- Route a request to a tier and a team from its category, its impact and the facts that change them
- Distinguish help desk, desktop support, field technician, NOC, SOC and managed-service roles
- Explain how phone, chat, email, portal and walk-up requests change the method, and write handover times with UTC offsets
- List what a first-line technician fixes, documents and escalates, and what they never do
What you’ll learn
What you will learn
- Describe what self-service, tier 1, tier 2 and tier 3 support each own and hand on
- Route a request to a tier and a team from its category, its impact and the facts that change them
- Distinguish help desk, desktop support, field technician, NOC, SOC and managed-service roles
- Explain how phone, chat, email, portal and walk-up requests change the method, and write handover times with UTC offsets
- List what a first-line technician fixes, documents and escalates, and what they never do
On this page
Twelve requests reach a service desk: The first-contact team of IT support, also called the help desk. It records every request as a ticket, fixes known issues with documented procedures and escalates the rest with evidence. in one morning: a forgotten password, a blank monitor, a laptop for a new starter, a VPN that is down for a whole warehouse, an email asking for a payroll login and seven more. Each has a right owner, and a request sent to the wrong team waits in a queue that cannot fix it.
Support work is split into tiers by how deep a problem goes and into roles by where the work happens. You will route the twelve requests with a rule table and then with the facts that change it, follow one ticket up the tiers with its evidence, compare the roles and the five channels requests arrive by, write a follow-the-sun: Support shared by desks in different time zones, each working its own daytime and handing its open tickets to the next, so that users are covered around the clock. handover with How far a local clock is ahead of or behind Coordinated Universal Time (UTC), written after the time, as in 08:00+05:30 or 13:30-05:00., and list what first-line support owns and what it never does.
Four tiers, each owning the work it can finish
Take three of the twelve. The forgotten password (R01) can be fixed by the user alone, at three in the morning, when the company runs a self-service reset. The blank monitor (R02) needs someone who knows the usual causes: a loose cable, the wrong input, a screen that went to sleep. The VPN that is down for a whole site (R04) needs the engineers who run the network. Each request belongs at the lowest level that can finish it, because every level above adds people and waiting.
That is the tier model. This track numbers four tiers from 0:
| Tier, and who works it | What it owns | It hands on when |
|---|---|---|
| 0, self-service: the user, with the portal and the knowledge base | Requests a user can finish alone, at any hour | The documented steps do not fix it, or the portal cannot do it |
| 1, service desk: the first-contact team, also called the help desk | Who the user is, the ticket, known fixes from documented procedures | No documented fix works, or it needs hands on, more access or a specialist |
| 2, specialist teams: desktop and field support, identity and access, application support | Deeper device, account and application work: builds, repairs, permissions | The cause is in a shared system, in an application’s code or in a supplier’s product |
| 3, engineering or vendor: network and application engineers, suppliers under contract | Fixes to shared systems, code and products | Nowhere: the fix often comes back down as a new knowledge base article |
Tier 0 runs on a self-service portal: A website where users raise requests, read knowledge base articles and finish common tasks such as a password reset themselves, at any hour: tier 0 of the tier model this track uses. and its A library of articles that describe known problems and their documented fixes, written so that users and the service desk can apply them.. Tier 1 is the service desk, the first team a request meets when it needs a person. Moving a ticket up is an escalation: Moving a ticket to people with more skill or access (functional escalation) or with more authority (hierarchical escalation), together with the evidence of what has been tried so far., and it always carries what the lower tier learned.
The model is a convention, not a standard. CompTIA’s A+ Core 2 objectives list escalation levels among the things a ticketing system records, beside the user, the device, the category and the severity, but how many tiers a desk has and what it calls them is the organisation’s choice: some desks merge tiers 1 and 2, and in a small office one person works all four.
The syllabus named on this page
MySmartCoPilot has no link with CompTIA. Its A+ exam objectives are cited as a public syllabus of what support work covers.
Checkpoint
Check: What each tier owns
Category and impact choose the route, and a few facts change it
Most desks route by two fields every ticket already holds: the category (password, hardware, software, network, access, new starter, security) and the impact (one user, a team, a site, everyone). The program writes that as a rule table of seven rows, where the first row that matches wins. It routes the twelve requests and prints each route beside the one an experienced desk chose:
"""Route twelve support requests with a rule table, then compare each
route with the one an experienced service desk chose."""
# The first row that matches wins. "any" matches every value, and
# "site+" matches an impact of "a site" or "everyone".
RULES = [
# category, impact, tier, owner
("security", "any", None, "security team"),
("network", "site+", 3, "network operations"),
("software", "site+", 3, "application engineers"),
("password", "any", 0, "self-service portal"),
("access", "any", 2, "identity and access"),
("new starter", "any", 2, "desktop support"),
("any", "any", 1, "service desk"),
]
# id, summary, channel, category, impact, facts the table never reads
REQUESTS = [
("R01", "Forgotten password", "phone",
"password", "one user", []),
("R02", "Blank monitor after a desk move", "walk-up",
"hardware", "one user", []),
("R03", "Laptop for a new starter", "portal",
"new starter", "one user", []),
("R04", "VPN down at the warehouse", "phone",
"network", "a site", []),
("R05", "Email asks for a payroll login", "email",
"security", "one user", []),
("R06", "Excel closes on one workbook", "chat",
"software", "one user", []),
("R07", "Printer jams on every page", "phone",
"hardware", "a team", ["supplier contract"]),
("R08", "No access to the Finance folder", "email",
"access", "one user", []),
("R09", "Video calls freeze at home", "chat",
"network", "one user", []),
("R10", "Payroll app fails for everyone", "phone",
"software", "everyone", []),
("R11", "New printer for the depot", "portal",
"hardware", "a team", ["remote site"]),
("R12", "Cracked laptop screen", "walk-up",
"hardware", "one user", ["damaged"]),
]
# The route an experienced desk chose for each request.
DESK = {
"R01": (0, "self-service portal"), "R02": (1, "service desk"),
"R03": (2, "desktop support"), "R04": (3, "network operations"),
"R05": (None, "security team"), "R06": (1, "service desk"),
"R07": (3, "vendor"), "R08": (2, "identity and access"),
"R09": (1, "service desk"), "R10": (3, "application engineers"),
"R11": (2, "field technician"), "R12": (2, "desktop support"),
}
def matches(rule_value, value):
if rule_value == "any":
return True
if rule_value == "site+":
return value in ("a site", "everyone")
return rule_value == value
def route(category, impact):
for rule_category, rule_impact, tier, owner in RULES:
if matches(rule_category, category) and matches(rule_impact, impact):
return tier, owner
def name(tier, owner):
return f"{owner}, no tier" if tier is None else f"tier {tier}, {owner}"
agree = 0
for rid, summary, channel, category, impact, facts in REQUESTS:
rules = route(category, impact)
desk = DESK.get(rid)
print(f"{rid} {summary} ({channel})")
print(f" {category}, {impact} -> {name(*rules)}")
if desk == rules:
agree += 1
elif desk is None:
print(" desk: no route chosen yet")
else:
print(f" desk: {name(*desk)}, because: {', '.join(facts)}")
print()
print(f"Rules and desk agree on {agree} of {len(REQUESTS)} requests.")
counts = {}
for tier, owner in DESK.values():
key = "security" if tier is None else f"tier {tier}"
counts[key] = counts.get(key, 0) + 1
order = ["tier 0", "tier 1", "tier 2", "tier 3", "security"]
print("The desk's routes:", ", ".join(f"{k} {counts[k]}" for k in order)) Output
R01 Forgotten password (phone)
password, one user -> tier 0, self-service portal
R02 Blank monitor after a desk move (walk-up)
hardware, one user -> tier 1, service desk
R03 Laptop for a new starter (portal)
new starter, one user -> tier 2, desktop support
R04 VPN down at the warehouse (phone)
network, a site -> tier 3, network operations
R05 Email asks for a payroll login (email)
security, one user -> security team, no tier
R06 Excel closes on one workbook (chat)
software, one user -> tier 1, service desk
R07 Printer jams on every page (phone)
hardware, a team -> tier 1, service desk
desk: tier 3, vendor, because: supplier contract
R08 No access to the Finance folder (email)
access, one user -> tier 2, identity and access
R09 Video calls freeze at home (chat)
network, one user -> tier 1, service desk
R10 Payroll app fails for everyone (phone)
software, everyone -> tier 3, application engineers
R11 New printer for the depot (portal)
hardware, a team -> tier 1, service desk
desk: tier 2, field technician, because: remote site
R12 Cracked laptop screen (walk-up)
hardware, one user -> tier 1, service desk
desk: tier 2, desktop support, because: damaged
Rules and desk agree on 9 of 12 requests.
The desk's routes: tier 0 1, tier 1 3, tier 2 4, tier 3 3, security 1
Recorded with Python 3.14.8 on macOS 26 arm64. To run it yourself: mise exec python@3.14.8 -- python3 routing_rules.py
Runs on this device, in your browser. The first run downloads Python (about 13.5 MB), which is kept for the next runs.
Your run, in this browser
The table and the desk agree on 9 of the 12. Each difference is a fact the table never reads:
- R07, a printer that jams on every page, is covered by a supplier contract, so the supplier’s engineer repairs it (tier 3, the vendor) and the desk follows the call up.
- R11, a new printer for a depot with no IT staff, needs someone on site: a field technician, not the service desk.
- R12, a cracked laptop screen, is damage that no fix on a call can repair, so it goes to desktop support.
The channel makes no difference to the route either: R05 arrived by email and R12 at the desk, and both would go to the same team by phone. A table is quick and consistent, and the people using it still have to read the facts. Answer the five questions for R07, for R12 or for a request of your own, and watch which routes stay:
Answer the questions above: the table then marks what fits your case and says why the rest does not.
| Route | A documented fix exists | Hands on the device | A site or everyone stopped | A supplier contract | A possible attack |
|---|---|---|---|---|---|
| Tier 0: self-service Who works it: the user, with the portal and the knowledge base | Good the user follows it at any hour, with no queue | Poor nobody comes to touch the device | Poor a fault in a shared system is not a user's to fix | Poor the supplier works for the company, not for one user | Poor a suspicious message needs analysts, not self-help |
| Tier 1: service desk Who works it: the first-contact team, with documented fixes | Good applies the knowledge base's steps on first contact | Poor talks the user through checks, but cannot repair | Mixed takes the first reports, then hands the fault to engineers | Mixed logs the call with the supplier and follows it up | Mixed records the report and hands it on at once, opening nothing |
| Tier 2: specialist teams Who works it: desktop, field, identity and application support | Mixed can fix it, but spends a specialist's time on it | Good desktop support at the office, field technicians at other sites | Mixed helps on site, while the cause sits in a shared system | Poor the contract names who repairs the device: the supplier | Poor a device in an attack is evidence, and a repair can destroy it |
| Tier 3: engineers or vendor Who works it: network and application engineers, and suppliers | Poor engineers' time for a fix the desk already has | Mixed a supplier's engineer repairs devices the contract covers | Good network or application engineers fix the shared system | Good the supplier repairs it under the contract's service levels | Mixed engineers act on the security team's instructions |
| Security team (SOC) Who works it: analysts who handle possible attacks | Poor a fault with a documented fix is not security work | Mixed may ask that nobody touches the device | Mixed takes an outage only when an attack may be its cause | Poor a repair under contract is not security work | Good investigates, contains it and tells the desk what to do |
How the answers decide
- “Could it be an attack: a suspicious message, a strange sign-in, a lost device or data seen by the wrong person?” Yes, or it might be: rules out Tier 0: self-service, Tier 2: specialist teams and Tier 3: engineers or vendor and adds a caveat to Tier 1: service desk. A possible attack goes to the security team at once. The desk only records it and hands it on: nobody opens, repairs or wipes anything first.
- “Could it be an attack: a suspicious message, a strange sign-in, a lost device or data seen by the wrong person?” No: rules out Security team (SOC). Faults, requests and repairs are support work: the security team takes what might be an attack.
- “How many people does it stop?” A site or everyone: rules out Tier 0: self-service and adds a caveat to Tier 1: service desk and Tier 2: specialist teams. A fault that stops a site or everyone sits in a shared system, so engineers own the fix; the desk and the technicians take reports and help on site.
- “How many people does it stop?” One user and “Does a supplier contract cover the device or the service?” No: rules out Tier 3: engineers or vendor. One person's fault is not engineering work unless a supplier contract covers it: it stays with the desk or a specialist team.
- “How many people does it stop?” One team and “Does a supplier contract cover the device or the service?” No: rules out Tier 3: engineers or vendor. A fault for one team starts with the desk or a specialist team; engineers take the faults that stop a site or a shared service.
- “Is there a documented fix that the user or the service desk can apply?” Yes, in the knowledge base and “Does it need hands on the device: a repair, a swap or an installation?” No, it can be done remotely: adds a caveat to Tier 2: specialist teams. A documented fix that needs no hands on belongs at tier 0 or 1: a specialist's time is for work the desk cannot do remotely.
- “Is there a documented fix that the user or the service desk can apply?” No, or it has already failed: rules out Tier 0: self-service and adds a caveat to Tier 1: service desk. With no documented fix the user cannot help themselves; the desk records what it tried and escalates with that evidence.
- “Does it need hands on the device: a repair, a swap or an installation?” Yes: rules out Tier 0: self-service and Tier 1: service desk. Someone must touch the device: desktop support at the office, a field technician at a site with no IT staff, or the supplier's engineer.
- “Does a supplier contract cover the device or the service?” Yes: rules out Tier 2: specialist teams and adds a caveat to Tier 1: service desk. The supplier repairs what its contract covers, within its service levels; the desk logs the call with the supplier and follows it up.
In short: a possible attack goes to the security team before anything else, a fault that stops a site goes to engineers, hands-on work rules out tiers 0 and 1, and a supplier contract sends the repair to the vendor.
Find a hole in the table
Press Edit and add a request to REQUESTS, such as ("R13", "Nobody can sign in", "phone", "password", "everyone", []), then run it. The table sends a sign-in failure that stops everyone to the self-service portal, although no
reset can fix a sign-in service that is down. Two keys cannot cover every case, which is why routing rules always
leave room for judgement.
Checkpoint
Check: Routing by category, impact and facts
Escalation moves a ticket to more skill or more authority
R06, a workbook that closes Excel, starts at tier 1 like most software faults that stop one user. The desk tries the documented fixes first; when they fail, the ticket has to move, and how well it moves decides how long the analyst waits. Step through it, and watch what each step adds to the ticket:
The drawing shows the whole scene; its 9 steps are listed below.
Every step as text
- The report arrives. R06 arrives on chat: Excel closes as soon as the analyst opens the budget workbook. The desk opens a ticket and writes the analyst's own words into it before asking anything.
- Restate and narrow it. The desk restates the problem and narrows it: every workbook or only this one, since when, and did anything change? Only this file, since this morning, and nothing new was installed.
- Documented fixes first. The desk's knowledge base lists two checks for one file that closes Excel: open a copy of the file, and start Excel without its add-ins. The copy closes Excel too, with or without add-ins.
- Evidence for the next tier. No documented fix worked, so the ticket needs more skill. The desk writes it up: the user and the device, the exact symptom, the steps that reproduce it, both checks and their results, the impact, and a copy of the file.
- A functional escalation. The desk assigns the ticket to application support. The ticket moves to the team with the skill to fix it, and the evidence travels with it.
- Set the expectation. The desk tells the analyst who has the ticket now and when the next update will come, so the analyst never has to chase it.
- Tier 2 starts from evidence. Application support opens the attached copy and Excel closes at once, so nobody asks the analyst the same questions again. The cause is one damaged sheet, and a repaired copy opens.
- Fixed and confirmed. Application support sends the repaired copy. The analyst opens it and checks the budget figures, and only then is the ticket resolved, with the cause and the fix written in it.
- The fix comes back down. Application support adds the cause and the repair to the knowledge base. The next time one workbook closes Excel, tier 1 has a documented fix and the ticket ends at first contact.
That move was a functional escalation: Moving a ticket to the team with the skill, access or tools to fix it, such as from the service desk to application support. The owner changes and the evidence goes with the ticket.: the ticket went to the team with the skill to fix it, and its owner changed. A hierarchical escalation: Taking a ticket to someone with more authority, such as a shift lead or a manager, who can raise its priority, add people, spend money or press a supplier, often while the same team keeps the work. goes to more authority instead: a shift lead or manager who can raise a priority, add people, spend money or press a supplier, often while the same team keeps the work. If R07’s supplier misses the response time its contract promises, the shift lead calls the supplier’s service manager; the repair stays with the supplier, and someone with more authority pushes it.
Either way, the ticket carries its evidence. CompTIA’s objectives name the written parts of a ticket: the issue description, progress notes and the resolution. For an escalation that means:
- who the user is, and which device and version;
- the symptom in the user’s words, and the restatement they agreed with;
- when it started, and what changed;
- the steps that reproduce it;
- every fix tried, with its result;
- the impact: who is stopped, and by when it matters;
- attachments: a screenshot, a log or a copy of the file.
Escalating a ticket without its evidence
Wrong: “Excel crashing, please help.” Right: “Excel closes on opening budget.xlsx only; a copy does the same, and so does Excel without add-ins; other workbooks open; copy attached.” The first sends tier 2 back to the user with the questions tier 1 already asked; the second lets tier 2 reproduce the fault at once.
Tier 2 in the figure started from that evidence, and its fix came back down as a knowledge base article, so the next case ends at tier 1.
Key idea
Escalate for skill (functional) or for authority (hierarchical), and always with the evidence: the steps, every fix tried and its result, so the next tier starts where the last one stopped.
Checkpoint
Check: Functional and hierarchical escalation
Roles differ by where the work happens
The tiers say how deep a problem goes; the roles say where the person who fixes it works. Each of the twelve requests meets one of these roles, and some people move between them in a single day:
| Role | Where the work happens, and what reaches it | From the twelve |
|---|---|---|
| Help desk or service desk | Mostly remotely, by phone, chat, email and portal, plus walk-ups at the desk: every first contact and the known fixes | R02, R06, R09 |
| Desktop or deskside support | At the user’s desk or the IT bench: builds, repairs, swaps and peripherals | R03, R12 |
| Field technician | At sites with no IT staff, by travelling there: installations and repairs on site | R11 |
| NOC | A centre that watches network and service monitoring: outages, links, Wi-Fi and VPN faults | R04 |
| SOC | A centre that watches security alerts: phishing reports, strange sign-ins, lost devices | R05 |
| Managed service provider | Any of the above, for several customers: what each customer’s contract lists | Any of them, under contract |
The NOC: A network operations centre: the team that watches network and service monitoring and fixes outages of shared links, Wi-Fi, VPNs and other network services. sees an outage on its monitoring, often before the first call, which is why the desk sends it site-wide network faults such as R04 at once. The SOC: A security operations centre: the team that watches security alerts and investigates possible attacks, such as phishing reports, unexpected sign-ins and lost devices. Every tier sends it such reports at once. is not a tier above tier 3: it is a separate team that every tier sends possible attacks to straight away. It may be in-house or bought in; NIST’s incident response guide gives outsourcing a SOC to a managed security services provider as one way to staff incident handling.
A managed service provider: A company that delivers, operates or manages IT services for other organisations under contract, often with service levels written in. Its desk may run any tier of a customer's support. (MSP) does support work for other organisations. CISA’s advisory on MSPs describes them as companies that deliver, operate or manage information and communications technology (ICT) services for customers under a contract, and notes that these services usually need trusted network connections and privileged access to customer systems. An MSP’s desk therefore follows each customer’s procedures as strictly as an in-house desk, because a mistake there can reach a customer’s network.
Checkpoint
Check: Roles by where the work happens
Each channel changes how you work the ticket
The twelve requests came by five channels: four by phone (R01, R04, R07, R10) and two each by chat, email, the portal and walk-up. The route does not depend on the channel, and the exercise below tests exactly that. The method does, because what you can see, how fast the user answers and what gets written down all change. CompTIA’s communication objective asks for the same habits everywhere: restate the issue to check you understood it, avoid jargon, set and meet expectations for the timeline, and follow up later to confirm the user is satisfied. The rest depends on the channel:
| Channel, and what it gives you | How you work | The trap |
|---|---|---|
| Phone: the user’s voice and urgency, at once | Say one step, wait, and ask what the screen shows before the next; read back what you record | Nothing is written unless you write it, and anyone can give a name |
| Chat: text both sides can copy | Paste exact steps and error text, ask for a screenshot, one question per message | Several chats at once: keep one ticket per chat |
| Email: time to write a full answer | Number all your questions in one message, and say when you will reply | One question per reply turns a short fix into days |
| Portal: a form with the category, device and contact filled in | Read the form and the articles it offered before you ask anything | A wrong category sends it to the wrong queue, so check it |
| Walk-up: the device in front of you | Take people in turn, and write the ticket even for a two-minute fix | Fixes with no ticket hide the pattern and the workload |
Talking someone through a screen you cannot see
Wrong: “Click the network thing and reset it.” Right: “At the bottom right, beside the clock, there is a small Wi-Fi symbol. Click it once and tell me what opens.” On a call the user’s description is the only view of their screen you have, so every step names what they will see and waits for them to say what happened.
Checkpoint
Check: How each channel changes the method
Follow-the-sun handovers need times with offsets
A desk that supports users in several countries rarely stays open around the clock in one place. Follow-the-sun support puts desks in different time zones, each working its own daytime and handing its open tickets to the next. The program checks a rota for desks in Pune, Dublin and Bogotá. Each shift is a local time with its UTC offset, and the program turns every shift and handover into UTC:
"""Three desks follow the sun. Each shift is written as local times with
their UTC offsets, so every handover can be checked in UTC."""
from datetime import time
# Offsets from the tz database: Asia/Kolkata is +05:30 all year,
# Europe/Dublin +01:00 in summer and +00:00 in winter, and
# America/Bogota -05:00 with no daylight saving time.
SUMMER = [
("Pune", "08:00+05:30", "16:00+05:30"),
("Dublin", "11:30+01:00", "19:30+01:00"),
("Bogotá", "13:30-05:00", "21:30-05:00"),
]
WINTER = [
("Pune", "08:00+05:30", "16:00+05:30"),
("Dublin", "11:30+00:00", "19:30+00:00"),
("Bogotá", "13:30-05:00", "21:30-05:00"),
]
def utc(text):
"""Minutes after midnight UTC of an ISO time, and the day it falls on."""
t = time.fromisoformat(text)
offset = int(t.utcoffset().total_seconds()) // 60
minutes = t.hour * 60 + t.minute - offset
return minutes % 1440, minutes // 1440
def show(text):
minutes, day = utc(text)
clock = f"{minutes // 60:02d}:{minutes % 60:02d} UTC"
return clock + {-1: " (day before)", 0: "", 1: " (next day)"}[day]
def rota(title, desks):
print(title)
for desk, start, end in desks:
print(f" {desk:7}{start} to {end} = {show(start)} to {show(end)}")
for (a, _, end), (b, start, _) in zip(desks, desks[1:] + desks[:1]):
gap = (utc(start)[0] - utc(end)[0]) % 1440
if gap == 0:
print(f" {a} -> {b} at {show(start)[:9]}: no gap")
elif gap < 720:
print(f" {a} -> {b}: {gap} minutes with no desk open")
else:
print(f" {a} -> {b}: {1440 - gap} minutes with two desks open")
rota("Summer rota", SUMMER)
rota("Winter rota", WINTER)
print()
print('A note says "call back at 16:00 IST". Three zones write IST:')
for where, text in [("India, all year", "16:00+05:30"),
("Ireland, summer", "16:00+01:00"),
("Israel, winter", "16:00+02:00")]:
print(f" {where:16}{text} = {show(text)}") Output
Summer rota Pune 08:00+05:30 to 16:00+05:30 = 02:30 UTC to 10:30 UTC Dublin 11:30+01:00 to 19:30+01:00 = 10:30 UTC to 18:30 UTC Bogotá 13:30-05:00 to 21:30-05:00 = 18:30 UTC to 02:30 UTC (next day) Pune -> Dublin at 10:30 UTC: no gap Dublin -> Bogotá at 18:30 UTC: no gap Bogotá -> Pune at 02:30 UTC: no gap Winter rota Pune 08:00+05:30 to 16:00+05:30 = 02:30 UTC to 10:30 UTC Dublin 11:30+00:00 to 19:30+00:00 = 11:30 UTC to 19:30 UTC Bogotá 13:30-05:00 to 21:30-05:00 = 18:30 UTC to 02:30 UTC (next day) Pune -> Dublin: 60 minutes with no desk open Dublin -> Bogotá: 60 minutes with two desks open Bogotá -> Pune at 02:30 UTC: no gap A note says "call back at 16:00 IST". Three zones write IST: India, all year 16:00+05:30 = 10:30 UTC Ireland, summer 16:00+01:00 = 15:00 UTC Israel, winter 16:00+02:00 = 14:00 UTC
Recorded with Python 3.14.8 on macOS 26 arm64. To run it yourself: mise exec python@3.14.8 -- python3 handover_times.py
Runs on this device, in your browser. The first run downloads Python (about 13.5 MB), which is kept for the next runs.
Your run, in this browser
In summer the shifts meet exactly: the handovers fall at 10:30, 18:30 and 02:30 UTC. In winter the same local hours break the rota, because the tz database gives Europe/Dublin +01:00 in summer and +00:00 in winter, while Asia/Kolkata stays at +05:30 and America/Bogota at −05:00. Dublin then opens an hour after Pune closes, leaving 60 minutes with no desk open, and stays open an hour into Bogotá’s shift. Plan a rota in UTC and let the local hours move.
The last lines show why a note must never say only “IST”. The tz database uses that abbreviation for three offsets:
India Standard Time (+05:30), Irish Standard Time (+01:00, which Ireland uses in summer) and Israel Standard Time
(+02:00). “Call back at 16:00 IST” can mean 10:30, 15:00 or 14:00 UTC, so write 16:00+05:30, or the time in UTC, in
every handover note and ticket.
Close the winter gap
Press Edit and change Dublin’s winter shift to 10:30+00:00 to 18:30+00:00, then run it again: both handovers
line up, because the shift moved in local time to stay in place in UTC. The
timezone converter does the same conversion for any city.
Checkpoint
Check: Handover times with UTC offsets
What tier 1 owns, and what it never does
First-line support owns five things on every ticket:
- Confirm who the user is, with the checks the procedure lists.
- Record the ticket: the user, the device, the category, the impact and the description.
- Fix known issues with documented procedures.
- Escalate with evidence when no documented fix works.
- Keep the user informed: who has the ticket, the next step and when it will come.
It never does three things, however the request is put. It never shares credentials, its own, a colleague’s or a service account’s, and never asks a user for a password or a sign-in code. It never skips an identity check or an authorisation that its procedure requires. And it never works on a system it is not authorised to touch, even when it could get in.
Attackers test exactly these rules. CISA’s advisory on the Scattered Spider group describes criminals who target large companies and the help desks those companies contract for IT support. Posing as employees, the group’s callers asked help desk staff to reset a password and to move the employee’s multi-factor authentication (MFA): Authentication that requires at least two independent factors from different types: something you know, something you have, or something you are. More in “Passwords, MFA and passkeys for support” to “a device they control”, and their first calls only learned how a desk’s resets work. The personal details they quoted came from social media, open sources, commercial intelligence tools and database leaks, so a caller who knows an employee number and a manager’s name has proved nothing. Step through a reset done by the rules, then a second call that fails the check:
The drawing shows the whole scene; its 7 steps are listed below.
Every step as text
- A request with urgency. A caller gives a name from Finance, says they are locked out before a payment run and asks for a reset now. The urgency goes into the ticket; it never removes a step.
- Contacts already on file. The desk finds the account in the directory and reads the contact details stored there, such as the phone number. A number or an address the caller offers during the call proves nothing.
- The procedure's checks. The desk runs every check its procedure lists, for example a call back to the number on file or a code sent to the device already registered. Facts a stranger can look up, such as an employee number or a manager's name, are not proof.
- Reset, never read aloud. The checks pass, so the desk resets the password with its tool and the user chooses a new one at the next sign-in. Nobody reads a password aloud, and nobody asks the user for theirs.
- The ticket tells the story. The ticket records who asked, how the identity was checked, what changed and when, with the time and its UTC offset. Anyone who looks at the account later can see what the desk did.
- A second call. Another caller asks for the same reset, cannot take the call back on the number on file, and asks the desk to move the sign-in app to a new phone instead.
- Stop and report. The check failed, so there is no reset and no new device. The desk tells the caller how to get help through the normal route, records the call and reports it to the security team.
The desk trusted only contact details already on file, and the second caller’s urgency and new phone changed nothing. Moving a user’s MFA to a new device gets the same check as a reset, because whoever holds the second factor holds the account.
Key idea
A reset or an MFA move is safe only when the identity check used something the caller cannot invent or look up: contact details already on file, or a device already registered.
When no documented fix exists yet, tier 1 still needs a way to work: the next lesson builds the troubleshooting method it uses.
Checkpoint
Check: What tier 1 owns and never does
Practise: route the twelve requests yourself
Turn the desk’s judgement into code. The exercise gives the rules in order, facts included, and its sample tests replay the twelve requests and the cases where the order matters, such as a damaged laptop under a supplier contract.
Exercise · Easy · Python
Route a support request by its facts
Write route(request). It returns a tuple (tier, owner) for one support request, so that all twelve requests of the lesson go where the desk sent them, including R07, R11 and R12, which the two-key rule table got wrong.
A request is a dict with these keys (others, such as "summary" or "channel", may be there too and change nothing):
"category":"password","hardware","software","network","access","new starter"or"security";"impact":"one user","a team","a site"or"everyone";"facts": a list that may hold"supplier contract","remote site"and"damaged".
Check these rules in this order and return the first one that applies:
- A
"security"request returns(None, "security team"): it leaves the tiers, whatever its impact or its facts. - A
"supplier contract"returns(3, "vendor"). - An impact of
"a site"or"everyone"returns(3, "network operations")for"network"and(3, "application engineers")for"software". - A
"remote site"returns(2, "field technician"). "damaged"returns(2, "desktop support")."password"returns(0, "self-service portal"),"access"returns(2, "identity and access")and"new starter"returns(2, "desktop support").- Everything else returns
(1, "service desk").
The request itself must not change.
Starter code · route.py
def route(request):
"""Return (tier, owner) for a support request.
request has "category", "impact" and "facts" (a list). The tier is 0
to 3, or None for a security report, which leaves the tiers.
"""
tier, owner = 1, "service desk"
return tier, owner The sample tests · test_route.py
from route import route
def ask(category, impact="one user", facts=(), channel="phone"):
"""A request as the desk records it."""
return {"category": category, "impact": impact, "facts": list(facts), "channel": channel}
def test_security_leaves_the_tiers():
"""sends a security report to the security team, whatever its impact or its facts"""
assert route(ask("security", channel="email")) == (None, "security team") # R05
assert route(ask("security", "a site")) == (None, "security team")
# A laptop under a supplier contract, back with its seal broken: security first, no repair yet.
tampered = ask("security", facts=["supplier contract", "damaged"], channel="walk-up")
assert route(tampered) == (None, "security team")
def test_supplier_contract():
"""sends a device under a supplier contract to the vendor, even when it is damaged"""
assert route(ask("hardware", "a team", ["supplier contract"])) == (3, "vendor") # R07
assert route(ask("hardware", "one user", ["damaged", "supplier contract"])) == (3, "vendor")
def test_site_wide_faults():
"""sends faults that stop a site or everyone to the engineers"""
assert route(ask("network", "a site")) == (3, "network operations") # R04
assert route(ask("software", "everyone")) == (3, "application engineers") # R10
assert route(ask("network", "everyone")) == (3, "network operations")
def test_one_user_or_a_team_stays_with_the_desk():
"""keeps faults of one user or one team with the service desk"""
assert route(ask("network")) == (1, "service desk") # R09
assert route(ask("software", channel="chat")) == (1, "service desk") # R06
assert route(ask("software", "a team")) == (1, "service desk")
assert route(ask("hardware", channel="walk-up")) == (1, "service desk") # R02
def test_hands_on_work():
"""sends work that needs hands on a device to a technician"""
assert route(ask("hardware", "a team", ["remote site"])) == (2, "field technician") # R11
assert route(ask("hardware", facts=["damaged"])) == (2, "desktop support") # R12
assert route(ask("hardware", facts=["damaged", "remote site"])) == (2, "field technician")
def test_categories_with_their_own_team():
"""routes passwords, access and new starters to their owners"""
assert route(ask("password")) == (0, "self-service portal") # R01
assert route(ask("access", channel="email")) == (2, "identity and access") # R08
assert route(ask("new starter", channel="portal")) == (2, "desktop support") # R03
def test_channel_and_request_unchanged():
"""gives the same route on every channel and leaves the request as it was"""
by_phone = ask("hardware", facts=["damaged"], channel="phone")
in_person = ask("hardware", facts=["damaged"], channel="walk-up")
assert route(by_phone) == route(in_person)
assert by_phone == ask("hardware", facts=["damaged"], channel="phone") A hint
Read the three values first: category = request["category"], impact = request["impact"] and facts = request["facts"]. Then write one if per rule, in the prompt's order, each ending in return, so the first rule that applies wins: a security report must be caught before every other rule, even when a supplier contract covers the device, and a supplier contract before "damaged". "damaged" in facts tells you whether a fact is in the list, and impact in ("a site", "everyone") covers both wide impacts at once.
Results of the sample tests
| Test | Result | Details |
|---|
What your code printed
The sample tests run on this device, in your browser (Pyodide): nothing is sent to mysmartcopilot.com. The first run downloads Python (about 13.5 MB), which is kept for the next runs. A check in your browser is feedback for you, not proof that the code is right for every input.
Then test yourself on all seven ideas, from the tiers to the reset that tier 1 refuses; the questions adapt to your answers as you go:
Practice that adapts to you
Practise this lesson
14 questions about 7 ideas of this lesson. Each answer is explained at once, and what you get right is kept in this browser.
Interview questions
Warm-up (fresher): how do functional and hierarchical escalation differ, and when do you use each?
Functional escalation moves a ticket to a team with more skill or access: the service desk assigns a workbook that closes Excel to application support, or a site-wide VPN fault to network operations, because it cannot fix them itself. The owner changes, and the evidence goes with the ticket: what was tried, the results and how to reproduce the fault. Hierarchical escalation goes to more authority: a shift lead or manager who can raise the priority, add people, spend money or press a supplier that has missed its contract’s response time. The same team often keeps working while that happens. Use functional escalation when the current team lacks the skill, access or tools, and hierarchical escalation when the problem is time, priority or a decision above your role. A serious incident often needs both at once.
Two harder cases follow: a site outage that floods the desk with calls, and an urgent request for access made in an executive’s name. For each, note whom you would tell first and which check you would refuse to skip, then open the question and hold your note against its first step:
Model answers open with any pass: ₹79 for 1 week ($2.99), one payment that never renews.
-
Fresher to mid
At 09:10 the main office's internet link fails. Within 20 minutes 60 calls about it have reached tier 1, while users with other problems wait in the queue behind them. You took the first call. What do you do, in what order, and what changes for the desk until the link is back?
-
Fresher to mid
A caller says they are the finance director's assistant. The director is travelling, is locked out before a board call in 30 minutes, and wants a reset link sent to a personal email address, or the assistant given access to the director's mailbox. The caller is polite, insistent and names your manager. What do you do?
Flashcards · 6 cards
Recall it, then check
Say the answer to yourself before you look: recalling it is what makes it stick.
-
What are the four tiers of this track's support model, and which one should take a request?
Tier 0 is self-service through the portal. Tier 1 is the service desk, working from documented procedures. Tier 2 is the specialist teams for harder device, identity and app work, and tier 3 is engineers or the vendor. A request goes to the lowest tier that can close it.
-
How does functional escalation differ from hierarchical escalation?
Functional escalation hands the ticket to a team with more skill, access or tools, and the owner changes. Hierarchical escalation brings in more authority, such as a shift lead or a manager who can raise the priority, add people or press a supplier. Both carry the evidence with them.
-
What makes a password reset or an MFA move safe to carry out for a caller?
An identity check based on something the caller cannot invent or look up, such as contact details already on file or a device that is already registered. A caller who knows an employee number and a manager's name has proved nothing.
-
What do a NOC, a SOC and an MSP each do?
A NOC watches network and service monitoring and fixes outages of shared links, Wi-Fi and VPNs. A SOC watches security alerts and looks into possible attacks. An MSP is a company that runs IT services, at any tier, for other organisations under a contract.
-
A request looks like it could be part of an attack. Where does it go first?
To the security team, before any other routing. Category and impact route most requests, and facts such as a supplier contract, a remote site or damage can change that route.
-
Why does a follow-the-sun handover write each time with its UTC offset?
Because a zone name alone can be read three ways: IST may mean +05:30, +01:00 or +02:00. A time written with its offset names one moment for every desk that reads it.
Key takeaways
- This track’s tier model has four levels: tier 0 self-service, tier 1 the service desk with documented fixes, tier 2 specialist teams for deeper device, identity and application work, and tier 3 engineers or the vendor; each request belongs at the lowest tier that can finish it.
- Category and impact route most requests, but facts such as a supplier contract, a remote site or damage change the route, and a possible attack goes to the security team before anything else.
- Functional escalation moves a ticket to more skill and hierarchical escalation to more authority, and both carry the evidence: the steps, every fix tried and its result.
- Roles differ by where the work happens: the help desk works mostly remotely, desktop support at the user’s desk or the bench, field technicians at sites with no IT staff, the NOC on networks, the SOC on security alerts, and an MSP does any of these for other organisations.
- Each channel changes the method rather than the route, and follow-the-sun handovers write every time with its UTC offset, because IST alone can mean +05:30, +01:00 or +02:00.
- Tier 1 confirms identity, records the ticket, fixes known issues, escalates with evidence and keeps users informed, and it never shares credentials, skips a required check or works on a system it is not authorised for.
Terms in this lesson
- escalation
- Moving a ticket to people with more skill or access (functional escalation) or with more authority (hierarchical escalation), together with the evidence of what has been tried so far.
- follow-the-sun
- Support shared by desks in different time zones, each working its own daytime and handing its open tickets to the next, so that users are covered around the clock.
- functional escalation
- Moving a ticket to the team with the skill, access or tools to fix it, such as from the service desk to application support. The owner changes and the evidence goes with the ticket.
- hierarchical escalation
- Taking a ticket to someone with more authority, such as a shift lead or a manager, who can raise its priority, add people, spend money or press a supplier, often while the same team keeps the work.
- managed service provider
- A company that delivers, operates or manages IT services for other organisations under contract, often with service levels written in. Its desk may run any tier of a customer's support.
- NOC
- A network operations centre: the team that watches network and service monitoring and fixes outages of shared links, Wi-Fi, VPNs and other network services.
- self-service portal
- A website where users raise requests, read knowledge base articles and finish common tasks such as a password reset themselves, at any hour: tier 0 of the tier model this track uses.
- service desk
- The first-contact team of IT support, also called the help desk. It records every request as a ticket, fixes known issues with documented procedures and escalates the rest with evidence.
- SOC
- A security operations centre: the team that watches security alerts and investigates possible attacks, such as phishing reports, unexpected sign-ins and lost devices. Every tier sends it such reports at once.
References
- CompTIA A+ Core 2 (220-1202) V15 exam objectives (CompTIA)
- Scattered Spider (cybersecurity advisory AA23-320A) (Cybersecurity and Infrastructure Security Agency (CISA))
- Protecting against cyber threats to managed service providers and their customers (AA22-131A) (Cybersecurity and Infrastructure Security Agency (CISA))
- NIST SP 800-61 Rev. 3: incident response recommendations and considerations for cyber risk management (National Institute of Standards and Technology)
- Time Zone Database: the asia file (Asia/Kolkata, Asia/Jerusalem) (Internet Assigned Numbers Authority (IANA))
- Time Zone Database: the europe file (Europe/Dublin) (Internet Assigned Numbers Authority (IANA))
- Time Zone Database: the southamerica file (America/Bogota) (Internet Assigned Numbers Authority (IANA))
Related tools
Report a problem with this lesson
Kept only in this browser. Your Learn progress