TR Start free
HomeBlog › Guide

How to set up an approval workflow: six questions to answer first, then the setup step by step

O Ohana360 Team • September 18, 2026 • 12 min read
Illustration of an opportunity record awaiting approval, with Approve and Reject buttons and the conditions of an approval rule

The short answer to how to set up an approval workflow is this: you tie a decision to a record reaching a certain state, the record is flagged as pending until someone decides, and the decision is written onto the record. Writing the rule takes five minutes. The long part is the six questions you should answer before writing it.

Our example is Fenwick Cold Storage, a thirty-four-person firm in Leeds that sells and installs industrial cold rooms and refrigeration, with a sales team of six. Last quarter the sales manager got 52 discount requests over WhatsApp. Seven of them closed at more than fifteen per cent off before the manager had answered, and nobody noticed until the year-end margin review. The same quarter, 38 expense receipts went to accounts in an envelope, and leave was requested by text message. (Demo data.)

This guide follows how Fenwick moved those three approvals onto records, and what does not happen by itself in each case.

What does an approval workflow look like in a CRM?

An approval workflow has four parts: the trigger (which record, under what condition), the approver (who decides), the decision (approve or reject, and what follows) and the trail (where the decision sits on the record). In Ohana360 those four parts come together in one rule built on one screen. The drawing below puts what a rule does at the moment of saving next to what it does not do.

What does an approval rule do when a record is saved? Fenwick Cold Storage, demo data: a Discount approval rule on Opportunity 1 Save a rep saves the opportunity 2 Condition did it just become true? 3 Pending banner on record, bell alert 4 Decision Admin role: Approve/Reject 5 Trail Field History: who and when Conditions are joined with AND: all must hold at once. The rule does not fire again on a save where the condition was already true before. WHEN THE DECISION IS MADE Approved The banner goes, an Approved alert hits the bell. Stage, amount and owner stay exactly as they were; the rep takes the next step themselves. Rejected A red banner stays: rejected in the approval process. No field is rolled back and nothing is deleted. If the condition comes true again, it goes back to Pending. NOT SENT FOR APPROVAL WHEN The person saving has the Admin role The condition was already true before the edit The record came in by web form or API It was a mass update or a data import The rule is inactive or the object is not listed

The key word in the drawing is "just". The rule checks whether the condition became true on this save: if the previous version of the record did not meet the condition and the new one does, the record goes to Pending. If the previous version already met it, the rule stays quiet. That design stops a record falling back into approval on every edit, but it leaves one gap, which we come back to below.

Step by step: building an approval rule in Ohana360

  1. Open Setup and, under Processes and Automation in the left menu, click Approval Processes. The list shows each rule's name, object, number of conditions and description.
  2. Press + New Rule and type the Rule Name. Take it from the decision sentence: "Discount approval, over 40k". The name also appears on the record's banner.
  3. Pick the Object. There are four on the list: Opportunity, Lead, Case and Account.
  4. Add conditions with + Condition. Each one is a field, an operator and a value. Number fields offer at least, at most and equals; picklists offer equals and not equals; text offers contains; dates offer before and after. All conditions must hold at once; there is no "or".
  5. In Description, write the sentence that appears in the notification: "Discount on a deal over 40k, needs the sales manager."
  6. Press Save. The rule joins the list as active; untick the box on the left to switch it off without deleting it.

The fields available for conditions are fixed per object, and your custom fields are not on the list:

ObjectFields you can use in a conditionTypical approval
OpportunityName, stage, amount, probability, owner, close date, created dateDiscounts, large quotes
LeadName, company, source, status, email, created dateConverting leads from a particular source
CaseSubject, status, priority, channel, case number, created dateClosing a critical case
AccountAccount name, type, industry, annual revenue, ownerChanging the owner of a big account

Discount approval: turning an unmeasurable condition into a stage

Fenwick's first problem was that the opportunity record has no discount percentage field, and an approval rule cannot read custom fields. The fix was to make the discount request a stage. In the Sales360 settings they added an opportunity stage called "Discount Approval" between Proposal and Negotiation. The rule: object Opportunity, condition one Stage equals Discount Approval, condition two Amount at least 40,000.

