Using the SweetHawk Approve app for Zendesk you can automatically either send, or apply an unsent approval to a Zendesk ticket. This mandates that the agent who is working on the ticket must complete the approval request before they are able to solve the ticket.
Here's a video that shows how this can be setup:
To create the Zendesk trigger that will automatically apply the approval, first create an approval definition. Now, back in the list of approval definitions, in the trigger column, click on Create trigger next to the appropriate one like this:
Then a popup notification will appear at the top right side of the screen which you can click to open your new trigger.
The new trigger is set in a way that it will almost certainly never fire on a ticket because it is looking for a test tag. As such, you can remove this condition and set the actual conditions you want the trigger to be checking for in order to initiate the approval. Eg. "Ticket" - "Is" - "Created", and the "Form" - "Is" - "XYZ.
Once you're happy with your conditions, under Actions, you will see the webhook for the approval definition being called. There is one URL parameter that allows you to set if the approval will instantly be sent off, or if the approval will be applied to the ticket in an unsent state which would allow the agent to vet the data submitted before manually sending the approval themselves.
The parameter is either "send" - "true", or "send" - "false" and looks like this:
Once you've created the trigger you can go about replicating the conditions in a ticket to test out your new approval flow.