2016-05-08: Updated to latest and easiest version

You could execute a workflow manually in your own vtigerCRM extension or PHP file.
You only need the following PHP Code:

require_once(vglobal('root_directory')."/modules/Workflow2/autoload_wf.php");
 
// The ID of the Workflow you want to execute
$workflow_id = 1;
// The user, which will be used for execution
$executionUserId = 1;
// Specify a CRMID if you want to execute the record in context of this record. (Important for field values)
$crmid = false;
 
$wfExecuter = new \Workflow\Execute();
$wfExecuter->setUser($executionUserId);
if(!empty($crmid)) {
   $wfExecuter->setRecord($crmid);
}
 
// Set the $env Variable, which is initially available in Workflow
$wfExecuter->setEnvironment(array("variable" => "value", "variable2" => "value2"));
 
$wfExecuter->runById($workflow_id);
 
// If you have created your own trigger to execute multiple workflows, you could use the following function
// Notice: Handling of configuration in Settings will be improved in future versions of Workflow Designer
// $wfExecuter->runByTrigger("TriggerKey");
Enter your comment. Wiki syntax is allowed:
   ____   ___    __ __     __   ___ 
  /  _/  / _ )  / //_/ __ / /  / _ |
 _/ /   / _  | / ,<   / // /  / __ |
/___/  /____/ /_/|_|  \___/  /_/ |_|