Perhaps some workflows could even be predefined for customers, such as employee onboarding or offboarding. Essentially something like custom fields that are queried when creating a ticket through the portal.
I have gone to start this a million times but stop because I can never decide if we want to do this properly or not.
The lazy way to do it is that we just let techs/admins create custom fields, they show up on the ticket create page in some way and then the data just gets dumped into the ticket description. This is what we do for our sponsor sign-up page. It's lazy but it works for our use case. The major issue with this is that you cannot then properly act on the data you've collected easily with the API.
The proper way would record the information entered in its own database columns but it becomes a bit of a nightmare to manage from our point of view because then we have to create a new record for each custom field and when/how/to whom it should be shown and then elsewhere record the data for that custom field for each ticket, and then try and bring it back together at various places in the app/api. This is what we started doing for asset custom fields and I decided to step away from it instead of throwing my laptop out the window.
I'm open to thoughts. If we think "lazy" custom ticket fields would be fine then it can be added a lot quicker but knowing what technical people you all are, I imagine the next ask would be essentially "I want to give my custom script a ticket number and it onboard users/offboard users/do whatever based on custom fields for me" (I did this at a previous job!) ….which is why it's just sat in the backlog.