====== Start ======
This Task is the start of all workflows and this is allowed only once in a workflow.task_start
===== Options =====
* **run time of this workflow**\\ //(Should the workflow executed immediately or asynchronous (asynchronous creates a 1 second delay and execute the workflow with the next cronjob)//
* **parallel execution**\\ //If you use a [delay] or [set values] task, it could result in recursive execution, which could result in problems with the server//\\ You should only activate parallel execution if you know you need multiple instances of one Workflow per record
* **only one execution per Record**\\ Only execute this workflow one time per record. Couldn't be reset and the workflow couldn't executed manually, too!
==== Triggers ====
| On first save | Execute when a record is created |
| On every save | Execute every time a record is modified (From the User or the Webservice) |
| Start manually | Don't execute this workflow automatically. You could execute this workflow only manually from sidebar or from other Workflows |
| start with email sending | Execute every time a mail is stored for a record (Regardless if you send or the MailScanner connect) |
| start on new comment | Execute every time a comment is created for a record\\ You get the Content of the Comment in **$env["commentcontent"]** and the UserId from the Author in **$env["assigned_user_id"]** |
| import Process | Won't be started manually. Needs to be set for [[en:extensions:workflowdesigner:importer|Import Workflows]] |
| Reference to Record was set | Execute this workflow if a record was referenced in another record |
===== Request this values, before execution =====
* Have the same behavior like the "[[en:extensions:workflowdesigner:tasks:flow:requestvalues|request values from user]]" task.
===== Trigger =====
* **Start when a record is created**
* will be executed once every time a new Record is saved
* **Start every time a record is saved**
* will be executed every time you save a record in the module
* **Start only on manual execution**
* won't be executed automatically\\ have to executed in sidebar or with the task "execute external Workflow"
* **Start every time a mail is send to the record**
* This Trigger will be started if a new mail will be send to this record or an incoming mail will be related to an entry in the module\\ You could use the following environment variables inside a custom function to do something based on this values:\\ ''$env["email"]["subject"]'' - contains subject\\ ''$env["email"]["content"]'' - contains mailtext\\ ''$env["email"]["from"]'' - contains sender\\ ''$env["email"]["to"]'' - contains destination\\
* **Start every time a comment is created**
* This Trigger will be executed if you write a new comment for an entry in the module
* **Reference to Record was set**
* This trigger will executed every time you set the reference to a record from the main Module. For example you create such workflow in module "Accounts". Every time you select an Account in a Quote, Invoice, ... This workflow will be triggered.\\ Pay Attention: The workflow will be executed in context of the referenced record. This means if you use $crmid, you won't get the ID of edited record, but from the Account.\\ Use ''$env["source_record"]'' to get the ID of the edited Record and ''$env["source_module"]'' to get the ModuleName of this record.
===== allow execution without a related record =====
If you activate this option, you could start a Workflow from ListView, without choosing a record. This will increase the usability if you create an export workflow or a workflow, which check some option.
**Warning!**
Please note, if you don't choose a related record, every used field value variables, which depend on the current record, will return an empty value!
===== execute process only once with all checked records in listview =====
Normally a workflow will be executed one time for every record you checked in ListView. If you enable this option the Workflow will only be executed with the first record you select and write all selected record IDs comma separated in the $env Variable you configure.
Example: You select 3 records in listview and want to generate one email with data from all checked records.\\
You enable this option and configure the variablename to "recordids".\\ Now you could access the IDs in the variable $env["recordids"] in the format //id1,id2,id3//