In the world of programming, there is a simple construction that illustrates this issue:
IF (condition) THEN (result)
Applying your example statement:
IF (exceeded the productivity goals) THEN (employees received bonus)
But, and this is very important, the condition in your statement has already been fulfilled. It happened in the past. That's a hint: your word choice will have something to do with the past tense and fulfilling a condition.
The solution is the perfect participle, which always reflects the past tense. The perfect participle of "to have" always has the form "having verbed." In this case, "having exceeded."
The nominal, "to have," is present tense, and therefore cannot be used to indicate the completion of a condition in the past.