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:
   __    __   __  __   _  __   _  __
  / /   / /  / / / /  | |/_/  / |/ /
 / /__ / /__/ /_/ /  _>  <   /    / 
/____//____/\____/  /_/|_|  /_/|_/