Configuring Approval Process for Interest Manager
Overview
Interest Manager sends some Preference_Rule__c (Preference Rule) records through a standard Salesforce Approval Process. A rule's research status can become Approved through that process. This article covers configuring the Approval Process from scratch: queues, entry criteria, approval steps, the approval page layout, and the automated actions that move a rule between statuses.
The validation rules in the AFR attribute ACE.FPM.ValidationRules.ResearchStatusRules drive this configuration. Before you start, open that AFR definition and note every distinct approvalRoute value its rules use. You need one approval step and one queue per route.
How submission works
- A user saves a Preference Rule in Interest Manager. If a research validation rule fails, Interest Manager sets
Research_Status__c = Submit for Approvaland copies the route intoApproval_Route__c. - A trigger on Preference Rule automatically submits the record to the Approval Process. The rule's Owner is the submitter.
- Salesforce applies the Initial Submission Actions, sets the status to Pending for Approval, and locks the record.
- The approver approves or rejects the request from My Pending Approvals in Interest Manager, or from the standard Salesforce approval page. The Final Approval or Final Rejection Actions then unlock the record and set the final status.
📘 Reserved route values
The application reserves two
approvalRoutevalues. Admins do not define them:
- DEFAULT: assigned automatically when a matching validation rule doesn't specify its own route.
- BLOCK: a rule on this route is never submitted for approval. It goes straight to
Research_Status__c = Inactive. Do not create an entry criterion or approval step forBLOCK.The author of the AFR rules chooses every other route name.
📘 Disabling auto-submission
To submit rules with your own Flow instead, disable the trigger logic with the AFR attribute
ACE.Core.DisabledTriggers.trgFPMPreferenceRuleHandleApprovalSubmit.
Record Locking: What to Expect
❗️ Important: a rule stays locked for the whole time it is Pending for Approval
Salesforce locks every record submitted to an Approval Process. Nothing unlocks it automatically after submission. The record stays locked until the request is approved, rejected, or recalled. Only the corresponding Final Approval, Final Rejection, or Recall action unlocks it (Steps 7 to 9).
Interest Manager is built around this. While a rule's status is Pending for Approval, the Rule Form opens it as view-only, and the user cannot edit, deactivate, or resubmit it until the approval completes.
If a rule is stuck in Pending for Approval and must be edited:
- Approve or reject it from My Pending Approvals in Interest Manager. This is the only release path available inside Interest Manager. Or:
- Recall the request in standard Salesforce. Interest Manager has no Recall action. An administrator recalls the request from the Preference Rule's record page (Approval History related list → Recall Approval Request). Rule owners can only do this if your org adds the Approval History related list to a Preference Rule page layout and gives them a way to open the record. The package does not include a Preference Rule tab or page layout. Or:
- An administrator unlocks the record from its Salesforce record page. Unlocking alone leaves the status at Pending for Approval, so Interest Manager still shows the rule as read-only. Recall it instead.
📘 In practice, a user who needs to change a pending rule should ask the approver to reject it. The rule's owner can then edit it and resubmit from Interest Manager.
Prerequisites
- Access to Setup → Users → Queues and Setup → Process Automation → Approval Processes.
- Access to Setup → Process Automation → Field Updates (for the Recalled field update in Step 9).
- The list of
approvalRoutevalues currently used inACE.FPM.ValidationRules.ResearchStatusRules. - A list of the users or groups who should approve each route.
Step 1: Create Approval Queues
Navigate to Setup → Users → Queues → New.
Create one queue per approval route, excluding BLOCK. At minimum you need a queue for the DEFAULT route.
| Setting | Value |
|---|---|
| Label | A name identifying the route it serves, e.g. FPM Default Queue |
| Send Email to Members | Checked (or per your organization's notification policy) |
| Supported Objects | Preference Rule |
| Queue Members | The users who should approve requests on this route |
📘 Note
Your organization chooses the queue names; the application doesn't require any particular name. The My Pending Approvals view in Interest Manager shows work items assigned to the logged-in user directly or to any queue the user belongs to. Any queue you create here and add members to works.
Repeat for every additional approval route your AFR configuration uses.
Step 2: Create the Approval Process: Basic Info and Entry Criteria
Navigate to Setup → Process Automation → Approval Processes, select the object Preference Rule, then click Create New Approval Process → Use Standard Setup Wizard.
Basic Info
| Field | Value |
|---|---|
| Name | PreferenceResearchApproval |
| Unique Name | PreferenceResearchApproval |
| Description | Research Approval Process for Preference Rule |
Entry Criteria
Select "criteria are met" and add one criterion per approval route:
| Field | Operator | Value |
|---|---|---|
| Approval Route | equals | DEFAULT |
| Approval Route | equals | (each additional route, one row per route) |
Set Filter Logic to 1 OR 2 OR ... across all rows. If your AFR only uses DEFAULT, a single criterion is enough. You can also enter all routes on one row as a comma-separated value (e.g. DEFAULT,COMPLIANCE).
❗️ Every non-BLOCK route must be covered. If a rule's route doesn't match the entry criteria, the automatic submission fails silently. The rule then stays at Submit for Approval and never reaches an approver.
Step 3: Approver Settings
| Setting | Value |
|---|---|
| Next Automated Approver Determined By | None (approvers are assigned per step to a queue) |
| Use Approver Field of Record Owner | Unchecked |
| Record Editability | Administrators ONLY can edit records during the approval process |
📘 Note: Record Editability does not prevent locking. It only controls who besides administrators can edit a locked record. Leave it at Administrators ONLY. Interest Manager writes to the rule after the approval action has unlocked it, so approvers do not need edit access while the record is locked.
Step 4: Email Template (Optional)
Select an approval assignment email template, or leave the default. See Step 11 to create a custom template.
Step 5: Approval Page Layout
Add these fields so approvers see what they need to make a decision:
| Field Label | API Name | Notes |
|---|---|---|
| Rule Name | Name |
|
| Is Active | Is_Active__c |
Do not substitute Is_Research_Active__c. That field also depends on Research Status and the Start/End dates, so it is always unchecked while a rule is pending. |
| Rule Expression | Rule_Expression__c |
Shows the rule's condition logic in readable form. |
| Delivery Options | Delivery_Options__c |
|
| Owner | OwnerId |
|
| Contact | Contact__c |
|
| Research Status | Research_Status__c |
|
| Approval Route | Approval_Route__c |
Shows which route and queue the request is on. |
| Override Justification | Override_Justification__c |
The submitter's reason for the override request. |
| Approval Note | Approval_Note__c |
When an approver acts from Interest Manager, their comment is written both to the native approval history and to this field. Approvals made in standard Salesforce only record the comment in approval history. |
Additional settings
- Display Approval History: checked (or per business rule).
- Security Settings: Allow approvers to access the approval page only from within the Salesforce application.
Step 6: Initial Submitters
| Setting | Value |
|---|---|
| Allowed Submitters | Preference Rule Owner (required: the trigger submits on behalf of the Owner) |
| Allow submitters to recall approval requests | Optional. Recall is not available in Interest Manager. Check this only if rule owners can open Preference Rule records in standard Salesforce (see Record Locking). Administrators can recall regardless of this setting. |
Click Save, then choose "No, I'll do this later" to add the steps and actions next.
Step 7: Initial Submission Actions
| Action Type | Action |
|---|---|
| Record Lock | Lock the record from being edited (default, cannot be removed) |
| Field Update (Add Existing) | FPM Research Pending Approval: sets Research Status to Pending for Approval |
Step 8: Approval Steps
Under Approval Steps, click New Approval Step. Add one step per approval route, in the order you want them evaluated.
Step 1: Default Approval
| Setting | Value |
|---|---|
| Step Name | Default Approval |
| Specify Step Criteria | Enter this step if the following criteria are met: Approval Route equals DEFAULT, else go to next step |
| Select Approver | Automatically assign to queue → your DEFAULT-route queue |
Steps 2, 3, and so on: one per additional route
| Setting | Value |
|---|---|
| Step Name | A name describing the route |
| Specify Step Criteria | Approval Route equals (route value), else go to next step (on the last step: reject record) |
| Select Approver | Automatically assign to queue → that route's queue |
| Reject Behavior | Perform all rejection actions for this step AND all final rejection actions (Final Rejection) |
📘 Tips
- Salesforce only offers the "else go to next step" option on a step once a later step exists. If you configure Step 1 before adding Step 2, go back to Step 1 afterward and set this option.
- Reject Behavior is not offered on Step 1, because a rejection on the first step is always final.
- Each request should match exactly one step. Interest Manager approves or rejects one work item per request.
Step 9: Final Approval, Final Rejection, and Recall Actions
All three must unlock the record. Otherwise the rule stays read-only permanently.
Final Approval Actions
| Action Type | Action |
|---|---|
| Record Lock | Unlock the record for editing |
| Field Update (Add Existing) | FPM Research Approved: sets Research Status to Approved |
Final Rejection Actions
| Action Type | Action |
|---|---|
| Record Lock | Unlock the record for editing |
| Field Update (Add Existing) | FPM Research Rejected: sets Research Status to Rejected |
Recall Actions
| Action Type | Action |
|---|---|
| Record Lock | Unlock the record for editing (default) |
| Field Update (New) | Create FPM Research Recalled: Field = Research Status, Specific value = Recalled |
❗️ The package does not include a Recalled field update. You must create it. Recall only happens in standard Salesforce, usually by an administrator. Without this field update, a recalled rule is unlocked but its status stays Pending for Approval. Interest Manager then keeps showing the rule as read-only and won't let the owner resubmit it. Once the status is Recalled, the owner can edit the rule and resubmit it from Interest Manager.
📘 What Interest Manager does on Approve/Reject: When an approver acts from My Pending Approvals, Interest Manager processes the work item first, which runs the unlock above. It then updates the rule: Research Status,
Approval_Note__c, and on approvalStart_Date__c(the date the approver chose, or today) and the optionalEnd_Date__c. If the request is approved in standard Salesforce instead, only the field update runs. The Start and End dates stay blank, which means research access is active with no date limit.
Step 10: Activate
Click Activate after you have configured every step above and confirmed each step's "else go to next step" setting. Submissions fail until the process is active.
Step 11: (Optional) Email Notifications
If your organization wants email notifications on submission, approval, or rejection:
- Navigate to Setup → Classic Email Templates → New Template and create a template, for example:
| Field | Value |
|---|---|
| Name | Preference Approval Notification |
| Subject | Approval Request for {!T1C_Base__Preference_Rule__c.Name} |
| Body | "A Preference Rule requires your approval. Rule Name: {!T1C_Base__Preference_Rule__c.Name}, Owner: {!T1C_Base__Preference_Rule__c.OwnerFullName}. Please review and approve or reject the request in Interest Manager." |
- In the Approval Process, set Approval Assignment Email Template to this template. For rejection or approval notices, add an Email Alert to the Final Rejection or Final Approval Actions.
Use the merge-field picker to insert fields. In a subscriber org, object and field names carry the
T1C_Base__namespace prefix.
Troubleshooting
| Symptom | Cause / Fix |
|---|---|
| Rule stays at Submit for Approval | No active Approval Process, the rule's Approval_Route__c isn't in the Entry Criteria, or the Owner isn't an allowed submitter. Fix the configuration, then save the rule again from Interest Manager to resubmit it. |
| Rule stuck at Pending for Approval, can't be edited | Expected while approval is in progress. The approver approves or rejects it in Interest Manager, or an administrator recalls it in standard Salesforce. |
| Recalled rule still shows Pending for Approval | The Recall field update from Step 9 is missing. Add it, then set the status manually on the affected records. |
| Rule still locked after approval or rejection | The Final Approval or Final Rejection Actions are missing the Unlock record lock action. |
| Approver doesn't see the request in My Pending Approvals | The approver isn't a member of the step's queue. |
Reference: Research Status values
Research_Status__c is a picklist with these values, in order:
| Value | Set by | Record locked? |
|---|---|---|
| (blank) | No approval needed | No |
| Submit for Approval | Interest Manager on save, which triggers auto-submit | No (briefly, before submission) |
| Pending for Approval | Initial Submission field update | Yes |
| Approved | Final Approval field update / Interest Manager | No |
| Rejected | Final Rejection field update / Interest Manager | No |
| Recalled | Recall field update (you create it in Step 9) | No |
| Inactive | Interest Manager when the route is BLOCK (no approval) |
No |
No default value is set. The field stays blank until Interest Manager or a field update sets it. Research access (Is_Research_Active__c) is only active when the status is blank or Approved, the rule is active, and today falls within the Start/End dates.