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
- All Categories
- Developer Resources
- OAuth App Registration
- OAuth Personal Secrets: What They Are and When to Use Them
OAuth Personal Secrets: What They Are and When to Use Them
Updated
by Helpdocs Admin
A personal secret is, functionally, a client secret — used the same way, at the same token endpoint, via client_secret_post or client_secret_basic. The difference is scope: rather than belonging to the application as a whole, a personal secret is tied to one person, for one specific app. It exists so an individual agent (or, in future, contact) can authenticate their own personal grant, without relying on — or being able to access — the application's shared client secret.
This isn't a concept defined in the OAuth specification itself; it's a scoping model Tokity has added on top of standard client secrets, mainly to reduce the blast radius if a secret ever leaks (see Confidential vs. Public Apps & Client Secrets for more on that).
Why personal secrets exist
Personal secrets were introduced largely with AI tooling in mind — specifically, tools like local MCP connectors, where a user runs their own instance of a client (either in a personal environment, or through an AI model provider) that needs to connect to Tokity directly.
These setups don't always fit neatly into the usual "one app, one shared secret, managed centrally" model:
- If your organization can configure the OAuth setup centrally on the user's behalf, the standard application client secret is the right approach — this is the normal case.
- If it can't — for example, a user running their own local MCP connector, where each person has to fill in their own OAuth configuration individually — a personal secret lets that person authenticate their own personal grant without needing access to the application's shared client secret.
Only a master admin can create an app registration in the first place, so in many cases a master admin may simply fill in the required OAuth configuration for users, which reduces how often personal secrets are actually needed in practice. Whether personal secrets remain useful largely depends on how a given tool (like a specific MCP connector) is designed — how much configuration it expects the individual user to provide themselves.
Where to create one
Personal secrets are currently managed from the Admin Portal (agents only — contact support is planned as this becomes available for contacts too):
More / Settings / Connected Apps / Platform Apps or Organization Apps
From there, select the relevant app — platform or organization — and create or manage secrets under it.

Creating a secret doesn't require consent first
You don't need an existing consent grant to create a personal secret — the two are independent. In practice, you'll usually create the secret before connecting the app, since it's one of the values you'll need to fill in alongside the authorize, token, and refresh links when configuring the integration on the other end.
Limits and expiry
- Each person can have up to 3 secrets per app at a time — useful if you need to roll a secret without downtime, by creating a new one before removing the old.
- Every secret has an expiry, chosen at creation time, up to a maximum of 24 months:
- 90 days (3 months)
- 180 days (6 months) — recommended
- 365 days (12 months)
- 545 days (18 months)
- 730 days (24 months)
These same expiry options apply to application-level client secrets as well, not just personal ones.
Removing a secret
Removing a personal secret doesn't cut off an active session immediately, but it does prevent that secret from being used again. In practice, this means any integration still relying on it will stop being able to refresh its token — so access typically ends within about an hour, once the current access token expires and the refresh attempt fails.
What's next
With app registration, client secrets, and personal secrets covered, the next section moves into OAuth Administration — how sessions and consent grants are viewed and managed, and how admin-level and global settings work.