At the moment, we get alerts from Splunk when the state is warning/critical. These emails are sent every configured period. Is it possible to configure the alerts so that there is only an email sent when the state changes (eg from normal to warning, from warning to critical, from critical to normal, etc)?
If you have continuous state/status field, use streamstats to get the last status and compare it with the current one.
Try below sample SPL and lets know if it work for you.
|makeresults |eval status="normal,warning,critical,critical,normal,normal"| makemv status delim=","|mvexpand status
|eval _COMMENT="ALL ABOVE IS JUST TO CREATE DUMMY DATA AND NOTHING TO DO WITH ACTUAL SEARCH"
|reverse|streamstats current=f window=1 last(status) as prev_status|reverse|eval send_alert=if(prev_status==status,0,1)
Based on this alert, you can decide whether you want to send the alert. For eg. |where send_alert==1