User manual / Customers and billing

Approvals (four-eyes)

Make sensitive actions, like suspending a paying customer or giving free days, wait for a second person to sign off.

Owners & adminsFinanceCustomer care
All guides
On this page

What approvals are for#

Some actions cost you money or a customer if they're done wrongly: giving free days, moving a payment, cutting off someone who has paid. With approvals turned on, these actions don't happen straight away. CoreSync saves them as a request, and nothing changes until someone with the right permission approves it.

This is called four-eyes: one person asks, a second person checks.

Approvals are off for every ISP until you turn them on, one action at a time. With them off, the actions below happen the moment staff press the button.

Actions that can need sign-off#

Each of these has its own switch in Settings → Approvals, and its own approve permission.

SwitchWhat it holds backWho can approve
Pause SubscriptionPausing a customer, now or from a later date. Started with Pause Subscription on the subscriber's Subscription tab.Approve Subscription Pauses
Extend SubscriptionFree days from Quick Extend (add days) and days from Grant Pay-Later Extension.Approve Subscription Extensions
Apply CompensationFree time for an outage, when someone presses Apply on a ticket's compensation.Approve Compensations
Suspend SubscriberPressing Suspend on a customer whose subscription hasn't expired yet.Approve Subscriber Suspensions
Terminate / Delete SubscriberTerminating an account, and moving one to the recycle bin.Approve Subscriber Terminations
Approve Payment MatchGiving an unmatched payment to a customer with Redeem on the Payments page.Approve Payment Matches
Move PaymentMoving a payment from the wrong customer to the right one with Move.Approve Payment Moves

Two things work differently:

  • Suspending an expired customer is never held back. That's routine. The switch only holds back suspending someone who still has paid-up time.
  • Approvers skip the queue for extensions and compensations. If you hold Approve Subscription Extensions, your own Quick Extend adds the days straight away. The same goes for Approve Compensations. For every other action, even an approver's own request waits in the queue.
Approvals don't cover everything that gives time away. Bulk extend, terminating archived accounts in bulk, editing an expiry date on the Subscriptions page, reactivating a suspended customer and recording a payment all happen straight away. Control those with roles. See Staff and roles.

Turn approvals on#

Decide who will approve before you switch anything on. Requests nobody can approve just wait.

  1. Give the approvers' role the approve permission for each action, in Settings → Users. See Staff and roles.
  2. Open System → Settings → Approvals.
  3. Switch on each action you want held back. Each switch saves the moment you flip it.
    Settings, Approvals tab, with a switch for each action that can need approval

There's no list of approvers to pick from. Anyone whose role holds an action's approve permission can approve that action. Out of the box, that's the Super Administrator role.

If you can open the tab but see You don't have permission to manage approval settings., your role lacks Manage Approval Settings. Only give it to the owner or a manager you trust: whoever holds it can switch the checks off.

Permission needed:View SettingsManage Approval Settings

When your action needs approval#

You do the action as normal. Instead of it happening, CoreSync tells you it has gone for approval:

ActionWhat you're told
SuspendSuspension requires approval — a request has been submitted to an eligible approver.
TerminateTermination requires approval — a request has been submitted to an eligible approver.
Quick Extend or pay-later daysExtension sent for approval — the days are added once an approver accepts it.
PausePause requires approval — a request has been submitted to an eligible approver.
Redeem a paymentMatch requires approval — a request has been submitted to an eligible approver.
Move a paymentMoving payments needs approval here — a request has gone to an approver. Nothing changes until it is approved.
Apply a compensationCompensation sent for approval — the time is added once an approver accepts it

While it waits:

  • Nothing changes. A customer you asked to suspend stays online, and days you asked for aren't added.
  • The subscriber's page doesn't show that a request is waiting. Tell the customer it's being checked.
  • You can't withdraw a request. If you sent the wrong one, ask the approver to reject it.
  • Don't send it again. Each try makes another request.

When someone decides, you get a notification in the bell at the top right: Request approved or Request rejected, with who decided. If you're logged in, a message also pops up at the bottom of the screen.

Approve or reject a request#

Approvers get a notification the moment a request comes in: Approval needed followed by the action. You don't get one for a request you filed yourself.

  1. Open Billing → Approvals. The Pending tab lists what's waiting.
    The Approvals page, Pending tab, listing requests with the action, target, who asked and the reason
  2. Read the row: Action, Target (the customer or payment), Requested By, Reason and when it was Requested.
  3. Check it before you decide. Open the customer and look at their payments and expiry. For a payment, check the M-Pesa code and who sent it.
  4. Press Approve or Reject. Add a Note (optional) to say why, then press Approve or Reject in the box.
    The Approve request box with the action and customer named and an optional note

Approve runs the action there and then. A suspension disconnects the customer. Days are added. A payment is applied to the customer, the same as if they had paid to the right account. Reject does nothing to the customer and closes the request.

You can also decide from the bell. Pending requests there have their own Approve and Reject buttons, which is handy on a phone. These don't take a note.

The All tab keeps every request with its outcome and who decided it, so you can look back.

The Approvals page, All tab, showing approved, rejected and pending requests with who decided each
Permission needed:View Approvals

To decide a request you also need that action's approve permission, for example Approve Subscriber Suspensions for a suspension. With only View Approvals you can see the queue, but pressing Approve tells you that you're not an eligible approver.

Common mistakes#

  • Turning a switch on before anyone can approve. Requests pile up and staff think the system is broken. Give someone the approve permission first.
  • Approving your own request. If you hold the approve permission, CoreSync lets you approve a request you filed. That defeats the point. Leave it for someone else.
  • Sending the same request twice. Each press makes a new request. If an approver approves both extension requests, the customer gets the days twice.
  • Approving without looking. Open the customer or the payment first. The approval is what stops mistakes, so it only works if you check.
  • Thinking approvals cover bulk actions. Bulk extend and bulk terminate don't wait for approval. Keep them for trusted roles.

If it doesn't work#

What you seeWhat to do
Approvals isn't in the menuYour role needs View Approvals or one of the approve permissions. Ask your admin.
You're not an eligible approverYour role can see the queue but can't decide this kind of request. Ask someone who holds its approve permission.
Approved but failed to execute: …The approval went through but the action couldn't run, for example because the payment was already applied or the pause ends after the customer's expiry. The request stays in Pending. Fix the cause and approve again, or reject it.
Request is no longer pendingSomeone else decided it first. Check the All tab.
Nobody got a notificationOnly people whose role holds that action's approve permission are notified. Check the roles.

More on the actions themselves: Subscribers, Plans and renewals, Payments and Tickets.

Still stuck? Open the AI assistant in CoreSync and describe what you see, or email hello@coresyncisp.com. Screenshots on this page come from Amani Link, our demo ISP, so the names and numbers are made up.