Sigma's App Templates are ready-to-use applications built on Sigma's native features and connected to sample data. Each one ships fully functional — you can explore it immediately, learn how it's built by switching to edit mode, and adapt it to your own projects without starting from scratch.
The Ticket Management app — called Nexus — gives sales and RevOps teams a single surface for submitting, triaging, assigning, and resolving internal service requests. Nexus handles the full request lifecycle: requesters submit tickets through a clean form, coordinators triage and route them in a structured queue, and assignees work cases from a focused workspace with full conversation history, SLA timers, and AI assistance. The same structure adapts to IT, Finance, Operations, HR, or any team that manages request queues and resolution workflows.
This QuickStart walks through how the app works from each role, how it's designed under the hood, and how to adapt it for your own team's workflows.
Sales operations and RevOps teams evaluating Sigma for internal request management. Solutions Engineers and technical stakeholders exploring the app as a reference design for AI-assisted ticketing, SLA monitoring, and multi-role workbook design.
Templates > App Templates.
Navigate to Templates in the left sidebar. The Ticket Management app appears in the Made by Sigma collection:

Click the template card to open a preview. Before clicking Use template, confirm both requirements shown on the detail page are met:
Once both are in place, click Use template. Sigma creates a personal copy in your workspace:

Click Save as and give the workbook a name:
Ticket Management
The app opens on its README page — an orientation guide built directly into the workbook:

The README includes a demo video, a five-step getting-started guide, and a description of each application page. The recommended sequence is:
In Progress so the assigned owner can begin workingPlace the workbook into Published mode:

Nexus has four active pages — three audience-specific workflows and a hidden data layer:


The User Tickets page is the requester-facing surface. Users submit new requests and follow their existing tickets here, without seeing any of the internal triage or case management operations.
The page has three columns: an open ticket list on the left, a ticket detail view in the center, and a submission form on the right.
The left column opens with a user selector. Choose a user from the list to load their open ticket queue:

The right column always shows the Submit a new ticket form. A + RAISE A REQUEST link at the top of the panel makes it easy to find. Fill in the four fields using the values below:
Subject:
Quota credit missing from closed deal
Category:
Commissions
Priority:
High
Description:
The Q2 deal with Meridian Partners closed on June 28 but quota credit has not been applied to my account. The AE and SDR splits were agreed in Salesforce and the opportunity is marked Closed Won. This affects my Q2 attainment and commission calculation. Needs to be resolved before month-end close.

Click Submit ticket. The ticket is written to the Tickets input table and immediately appears in the triage queue for coordinator review:

WHY IT MATTERS:
The submission form is a standard Sigma UI powered by input table controls — no custom application code required. The same pattern works for any structured data entry workflow, from expense requests to access approvals to change management forms.
Clicking a ticket in the left column loads the full ticket detail in the center. The detail view shows:
Sales, RevOps), and timestampThe status lifecycle is:
Status | Meaning |
New | Submitted but not yet triaged |
In Progress | Triaged, assigned, and being worked |
Waiting on Sales | Pending requester action |
Resolved | Closed by the assignee |
Closed | Final state — no further action |

All messages are stored in the Messages input table. New replies appear in the thread immediately after submission.

The Triage Queue page is the coordinator's workspace for reviewing new tickets, confirming classifications, and routing work to the right assignee.
The page header shows a live count of open tickets and the queue's purpose: "classify, prioritize, and route inbound cases." The ticket table has three filter controls at the top:
Select assignee — narrows the queue to tickets assigned to a specific agentSearch for tickets — filters the table by ticket title or IDAll, New, In Progress, Waiting on Sales, Resolved, or ClosedA Go to Ticket → button at the top right opens the Assignee Case workspace for the currently selected ticket.
The table columns are: TICKET ID, TITLE, CATEGORY, PRIORITY, SUGGESTED PRIORITY, and STATUS. Priority values use colored badges — Critical in pink, High in amber, Medium in lavender, Low in light blue. The SUGGESTED PRIORITY column highlights in bold red when AI recommends a higher priority than the requester selected:

The ticket we submitted — "Quota credit missing from closed deal" — appears at the top of the queue with status New.
Clicking a ticket loads the right panel. The top of the panel shows the ticket's read-only metadata: ticket ID, title, description, assigned agent, priority, status, and category. This gives the coordinator a quick read on the ticket before making any changes:

Below the metadata, the TRIAGE DECISION section shows the editable controls:

