You can easily do this by making a new script in the story editor.
Here's a template.
=======================================
IF
CharacterStatusApplied(_Char,"STATUSNAME",_)
THEN
#for looping
CharacterSetAnimationOverride(_Char,"ANIMATIONNAME");
#for non-looping
PlayAnimation(_Char,"ANIMATIONNAME");
=======================================
You can find the list of animation names in
Standard Character Animations and in _Global_CharacterAnimations inside story editor (make sure to check both places because not all animations can be found in one place).
For example:
DB_GLO_CharacterAnimation("PlayAnim_Loop_knockdown_loop","knockdown_loop",1);
You can get the animation name from the second string which is "knockdown_loop". As for the number I think it is for telling if it's a looping animation or not (1 for loop, 0 for not).
The animation name for dancing loop is for some reason "Dance_02_Loop" when the actual animation is called "Loop_Dance_01".
Also don't use incapacitated for your status type as it will override your animation with the "still" animation. Hope this help!