Overview
A Delegation of Authority (DOA) matrix defines who in an organization is authorized to make decisions, approve actions, or handle tasks in various business areas, such as supply chain, operations, and finance.
Traditionally, government contractors managed these matrices using excel documents, which outlined who had the authority to approve various processes based on different criteria. By integrating the DOA matrix into Salesforce, we automatically route requests to the appropriate reviewers and approvers based on their authority levels and predefined rules.
This article provides a detailed guide for an administrator to set up the DOA matrix in Salesforce.
Audience
Salesforce Administrators
IT Support
Prerequisites
Ensure that TechnoMile's Analytics package is installed and configured. The version of this package must be 2024.3 or higher.
Permission Sets
Assign the DOA Admin Permission Set to administrators responsible for managing the DOA matrix.
Assign the Pre-Award Full Access permission set to users to allow them to use DOA on specific objects.
Understanding DOA stages
The following workflow explains the stages involved in implementing a DOA matrix on Salesforce:
DOA Admin Page
The DOA Admin page is a centralized platform for admins to setup and manage the DOA matrix within Salesforce. Admins can create and manage DOA categories, roles, and associated rules to determine what decisions or approvals users can make. They can easily assign, modify, or revoke DOA levels and create custom matrices for different departments or roles based on organizational needs.
Navigating to the DOA Admin Page
To view the DOA admin page:
In your Salesforce organization, open the App Launcher
.Use the search field to find and open DOA Admin.

Creating and Managing a DOA Category
A DOA Category is essentially a way to create and organize categories linked to specific objects. For instance, the Contract Approval category can be linked to the Contract object and the Account Approval category can be linked to the Account object.
Adding a DOA Category
To add a DOA category:
In the DOA admin page, click Add DOA Category.
The New DOA Category dialog box appears.Search and select an Object and enter a DOA Category.
The below screen shows an example of a DOA category being added for contract termination rule.
Click Save.
The category is added on the first column.
Editing a DOA Category
To edit a DOA Category:
In the DOA admin page, click the edit icon
next to the DOA category you want to edit.
The Edit DOA Category dialog appears.Edit the DOA Category as required and click Save.
Deleting a DOA Category
NOTE
Deleting a DOA category also deletes the rule records associated with that category.
To delete a DOA Category:
In the DOA admin page, click the delete icon
next to the DOA category you want to delete.
A confirmation window appears.
Click OK.
Creating and Managing a DOA Role
A DOA Role defines specific roles or departments within an organization and their associated personnel who have certain decision-making powers or approval authority.
Adding a DOA Role
To add a DOA role:
In the DOA admin page, click Add Role.
The Add Role dialog appears.Enter a Role.
The below screen shows an example of a DOA role being added for Finance Manager.
Click Save.
The role is added on the first row.
Adding Personnel to a Role and Viewing Existing Personnel
To add a user to the DOA role:
In the DOA admin page, use the Search by Role search box to find a specific role.
Click View Personnel.
The Personnel Roles dialog appears, listing the users associated with that role along with their details, such as email ID and business unit.
Click Add.
The Add Personnel Roles dialog appears.
Search and add users in the Personnel field.
Click Save.
Defining and Managing DOA Rules
Rules define who can make decisions and under what conditions. They establish authority levels for various approvals, specify criteria for approval, and outline which roles are responsible for specific actions.
Adding Rules
To add a new rule to a specific DOA category and role:
In the DOA admin page, click the Add Rule icon
corresponding to the cell where a specific DOA category intersects with a specific role.
The Add DOA Rule dialog appears.NOTE
The Add Rule (
) and View Rule (
) options are only visible for cells related to DOA categories and their associated roles if the DOA category has the Object field populated.Specify the rule details:
Search and select a Field API Name.
Select an appropriate Operator.
Enter the required Value.
Click the add icon
to enable the Condition field and add another field API.
Click Save.
DOA Rule Example
The following screen shows an example of a rule defined for Contract Approval (DOA category) based on contract term and end date. Contracts with a term of up to 1 year or ending within the current fiscal year can be approved by the Contract Manager (DOA role). Similarly, you can define that contracts with a term of 1-5 years or ending in the next fiscal year require approval from the Director, while contracts exceeding 5 years need approval from the CFO.

