By Peter Hilton
A business process example
In any business, the most obvious example critical process is getting paid by customers. This article introduces a simple customer invoicing process, and how to use reminders to follow-up outstanding invoices. This follow-up is usually necessary in practice, because customers cannot always be relied upon to pay on time.
As usual, the most concrete summary of this process is to describe the result that we want to achieve for each invoice – the process goal:
Get a customer invoice paid and closed
In this example, the invoice is produced by some other process. When the invoice is ready, this process is triggered somehow.
The key steps in this process are the Send Invoice task, an automatic task that emails the invoice to the customer, and a Check for payment task that involves someone in the finance department checking whether the customer has paid the invoice.
The process starts with an invoice that is ready, perhaps as a PDF document. For this example, the process trigger is an Effektif form with a file upload for the invoice. The Trigger page shows:
The form also captures the customer email address, which the process will use to send email to the customer.
A common reason for unpaid invoices is errors on the invoice. A nice customer might immediately spot the errors and ask you to issue a new invoice, but some customers might wait until you complain about the unpaid invoice to tell you that there’s a problem and that it won’t be paid.
To reduce the number of unpaid invoices due to errors, this process starts with a Check invoice task: check the information on the invoice to see if it correct, perhaps by comparing it to a purchase order.
In this example the Check invoice action also has a form for capturing the Purchase order reference so we can use it in the subject line of email that the process will send to the customer.
The next activity in the process after the Check invoice action is an exclusive gateway – a manual decision with the choices Invoice correct and Errors. When you run the process, these are the two buttons at the bottom of the Check invoice form:
Now let’s skip the email task and see how we can use reminders to help with checking for payment.
The Check for payment task requires the finance department to check whether the invoice has been paid. This will normally happen after some number of days, and has a deadline that is typically described as ‘payment terms’ on the invoice. For this example, the invoice should be paid within fourteen days.
In Effektif, you can set the deadline as a Due date on the user task. Select the user task to open its configuration panel, select the Reminders tab, and enter the Due date.
The due date affects where the task is displayed on the assignee’s Tasks list. Initially, the task will be listed under Due: Later:
As the deadline approaches, the task will move do Due: Later this week and then Due: Today.
One issue with the initial process model is that it assumes that the customer will pay eventually if you wait long enough. In practice, you could get stuck on the Check for payment task for a long time.
To handle late payment, you can extend the process with an alternate path for when the customer has not paid before the deadline.
This version of the process model adds an exclusive gateway after Check for payment. The check results in Invoice paid, which ends the process, or Unpaid.
When someone chooses Unpaid, Effektif sends an email reminder, which is followed by a new user task to Chase late payment – perhaps by making a phone call. Since we want to phone the customer every day until they get their act together and pay the invoice, we can set a recurring daily reminder as well as a due date for the next day:
This means that Effektif will remind the assignee every day, and keep the task in the task list’s ‘due today’ section until this task (and the whole case) is complete.
If that isn’t enough, then perhaps you should add an Escalation to delegate the task upwards to your boss after a week or so. Effektif will then automatically reassign the task.