AGENT_STATE_LOGIN to AGENT_STATE_LOGOUT and vice versa
AGENT_STATE_AVAILABLE (Ready) to AGENT_STATE_NOT_READY
AGENT_STATE_NOT_READY to AGENT_STATE_AVAILABLE (Ready), AGENT_STATE_LOGOUT, or AGENT_STATE_NOT_READY with a different Reason Code
AGENT_STATE_TALKING on an incoming or outbound call to AGENT_STATE_NOT_READY or AGENT_STATE_AVAILABLE if wrapup is not allowed or is optional.
AGENT_STATE_WORK_READY (CCE only) on an incoming or outbound call to AGENT_STATE_NOT_READY or AGENT_STATE_AVAILABLE if wrapup is required or is optional.
Note that AGENT_STATE_WORK_NOT_READY is not supported in Finesse.
Also note that these states are supported, but a change to them occurs because of call events. The agent does not control them or actively select them in the Desktop: