DeskDirector Forms - Dynamic Fields Implementation Example

Keison Tang Updated by Keison Tang

Using dynamic fields in DeskDirector forms requires an API endpoint to be created. This may be a barrier to people who don't necessarily have the time or expertise to develop such an API.

In this article, we will be going through a simple endpoint implementation using Power Automate, with our data source being an Excel sheet in Excel Online.

Prerequisites

Video Guide

Step by step guide in video form. No audio.

Step by Step Guide

  1. Upload the Excel file into a document library in one of the supported locations as specified by the Excel connector: OneDrive for Business, SharePoint Sites, Office 365 Groups. We are using SharePoint in this demo.
  2. Create an Excel Online (Business) connection in Power Automate. The account you use needs to have access to the document library where you saved the Excel file
    Tip: use service accounts for all connections and flow ownership
  3. Import the flow in Power Automate
    1. Upload the template zip file and map the required connection.
    2. The import is expected to fail as the Excel action placeholders point to a non-existent file. Click 'Save as a new flow' to continue. This should open up the flow editor.
    3. Find the 'List rows present in a table' action. Navigate to the source data table in the Excel sheet. The table is called 'DatesTable'.
    4. Save.
    5. Copy the HTTP trigger endpoint URL. Needed in next step.
    6. Turn on the flow.
  4. Create a form in DeskDirector
    1. Add a new field of Dynamic type. It should be at the bottom of the dropdown menu.
    2. Change the HTTP method to POST.
    3. Remove the / from the input box before pasting the HTTP trigger endpoint URL in.
    4. Save.
  5. Create a request type in DeskDirector
    1. Attach the form you just created.
    2. Enable the request type.
    3. Save.
  6. Test the dynamic field in Portal
    1. Impersonate a Portal user from the admin console
    2. Find the request type. Click on the field without typing to see the top 30 dates. Type something to search, e.g 'Monday'.
    3. Exercise for the reader: The dates are currently returned in descending order. Try edit the flow to show the dates in ascending order.
  7. Congratulations! You have now implemented a dynamic field API endpoint for DeskDirector forms.

Pros and Cons of using Power Automate over a bespoke API

Pros

  • Fast to implement, low code
  • Easy to deploy and maintain
  • Connectors to other Microsoft and third party services. Any potential auth is managed within Power Automate.

Cons

  • Slow due to action overhead
  • May get capped by action limits if endpoint is busy
  • Limitation of available data actions and expressions may require you to do clunky workarounds/hacks for things that are trivial in code

Conclusion

You should now have some basic understanding of what is required to implement an API endpoint for a dynamic field, along with a working, practical example that you can build out from.

This template, along with others are also available in our template gallery.

Troubleshooting / FAQ

  • I can't find the request type in the Portal
    • Make sure the request type is enabled and the contact you are impersonating has access to it.
  • In the Portal, the dynamic field returns "No results" or "Something went wrong with this question"
    • This could one of many possible reasons. If you are familiar with your browser's dev tools, it is easy to check if your endpoint was successfully called and diagnose the issue. In the image below, the error is because the endpoint is not available (either off or doesn't exist anymore)
    • If you are not familiar with dev tools, you could check the following:
      • Is the flow on?
      • Is the HTTP method set to POST?
      • Did you remove the / (forward slash) from the URL input box before pasting in your own endpoint? If the forward slash is still at the front, it gets treated as a relative URL, and the dynamic field will try call an endpoint that looks like this: https://subdomain.deskdirector.com/https://prod-06.australiasoutheast.logic.azure...
      • If your flow is on and was triggered (there is run history), then check the run logs for any issues.

How did we do?

DeskDirector Forms - Dynamic Fields

DeskDirector Forms - Sections and Conditionals

Contact