After confirming the triage decision, update the ticket status to In Progress. This signals to the assigned agent that the ticket has been reviewed and is ready to work. The ticket moves out of the New state and into the agent's open case list on the Assignee Case page:

For tickets in Resolved or Closed status, the right panel replaces the triage decision controls with a Resolution summary generated by Nexus Assistant. The summary draws from the full ticket record — description, category, priority, urgency, conversation history, SLA performance, and resolution tag — and presents a concise account of how the case was handled:

This gives coordinators a way to review closed work without reading the full conversation thread.

The Assignee Case page is the agent's workspace for handling assigned tickets from triage through resolution. The layout has three columns: a ticket list on the left, the active case workspace in the center, and the Nexus Assistant on the right.
The left sidebar shows the agent's open tickets. An Open full queue link at the top opens the full queue view.
A Select assignee dropdown scopes the list to a specific agent.
Each ticket card shows the ticket ID, status badge (NEW or IN PROGRESS), title, and description snippet.
Clicking a ticket card loads the full case workspace in the center:

The center panel header shows the ticket title, ticket ID, and status badge. Below the title, a single metadata line displays category, priority, and urgency score (Contracts • Critical priority • 100 urgency). An Edit fields button on the right opens an inline edit panel for updating ticket fields directly from this view.

Three timer cards sit below the metadata line:
When a timer exceeds its SLA threshold, the card background turns light red and shows a ● Breached indicator. Thresholds are defined in the SLA Input Table by priority and category combination — a Critical ticket has tighter targets than a Low one:

WHY IT MATTERS:
SLA targets are stored in an editable input table keyed by priority and category — meaning different ticket types can carry different response and resolution expectations without any formula changes. A Critical / Contracts ticket can have a 30-minute first-response target while a Low / Other ticket has a 2-day target, all from the same data-driven SLA engine.
Three tabs below the SLA cards control the active workflow panel — Respond, Escalate, and Resolve:
Respond — displays the full conversation thread between the requester and assignee, with message author, role, timestamp, and body. A text-area at the bottom lets the agent compose and submit a reply. The reply is written to the Messages input table and immediately visible in the thread:
Escalate — provides a reassignment workflow. A ← Back to conversation link returns to the thread without submitting. The agent selects a new assignee from the REASSIGN TO dropdown and writes a required escalation note in the ESCALATION NOTE field (marked "visible to next owner"). Click Submit escalation to transfer ownership:
Resolve — captures the resolution. The agent provides a customer-visible final response, selects a resolution tag, and adds an internal resolution note. Submitting closes the ticket and sets the resolved_at timestamp.
Use the following values to resolve the "Quota credit missing from closed deal" ticket:
Customer-visible response:
The quota credit for the Meridian Partners deal has been applied to your Q2 attainment. We confirmed the Closed Won status and the AE/SDR split in Salesforce, then triggered the credit update in the commission system. Your Q2 attainment now reflects the full deal value. Let us know if you see any discrepancy.
Resolution tag:
Record updated
Internal resolution note:
Confirmed Closed Won in SFDC. Split was configured correctly (AE/SDR) but credit had not propagated to the quota tracking system due to a sync delay. Manually triggered the update and verified attainment reflects the deal value. No further action needed.

The resolution information is added to the ticket upon submission:

The ticket is shown as resolved in User Tickets for the user who reported the issue:

The Nexus Assistant panel on the right is powered by a Sigma Agent — a governed AI assistant with explicitly configured data access and instructions. It shows ● LIVE when active. When a ticket is selected, the agent introduces itself and describes what it's analyzing:
The agent recommends whether to Respond, Escalate, Resolve, or Wait, then opens the conversation for follow-up questions. You can ask for a draft response, request a summary of what's been tried, or ask whether escalation is warranted. See the AI Features section for how the agent is configured and governed.


Nexus uses AI across four surfaces, each with a different trigger and persistence model. At ticket submission, a Sigma Action sends ticket details to the model and writes routing, urgency, and priority results directly to the Tickets input table — stored once, read everywhere. For resolved tickets, the Triage Queue generates a resolution summary on demand via a live CallText() formula each time a coordinator selects the ticket. The Nexus Assistant is an interactive Sigma Agent that responds in real time as the case worker types. And the AI Formula Status Text prompt generates short requester-facing status updates that can be surfaced in the conversation thread.
When a ticket is submitted, a Sigma Action on the submit button sends the ticket's subject, category, priority, and description to the AI model, along with a list of candidate assignees and their current open ticket counts.

