Centralizing support and building a scalable intake workflow

At Empowerly, an online college counseling company, support requests from families and counselors arrived in five different places. I moved all of it into one Zendesk system with tags, owners, templates and routing rules, then rolled the change out across Sales, Customer Success and the counselors.

Role Sr. Customer Success ManagerCompany EmpowerlyMade with Zendesk, Gmail, HubSpot, Slack, Google Sheets
Zendesk administrationSupport workflow designCross-team rolloutMacro and template designTriage and escalationGoogle Sheets opsCustomer SuccessChange management
Part 1

Support lived in five places and none of them talked

📥

Five inboxes

Shared Gmail inboxes (support@ and info@), HubSpot threads, Slack DMs, employees' own inboxes, and counselors going straight to Sales with student issues.

🧠

Nothing was logged

Follow-up depended on memory and Slack scrollback. There was no way to know what was open, who owned it, or what was stuck.

❓

Four questions nobody could answer

Who is handling the Chen scheduling issue? Did anyone reply to the billing thread? Was the portal request resolved? Was that urgent match change escalated, or forgotten?

Before · Incoming requests5 channels
ChannelFromMessageAge
SlackCounselor Kimhey can you check on the Chen family scheduling?2d
GmailParent (info@)My daughter's counselor hasn't responded in a week3d
DMCounselor LopezCan someone reset my student's portal access?1d
HubSpotBilling threadRe: Invoice question, forwarded from Sales4d
EmailStudent (direct)I need my transcript sent by Friday1d
?Who is handling the Chen scheduling issue?check Slack
?Did anyone reply to the billing thread from HubSpot?ask Sales
?Is the portal access request resolved?nobody logged it
?That urgent match change: escalated, or forgotten?no record
After · Zendesk ticket #4201tagged, owned, tracked
ZD
Counselor match requestFrom Counselor Park · Student: Alex Chen, 11th grade · 1 day old
Urgent
OpenStatus
ShelbyOwner
4 hrFirst response
Tags and SLA
counselor-match · urgent · student-request · escalation
First responsewithin 4 hours
Resolution target1 business day
Actions taken
Auto-acknowledgment sent
Tagged and assigned to Shelby (CS)
Macro applied: match-change-process
Internal notes
Student wants a switch because of a schedule conflict
Checked availability: 2 counselors have openings
Waiting on the student's preference
Linked history
#3988 · Initial onboardingSep
#4102 · Scheduling questionOct
Every reply, note and tag on one timeline

Left: a normal morning before. Right: one request as a Zendesk ticket after. Sample data, fictional names.

Part 2

One address, one system, regardless of origin

🔀

Four channels in, one system out

The shared Gmail inboxes auto-forwarded to Zendesk. Slack DMs were converted to tickets. Support threads were routed out of the HubSpot sales CRM. Counselors were redirected to the support address.

🏷️

Six tags

Scheduling, billing, counselor match, account access, program questions, urgent or escalation. Every ticket got one before any work started.

🚦

Five statuses

New, Open, Pending, On-hold, Solved. Each one meant something specific, so anyone could read the queue without asking.

✉️ Gmail: support@ and info@ 💬 Slack DMs 📇 HubSpot sales threads 👤 Counselors going to Sales forwardedconverted or routed Zendeskone queue, one address Tagged: one of six categories Owned: a named person on every ticket Tracked: status, age and flags in one queue Searchable: every solved ticket keeps a summary

Where requests came from, and what every one of them had once it was inside.

Newarrived, not yet triaged Opentagged, owned, first reply sent Pendingwaiting on the requester On-holdwaiting on an internal team Solvedsummary logged

The five statuses. Pending and On-hold were kept apart on purpose: one meant we were waiting on the family, the other meant we were waiting on ourselves.

Part 3

Consistent replies. Zero guesswork.

📄

One macro per request type

Scheduling, billing, account access, counselor match and escalation. Tested wording, and every first reply told the requester exactly what would happen next.

✎

Filled in from the ticket

Names, dates and context came from the ticket fields. The highlighted blanks were the only thing left to check.

⏱️

Response time

Same day when possible, one business day by default. Urgent tickets got a first response within 4 hours and a resolution target of one business day.

Macros · Ticket #4198, SchedulingStatus: Open · Owner: Shelby
Macros
To Parent (info@)Ticket #4198Tag
Yellow fields come from the ticket. Check them, then apply.Edit▶ Apply macro
Ticket events
Auto-acknowledgment sent to requesterMon 9:02
Tagged scheduling · assigned to ShelbyMon 9:40

Pick a macro, then press Apply. The suggested one matches the ticket's tag. Sample wording, not the real templates.

Part 4

Automations that prevented tickets from getting lost

3️⃣

Every ticket got three things

A tag, an owner, and a first reply with a clear next step, before any deep work began. That was the triage rule, and it had no exceptions.

⏰

Timers caught the stalls

Pending for 3 business days: reminder to the owner. On hold for 5: escalate. Urgent and unresolved after 4 hours: escalate. Solved with no reply for 48 hours: close.

🔁

Off-channel became on-channel

Slack DMs, direct emails and requests routed through Sales were converted into tickets, and the requester got a friendly redirect to the support address.

What happens at each ticket statusclick a status
Intake and routingOwner and replyGuardrail

Sample ticket. The guardrails are the part people never see until something would have been forgotten.

