Hello everyone,
As discussed previously in this
thread, we are going to come up with a custom function every week to address specific business scenarios. To start off, this week we will be looking into one of the most famous requirements -
30 Days Money Back Guarantee.
Business Scenario:
Most business organizations have cancellation policies and the most common one is the money back guarantee. It is a simple guarantee that if a customer is not satisfied with a product and cancels the subscription within the specified period, he/she will be provided with a refund.
Let's assume that we have to handle the above scenario in Zoho Subscriptions manually. We have to go to that particular subscription, and then check the activation date and the cancellation date to make sure the cancellation is done within 30 days. Then, we can initiate a refund.
This might seem pretty easy if you have to handle refunds for a couple of customers every now and then. However, as the business grows exponentially and quite a handful of customers starts requesting for refunds more frequently, the manual approach will cause a bottleneck. Also, refunding all these payments manually may cause a significant amount of time which can be put into developing your business.
Now, wouldn't it be easier if this entire process could be automated and you could stop worrying about it? This is where the custom functions save your day. With a one-time effort of setting up a custom function, you can completely automate the above scenario.
Logic Explanation:
You can refer the code through this
GitHub link. The code is written in Deluge script, which is easily understandable to non-programmers.
In this code, whenever a subscription is cancelled, we initially check if the cancellation date is within 30days from the activation date. If the subscription is cancelled within 30 days, we then retrieve the details of the last sent Invoice and check for the status of the invoice.
1) If the invoice is already fully paid, we check for the mode of payment. If the invoice is paid online, a credit note is raised for the paid amount and it is refunded. If the invoice is paid offline, we simply raise a credit note for the paid amount.
2) If the invoice is not yet paid and is still overdue, we simply mark that invoice as void.
If an error occurs in any of the API requests, an email will be sent to the admin email address with the request URL and the reason for the error.
Getting started with the Custom Functions:
1. Go to Settings -> Automation -> Custom Functions.
2. Create a new Custom function. Provide a name for the function. For example: "Auto refund cancellation".
3. Choose the module as 'Subscriptions' and the Predefined event as 'Cancel Subscription'.
4. Copy the code which was given above.
5. Please paste your authtoken in the authtoken variable. (Refer this
documentation to know how to generate your authtoken)
6. Also, in the dayToConsider variable, replace your own value for the days (within which the amount can be refunded).
7. Save the Custom function and you are good to go.
Found this useful? Try it out and let us know how it works! If you have questions, do not hesitate to ask!
Cheers,
Sasidaran K,
Zoho Subscriptions.