Approval steps provide the logic for routing object record approvals to the correct people based on specific criteria.

A minimum of one approval step is required to activate an intelligent approval process; however, a process can contain many steps. When you create steps it is important to understand the approval workflow you want to have. Along with the step criteria, step dependencies should be used when organizing your approval workflow. Any steps that are not dependent on another step will be executed in parallel.

Approval Step Enhancements

Approval steps have been enhanced to offer three different step types to the user, as well as new description fields, and the ability to select which context object fields should be displayed when an approval request or preview is sent.


Approval Step TypesThere are three step types you can choose from when creating an approval step:
  • Standard - This is the existing method for creating approval steps.
  • Sub Process - This is used when you want to select approval rules that are associated with the context object of the approval process, which also replace the assignee types that are used with a Standard step.
  • Child Process - This is used when you want to select approval rules that are associated to child objects of the approval process context object, which also replace the assignee types that are used with a Standard step. It enables the Context Object and Approval Rule list.
Description FieldsThere are description text fields available for adding information about a step, as well as for conditions of the step entry criteria. These fields enable you to provide useful information to the approvers about these items.
Display Fields

The fields enables you to select the header level fields of the context object you want to show to users when previewing an approval or when an approval request has been sent and the approver is reviewing the request information.

Any Related Fields you create for the context object is available as display fields.

To create approval steps

There must be an approval process.

  1. From the Approval Process page, click New Approval Step in the Approval Steps section. 
    - or -
    At the end of creating a process definition, select Yes, I'd like to create an approval step now and click Go.
  2. Enter a Step Name, Step Label and Description for the step.
  3. Specify the appropriate Step Type and click Next.
  4. Select the Entry Criteria for the step and click Next. See Creating Expressions for details on setting the criteria.
  5. Specify the conditions for setting up Auto-Reapproval. When these conditions are satisfied, the current step will be automatically re-approved.
  6. Select Step Dependencies, if necessary, by highlighting steps in Unselected Items and click  to add them to the Selected Items. Reorder the steps as required and click NextStep dependency is based on their order in Selected Items.
  7. Select Step Auto Complete if you want this step to automatically be approved when it is assigned to the approver. For auto complete to work as expected, ensure that the step you set Set Auto Complete for is independent from another step. You can set up any or all standard steps in an Approval Process for auto-completion. Entry Criteria is still enforced for the selection of the step, but will be marked as auto-completed if flagged. Approval Comments are not enforced even if the comments are flagged as mandatory. Fact that the Step is auto-completed is captured in the audit trail.

  8. Select the process approvers, by selecting from Assigned Approver > Assignee Type.

    OptionDescription
    Approval MatrixUse this to dynamically assign an approval request to a user who has the given approval level in the approval matrix for the user submitting the request. For example, approver authority may change based on the discount being offered on a sales contract. So different levels of approvers can be assigned based on approval authority for a given item.
    Custom Queue
    This points to a field which contains a queue name in any custom object with a filter to narrow it down to a single row. This can be specified in two ways:
    • Select the custom field in the custom object you want to use for the custom filter expression and manually enter a constant value it will be compared to.
    • Select the custom field in the custom object, but select Bind Value, which enables you to select a field in the associated business object to compare to.
    Custom RoleThis is a field which contains a role name in any custom object with a filter to narrow down to a single row. The behavior is the same as Custom Queue.
    Custom UserThis is a user lookup reference field in any custom object with a filter to narrow down to a single row. The behavior is the same as Custom Queue.
    QueueUse this to dynamically assign an approval request to a queue. If email notifications are set for the queue, notifications will be sent to all members of the queue, otherwise, a single notification will be sent to the queue email.
    Related UserThis is a user lookup reference field in the associated business object (i.e. Agreement or Opportunity).
    RoleA role can be based on your company's hierarchy and can have one or more users assigned to it.
    RuleUse this assignee type when you want to dynamically assign an approval request based on an approval rule. If you select this option, the approval request is sent only to the first user that satisfies the filter criteria in the Approval Rule. If you have multiple approvers in a sequence, only the first approver is selected and assigned.
    UserUse this assignee type when you want to dynamically assign an approval request to a user.
  9. Select Send Email to notify the assignee by email that they must approve or reject the object record and select Notify Only to only inform the assignee by email that the approval process has reached this step, without any actions to take.
  10. Select Skip Unresolved Assignee to optionally skip an unresolved approver from the list of sequential approvers.
  11. Choose Step Auto Escalate if you want to escalate the current step if no action is taken on the approval request within a specified period. Enter the number of days in Step Expected Days To Complete and the number of hours in Step Expected Hours To Complete by which you want to escalate the approval request.
  12. Select a mandatory Assignee Type where you can escalate the approval request to a User, Role or any of the assignee type mentioned in Step 8. Click Next.
  13. Create Reminders for approval requests that send a reminder notification to the assignee at the specified duration unit and intervals. For example, you can remind the assignee to take action on the request 7 days after it was assigned, and then again a week later. To activate reminders, select Step Reminders Active
    Reminders are sent to the original assignee only. Reminders are not sent if you reassign or escalate the approval request. 

    As a prerequisite, you must schedule reminder jobs in the respective environment to run a reminder flow. Run these jobs in the development console as per requirement. The default time interval between each job is 15 minutes.

    Example jobs:

    system.schedule('Approvals Reminder Job 1', '0 00 * ? * * 2019', new Apttus_Approval.ReminderJob());
    system.schedule('Approvals Reminder Job 2', '0 15 * ? * * 2019', new Apttus_Approval.ReminderJob());
    system.schedule('Approvals Reminder Job 3', '0 30 * ? * * 2019', new Apttus_Approval.ReminderJob());
    system.schedule('Approvals Reminder Job 4', '0 45 * ? * * 2019', new Apttus_Approval.ReminderJob());

  14. If you have enabled submission comments at the process level, at each step, you must enable submission comments.
  15. Select the Header and Display Fields which will appear at each approval step, by highlighting steps in Unselected Items and click  to add them to the Selected Items. Reorder the steps as required and click NextStep dependency is based on their order in Selected Items. For example, the selected Display fields appear on the Approvals page if you have configured Approvals for CPQ.
  16. Select CC (carbon copy) assignees who are copied on email notifications for all approval requests assigned for each Approval Step. The CC assignees are set up regardless of the approval step type. This works for standard, sub-process, and child process. CC can be a Named User. A CC assignee is only copied on email notifications, they cannot approve a request by replying to the email. Their reply email is bounced back. In case of consolidation, CCs from all request are concatenated.

    Custom Users and Queues are not supported.

  17. Click Save.

