This article is regarding the Approvals app.
The conditions for automatic and manual approvals are set in different ways.
Manual are shown using conditions defined in a JSON field set within the app.
Automatic are fired off using conditions in Zendesk triggers set outside the app.
The reason for the difference really has to do with the limitations of Zendesk triggers. Triggers can only do something on a ticket at the point the ticket is updated (eg. when you click 'Submit' on a ticket) but they can't define what happens on a ticket based on live changes to ticket fields as you're making them.
Manual approvals need to be able to show and hide different approvals depending on the live conditions of the ticket like this:
As such, we built the ability to set these conditions using a JSON field. We've written an article on how to write conditions for manual templates here.
On the flip side, approvers are predefined in automatic approvals so these templates don't have the same live conditionality requirements as manual ones. As such, triggers work perfectly as a tool to define when they fire.
For an example of how to setup an automatic approval workflow see How to set up automatic approvals.