i would use Zone+ then do something like
local ZoneM = require(path)
local NewZ = ZoneM.new(area) -- eg the hitbox surrounding the door
NewZ.playerEntered:Connect(function(player)
--Open door
end)
NewZ.playerExited:Connect(function(player)
--Close door
end)