WhenWhat happened
A ticket arrivedAuto-acknowledgment to the requester, source channel logged, ticket into the New queue
Triage was doneCategory tag, owner and first reply with a next step, before any deep work
Pending for 3+ business daysReminder to the ticket owner to follow up or close
The urgent tag was addedTicket jumped to the top of the daily view; escalated if unresolved after 4 hours
A request came in off-channelConverted to a ticket; requester redirected to the support address
A ticket was solvedResolution summary written so it stays searchable; auto-closed after 48 hours with no reply
Response rulesTarget
Standard ticket, first replySame day when possible, 1 business day by default
Urgent ticket, first replyWithin 4 hours
Urgent ticket, resolution1 business day
Pending with no replyReminder at 3 business days, closed at 5
On hold with no updateEscalated at 5 business days
Solved with no replyClosed after 48 hours
Part 5

Open it, work the queue, go home

📋

One queue

Every morning: open the triage queue, see what needed attention, work through it. No Slack digging, no checking five inboxes, no wondering who dropped the ball.

⚠️

Flags

Escalations, follow-ups overdue, and tickets converted from DMs showed on the row, so the exceptions were the first thing I saw.

⏱️

Age and targets up front

How long each ticket had been in the system, and whether its first-response target was met, sat on the row next to the status.

Triage queue · Todayclick a ticket
TicketCategoryStatusAgeFlag
#4201 · Counselor matchCounselor Park
Urgent
Open
1d
Escalation
Ticket
Student: Alex Chen, 11th grade
Issue: counselor schedule conflict
Owner Shelby · first response in 4 hr, target met
Next steps
2 counselors with openings identified
Waiting on the student's preference
Follow-up scheduled for tomorrow
#4198 · SchedulingParent (info@)
Standard
Pending
3d
Follow-up due
Ticket
Family asked for a schedule change
Scheduling macro applied, 3 time options sent
Status
Waiting on the family for 3 days: reminder fired today
Rule: close if no reply by day 5
#4203 · Account accessCounselor Lopez, via Slack
Standard
New
0d
Converted from DM
Ticket
Portal access reset request
Arrived as a Slack DM: converted to a ticket, counselor redirected
Action needed
Assign an owner for triage
Tag account-access · apply the access-reset macro
#4204 · BillingHubSpot thread, routed
Standard
Open
1d
Ticket
Invoice question from a family
Started in HubSpot: routed to Zendesk, Sales told about the routing change
Status
Billing macro applied
Waiting on the finance team; goes On-hold if no reply in 2 days
#4205 · Portal resetStudent, direct email
Standard
Solved
0d
Ticket
Reset link sent and confirmed working
Closeout
Summary logged: "portal reset, link expired, reissued"
Auto-closes in 48 hours if no reply
#4206 · Transcript requestParent email
Urgent
Pending
2d
Follow-up due
Ticket
Transcript needed by Friday for an application
Registrar contacted, confirmation requested
Status
No reply from the registrar in 2 days: follow-up due today

Click a ticket to open it. Sample tickets, fictional names.

Part 6

Tool change fails if people keep DM-ing Sales

🤝

Internal first

I met with Sales and agreed the routing rules, so support requests stopped arriving through the sales team.

📣

Then the families, then the habit

Families and counselors got clear guidance on where to send requests. For a while every off-channel request was converted and redirected, every time, until the new path was the default.

PHASE 1Sales alignmentMet with Sales · Defined routing rules · Reduced support-through-Sales
PHASE 2Customer messagingDirected families to the support channels · Clear guidance sent
PHASE 3Behavior changeManaged the adjustment · Converted off-channel requests into tickets, consistently
PHASE 4ReinforcementEvery off-channel request becomes a ticket · No exceptions

Tracking beyond tickets

📊

Counselor tracker

A shared Google Sheet I built and maintained: coverage, student load, responsiveness, quality signals and onboarding stage for every counselor.

📋

Onboarding tracker and training manual

Standard steps for every new hire so nobody slipped through, plus a manual documenting procedures, tools and expectations.

📣

Reported to the team

Tracker stats were presented in team meetings, so coverage gaps and heavy loads were discussed before they became problems.

Counselor operations trackerGoogle Sheets · 8 of 40 rows
CounselorFocusLoadStatusResponseQuality
Sarah KimCollege admissions18 studentsActive< 24 hr★★★★★
David ChenEssay review22 studentsHeavy< 24 hr★★★★
Priya PatelCollege admissions12 studentsOnboarding48 hrNew
James WrightExtracurriculars15 studentsActive< 12 hr★★★★★
Maria SantosFinancial aid20 studentsActive< 24 hr★★★★
Tom BradleyTest prep9 studentsOnboarding36 hrNew
Lisa ParkCollege admissions16 studentsActive< 24 hr★★★★★
Kevin NguyenEssay review14 studentsActive< 12 hr★★★★★

The counselor tracker. Sample rows, fictional names.

Results

5 → 1scattered channels became one intake system
0lost requests
< 1 dayresponse time
100%of tickets tagged
100%of tickets with a named owner
100%searchable, with a summary on every solved ticket
6tag categories
5ticket statuses
400+active users supported
3people on the support team

How I think about operations

Friction > Firefighting

Notice the friction early and fix it before it becomes standard practice.

Structure > Heroics

Build structure people will follow, matching how the work really moves.

One source > Five half-systems

One clear place for the truth instead of scattered channels.

People > Process

Design for the people doing the work. Fewer interruptions, clearer expectations.