The step is added to the Approval Steps section for the Intelligent Approval Process. You can now Activate the approval process.

To create an Approval Rule to use with a Sub-process or Child processes

Condition must be added to the Rule Type picklist.

Go to Setup > Create > Objects > Approval Rule, scroll to Custom Fields & Relationships and click Rule Type. From Picklist Values section, click New. Enter Condition and click Save.

  1. Go to Approval Rules and click New.
  2. Select the Business Object and click Next. To use the approval rule with a sub-process it must match the context object of the approval process. To use it with a child process, it must match the child object associated with the approval process.
  3. Enter a Rule NameSequence, and from Rule Type, select Condition.
  4. Click Save and then click Manage Entries from the Approval Rule Detail page.
  5. From Rule Entries, click New.



  6. Enter the condition you want to use to route an approval request to the assignee and click OK.
  7. Now you can fill out the rest of the rule entry as normal, including descriptions for both the condition and the assignee.
  8. When selecting assignees, the Type you select impacts what you need to enter for the Value:
    • UserRoleQueue - Enter the Label for the specific object record you are referring to.
    • Related User - For custom fields enter the API Name, such asQuoteOwner___c. This needs to be the User Lookup field on the Line Item or Product Configuration object record. If it is a standard field, addIdto the field name and use that. For instance, with the Line Item field CreatedBy, you would enterCreatedById.
    • Custom UserCustom QueueCustom Role - This can be a formula, using a format as follows:Custom Object (Custom Object Field 01 = "Value" AND Custom Object Field 02 = "Value") User. For more details, see Custom Assignee Example.
  9. Add additional conditions and assignees as desired and click Save.

    Note

    The Assignee Type is Subprocess regardless of whether you created a Subprocess or Child process type.

When the approval rule is Active it can be used with an approval process and depending on the context object of the approval process, the approval rule will be available when you select a Step Type of sub-process or child process.

You can create additional approval rules as needed.

Using Date Criteria in Approval Rule Entry

If you use date based criteria in an approval rule entry, you must YYYY-MM-DD 00:00:00 format for the date. For example, you want to trigger an approval rule on Proposal Line Item with Create Date greater or equal to April 5, 2018.

Use the following and do not delete anything:2018-04-05 00:00:00

This is useful when you want to set an approval rule or entry to take effect on or after a certain date. If you do not use the right format, the system displays an error when you try to submit for approval OR the system will simply ignore the criteria and trigger the rule regardless of the date.