Approvals are visible for agents in the apps pane of a ticket if one of the following 2 things is true.
1. The Approval is sent and is 'pending approval'.
Regardless of any of the other settings in the approval template, once an Approval is sent and is pending approval (let's call this "Sent mode"), it will be visible in the apps pane on the right like this:
For templates that are sent automatically based on conditions of a trigger, this means that you may seemingly see an approval appear 'out of the blue', but in fact, behind the scenes, a trigger fired, resulting in an approval being sent, and hey presto! ...it appeared on the ticket.
If at any point the approval is cancelled or restarted like this:
...the approval will cease to be in "sent mode". At this point, conditions defining whether it is shown or hidden to agents will fall back to other specifications of your approval template.
For example, if your approval template has manual requests switched off, then the approval will ONLY be seen when it is in sent mode. IE. if it is cancelled or restarted, then it will cease to be visible on a ticket.
2. The Approval template has "manual requests" enabled AND the ticket matches the conditions in the template.
If you have manual requests switched on, then the approval will be shown based on the conditions of the form field on the left of the approval template like this:
Note: Switching to the "advanced condition editor" will allow you to define ANY conditions on a ticket as to when you want the approval to be shown. For example, when a checkbox is ticked, or an item from a dropdown field is selected. Unlike triggers, these conditions are live on the ticket meaning that you don't have to submit the ticket for them to take action. The instant the conditions are true/false, the approval show/hide.
Also Note: If you're on the Zendesk Enterprise plan, you'll see the "Ticket Form" field, but if you're on a Zendesk plan less that Enterprise, you'll see a "Tag" section like this allowing you to define a single tag that must be added to the ticket before the approval is shown:
Based on all the information above, even if you have approvals you want to send automatically, it is still advised that you also enable 'manual requests'. This will allow you to define rules as to when to show the approval even if it was sent automatically but then cancelled or restarted.
It's suggested that you set the conditions to match those of the trigger that initially sent them.