A rep asking for a discount no longer sends a WhatsApp message. They move the deal into Discount Approval and post the percentage they want in the record's Posts card. The record goes to Pending and lands in the Records Awaiting Approval card on the sales manager's home page. The manager opens it and presses Approve or Reject on the banner. For how to word the discount on the quote itself, the guide to writing a business quote covers it.

Tip: If the list already holds a sample rule for large opportunities (Opportunity, Amount at least 500,000), set it to your threshold or switch it off before writing your own, so two rules do not send the same deal for approval twice.

Who approves, and where is the decision made?

Three things happen to a pending record. An orange banner appears across the top: "Pending approval" and the rule's name. A notification titled "Pending approval", carrying the rule's description, lands in the bell. And the Records Awaiting Approval card on the home page lists every pending opportunity, lead, case and account.

The Approve and Reject buttons on the banner appear only for users with the Admin role. The rule does not name an approver, so approval authority is a decision about roles. At Fenwick the sales manager and the managing director hold the Admin role, and the six reps have the User role. That has a consequence: a change made by someone in the Admin role is never sent for approval. If the sales manager moves a deal into Discount Approval personally, no banner appears, because the person who would approve it is the one making the change.

The notification goes to the whole organisation: it shows up in the bell of everyone who can see opportunities. Treat that as visibility rather than a problem, but know that the rep reading it can see the pending record too.

What happens on approval or rejection?

DecisionOn the recordWhat does not happen by itself
ApprovedThe banner goes, an "Approved" alert hits the bell, the approval state is written to the recordThe stage does not move, no task opens, no quote is sent
RejectedA red banner stays: "This record was rejected in the approval process", and an alert hits the bellStage and amount are not rolled back, the record does not close

A rejected deal has two ways forward: the rep changes the amount or stage to fall outside the condition and carries on, or corrects the request and moves the deal back into Discount Approval. In the second case the condition broke and then came true again, so the record goes back for approval. The drawing below compares five different saves under the same rule.

One rule, five different saves: which ones go for approval? Fenwick Cold Storage, demo data, reps have the User role, the sales manager is Admin Rule: Opportunity • Stage equals Discount Approval AND Amount ≥ 40,000 1 A rep moves the stage to Discount Approval, amount 52,000 Both conditions became true on this save Goes for approval 2 On an approved deal the amount rises from 52,000 to 68,000 The condition was already true before the edit, so the rule stays quiet Does not 3 A rejected deal: stage moved back, then to Discount Approval again The condition broke first, then came true again Goes for approval 4 The sales manager makes the same change personally A save by someone with the Admin role is never sent Does not 5 Stage is Discount Approval, amount 29,000 One condition fails, and conditions are joined with AND Does not How do you close the gap in row two? Build a flow on Opportunity: Amount changed AND Stage equals Discount Approval, action a notification to everyone. The amount cannot grow quietly.

Row two is the easiest place to miss something: if the amount on an approved deal goes up later, the rule does not fire again. Fenwick closed that gap with a flow, and the next section shows how.

How do approval rules and flows work together?

Flows and approval rules run on the same save: record-triggered flows first, approval rules right after. Neither replaces the other. An approval rule holds a decision; a flow does a job: it updates a field, opens a task, sends a notification or an email, calls a webhook. Building flows is covered step by step in the guide to automated follow-up reminders; here we only cover where they meet approvals.

How do HR360 leave and expense approvals work?

In HR360, approval needs no separate rule; it comes built into two objects. Every new leave request and every new expense opens in Pending status, and a "New leave request" or "New expense" notification goes to the organisation. A user with the Admin role presses Approve or Reject at the end of the row in the Leave Requests or Expenses list, and the status becomes Approved or Rejected.

That is how the envelope era ended at Fenwick: the field team logs fuel and lunch from their phones, and the managing director filters the Expenses list to Status Pending on Friday afternoon and decides in one sitting. The differences are worth knowing:

The trail: who approved this, and when?

