znuny / znuny-feature-requests

This repository tracks feature requests as issues.
7 stars 1 forks source link

Allow a process to have at least two distinct start activity dialogs: one for the customer and one for the agent #29

Open samueldc opened 2 years ago

samueldc commented 2 years ago

I have a lot of processes which could be started both by a customer, using customer interface, and by an agent, using agent interface. When a customer starts a process, in general the ticket is moved to a triage queue, where some agent do the triage and, if everything is ok, the ticket is moved to the following queue etc.

The problem is when the agents starts a process, often, during the call, they could do the triage right away. I know it's possible to config an second dialog in the same activity for that, but would be more efficient to have a single dialog to do it all. And that would be simpler to the transitions too.

So the suggested solution, when using agent interface, is simply to return the next actitity dialog (available for agents) when the start actitivity dialog is only available to customers.

I think there's potential to break legacy only in the cases which agents are not allowed to start the process, and the start activity have a second dialog so the agent could pick (not start) an already started ticket process in some queue.

dignin commented 2 years ago

I have an idea which might avoid breakage:

What about using shared dialogs, as it is today, but each field added to the dialog could be Agent, Customer or All. This would avoid a breaking situation, which would allow for users to update their processes, as needed.

This means in a dialog for Agent and Customers, just the fields would be different, or not.

samueldc commented 2 years ago

I think the need to flag every field is a lot of work. Maybe a better solution would be to flag the dialog as a start dialog or not (with default to not to avoid break the legacy). Another solution would be a system config parameter to use the new feature or not (also with default to not).

samueldc commented 2 years ago

Posting a code example that implements this feature. AgentTicketProcess.zip