1Overview #
A workflow takes one CRM action - converting a lead, disqualifying one, changing a lead's status, closing a deal as Won or Lost, moving a stage, handing a record over - and makes it wait for approval instead of happening at once.
Everything about how it waits is yours to set: when the workflow applies at all (amount, branch, source, type, territory, industry, or a condition you build), the levels it climbs, who approves at each, how many of them must agree, what a rejection does, and what happens when no level applies.
Used lightly it protects the few decisions that deserve a second pair of eyes. Used heavily it makes the CRM a queue - so hold the actions that carry real money or real risk, and leave the rest alone.
2Who it is for #
- Hold a big deal's Won or Lost for a senior's decision.
- Stop a lead being disqualified, converted or handed to another branch without a check.
- Ask different people depending on the amount, the branch, the source or anything you can express as a condition.
- Say what happens when no level applies: let it through, refuse it with your own message, or send it to fallback approvers.
- Decide which steps go out by e-mail, on top of the bell and the inbox.
3What it is not for #
- Deciding requests. That is CRM > Approvals.
- Rights. A workflow asks for a decision; it does not grant or remove anybody's permission.
4Step by step #
- Press Add (F3) and name the workflow so an approver will recognise it - "Deals above 5 lakh".
- Pick the Action it holds, and a Priority. - When several workflows of the same action match, the lowest priority number wins - give narrow ones a lower number than the catch-all.
- Set When it applies: amount range, branch, source, type, territory, industry. - Every box left blank matches everything.
- Add a Custom condition for anything those boxes cannot say. - Build it from rules, or write the expression - the same builder the audience of a bulk message uses.
- Add the levels. Each has approvers (users, user groups or roles), a completion policy, a rejection policy, and what a rejection does. - A new workflow starts with a Team lead level and a Sales manager level - change them to suit.
- Give each level a condition where it should not always apply. - A level whose condition is false is skipped, and the request says so.
- Say what happens when no level applies: proceed, refuse with a message, or send it to fallback approvers.
- Choose the mail you want on top of the bell, then Save (F5). - Switch Active on when you are ready - a copied workflow starts inactive on purpose.
5The fields #
- The workflow
- Workflow name - Shown to approvers in their inbox and mail - say what it guards. Up to 100 characters, unique
- Action it holds - The one action that waits: convert a lead, disqualify a lead, change a lead's status, reassign a lead, close a deal as Won, close as Lost, move a deal's stage, reassign a deal. A Won or Lost workflow is preferred over a general stage-move one; a Disqualify workflow over a general status one. Eight actions
- Priority - Which workflow wins when several of the same action match. Lowest number first. Give narrow rules a lower number. 0 to 9999
- Active ? - Off holds nothing from now on. Requests already raised carry on to the end. Switch
- Description - Why it exists and who asked for it. Up to 512 characters
- When it applies - Every box left blank matches every record. A lead is judged by its own fields; a deal by its amount and source, and by the lead it came from.
- Amount from / up to - Only records worth that much. Not negative; 'up to' must not be below 'from'
- Branch - Only records of one branch. Any branch
- Lead source / Lead type / Territory / Industry - Only records with those groupings. From CRM > Masters
- Custom condition - Anything the boxes above cannot say - checked after them, and both must hold. Fields depend on the action: Lead.*, Deal.* and Request.* (what is being asked for). Build it from rules, or write the expression
- A level - Repeated for every level, and for the fallback approvers.
- Level name - What this level is - "Team lead", "Finance". Shown in the inbox and in mail. Up to 100 characters
- Remark needed to approve ? - On, an approval at this level needs a line written too. A rejection always needs a reason, whatever this says. Switch
- Complete when - Any one approves, All approve, At least N approve, or More than half approve. How many approvals move the request on. Four policies
- N approvals - For "At least N": how many. Fewer approvers than N means all of them. 1 to 99
- Rejected when - One rejection, More than half reject, or All reject. It is also rejected once completion can no longer be reached. Three policies
- A rejection then - End the request as Rejected; send it back to the previous level on its route; or return it to the requester to resubmit or withdraw. The fallback approvers have no previous level - sending back returns it to the requester. Three choices
- Approvers - Users, user groups, or roles - the record owner's team lead, the sales managers, the record's owner. A user group stands for its members at the moment of deciding; a role is worked out per record. At least one per level
- Condition for this level - The level is asked only when this is true for the record; otherwise it is skipped and the request goes on. Worked out when the request is raised, and again on a resubmit. Same fields and functions as the custom condition
- When no level applies - Every level's condition false - or a workflow with no levels at all.
- Then - Let the action go through, Refuse the action, or Send it to the fallback approvers. Three choices
- Message to the user - For Refuse: what the person trying the action reads. Blank = a standard message naming the workflow. Up to 256 characters
- Fallback approvers - A level in its own right, used only when no other level applies. Required when Then = fallback
- The requester
- Requester may approve ? - Off (the usual): a requester who is also an approver is left out of that level. Nobody approves their own request. Switch
- Returned request may be resubmitted ? - On: a returned request can be sent again, starting at level one. Off: it can only be withdrawn. Switch
- Mail - The inbox and the bell carry every step whatever is switched off here. Mail goes through Settings > Mail Accounts to each person's address in User Manager.
- Approval request - To the first level's approvers when a request is raised or resubmitted. Switch
- Level moved - next approvers - Each time a level completes, or a request is sent back to them. Switch
- Level moved - requester - To the requester as it moves on. Switch
- Rejection / Rejection - approvers too - To the requester when it is rejected, returned or sent back - and optionally to those who had already approved. Switches
- Completion / Completion - approvers too - When the last level approves and the action is carried out. Switches
- Record owner too - The lead's or deal's owner gets the requester's mails when somebody else raised it. Switch
- Copy rejection and completion mail to - Extra addresses - an accounts desk, a sales-ops mailbox. Comma separated, up to 512 characters
6Rules and integrity #
- One workflow decides - For each action, the active workflow with the lowest priority number whose conditions match is the one used - never two at once.
- The specific action wins - A Won or Lost workflow is chosen ahead of a general stage-move one; a Disqualify workflow ahead of a general status one.
- A level with a false condition is skipped - It is not a refusal. The request simply moves on, and the route panel says the level was skipped and why.
- A workflow with no levels does nothing - Unless When no level applies is set to Refuse or Fallback - which is exactly how you forbid an action outright.
- Twenty levels is the ceiling - If you need more than a handful, the process is probably the thing to fix.
- Switching a workflow off does not free the requests - Those already raised carry on to the end, so nothing is left half-decided.
- Setting 252 is the master switch - It turns every CRM workflow on or off in one place.
- A copy starts inactive - Copy clones a workflow as "(copy)", switched off, so you can change what differs before it starts holding anything.
7Shortcut keys #
- F3 - Add.
- F4 - Modify.
- F5 - Save.
- Esc - Cancel the edit; in view mode it closes the tab.
8If something does not work #
"CRM is not licensed for this company ... Contact your software vendor."
- Why
- The company's licence has no CRM module.
- What to do
- Ask your vendor to add CRM, then sign out and in.
"Name: give the workflow a name people will recognise in their inbox." / "There is already a workflow named '...'."
- Why
- The name is blank, or another workflow has it.
- What to do
- Name it for what it holds - the approver sees this name.
"Action: pick the action this workflow holds for approval."
- Why
- No action was chosen, so the workflow would hold nothing.
- What to do
- Pick one of the eight held actions.
"Amount: the range cannot be negative." / "Amount: 'up to' is below 'from'." / "Priority: 0 to 9999 - the lowest number is tried first."
- Why
- A number is out of range or a range runs backwards.
- What to do
- Correct it. Leave the amounts blank for a workflow that holds every value.
"Custom condition: ..." or "Level ... condition: ..." with a parser message
- Why
- The expression could not be read - an unknown field, a missing bracket, a word where a number belongs.
- What to do
- Use the builder rather than typing, and Test it against a real record before saving.
"Custom condition: 4000 characters at most." / "Refusal message: 256 characters at most."
- Why
- The text is longer than the column holds.
- What to do
- Shorten it; a long condition usually means two workflows.
"Copy to: '...' is not an e-mail address."
- Why
- A copy-to address is malformed.
- What to do
- Correct it, or remove it - copies are optional.
"When no level applies: pick what happens." / "Levels: add at least one level - with none, and 'let the action go through' when no level applies, the workflow does nothing."
- Why
- A workflow with no levels that lets everything through would have no effect at all.
- What to do
- Add a level, or set the no-level rule to refuse or to fall back.
"Fallback approvers: name who approves when no level applies."
- Why
- Fallback was chosen but nobody was named to be it.
- What to do
- Name the fallback approvers, or choose another no-level rule.
"Levels: twenty at most."
- Why
- A route longer than twenty levels is capped.
- What to do
- Shorten the route - most need two or three.
"Level ...: name at least one approver - a user, a user group or a role."
- Why
- A level with no approver would stop every request for good.
- What to do
- Name a user, a user group, or a role such as the owner's team lead.
"Level ...: an approver is not a user, a user group or a known role."
- Why
- An approver row holds something the CRM cannot resolve - usually a user or group since deleted.
- What to do
- Remove the row and name somebody live.
"Level ...: 'at least N' needs N of 1 or more." / "Level ...: it needs N approvals but names only M user(s)."
- Why
- The level asks for more approvals than there are people who could give them.
- What to do
- Lower the count, or name more approvers. A user group counts as the people in it.
"Level ...: pick when the level is complete." / "... pick when the level is rejected." / "... pick what a rejection does."
- Why
- A level's rules were left half-chosen.
- What to do
- Set all three - they decide how a level finishes and what a No does.
"... open request(s) stand at a level this change removes (or with the fallback approvers) - let them be decided (or withdrawn) first, or keep that level."
- Why
- Requests already standing at a level cannot be left with nowhere to be.
- What to do
- Let them finish, or put the level back and change it afterwards.
"'...' has ... open request(s) - they must be decided or withdrawn before it goes." / "That workflow is no longer there."
- Why
- A workflow with open requests cannot be deleted, and somebody may have deleted this one already.
- What to do
- Clear the open requests on CRM > Approvals first, then delete.
The workflow does not hold anything, although it is switched on
- Why
- A workflow applies only where its action, its amount range, its priority and its conditions all match.
- What to do
- Test the condition against a real record, and check the amount range - a blank range means every value.
Two workflows could both apply
- Why
- The lowest priority number wins, and only one workflow holds an action.
- What to do
- Give them priorities that say which you mean.
9For an administrator #
- Start small - Hold one action that genuinely needs a second pair of eyes - a large Won, or a hand-over to another branch. Add more only when somebody asks.
- Name people through groups and roles - A user group or a role survives somebody leaving; a named user does not.
- Test before switching on - Build it inactive, use the condition builder's Test it on a lead / deal, then activate.
- Rights - CRM Approval Workflows (and its Levels and Approvers) in User Permissions - View for everybody by default, so only those you trust may change the rules.
10Settings it uses #
- CRM: approval workflows on/off (setting 252) - the master switch for every CRM workflow.
This is the help InvoiceNET® ERP shows beside the Approval Workflows screen. Whether you have the screen depends on the modules of your licence and the rights your administrator has given you.
See this screen for yourself
The demo is the real product, with a company of your own.