The action uses the AI Ticketing Routing Prompt (editable on the Data page) and expects the model to return a single JSON object:
{
"assignee_user_id": "string",
"urgency_score": number,
"urgency_reason": "string",
"suggested_priority": "Low|Medium|High|Critical"
}

The action writes all four values back to the Tickets input table in one step:
assignee_user_id — the AI-selected agent; the model prefers assignees who have handled the ticket's category before, and among qualified candidates picks whoever has the fewest open ticketsurgency_score — a 0–100 score; the prompt instructs the model to use the requester's selected priority as a signal but not as gospelurgency_reason — one sentence (max 240 characters) explaining the key factors behind the scoresuggested_priority — must match the urgency bucket (0–24 = Low, 25–49 = Medium, 50–74 = High, 75–100 = Critical)The urgency scale the model applies:
Urgency | Score range | Typical signals |
Critical | 75–100 | Active revenue risk, executive escalation, blocked deal, incorrect contract blocking signature |
High | 50–74 | Time-sensitive approval, commission/payout risk, customer-facing sales issue |
Medium | 25–49 | Standard RevOps request, single-record cleanup, non-urgent support |
Low | 0–24 | Vague request, how-to question, minor cleanup, no clear deadline |
The urgency score drives conditional formatting in the Triage Queue — high-urgency tickets surface immediately. The suggested priority column highlights red when AI recommends a higher tier than the requester selected, and green when it recommends lower, giving coordinators a fast signal for misclassified submissions.

The Nexus Assistant in the Assignee Case workspace is powered by a Sigma Agent — not a chat element or formula, but a fully configured AI agent with explicit data access controls, instructions, and a scoped system prompt. In Edit mode, clicking the agent element (pencil icon) opens the Configure agent dialog:

The configuration has three parts:
Data sources — the agent is explicitly granted access to only the Tickets and Messages input tables. It cannot see SLA targets, the user directory, or any other table unless added here. This is the primary governance control: what data the AI can reason over is a builder decision, not an inference.
Instructions — a rich-text system prompt that defines the agent's role, purpose, and reasoning rules. The Nexus instructions include:
[selected-ticket] — a formula reference that filters the agent's context to the active case)Tools — optional tools the agent can call; additional capabilities can be added here without changing the instructions.

You can ask follow-up questions in natural language: request a draft response, ask whether escalation is warranted, or get a summary of what's been tried. The session runs in real time against the live data sources and updates as the conversation thread grows.
WHY IT MATTERS:
A Sigma Agent is governed infrastructure, not a general-purpose chatbot. The data sources it can access, the instructions it follows, and the tools it can call are all builder-controlled and version-managed with the workbook. Agents interact on top of Sigma's existing permission model — a viewer who can't see a column can't get the agent to surface it either. That makes it practical to deploy an AI assistant to a broad audience without a separate security review for every deployment.
Before the resolution summary can run, the resolution data has to exist on the ticket. When an agent submits the Resolve form on the Assignee Case page, a Sigma Action on the submit button writes the customer-visible response, resolution tag, internal note, and resolved_at timestamp back to the Tickets input table.
Similarly, replies write new rows to the Messages input table and escalations update the assignee_user_id on the ticket — all via Actions on their respective buttons. To see these, go to the Assignee Case page in Edit mode and click any of the three action buttons (Send reply, Submit escalation, Submit resolution).

Once the ticket is in Resolved or Closed status, the Triage Queue's right panel generates the AI summary. This part is implemented as a CallText("ai_complete", "claude-4-sonnet", ...) expression directly in a text element — a live formula that runs on-demand when a coordinator selects the resolved ticket, not a stored value.
It passes the full ticket record (title, description, category, priority, urgency, conversation history, SLA metrics, resolution tag) to the model and displays the output inline. In Edit mode, click the resolution summary text element in the Triage Queue to see the formula in the element body:

This approach — live CallText() in a text element rather than a stored column — means the summary is generated fresh each time it's viewed, using whatever data exists on the ticket at that moment. That's appropriate for a read-only summary that doesn't need to be queried or aggregated.
All AI prompts are stored as editable text-area controls on the Data page (visible in Edit mode):
Because they're controls rather than hardcoded strings, prompts can be updated without touching the underlying formula — adjusting tone, focus areas, or output format without requiring formula access.
WHY IT MATTERS:
Editable prompt controls decouple the AI instruction layer from the workbook logic. Operations teams can adjust what Nexus emphasizes — escalation signals, SLA breach indicators, communication style — without needing a developer to update formulas.

