         msg.send "No such action: '#{command}'"
         return
 
-      expectedParams = _.keys(action.parameters)
+      expectedParams = _({})
+        .assign(actiontypes[action.runner_type].runner_parameters)
+        .assign(action.parameters)
+
+      actualParams = parseArgs(expectedParams.keys().value(), command_args)
 
       payload =
         action: action,
-        parameters: parseArgs(expectedParams, command_args)
+        parameters: _({}).assign(expectedParams.value()).assign(actualParams).value()
 
       httpclients.actionexecutions
         .header('Content-Type', 'application/json')

            msg.send "Action has failed to execute"
            return

          msg.send "STATUS: #{action_execution.status}"
          msg.send "STDOUT: #{action_execution.std_out}"
          msg.send "STDERR: #{action_execution.std_err}"
          msg.send "EXIT_CODE: #{action_execution.exit_code}"


  # define basic clients
  httpclients =
    actiontypes: robot.http('http://localhost:9101').path('/actiontypes')
    actions: robot.http('http://localhost:9101').path('/actions')
    actionexecutions: robot.http('http://localhost:9101').path('/actionexecutions')

