This help desk software tutorial takes you from an empty configuration to a request that reaches an owner, receives a reply and can be tracked to resolution. The goal is a working support process with clear evidence that each handoff behaves as intended.
The exercise uses an illustrative small SaaS support team with Frontline, Billing and Technical Support groups. Zendesk documentation provides specific examples where useful; other platforms have different menus, permissions and plan limits. The exercise is a proposed setup, not a live configuration or a hands-on product benchmark.
Before you start: define the first workflow
Choose one channel and a small set of request types for the pilot. Write down who administers the system, who monitors incoming work and who handles requests outside the first team’s scope. Confirm access to a safe test account and an approved way to send sample requests.
If you are still selecting a platform, use our help desk software comparison. Decide between customer support and internal IT requirements before comparing features. Deployment choice also brings responsibilities: identify who handles updates, backups, access and recovery instead of assuming cloud or self-hosted software is inherently safer.
For this tutorial, the first workflow is: a customer asks for an invoice correction, Frontline confirms the request, Billing accepts the handoff, and the customer receives a clear outcome. A separate technical sample will check that an unrelated problem does not enter the Billing queue.
1. Create groups, roles and a monitored fallback
Create the teams that will own work, then give each agent the permissions needed for their role. Keep configuration changes with designated administrators. Check what a normal agent can see and edit using that role, rather than relying only on an administrator’s view.
Zendesk groups organize agents and can be used in assignment rules and views. A group assignment is not the same as a named agent accepting responsibility. Decide who monitors unassigned group work and what happens when nobody is available.
Try it: create a sample request with no recognized request type. Verify it appears in a monitored Frontline view. Assign it to an agent, then check that the team can tell who owns the next action.
Ready when: ordinary agents have appropriate access, every incoming request has a visible route, and the fallback has an actual monitoring owner.
2. Connect one intake channel and check the customer side
Connect the pilot email address or request form using the vendor’s current setup instructions. Verify sender identity and reply behavior before redirecting an existing support address. Channel verification, forwarding and authentication steps depend on the platform and your domain setup.
Send a synthetic request from outside the agent account. Inspect the requester, subject, message, timestamp and attachments in the resulting record. Reply as an agent and confirm the test customer receives the message. Reply again as the customer and check that the conversation stays connected as intended.
Review automatic acknowledgments so they describe the next step accurately. “We received your request” does not mean an agent has investigated it. Check duplicate notifications and loops between the old inbox and the new system.
Ready when: a two-way sample conversation works and the team knows where failed delivery or disconnected replies will be investigated.
3. Add only the fields needed for routing and investigation
Start with Request type, Product area and an impact description where relevant. Avoid requiring customers to know an internal component or diagnose the cause. A clear “Not sure” route is better than forcing an inaccurate answer.
Zendesk custom fields can support ticket context and business rules, with capabilities depending on field type and plan. Decide which fields customers see, which agents edit and which feed reports. Do not assume every field type behaves identically in automation.
Try it: submit one Billing request, one Technical request and one with the optional fields blank. Check the agent view and customer form separately. Confirm labels are understandable and the fallback still works.
Ready when: each required field supports a specific action, and an incomplete or uncertain submission does not disappear from the team’s work.
4. Add a narrow routing rule and verify exceptions
Start with a rule whose result you can inspect. The following is an illustrative rule specification, not syntax to paste into a vendor console:
Name: Route newly created Billing requests All conditions: - Ticket is newly created - Request type is Billing Action: - Assign group to Billing Fallback: - Other requests remain in the monitored Frontline workflow Acceptance: - Billing queue monitor checks for unassigned work - A named Billing agent accepts the next action Customer communication: - Current owner tells the customer about a handoff when appropriate
In Zendesk, ticket triggers evaluate conditions when tickets are created or updated. They are managed under Admin Center → Objects and rules → Business rules → Triggers. Their actions can affect other rules, so review the combined behavior rather than testing a rule in isolation.
Check the Billing sample, the Technical sample and an unknown type. Also check a later agent update: it should not unexpectedly pull an accepted ticket back into another group. Inspect the event history and notifications.
Ready when: intended requests reach the right queue, exceptions remain visible and a later update preserves the planned ownership.
5. Define response clocks before configuring targets
Agree what each target measures: when the clock starts, what stops it, whether it uses business or calendar hours and what happens while waiting for a customer. Define holidays, timezone and operating hours where applicable. Distinguish an external service promise from an internal handoff target.
For Zendesk SLA policies, targets use the system Priority field. A custom field called “Priority” does not replace it, and a blank system priority prevents a policy from applying. Policies support business or calendar hours; verify the metric’s own activation and fulfillment rules.
Try it: use a sample ticket at each configured priority and one with missing priority. Check which policy appears, what target it shows and how a relevant reply or status change affects it. Include an out-of-hours sample where practical.
Ready when: observed clocks match the documented policy. Do not promise a response time the team cannot staff.
6. Separate manual macros from timed automation
Create a small set of replies for recurring situations: acknowledge a billing question, request a safe invoice reference and explain a technical investigation’s next step. Keep wording editable so an agent can address the actual request.
Zendesk macros are manually applied prepared responses or actions. Preview the fields and comments they change, edit the wording and submit deliberately. Check whether the comment is public or private and whether the macro changes ownership or status.
By contrast, time-based automations act after elapsed-time conditions. Zendesk processes these hourly; they are not precise immediate timers. Include a condition or action that prevents unwanted repeated execution, and check interactions with triggers.
Try it: apply a macro to a synthetic ticket and inspect the customer message and event history. For a timed reminder, use an approved pilot scope, inspect matching tickets before activation and confirm the reminder does not recur unintentionally.
Ready when: the team understands what runs automatically, what requires an agent and how to deactivate a problematic rule.

