There are many workflows available to help you with your collections process. Many can be quite complex with multiple states and a spiderweb of transitions. Your business might require the complexity in most solutions but even the simplest set of reminders can make a huge impact on your cash flow. Here we can use a simple one state workflow to remind your customers of their outstanding invoices and also add some other powerful tools for your internal processes as well.
- To start let's add 2 new fields to our Invoice to help us track some more information about our collections process. These will be Transaction Body fields
- Next Invoice Reminder Date - we will use this field to trigger our automated reminder email and also manage different timings for each email
- Number of Reminder Emails Sent - this will be an incrementing tally so we can track how many times it takes us to email someone before collecting payment.

- Now let's setup the Saved Search that we will use to control our automated emails. We will make sure that we are only considering Unpaid Invoices, as well as validating the Next Invoice Reminder Date.
(Notice we included an expression to look for Invoices where the Due Date is today OR the Next Invoice Reminder Date is today. This way we will send a reminder when the Invoice is due AND then continue to validate the Next Invoice Reminder Date going forward.)

- Now we will create a Scheduled Workflow based on our Saved Search. Start by creating a new workflow. Give it a name and select the Type of Transaction and Sub Type of Invoice.

- Then setup your schedule. We want this to run every day as the Next Invoice Reminder Date will be used by the Saved Search to trigger when to send Invoices we don't need to worry about setting a schedule in the workflow. It can just run every day and find Invoices that meet our criteria.

- Now in State 1 we can start to add our logic and actions. First, we want to add a Field in the state that will record our current number of emails sent. We will use this later in the other Actions we are going to setup

- Then add an action to set this new Workflow Field to be the Number of Collections Emails Sent field that we added to our Invoices. This will copy the number at the beginning of the workflow so we can add to it and increment it up by one at the end of the workflow.
(The formula we are using is a nice workaround for Invoices that have not yet had a collections email so the Number of Collections Emails field will be blank. Therefore a NULL value will be considered a zero so we can mathematically increment it up by one.)

- Then we will add an action to move our Next Invoice Reminder date based on the logic we want. This will then be used in the Saved Search we made next time the Next Invoice Reminder Date is today.
(Also in this example we will use different timing for customers that only have 1 reminder vs. customers with 2 or more reminders)

- Next we will send our Emails out to our customer. We will add successive Send Email actions but add conditions to each action so we are sending out different emails depending on how many reminders we've sent out for the same Invoice. You can also use the Number of Collections Emails Sent field to let your customer know how many times you've tried to reach them about this Invoice.

- Next, we can add an action to put this customer on hold so future orders do not get added or fulfilled until payment is made. This step is optional but is a nice feature that you can add if it fits with your business process. You'll notice we are using the MGBC Set Field Value (joined record) custom action. This is a just one of the amazing actions we have developed as a solution to overcome the limitations that native NetSuite functionality has.
- Also note that we are only setting the Credit Hold if the customer has had more than 3 reminders on a past due invoice.

- Lastly, we need to recalculate how many reminder emails we've sent but adding 1 to the Workflow State field that we made as our first action.

- Here's the how the final workflow looks.
