Portal Deep Linking

This article discusses our new Deep Linking system which requires Portal V2 to be turned on for your clients. To read about the legacy URL linking for Portal V1, click here.

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://

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]
When the Desktop Client is installed onto a machine, it registers the ddportal:// protocol with the operating system automatically.
Any links starting with this protocol will be forwarded to the application.

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 link
  • action (optional): An optional action to perform on the ticket page
    • chat: Open a new ticket chat session with your engineers
    • close: Prompt the user to close the ticket
    • approve: Prompt the user to approve the ticket
    • reopen: Prompt the user to reopen the ticket
    • flag: Prompt the user to flag the ticket
    • fasttrack: Prompt the user to FastTrack 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 to open.
    • open: Show open tickets
    • closed: Show closed tickets
    • approval: Show approval tickets

Examples:

name=ticket_list

name=ticket_list&state=approval

Linking to Support Options (Create Ticket & Pre-Ticket Chat Page)

Command format:
name=support_options

Examples:

name=support_options

Linking to a specific Request Type

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=support_options&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 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 a Quote

Example command:

name=quote&quote_id={quote_id}

Parameters:

  • quote_id (required): The id of the quote.=

Examples:

name=quote&quote_id=QABV829

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 contact
  • auth_password (required): The DeskDirector password of the contact
  • auth_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 contact
  • auth_token (required): The DeskDirector Passwordless Token generated for the contact
  • auth_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


How did we do?