The real value of an approval shows up a year later. For that, turn on the Field History system add-on. With it on, every save records the changed fields on the server with the person and the time, and they appear in the Field History card on the record page. On opportunities, leads, cases and accounts the approval state is listed under its technical name (approvalStatus): Pending to Approved, by whom, at what minute. On leave and expense records the same trail appears on the Status field.

With the add-on off, all you have is the record's Last Modified By and Last Modified Date, and both change on the next edit. The notification bell is not an archive either; it keeps the last fifty alerts. Switch the add-on on the day you switch the rule on.

Not included: what Ohana360 approval processes do not do

A plan for the first week

DayWhat to doTime
1Count last quarter's approvals requested by message and turn each into a one-sentence decision rule30 minutes
2Decide who approves, check their roles in Setup, and switch on the Field History add-on20 minutes
3Add the Discount Approval stage in the Sales360 settings, write the rule, and adjust or switch off any sample rule20 minutes
4With a User-role account, move a test deal into the stage; check the banner, the notification and the home page card, then approve it as an Admin15 minutes
5Build the Amount changed warning flow and try it on the same test deal20 minutes
6Write the team one paragraph: how to ask for approval, hands off while the banner is up, who takes the step after the decision15 minutes
7Move leave and expenses into HR360 and put a weekly decision slot in the calendar15 minutes

By the end of Fenwick's first month, 17 discount requests had been logged, 4 were rejected and none closed without approval. If records and objects are new vocabulary, what is CRM covers the basics. You can request a demo to try it with your own process, and current plans are on the pricing page.

Frequently asked questions

How do you set up an approval workflow in a CRM, and how long does it take?
In Ohana360 the rule itself takes five minutes: in Setup, under Processes and Automation, open Approval Processes, press + New Rule, name it, pick the object (Opportunity, Lead, Case or Account), add conditions and write the description that appears in the notification. The slow part comes first: writing down in one sentence which decision needs sign-off, making that decision measurable with a standard field, and deciding who makes the call. With those three settled, the rule works on day one.
Can I choose who approves?
No. An approval rule does not name an approver. On a pending record the Approve and Reject buttons appear for every user with the Admin role, and everyone else sees only the Pending approval banner. So think about approval authority in terms of role: give the Admin role to whoever makes the call, and remember that those people can also reach Setup. There are no multi-step approvals, no sequential approvers and no different approver by amount.
Is a pending record locked?
It is not. The Pending flag puts a banner on the record, lists it in the Records Awaiting Approval card on the home page and sends a notification, but it does not stop anyone editing fields. A rep can move the stage on while the approval waits. That needs saying to the team as a rule: while the banner is up, hands off. And if the amount on an approved deal goes up later, the rule does not fire again because the condition was already true; close that gap with a flow on Amount changed.
Can I build an approval rule on the discount percentage?
Not directly. The condition list for an approval rule on Opportunity is name, stage, amount, probability, owner, close date and created date; a discount percentage and custom fields are not on it. The practical route is to turn the discount request into a stage: add an opportunity stage called Discount Approval in the Sales360 settings, and let the rule check Stage equals Discount Approval and Amount at or above your threshold. A rep asks for a discount by moving the deal into that stage.
Are HR360 leave and expense approvals set up on the same screen?
No, they come built into HR360. Every new leave request and every new expense opens in Pending status and a notification goes to the organisation. A user with the Admin role presses Approve or Reject on the row in the Leave Requests or Expenses list, and the status becomes Approved or Rejected. HR records are not in the object list of the Approval Processes screen, so there is no amount condition either: a 12-pound lunch receipt and a 700-pound monitor go through the same approval.
How do I see later who approved and when?
Turn on the Field History system add-on and every save records the changed fields on the server with the person and the time. On opportunities, leads, cases and accounts the approval state shows up in the Field History card as approvalStatus, and on HR records as the Status field: Pending to Approved, by whom, at what minute. With the add-on off, the record keeps only Last Modified By and Last Modified Date, and both change on the next edit. The notification bell is not an archive; it holds the last fifty alerts.

Take approvals out of the chat and onto the record

Make the discount request a stage, keep the decision on the record, and see who approved it in one click a year from now.

Read next