Besides the mentioned features, you can:
create definitions on a global or project level
use dynamics issue values to get the right approval format (i.e., budget approval based on budget and location)
use steps: user, group, email, issue field for users, groups, and emails, webhook and rejection step
run approvals in order or simultaneously
apply conditions on steps and whole definitions
work on all Jira project types (not limited to JSM)
see reports on the issue history tab
set approval expiration if no action is taken
send reminders via Jira notification or direct email
automation step
soon available: abstain option, success step
See a comparison with the Herzum Approval
Use cases:
budget approval
purchase process
design approval
product development
business trip approvals