diff --git a/lib/dynflow/action.rb b/lib/dynflow/action.rb
index <HASH>..<HASH> 100644
--- a/lib/dynflow/action.rb
+++ b/lib/dynflow/action.rb
@@ -157,7 +157,6 @@ module Dynflow
 
     def plan_self(input)
       self.input = input
-      add_trigger_reference if trigger
       @run_step.input = self.input
       @finalize_step.input = input
       @execution_plan << @run_step if self.respond_to? :run
diff --git a/lib/dynflow/dispatcher.rb b/lib/dynflow/dispatcher.rb
index <HASH>..<HASH> 100644
--- a/lib/dynflow/dispatcher.rb
+++ b/lib/dynflow/dispatcher.rb
@@ -26,6 +26,7 @@ module Dynflow
           sub_action = action_class.plan(*plan_args) do |sub_action|
             sub_action.input = action.input
             sub_action.trigger = action
+            sub_action.add_trigger_reference
           end
           execution_plan.concat(sub_action.execution_plan)
         end
Make the input from trigger available in planning phase