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:
  __  __  _      __  _____   ___    ___ 
 / / / / | | /| / / / ___/  / _ )  / _ \
/ /_/ /  | |/ |/ / / /__   / _  | / , _/
\____/   |__/|__/  \___/  /____/ /_/|_|