Atlassian provides an excellent resource here on how you build the workflow you want.
Note that since JIRA 7.3, also Project Administrators can configure workflows, as long as they are not shared with multiple projects.
Define default values when creating issues
In JIRA you can only define default values for custom fields out-of-the-box. These defaults will then apply globally in any workflow state and mask. With the 'Default Values' extensions we provide you can define default values on specific 'create issue' / 'create sub task' screens. For example you can define a default description for user storys or bugs to help reporters create better and more complete requirements.
Read more: Default Values for "Create Issue / Sub-Task" screen
Create the workflow you want
Control status changes using conditions
Use 'Conditions' to determine who can change issues from one specific status to another. For example, make it so that only a particular assignee (e.g. a reviewer) can change the issue status to 'Ready to publish'. If a Condition is not fulfilled the button to make that status change happen will simply not appear. If you want to show the button and give feedback with an error message use Validators.
Set up Validation
Use 'Validators' to ensure that a status change gets validated before it happens. For example, before changing to a 'ready' status, a validator can check if the field 'Story Points' has been set.
Create automatic actions
Use 'Post-functions' to trigger specific changes on issues after they have passed conditions and validators. For example, you can set the assignee to the user defined in a custom field 'QA Resposible'.
Configuring Conditions, Validators and Post Functions
Here's how you can add a workflow element to a transition:
First go to the Workflows section of the Administration and klick Edit on the workflow you want to enhance with new features.
If you prefer to work with the graphical view, then select one transition and in the box on the right klick on Validators or Post Functions, depending on what you want to add.
If you are working with the text view instead, simply click on the name of the transition. The creation of an issue is also a transition.
Now you see a list of currently active Post Functions (or Validators). To add one, klick the link on the top right corner.
Select the Post Function you want to add and configure it.
You can also change the order of the Post Functions. This may be required sometimes, for details see here.
When you are done, don't forget to Publish Draft of your workflow to make it available to your users.