-
Notifications
You must be signed in to change notification settings - Fork 0
Description
Summary
Provide the ability for a CMS user to raise support tickets against the preferred ticketing or agile system. A user should be able to click a button within Client Drawer to open or expand to a generic form. The form should consist of a subject, comments and an attachment button as standard. The configuration should allow for additional form fields for other related information to better categorise said issue. On submission of the form, we should send the data via a webhook or custom code driven handler (i.e. REST API or HTTP POST).
Configuration
In addition to the existing available configurations within the appsettings.json, I'd like to be able to define how this is displayed and hooks up to a 3rd party. If using opting for a webhook, I'd like to utilise Umbraco's webhooks implementation. If opting for something else, reference a "codename" of worker class which takes the form data and sends it via the vendors implementation (i.e. REST, POST).
I'd like to also have the ability to add additional form fields. This should be a simple array of Alias, Label, Field Type & Default Values. These should then be used to populate the form and be part of the submission data.
Submission Events
Webhook
A custom webhook event and notification would need to be created as part of this so that it triggers a webhook upon submitting the form. See documentation.
Custom Code
It would be desirable to have a library of classes which inherit from a base interface where we can send form submissions and it forward the data to the 3rd party system. Off the shelf I'd like to provide some working examples of already integrated vendors such as Trello, Zendesk, Jira, etc. Of course we can't accommodate for all systems on day 1, so having the ability for developers to integrate their own should remain a key focus.
Future ideas
- In addition to an attachment field, it would be neat to have a screenshot button which take a photo of the current screen in the backoffice
- Provide the ability to deliver similar functionality to the frontend of the website so clients can raise tickets based on feedback or website bugs.