Viewing and Editing Rules
In the DOA admin page, click the View Rule icon
corresponding to the cell where a specific DOA category intersects with a specific role.
The DOA Approval Configuration Rules dialog appears with a list of rules for the selected DOA category and role.
Click edit
to modify the rule as required.
Click
to add a new rule condition or
to delete a rule condition.
Deleting Rules
NOTE
Deleting a rule also deletes all the associated rule conditions.
In the DOA admin page, click the View Rule icon
corresponding to the cell where a specific DOA category intersects with a specific role.
The DOA Approval Configuration Rules dialog appears with a list of rules for the selected DOA category and role.
Click delete
.A confirmation window appears.
Click OK.
Creating and Activating Flows
A flow is created for each object configured on the DOA Admin page where DOA rules need to be applied. These flows ensure that the DOA criteria set up on the DOA Admin page are implemented effectively.
Configuring a Record-Triggered Flow
This section outlines the steps to configure a Record-Triggered Flow in Salesforce to call the DOA Invocable class (TM_DOA_InvocableClass). The flow will trigger actions when a record is created, updated, or deleted and will return relevant output values.
To create a Record-Triggered Flow:
In your Salesforce organization, click the gear icon
and select Setup.Use the Quick Find box to search and open Flows.
Click New Flow.
Select Start from Scratch > Record-Triggered Flow and click Create.
The Flow Builder page appears.
Under Select Object, select an object that will trigger the flow.
Under Configure Trigger, set the Trigger the flow when condition as required.
Under Optimize the Flow for, select Actions and Related Records.
To add actions to the Flow:
In the flow builder, click add
and select Action.
Use the Search Action box to locate and open TM_DOA_InvocableClass action.

In the TM_DOA_InvocableClass action page, enter the Label, API Name, and a Description for the action.
Under Set Input Values for the Selected Action:
Change the Not Included button to Included to enable the ids field.
In the ids field, select Record.Id as an input to the selected action.
Click the down arrow next to Show Advanced Options to expand the section, then enable the Manually Assign Variables checkbox.
Under Store Output Values, perform the following steps on each of the fields (that is, doaApprovalConfigList, personalRoleList, roleList, and sObjectName):
Click doaApprovalConfigList and select New Resources.
The New Resource dialog appears.Select a Resource Type to view the related fields.
Enter the API Name and Description.
Select a Data Type and enable the Allow Multiple Values (collection) checkbox.
Select an Object and enable the Available for input and Available for output checkboxes.
Click Done.
Specify the New Resource fields as shown below:
Store Output Values FieldNew Resource
Field/CheckboxResource Type
API Name
Data Type
Allow Multiple Values
Object
Available for
Input
Output
doaApprovalConfigList
Variable
c_DoaApprovalConfigList
Record

DOA
Approval
Configuration

personalRoleList
Variable
c_PersonnelRoleList
Record

Personnel
Role

roleList
Variable
c_RoleList
Record

Role


sObjectName
Variable
sObjectNam
Record

Text


Click Save.
The Save the Flow dialog appears.Enter a Flow Label, Flow API Name, Description, and click Save.
Click Activate.
Assigning Personnel to the Field
Flows created for the DOA criteria can be used to manage approval processes across various objects in the system, depending on your organization's requirements.
Example
The following steps provide an example of how you can assign personnel and their role to the subcontracts internal POC object. When a subcontract is created or updated and meets the DOA criteria, the flow is triggered and creates Internal POC for subcontract.
Create a DOA rule for subcontract approval (DOA category) for Approvers (DOA role) based on the Socioeconomic class field value. That is, whenever a subcontract record is created or updated with its Socioeconomic class value equal to HUBZone the DOA rule is satisfied and triggers a flow.

The below screen shows two approvers Ashley and Stuart added to the DOA rule. 
The flow starts when a subcontract record is created or updated. It automates the assignment of personnel who meet the DOA criteria to the subcontract’s Internal POC object.

TM_DOA_InvocableClass: This apex class processes or validates records against the DOA rules and provides the output record Id's (c_DoaApprovalConfigList, c_PersonnelRoleList, c_RoleList, and c_sObjectNames) as shown in the below image.

Iterate over Personnel Role IDs: After the apex action, the flow enters a loop where it iterates over a collection of Personnel Role IDs (c_PersonnelRoleList) obtained from the previous step . For each ID in the list, it will perform the following actions in sequence:
Create POC: In this step, the flow assigns data to create a POC object for each Personnel Role ID. This involves assigning field values such as name and role.

Add to POC List: After creating the POC, the newly created POC is added to a list that stores all the created POCs.

Create Internal POCs: Once the loop completes (after all Personnel Role IDs are processed), the flow creates records for the Internal POCs.

Once the flow is executed, Internal POC for subcontracts is created with personnel names and their roles. The following screen shows an example of two approvers Ashley and Stuart added to the Internal POC.

