Build a ticket management app
Tickets with assignment, an SLA on each status, notifications to the assignee and a daily digest of overdue tickets.
- Level
- Intermediate
- Estimated time
- About 60 minutes
- Uses
- Lifecycles, Access, Workflows, Notifications
What you will build
A Ticket entity with a New → Assigned → In progress → Resolved lifecycle, assignee-based access, notifications on each transition and a scheduled digest.
Architecture
- Ticket
- Assignment
- SLA
- Resolution
Steps
1Model tickets
Create
Ticketwith Title, Description, Priority (pick list), Assignee (user lookup) and an auto-number field such asTCK-{yy}{MM}-{5n}for the reference.2Add the lifecycle and SLA
Create the lifecycle with its transitions. Add a validator that refuses Resolved without a resolution note. Transition history records the SLA fields for reporting.
3Give assignees their tickets
Give the Support role Read scope Own on Ticket and share tickets with the assignee, or use a rule-based filter that shows tickets assigned to the current user.
4Notify on every move
Create a trigger on Ticket edit with the field criterion Status, bound to a notification that emails the assignee and adds an in-app notification.
5Send a daily digest
Create a scheduled trigger with a cron expression, and a workflow that runs a saved query for overdue tickets and, for each owner, sends a summary email.
Result
Tickets are numbered, routed, tracked through their lifecycle with SLA history, and nobody has to remember to check for overdue work.
Step-by-step screenshots for this tutorial are coming soon.