7. Publish one useful knowledge article with a contact path
Use the invoice-correction request to identify a narrow documentation topic: what information a customer should provide and how to contact Billing. State eligibility or policy limits accurately. Assign an owner and a review date; confirm the steps using the intended reader’s permissions.
Zendesk supports creating or requesting articles while working on tickets, depending on settings. A ticket must exist first, and blank articles or templates depend on administrative configuration. Do not assume every agent has publishing access.
Test the article from the customer’s context. Can the reader find it, understand the action and reach support if it does not answer the question? An internal-only article should remain restricted. Avoid copying account details from a ticket into public instructions.
Ready when: an approved article reaches the correct audience and the fallback contact route works. Article views alone do not prove a customer resolved their issue.
8. Connect supporting tools without losing ticket ownership
Choose the integration that solves a defined gap. Billing may need an authorized invoice reference; Technical Support may need a recording or an engineering issue link. Specify which system owns each record, what agents can view and what happens if the integration is unavailable.
Screendesk offers browser recording links for visual context with helpdesks such as Zendesk, Help Scout and Intercom. It can supplement a technical ticket when a visible sequence is difficult to describe. Keep written observations and the next-action owner in the ticket.
If a technical request becomes an engineering defect, link the tracker record and retain customer communication ownership. Our Jira bug report guide covers the reporting side. Linking a record does not mean engineering accepted the work or that a fix has been released.
Try it: check one integration with a normal agent role, inspect shared data and simulate an unavailable dependency without touching customer records. Document a manual fallback.
9. Reconcile reports, train the team and cut over deliberately
Build the first reporting view around received requests, unassigned work, overdue commitments and open age. Define time windows and exclusions. Manually compare a small sample of tickets with the displayed results before using the report to manage staffing.
Pair response or handling times with repeat contact, reopenings, quality review and customer feedback. A short handling time can accompany an incomplete answer. Define first-contact resolution before measuring it, and treat satisfaction responses as feedback from respondents rather than every customer.
Have an agent handle the Billing example end to end: receive, classify, accept, reply, hand off, confirm the outcome and record closure. Repeat with the Technical and unknown-type samples. Include unavailable staff and a mistaken classification.
| Cutover question | Record before switching |
|---|---|
| What happens to existing open requests? | Migration scope, retained history and named owners |
| Where do new requests arrive? | One intake destination, forwarding checks and monitoring owner |
| How do we prevent duplicate replies? | Agent working location and rules for the old inbox |
| How do we recover if intake fails? | Approved rollback steps, responsible administrator and communication plan |
| Who supports agents after launch? | Runbook, escalation contact and configuration-change process |
Use readiness evidence to set the launch date instead of copying a generic implementation timeline. Preserve the old history under the agreed retention policy, monitor incoming requests during the transition and review early exceptions before expanding channels or automation.
Frequently asked questions
What should a small team configure first?
Start with reliable intake, appropriate access, visible ownership and a usable reply workflow. Add routing, clocks and automation once those basics work.
Should we automate every recurring request?
No. Start with clear conditions and reviewable actions. Keep human review for ambiguity or decisions needing judgment, and document an exception route.
How do we know the setup is ready?
A sample request should reach the right owner, produce the intended customer communication and appear accurately in the team’s reports. Test the fallback and recovery paths as well as the ordinary route.