Place the workbook in Edit mode to explore how the app is built. The Data page contains all data tables and AI controls, organized into five tabs.
The Warehouse Source tab holds a single Users table sourced from your connected warehouse. It supplies the full user directory — all requesters and assignees in the ticketing system — with user_id, full_name, email, User Role Id, and Role:

The Transformations tab holds four derived tables built on top of the warehouse source and input tables:

The Input Tables tab holds the six write surfaces that store all application data:
Tickets (Editable in published version — all users) — the primary record for every service request. Fields include ticket_id, title, description, category, priority, status, requester_user_id, assignee_user_id, urgency_score, urgency_reason, suggested_priority, and timestamps.
Messages (Editable in published version — all users) — the full conversation history. Each row is a message with ticket_id, author_user_id, author_role, body, and created_at. All replies — from submission through resolution — are stored here.
SLA Input Table (Editable in draft) — SLA thresholds keyed by priority and category. Each row defines First response and Next response targets in minutes. Edit this table to match your team's SLA agreements — no formula changes required.
Categories, Priorities, Roles (Editable in draft) — lookup tables for the valid values in each field. New categories or priority levels added here immediately appear in the Triage Queue's dropdown controls.

The Helper Tables tab holds three derived tables that support UI performance and filtering:

The Controls tab holds the AI prompts and coordination controls that drive Nexus's AI features:
CallText() formula in the Triage Queue right panel
Because prompts are stored as editable text-area controls rather than hardcoded strings, they can be updated without touching any formula. Operations teams can adjust routing criteria, escalation signals, or communication style without requiring formula access.
SLA monitoring in Nexus is entirely formula-driven. The SLA Input Table stores first-response and next-response targets (in minutes) for each priority × category combination. The Tickets and Messages Join child computes actual elapsed times using DateDiff():
Business-hours-aware calculations exclude weekends and off-hours from elapsed time, so breach indicators reflect actual working time rather than calendar minutes.

Nexus uses conditional visibility on the Triage Queue's right panel to show different content based on ticket status. For open tickets (New, In Progress, Waiting on Sales), the triage decision controls are shown. For resolved or closed tickets, the controls are replaced by the AI-generated resolution summary. This is implemented through container-level visibility conditions referencing the selected ticket's status column.

Nexus is designed to be repurposed. The core structure — ticket submission, triage, case management, SLA monitoring — applies to any team that manages structured request queues. The sections below cover the two most common adaptation steps.
Use Sigma's page visibility controls to scope each page to the right audience. Internal operations like the Triage Queue and Assignee Case should be limited to operations staff, while User Tickets remains open to all requesters.
To configure access:
Triage Queue)Customize page visibility
The Categories, Priorities, and Roles input tables on the Data page are the configuration surfaces for customizing the app to your team's taxonomy. To change the ticket categories from Sales and RevOps defaults to IT or HR categories:
Edit modeData pageAll dropdowns in the Triage Queue's triage decision panel pull from these tables, so changes take effect immediately without any formula edits.
The AI Ticketing Routing Prompt and Resolved Ticket AI Prompt on the Data page can be edited to reflect your team's context. For an IT help desk, the routing prompt might emphasize system criticality and outage risk; for an HR team, it might focus on employee impact and compliance deadlines.
Nexus sources its Users table from a warehouse connection. In the template, this table contains sample user data. To connect your own user directory:
user_id, display name, and role are the minimum needed for the requester/assignee filters to work
Once the user table is updated, the Requesters and Assignees filtered views update automatically, and the dropdown controls on Triage Queue and Assignee Case reflect your actual team.

The Ticket Management App Template demonstrates how Sigma's native features — input tables, formula-driven SLA monitoring, Sigma Actions, Sigma Agents, and multi-role workbook design — can be composed into a full service request system without external tools or custom application code.
The three-audience layout separates concerns cleanly: requesters interact only with the submission form and their own ticket thread; coordinators work through a structured triage queue with AI-assisted classification; and agents handle cases from a focused workspace with full conversation context, live SLA timers, and an AI assistant scoped to the ticket. Each view reads from the same shared data layer but surfaces only what's relevant to that role.
The SLA engine is worth reusing. A single input table keyed by priority and category makes SLA targets configurable without formula changes — the same pattern applies to any workflow where different request types warrant different response expectations. Pair it with DateDiff() and business-hours-aware calculations, and you get a real-time breach indicator that reflects actual working time rather than raw elapsed minutes.
Additional Resource Links
Blog
Community
Help Center
QuickStarts
Be sure to check out all the latest developments at Sigma's First Friday Feature page!
