Ok got it, this should work all of the time.
We are using the coalesce() expression which gets the first non-null value from a line of items. So coalesce("Dan","Steve","Mark") would return "Dan". If you have coalesce(null,"Steve","Mark"), then it would return "Steve" since it skips over the first null item.
I am also wrapping a zero 0 in the int() integer expression just to be sure it returns a number.
coalesce(triggerOutputs()?['body/Design_DSG'],int(0))
Here is a screenshot of the expression
Coalesce Expression
This is basically saying if your value is null then return a zero 0 as an integer which just means number.
Let me know how this works,