Simplify your day-to-day activities by creating a Workflow to request Approval for a discount on a Quote.
In this tutorial, we will walk you step by step to create your own Quote Discount Approval Workflow. The process we will describe here is used to automatically create a Task to request approval for a discount based on the discount percentage.
There are three flows possible:
- Discount < 15% - The approval will be automatic.
- 15% > Discount < 25% - The approval request goes to the Sales Manager.
- Discount > 25% - The approval request goes to Finance.
Once the request is approved we automatically set the status of the Quote to Approved and if it was rejected then the status gets updated to Rejected.
To create this workflow make sure you have the following fields available in your Apps:
App | Fields Required |
Contact App |
Owner |
Task App |
Type |
Opportunity App |
Name |
Once you have all the required fields, then proceed with the creation of your Workflow. Click the "Create New Workflow" button and give your Workflow a name, we recommend "Quote Discount Approval".
Then for triggers, select "On Update" as we want to make sure all this process happens when our Quote's Stage gets updated to "Pending Approval", for that purpose, we select "Quote Stage" as Field. Then, under Conditions make sure to add "Quote Stage Is Pending Approval" to apply this flow to all Quotes that reach this Stage.
Now that we have the basics for our Workflow, let's continue with the diagram following these steps:
Step 1 - Create Record
Create the StartEvent, then select it and click the Create Record Activity to create the Quote Approval. If you do it this way the connection between the two elements will be added automatically, otherwise, you will need to select the Create Connection Tool, then click the startEvent, and then click the Create Record activity to create the connection.
Now, edit the Create Record Activity to include the following configuration details:
Quote Discount Approval - Create Record | ||
Name | Create Quote Approval | |
Marker | None | |
App |
Quote |
|
Input Parameters | ||
Field | Type | Value |
Description | Static | Quote Approval |
Status | Static | Pending Review |
Source App | Static | Quote |
Source Record | Dynamic | entityInstance.instanceId |
Step 2 - Create Gateway
Now, you need to add a Gateway (diamond shape), to specify the different Discount options you want to support on your Workflow and what should it happen for each of them. For this example, there will be a Gateway with 3 possible scenarios as described above. Once you add the Gateway, click on it to select it, and then click on the Update Record Activity, you will need to create 3 of these.
Quote Discount Approval - Update Record - Auto-Approved | ||
Name | Auto-Approved | |
Marker | None | |
App |
Quote |
|
InstanceId |
Type - Dynamic Value - createQuoteApproval |
|
Input Parameters | ||
Field | Type | Value |
Status | Static | Pending Approved |
Quote Discount Approval - Update Record - Assign to Sales Manager | ||
Name | Assign to Sales Manager | |
Marker | None | |
App |
Quote |
|
InstanceId |
Type - Dynamic Value - createQuoteApproval |
|
Input Parameters | ||
Field | Type | Value |
Owner | Static |
Username |
Quote Discount Approval - Update Record - Assing to Finance | ||
Name | Assign to Finance | |
Marker | None | |
App |
Quote |
|
InstanceId |
Type - Dynamic Value - createQuoteApproval |
|
Input Parameters | ||
Field | Type | Value |
Owner | Static | Username |
Now let's work on the logic for each of these scenarios. For the first one, the approval will be automatic therefore the status of the quote will be set to 'Approved', while the other two will need to wait for the approval of the Sales Manager or Finance accordingly. There are two possible outcomes here, either they approve the discount, following the same path as our first scenario, or it could be rejected, in which case, the status of the quote will be updated to 'Rejected'.
To do this, first, create a Gateway that is connected to 'Assign to Sales Manager' and 'Assign to Finance' like in the image above. Then create a 'Receive Tasks' with the following configuration:
Quote Discount Approval - Receive Task - Wait on Approval Update | ||
Name | Wait on Approval Update | |
App |
Quote |
|
Trigger |
On Update |
|
Field |
Status |
|
InstanceId |
Type - Dynamic Value - createQuoteApproval |
Then two more Gateways are needed, one for the output of the Approval update, which could be either Approved or Rejected, and then one more to include the approval of the Discount % that is automatically approved as part of the approved flow. Make sure that they are all connected as shown in the above image.
Now, all that is left is to update the Quote status to either approved or rejected. For this, you will need to create two Update Records as shown in the image with the following configurations:
Quote Discount Approval - Update Record - Set Quote to Approved | ||
Name | Set Quote to Approved | |
Marker | None | |
App |
Quote |
|
InstanceId |
Type - Dynamic Value - entityInstance.instanceId |
|
Input Parameters | ||
Field | Type | Value |
Quote Stage | Static | Approved |
Quote Discount Approval - Update Record - Set Quote to Rejected | ||
Name | Set Quote to Rejected | |
Marker | None | |
App |
Quote |
|
InstanceId |
Type - Dynamic Value - entityInstance.instanceId |
|
Input Parameters | ||
Field | Type | Value |
Quote Stage | Static | Rejected |
To finish with the workflow, don't forget to add the EndEvent after these two update record activities, just like shown in the image. Once you have completed all the steps, Save your Workflow.