From Quake Wiki
Zombies are truly unique. They rip pieces of flesh off themselves and throw them at you for their attack. To kill them, you must gib them. If you do not, they will simply fall over and get up later. To gib them you will need to bring their health to -40, meaning you need to 120 damage in a single instance, this is most easily done with explosives as demonstrated in demo1.dem but can also be achieved via Quad Damage attacks with other weapons, or a Thunderbolt discharge of at least 3 cells.
monster_zombie is the entity for placing Zombies in a level.
|targetname||The targetname of the Zombie. When triggered, the Zombie will wake up if inactive.|
|target||The targetname of the entity to be triggered when the Zombie dies.|
|killtarget||The targetname of the entity to be removed when the Zombie dies.|
The monster_army entity supports the following spawnflags:
|1||Ambush||The Zombie will not wake up from seeing other monsters wake up or hearing sounds.|
|2||Crucified||The Zombie will become a writhing cruified Zombie prop that can be used as level decoration and is not treated as a monster in game.|
It also supports the standard spawnflags for difficulty and deathmatch presence.
|256||Not on Easy||The Zombie will not spawn on Easy difficulty.|
|512||Not on Normal||The Zombie will not spawn on Normal difficulty.|
|1024||Not on Hard||The Zombie will not spawn on Hard difficulty.|
|2048||Not in Deathmatch||The Zombie will not spawn in Deathmatch mode.|
This is the format used by TrenchBroom and Worldcraft. Note that the model(...) parameter is not supported by Worldcraft. This does not include the Monster base class definition, which is also required.
@PointClass base(Monster) size(-16 -16 -24, 16 16 40) model(":progs/zombie.mdl") = monster_zombie : "Zombie"  [ spawnflags(Flags) = [ 1 : "Crucified" : 0 2 : "Ambush" : 0 ] ]
This is the definition format used for most old Quake editors, including the original QuakeEd.
/*QUAKED monster_zombie (1 0 0) (-16 -16 -24) (16 16 40) Ambush */