Getting Started with DeskDirector
DeskDirector Portals
Browser Support
What is the DeskDirector Admin Portal?
What is the DeskDirector Tech Portal
What is the DeskDirector Client Portal?
Desktop Portal
Managing Your Account
Admin Essentials
DeskDirector Features Overview
Logging in to DeskDirector
User Profiles & Profile Pictures
Managing Tickets with DeskDirector
Office Hours
Getting Started with the Solution Library
How Searching Works
Embedding Help Page Media
Get started with the DeskDirector Power Automate Connector
Features
Portal Customization
Forms
Service Catalogue
Communication
Email Connectors
Notifications
Email Notifications
Actionable Messages for Emails
Real-Time Chats
Email Template Engine
Surveys
Broadcasts
Generative AI
DeskDirector with Generative AI
Ticket Summary for TECH Portal
Setting up AI Service Providers
Microsoft Foundry for DeskDirector
Knowledge Bases for AI Assistants
Custom Tools for AI Assistants
AI Assistants in DeskDirector
Advanced
Login & Authentication
Contact Groups
Custom Domains
File Storage
Dashboard
Accounts
Contacts
Approvals
Tags
Task Lists
The Learning Center
Portal Deep Linking
Auditing & Analytics
Microsoft Power Automate
Actions
Solutions
Featured Solution: Teams Ticket Discussion
Power Automate Template Gallery
Featured Solution: Ticket Briefing
Power Automate Administration
DeskDirector Power Platform Connector Reference
Power Automate Connector - Setting up your first flow
Microsoft Teams App
Introducing the DeskDirector for Microsoft Team App
Installing the Microsoft Teams App (Client Mode)
Installing the Microsoft Teams App (TECH Mode)
Setting up Tags for Teams Discussions (TECH Portal)
Branding the DeskDirector Teams App
DeskDirector Teams App Notifications
Contact Groups Integration with Microsoft Teams
Setting up Content Security Policy (CSP)
Advanced topic: Setting up Tech & Client Mode in the same tenancy
Integrating Microsoft Teams with DeskDirector Tech Portal
Smart Alerts for TECH Users
Integrations
Developer Resources
Getting Started
What is the Toki Iti API
API Versions & Routes
Roles & Scopes
Authorization Options
Querying the API
How to Change an Entity Through the API
API Key Authorization
OAuth Fundamentals
Understanding OAuth for Tokity Integrations: Key Concepts
OAuth Authorization Code Flow: How an App Gets Access to Tokity
OAuth App Registration
How to Register an OAuth App to Integrate with Tokity
Choosing an OAuth App Type: Confidential vs. Public Apps and Client Secrets
OAuth Personal Secrets: What They Are and When to Use Them
OAuth Administration
Configuring OAuth Settings in Tokity
Managing OAuth Authorized Sessions and User Consent
Granting OAuth Admin Consent at the Root Level
API Response Control
Uploading Attachments (Ticket API)
The Prefer Header — Overview
Controlling Returned Data (Ticket API)
Controlling Returned Data (Form Result API)
Controlling Returned Data (Workspace API)
Workspace Ordering
How Workspace Ordering Works
Creating and Reordering Workspace Groups
Adding and Reordering Tickets in a Workspace Group
Data Sync & Notifications
Delta API: Tracking Changes Over Time
Webhooks vs. Events — Differences, When to Use Which
Verifying Webhook and Event Payloads (HMAC Signature)
Ticket Widgets
Ticket Widget: Overview
How the Widget Is Requested
Ticket Widget Anatomy and Styling
Ticket Widget Actions: Leading, Secondary and Primary
Ticket Widget: Progress Type
Ticket Widget: List Type
Ticket Widget: Description Type
Ticket Widget: Form Type
Ticket Widget: Control When a Widget Refreshes
Ticket Widget: Form Results and State Across Steps
Ticket Widget: Error Responses and Debugging
Ticket Widget: Building a Multi-Step Request
Glossary
Security
Troubleshooting
Troubleshooting via Web Developer Tools
Permissions & Access - Common Issues
Contact DeskDirector Support
Troubleshooting DeskDirector Connection Issues
Desktop Portal - Common Issues
Contact Impersonation
Approvals - Common Issues
Microsoft Teams App - Common Issues
Email & Email Delivery - Common Issues
Login & Authentication - Common Issues
DeskDirector Desktop App - Installation Issues
Table of Contents
- All Categories
- Developer Resources
- Ticket Widgets
- Ticket Widget: Control When a Widget Refreshes
Ticket Widget: Control When a Widget Refreshes
Updated
by Helpdocs Admin
A ticket widget doesn't have to stay frozen after it first loads. You can have it update on its own while a process is running, update when someone edits the ticket, or only update when the page is reloaded. This article explains how to choose, and how to set it up in your provider's response.
This article is part of the Ticket Widget category, which covers the other widget topics.
Refresh behaviour is controlled by two properties in the widget response:
refreshMode: the rule for when the widget refreshes.refreshIntervalSec: how often, in seconds, for modes that use a timer.
Each refresh is a new request to your widget's API, and the response replaces the widget in place. Both properties are available on every widget type (description, list, progress and form). Choose the longest interval that still keeps the content current, because every refresh adds load on your provider.
The four modes at a glance
Mode | Refreshes when… | Typical use |
| The page is fully reloaded, or the user clicks refresh | Forms, static or rarely changing content |
| The interval elapses | Progress tracking, time-dependent content |
| The ticket changes ( | Content driven by ticket properties |
| The interval elapses or the ticket changes | Time-dependent content that also reacts to ticket edits |
Mode details
manual
The widget only refreshes when the page is fully reloaded or the user clicks the refresh button. Nothing happens automatically.
Use it for:
- Forms, where an automatic refresh could interrupt what the user is entering.
- Static content that rarely changes.
timer
The widget refreshes automatically every refreshIntervalSec seconds.
Use it for:
- Progress tracking. While any step is still pending a state change, keep returning
timer. When the process finishes, switch tomanualoron-change, since there's nothing left to poll for. - Time-dependent content, such as office-hours messages. Refreshing every 5 to 15 minutes is usually enough. Avoid very short intervals for this kind of content.
on-change
The widget refreshes when the ticket changes, detected by a change in the ticket's lastModifiedAt. There is no polling interval.
Use it for content that depends on ticket properties, for example:
- The ticket owner and the owner's associated account. If either changes, the widget shows different content.
- The queue.
- Any other ticket property, such as status or priority.
timer-or-change
This combines both triggers. The widget refreshes when the interval elapses or when the ticket changes, whichever comes first.
Use it when content depends on time but can also be affected by ticket edits. For example, an automation is running and the widget shows its progress. If someone changes a ticket property, the automation may discard the earlier progress and queue a new task. The widget should reflect that straight away instead of waiting for the next timer tick.
Interval rules
refreshIntervalSec applies to timer and timer-or-change.
- Minimum: 30 seconds
- Maximum: 15 minutes (900 seconds)
- Not specified: if you choose a timer mode and omit
refreshIntervalSec, the maximum of 15 minutes is used. - Out of range: a value outside the allowed range is adjusted to the nearest limit. For example,
5is treated as30, and3600is treated as900.
Defaults and enforced behaviour
- No
refreshModespecified: the widget usesmanual. - Form widgets:
manualis always enforced, to avoid interrupting the user's input. Any other value you return for a form widget is overridden.
Choosing a mode
Ask what makes the content go stale:
- Nothing, or very rarely →
manual. - The passage of time (a process running, office hours) →
timer. - A change to the ticket →
on-change. - Both time and ticket changes →
timer-or-change.
Tips
- Use the longest interval that still feels current.
- Stop polling when there's nothing left to wait for. Switch a finished progress widget away from
timer. - Don't rely on timers for forms. They are forced to
manualanyway.