Getting Started with DeskDirector
Admin Console
Admin Console : Getting Started
Portal
Settings
Profile
Features
Enable/Disable Chat Callback Feature
Enabled/Disable Pre-Ticket Chat
Enable or Disable the 'Something Else' Option
Embedding Media as the Help Page
Tickets
Permissions
Portal Permissions in DeskDirector
FastTrack in DeskDirector
Setting Up and Using the VIP Priority
How to setup the Flag feature (ConnectWise)
Have Approvals go to Approvers according to site (ConnectWise)
Quotes (ConnectWise)
Invoices (ConnectWise)
Request Types
Forms
Getting started with DeskDirector Forms
DeskDirector Forms - Question Types in Detail
DeskDirector Forms - Dynamic Fields
DeskDirector Forms - Sections and Conditionals
DeskDirector Forms - Embed content
DeskDirector Forms - Title Automation
Importing Wufoo Forms to DD Forms
Companies
Contacts
Managing Contacts in DeskDirector
Exporting Contacts as CSV
Ticket Group Permissions
Contact Impersonation
Menus
Menu Items
Intro to Menu Items
Creating Menu Items
Extension Menu Security and Query Paramaters
Adding BiggerBrains Menu Item
Learning Center
Getting Started with the Learning Center
How to change the name of the Learning Center
Useful Learning Center Tips - Adding files from Google and Dropbox
Notebooks
Portal Access
Notifications
Desktop Installer
Feature Preview
Tech
System
Feature Configuration
Default Ticket Board and Source
Setting up your Approval Statuses
Adding a VIP Priority via the Admin Console
Automatic Contact Creation
Setting Reopened Ticket Status
Setting Status when Ticket is Closed
Change Ticket Status when Customer Adds Note
Hosts Configuration
PSA Integration (ConnectWise/Autotask)
Setting Office Hours
Enabling OAuth (Microsoft Login) for DeskDirector Portal
Logging in with Passwordless
Global Magic Token: Logging in via URL
Email Notifications Overview
Setting up Office 365 Mail Delivery
Setting up SMTP Server Mail Delivery
Getting Started with Email Template Engine - DeskDirector
Creating Custom Email Template
Setting Email Templates for Notification Events
Email Templates Auto Login Link
HTML Email Templates - ConnectWise
HTML Email Templates - Autotask
Integrations
BiggerBrains
ConnectBooster
ConnectWise Sell (previously Quosal)
How to configure ConnectWise Sell (previously Quosal) Order Porter integration
Adding ConnectWise Sell (previously Quosal) Order Porter link to opportunity
QuoteWerks
Wise-Pay
Microsoft Flow
How to setup the DeskDirector Flow Connector
How to share the DeskDirector Flow Connector
DeskDirector Flow Connector Reference
DeskDirector Flow Connector Ticket Event Payload Reference
Flow integration example - Microsoft Teams notifications
Flow integration example - DD Forms
Flow integration example - workflow with user interactions
Advanced
Deleting Orphaned Tickets
Developer Corner
Managing Webhooks
ConnectWise API Integration Tester
Autotask Data Sync
Diagnose Entities Tool
Analytics
Account
Tech Portal
Tech Portal : Getting Started
Tickets
Managing Tickets from the Tech Portal
Tech Portal Ticket Details
Creating a Ticket from the Tech Portal
Request more information (forms request) with Task Forms
Broadcasts
Chat
Getting Started with DeskDirector Chat
Handling Chat Requests
Viewing Chat History from the Tech Portal
Creating a Chat Session from the Tech Portal
Changing your Presence
"Pre-Ticket Chat" Feature
"Call me Back" Feature
Macros
Notifications
Client Portal
Client Portal : Getting Started
Contact Support
Creating a Ticket from the Client Portal
Submitting a Generic Ticket
Creating a Chat Session from the Client Portal
Viewing Chat History from the Client Portal
Tickets
Approvals
Quotes & Invoices
Learning Center
Notifications
Logging in to DeskDirector Workflow
Features
Tickets & Chats
Notifications & Broadcasts
Custom Forms & Request Types
Custom Branding
Custom Menus
Custom Email Templates
Approvals in DeskDirector
Easy Integrations
Advanced Authentication. No password, Single Sign On, MFA and beyond?
Analytics
Other DeskDirector Features
How Tos & FAQs
APIs and Integration
Creating an Integrator Login in ConnectWise (SOAP API)
Creating a ConnectWise RESTful API Key
ConnectWise 2019.5+
Creating an integrator API resource in Autotask
Autotask 2020.3 integration (API) resource migration
Authentication
How User Authentication works in DeskDirector
Setting/Resetting a Contact's Password
Logging in with Active Directory
Diagnosing Automatic Login Issues
Desktop Portal
Installing the DeskDirector Desktop Portal
Diagnosing DeskDirector Desktop Portal Issues
Diagnosing login problems using the new DDGetSID CLI tool
Antivirus Blocking DeskDirector Portal Installation
Troubleshooting your DeskDirector Portal installation
DD Portal for Mac: Labtech Deployment Guide
DDPortal removal tool - uninstalling Windows portals
Instance & Account Queries
Setting up your custom domain
3000 Contact Limit FAQs
Finding out what server your DeskDirector instance is on.
Administration Guide
How search works in DeskDirector products
Adding and removing features from your DD Portal Advantage plan
Portal and User Issues
User can't log in
DeskDirector Portal Browser Support
Contact can't login portal, the contact is missing in admin console but it is in ConnectWise
DeskDirector Tech Portal - How to take advantage of browser tabs
Add DeskDirector Tech Portal as a Custom Menu item inside ConnectWise Manage
Sign in with Microsoft Issue in Tech or Admin Console - "Need Admin Approval"
How do we set a landing page for the client portal?
Tickets
User can't see "All Tickets" option
Tickets are missing in DeskDirector but they are on my PSA
My customer is seeing deleted tickets in portal
Ticket Description missing on ConnectWise emails
Other Articles
Top 10 Request Types
Generic vs Customized Request Types
Using Markdown
Desktop Portal (Installed client) Vs. Web Portal (Web Client)
Outdated Articles
Advanced Use
DeskDirector API
Subscribing to Chat Webhooks
Portal Deep Linking
Webhook Example with Zapier
Chat Session Payload
Legacy URL Linking in DeskDirector
Get started with portal extension page demo
Dynamic content based on logged in user
Clean Tickets
Release Notes
Client Portal
Server
Tech Portal
Portal Release Notes - Windows/macOS
Differences Between Desktop Portal v2 and v3/v4
Portal Release Notes - Web Client
Glossary
- All Categories
- Advanced Use
- Portal Deep Linking
Portal Deep Linking
Updated
by Chris
What is Deep Linking?
Deep links allow you to provide users with a direct link to a certain part of the application such as a learning article or a specific ticket.
They can support various actions as well, depending on the page linked to. As an example, you can deep link directly to a ticket and automatically have a chat session open with your engineers.
Deep links can be created for both the Web Client and the Desktop Clients (Windows & macOS).
However, the biggest advantage of deep links is that they will remain valid even between different versions of the Portal, which isn't always the case with the URL in your browsers address bar. That URL might take you back to the same ticket today, but it might not work if there is a significant change to how the app operates internally.
Desktop Clients vs. Web Client
Deep links can look a little bit different depending on where they are intended to be used. Lets take a look.
As an example, we will be linking to a specific ticket with a Ticket ID of 123456
Web Client:https://[your-subdomain].deskdirector.com/portal/deeplink?name=ticket&ticket_id=123456
Desktop Client:ddportal://name=ticket&ticket_id=123456
There are a few things to note:
- The beginning of the deep link is different for the two cases:
- Web Client:
https://[your-subdomain].deskdirector.com/portal/deeplink?
- Desktop Client:
ddportal://
- Web Client:
- The end of the deep link is exactly the same for the two cases. We call this piece the command:
name=ticket&ticket_id=123456
Thus the general format of a deep link is
Web Client:https://[your-subdomain].deskdirector.com/portal/deeplink?[command]
Desktop Client:ddportal://[command]
ddportal://
protocol with the operating system automatically.Any links starting with this protocol will be forwarded to the application.Supported Deep Links
In general, each type of deep link has at least one required parameter, it's name
. Other parameters may exist to give more control over the link behavior.
Linking to a specific ticket
Command format:
name=ticket&ticket_id={ticket_id}&action={action}
Parameters:
ticket_id
(required): The id of the ticket to linkaction
(optional): An optional action to perform on the ticket page, can be one of the following:chat
: Open a new ticket chat session with your engineersclose
: Prompt the user to close the ticketapprove
: Prompt the user to approve the ticketdecline
: Prompt the user to decline approval for the ticketauto_approve
: Automatically approve the ticket, no reason is givenauto_decline
: Automatically decline approval for the ticket, no reason is givenreopen
: Prompt the user to reopen the ticketflag
: Prompt the user to flag the ticketfasttrack
: Prompt the user to FastTrack the ticketforms
: Prompt the user to fill out any inline forms that have been attached to the ticket
Examples:
name=ticket&ticket_id=123456
name=ticket&ticket_id=123456&action=close
ConnectWise Service Email Template Snippet
<a href="https://[your-subdomain].deskdirector.com/portal/deeplink?name=ticket&ticket_id=[srnumber]
">Open in DeskDirector</a>
Autotask Notification Template Snippet
<a href="https://[your-subdomain].deskdirector.com/portal/deeplink?name=ticket&ticket_id=[Ticket: ID]
">Open in DeskDirector</a>
Linking to the Ticket List
Command format:
name=ticket_list&state={state}
Parameters:
state
(optional): The state of the tickets displayed. Defaults toopen
.open
: Show open ticketsclosed
: Show closed ticketsapproval
: Show approval tickets
Examples:
name=ticket_list
name=ticket_list&state=approval
Linking to Support Options (Where the Create Ticket & Pre-Ticket Chat options are displayed)
Command format:name=support_options
Examples:
name=support_options
Linking directly to Pre-Ticket Chat (Chat to a Technician)
Command format:name=pre_ticket_chat
Examples:
name=pre_ticket_chat
Linking to the list of Request Type / Form Categories
Command format:name=request_types
Example:
name=request_types
Linking to a specific Request Type / Form
Command format:name=request_type&type_id={type_id}
Parameters:
type_id
(required): The id of the request type. Currently this is only found inside the browser URL when viewing a request type in your Admin Console.
Examples:
name=request_type&type_id=77
Linking to Notifications
Command format:name=notifications
Examples:
name=notifications
Linking to a Content Page (e.g. Learning center page)
Command format:
name=content_page&page_id={page_id}
Parameters:
page_id
(required): The id of the page.
Examples:
name=content_page&page_id=5b658ce9-7014-4e4e-995d-2934bf1f10c3
Linking to the Invoices list
Command format:
name=invoices
Examples:
name=invoices
Linking to an Invoice
Command format:
name=invoice&invoice_id={invoice_id}
Parameters:
invoice_id
(required): The id of the invoice.
Examples:
name=invoice&invoice_id=I239394
Linking to the Quotes list
Command format:
name=quotes
Examples:
name=quotes
Linking to a Quote
Example command:
name=quote"e_id={quote_id}
Parameters:
quote_id
(required): The id of the quote.=
Examples:
name=quote"e_id=QABV829
Linking to a menu item
This requires the new menu system to be enabled.
Example command:
name=menu_item&menu_id={menu_id}
Parameters:
menu_id
(required): the id of the menu item. You can obtain this from the url when navigating to a menu item inside the admin console.
Examples:

name=menu_item&menu_id=111
Automatic Authentication
These extra parameters can be applied to any deep link, or even used just on their own, to log the user in.
Password Authentication
Parameters
auth_username
(required): The email address of the contactauth_password
(required): The DeskDirector password of the contactauth_remember_me
(optional): Determines whether or not the user remains logged in after they close their browser/app. Defaults to true.
Examples:
name=ticket&ticket_id=123456&auth_username=bob@company.com&auth_password=mypassword123
auth_username=bob@company.com&auth_password=mypassword123
Passwordless Token Authentication
Parameters:
auth_username
(required): The email address of the contactauth_token
(required): The DeskDirector Passwordless Token generated for the contactauth_remember_me
(optional): Determines whether or not the user remains logged in after they close their browser/app. Defaults to true.
Examples:
name=ticket&ticket_id=123456&auth_username=bob@company.com&auth_token=123456&auth_remember_me=false
auth_username=bob@company.com&auth_password=mypassword123
Access Token Authentication
Access Token authentication is replacement to Global magic token. It is more secure. The advantage compare to global magic token is time lock and user lock.
It is introduced in server release 18.99.1
- Token cannot be modified to access different user
- Token only available for maximum of 24 hours. (Depends on expires time it used to create the token)
If the login link with access token been forward, CC or BCC to other user, they can login on behalf of main receiver.
We recommend use with cautious. DeskDirector do not take responsibility when login link been shared among different user.
Access Token can be created through following API.
// contact-id: Contact numeric identifier
// expiresIn: Expires in seconds. Minimum is 3600 (1hr) and maximum is 3600 * 24 (24hr).
https://[your-subdomain].deskdirector.com/api/v2/user/contact/[contact-id]/userkey?expiresIn=36000
Authorization of API can be admin cookie or API Key.
The response of above API call, you should get access token inside.
{
"userKey": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ...{very long token}",
"expires_in": 3600,
"expires_on": 1572846902
}
Once you have this user key (access token). You can pass in through portal deep link.
access_token
(required): The DeskDirector Access Token created through APIauth_remember_me
(optional): Determines whether or not the user remains logged in after they close their browser/app. Defaults to true
https://[your-subdomain].deskdirector.com/portal/deeplink?access_token=eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ...&auth_remember_me=true