File Storage

Jason He Updated by Jason He

DeskDirector has been uploading ticket attachments through PSA's API. That approach can get basic functionality done. But as we seek to expand the functionality, we encountered barrier that's not fixable by us.

Problems below are things we cannot get around until we introduce our own file storage.

  • File size limitation. Even though PSA allow upload larger file through their own UI, but their API has very tight restriction.
  • Unable to upload before ticket been created. Which for modern UI/UX, this is not optimal.
  • Upload speed is slow.
  • Unable to optimize for image preview or thumbnail.
  • Download speed is slow and our server became file proxy, taking memory hit when large amount of files been proxied through within short amount of time.
  • Not an solution for our own feature. e.g. If we want to introduce knowledge base solution, then attachment API from PSA is not suitable.
  • Unable to use attachment to play video or audio. Since API to download attachment is slow and our server taking memory stress, it is just not reasonable to used it for video or audio.
  • No relationship with submitted initial description or note. Which attachments been uploaded during submit of the ticket or note is unknown.

File Limit

User can upload any kind of files to our file storage, it is powered by Azure Blob Storage. As for size limit, maximum size is 100MB per file unless you are Essential plan or Basic plan. Those legacy plan have limitation of 15MB per file.

File display and render

Different to what we have before, we now allow wide range of functionalities.

  • PDF: It is same as before, but rendering should feel much faster.
  • Image: We now allow thumbnail and preview mode. Even though your image file may be 10MB or 17MB, our system will generate optimized preview and thumbnail file for render. The speed to render should be greatly improved and when download the file, it is still original size.
  • Video and Audio: This is experimental functionality. We use HTML5 to render if given file is video or audio file. They can be played without download. Optionally, user can still choose to download if their browser does not support the format or if they want to keep an copy.

With release of our own email delivery solution, many customer been request for a way to render attached file. This was not an simple task if we use PSA's attachment solution.

First, the file uploaded through PSA interface, we have no idea which note it belong to. Autotask we can figure out but slow, ConnectWise's attachment has no relationship with actual note or description.

Second, it is slow. we want to keep email delivery logic simple, query PSA for attachment list and figure out what to be include take time. Our server side background task will take 10~20 seconds for each email which is not optimal. With our own file system and record history, each email will only take maximum of 100~200MS to figure out.

As release of file storage, download link inside email is possible if file storage been enabled for ticket and file been uploaded through latest client or tech portal.


We take security seriously. Any file retrieval, preview, thumbnail, all been through our permission identify system. Only if given user can access to the ticket, can view those file.

The download link inside email is different to our front end portal, if you include permission token, then it can be download by anyone within set amount of time. Without permission token, system will require them to login before they can download or view any given files.

File field within DeskDirector form

With introduction of file storage, we have also released file field inside our custom form. When use file field, it will always upload to our file storage.

Each file field can upload as many files as user want to. There is only individual file limit at moment.


Q: How come email's download token is stateless? Isn't that expose security risk?

A: Download link inside email with permission token is similar to normal attached file or OneDrive's generated access link. Where anyone who received email can download and view the file. Our admin portal provide setting for you to opt in and select expire time for each download token.

Q: I don't want to use new file storage, how do I opt out?

A: File storage is default off. You can turn on and off under System => Features => Ticket

Q: I didn't enable file storage, but file still uploaded through new system. How come?

A: It is most likely you are using new file field inside DeskDirector form. File field does not respect the storage flag, it will always use our file storage.

Q: I like the concept of file storage, but could you also upload file to our PSA?

A: No, since the file size limitation and speed, we couldn't do that. Technically we can upload file smaller than PSA limit to PSA, but such inconsistent logic means more support request on diagnose issue it may occur.

Q: Our technician is not using TECH portal, how do they view files?

A: We do create an file link inside PSA, which they can use to auto navigate to TECH portal. It is still preferred to use TECH portal instead.

Q: Will DeskDirector charge us on amount of space used in file storage?

A: At current stage, no. Cost is included within your subscription.

Q: Is file storage regionallized?

A: Yes. Same as database, it is regionallized and each customer have their own Azure blob container. Which allow us to easily delete it after you leave.

Q: I am still not convinced at this feature.

A: This feature is opt in feature. As long as you don't enable file storage for ticket and don't use file field, then everything still same as before.

Q: Will DeskDirector enforce to use file storage.

A: No, we fully aware customer have different opinions when come to file storage. We want to keep the option open for you to decide. But any feature of our own, file storage will be used. At current stage, we don't have any feature depends on it yet.

How did we do?

User Groups