Function #28: Automatically calculate Customer Loyalty points

Function #28: Automatically calculate Customer Loyalty points

Hello everyone, and welcome back to our series! Today, we're excited to share a workflow designed to streamline the management of loyalty points. 

Many businesses offer incentives or rewards in the form of loyalty points to their customers as a way to promote recurring business and build customer loyalty. These points are typically earned by making purchases, which customers can accumulate over time and then redeem for various rewards, such as discounts, free products, credit points, gift cards, or other perks. 

Manually calculating the loyalty points for every customer's purchase can be a laborious and time-intensive process, particularly when you're managing a substantial customer base. But don't fret! Our custom function is here to save the day. The function will automatically calculate the loyalty points earned for each transaction and also generate a credit note once the specified limit is reached.

Here's how it works:

Whenever a customer makes a purchase and pays off the invoice in Zoho Books, the custom function gets executed. It calculates the loyalty points earned from that transaction and stores them in a custom field (created to accumulate the loyalty points). This process continues until the customer's loyalty point limit is reached. Then, the function automatically generates a credit note for the customer and resets their loyalty points. This credit note can be applied to the customer's next invoice, reducing the amount to be paid.



Prerequisites: 

1. Create a Connection named "zbooks" to successfully execute the function. You can watch the GIF attached below to learn how to create the connection.



2. Create a Number type custom field named "Loyalty points" for the Customers module. This field will store the points earned by a customer.




Custom Function:

Navigate to Settings -> Automation -> Custom Functions -> +New Custom Function > Add the function code from this GitHub link. Then, check and update the following variables as required.

1. minLoyaltyAmount - The purchase amount required for a customer to earn one loyalty point. For instance, if $500 spent equals 1 loyalty point, input 500 as the minLoyaltyAmount.
2. loyaltyFieldName - Copy and paste the API name of the custom field created in the Customers section to store loyalty points.
3. loyaltyLimit - Specify the limit to determine when loyalty points can be redeemed in the form of a credit note. For example, if a credit note should be generated when a customer accumulates 100 points, enter 100 as the loyaltyLimit.

Workflow Rule: 
 
Go to Settings -> Automation -> Workflow Rules -> +New Workflow Rule and set up the workflow rule as shown below:-






In the final step of this workflow rule, associate the custom function you created and then hit Save.

Should you require any help in customizing this function to better suit your requirements, don't hesitate to reach out to us at support[at]zohobooks[dot]com. We will be happy to assist you!

Regards,
Shireen Farhana 
Zoho Books

      • Recent Topics

      • Necesito el código ZB para mi cuenta

        Hice cambio de servidor y no encuentro el codigo unico de cname.
      • Privacy error

        Privacy error on Chrome for all embedded forms and reports, this is a huge issue: "Your connection is not private Attackers might be trying to steal your information from creator.zohopublic.com (for example, passwords, messages, or credit cards). NET::ERR_CERT_COMMON_NAME_INVALID"
      • Email with attachments saving attachments into Zoho CRM from Zoho Mail

        Hi, I get a lot of emails from prospective clients asking if we would bid their project. Those projects usually have many documents associated with them that I link to.  I would like to have those documents be saved as an attachment in my Potential or Contact or Account. I don't see a way to do that that isn't multi-step. As of now I do the following: 1.) Open email 2.) If email sender isn't in my Zoho CRM database I enter them creating a Potential 3.) I download the attachment and save it to a different
      • Bug - OTP (email) and No Duplicates

        Scenario: Form with an email field, Validation: "No Duplicates" (because I want to ensure 1 entry per email). Embedded form into website (JS option). Enabled email based OTP. 1st test (via my website) - entered my email address - sent OTP - entered pin,
      • Customise Search Bar in CRM

        Is there a way to customise this search bar in the CRM to add fields?
      • Counting downloads of a file

        Hello Could anyone help me, I would like to use a custom script to count how many times a file contained in a record has been downloaded. Is that something that is possible in Creator? Thanks Estelle
      • Is there any way to prevent emails from being sent from zoho crm without pressing email opt out?

        When I left my desk yesterday I excitedly thought I had fixed my problem, by making use of the "Inactive" field ... However after contacting the support chat, they have advised to stop emails being sent I need to update the "Email Opt Out" field - which
      • New Search Function

        Hey Team, The search function updated in our CRM about a week ago, so I assume it was an automated update across Zoho. It no longer displays leads/deals etc in Chronological order so that the most recently created or updated is the first to display which
      • New permissions for accessing emails sent via Zoho CRM

        Last modified on Nov 4, 2024: Permissions for accessing emails sent via Zoho CRM have now been extended to the IN DC. With this rollout, the feature is now available to all users across all DCs. Resources: Data sharing for emails, Configuring email compose
      • Mind Mapping

        Will Zoho consider a mind mapping application? I have seen some discussions that are some 10 years old. What is the status now?
      • is it possible to add more than one Whatsapp Phone Number to be integrated to Zoho CRM?

        so I have successfully added one Whatsapp number like this from this User Interface it seems I can't add a new Whatsapp Number. I need to add a new Whatsapp Number so I can control the lead assignment if a chat sent to Whatsapp Phone Number 1 then assign
      • Unable to send emails

        I have this email parth@mrcolumbus.in, but I couldnt send outgoing email. Can you please help?
      • Request for Alerts on Workflow and Function Changes.

        I want to get an alert whenever a new workflow or function is added or an existing workflow or function is edited. Is there any way to do that? I need to log all changes whenever updates are made or new ones are added.
      • Overwrite Option for custom modules

        Hi Team, I noticed that the overwrite option is unavailable in Zoho Books when importing data for custom modules. This limitation makes it challenging to bulk update old data, as the only option is the 'bulk update' feature, which is restricted to 25
      • Transfer Amount from One Vendor to Another Vendor

        One of the vendors, who has a balance with us, has closed the business and has started a new business; Now he wants me to transfer the outstanding from the old account to the new Vendor Account. I am trying to do this using Payment Settlement a/c, But
      • Been getting this error, every now and then "Get count limit exceeded, please try again after 3 mins"

        it is really annoying.
      • How to make Branch compulsory in Zoho Books invoice?

        How I make Branches compulsory in Zoho Books invoice?
      • Regarding GST Report Issue in Zoho Books

        Hi, Right now, the very important point from my end is this Zoho Books issue. Here, you can see that we have created the invoice with the items of account sales and expenses. The journal is also correct. The profit and Loss statement is also correct.
      • Function #57: Automatically group items in invoices based on categories

        Hello everyone, and welcome back to our series! As a business expands and new product lines are launched, it becomes important to organize the items for better inventory management. The Category field in Zoho Books helps here by allowing you to add and
      • Fixed asset management

        I want to know if there is any individual module for fixed assets management
      • Suppress "spreadsheet will not be saved" message on published sheet

        I have published a sheet and have one column on that sheet that the user can edit (a dropdown picklist where the user can select the status for each line). Is there a way to suppress the Zoho Sheet message "Any changes made to this published spreadsheet
      • Zoho Forms Unable to Save Account Numbers with a Leading Zero

        We are using Zoho Forms to for rental applications. It is working well, except for one thing:  when a user enters their bank account information, and that account number actually starts with a ZERO (like 00123456) the Zoho form will return the value without
      • Profit on Sales order

        Hi, would it be possible to implement a column at the Sales order overview of Purchase amount? So a field with the amount of all purchase related to this Sales order? This is very usefull so you will see the profit you made on this deal. I tried to get
      • How to include GST% in PO amount?

        Currently when I raise PO, the basic price of the item is used. However, the GST is not calculated and added along with the basic amount. I have added a Custom field for GST in the PO but I need Zoho Inventory to calculate the GST amount and add it with the Basic price to give me the final PO price.
      • sitemap in zoho sites not updating

        I checked my sitemap and it has not added any updates. Do I have to generate one manually all the time or is zoho sites suppose to generate and update it?
      • I trying to connect our PM tool but API shows failure

        Hi All, in ZOHO CRM when an enquiry stage is moved to WON then I have created a rule to trigger POST URL to thrid party AP and then create a function for mapping with below code void automation.kytesfunctions(String enquiryId) { // Fetch enquiry details
      • 2 serial numbers for 1 item (Mac address and Serial number)

        There is a way to track 2 serial number type for 1 Item. Ex: Some electronic devices have a MAC address and a serial number. I need to track those 2 numbers
      • Sample Ticket - Created from Bot Preview

        Why is Zoho desk adding bot created tickets?
      • Webhook data is not being received

        We’ve set up the webhook with a public URL that returns a 200 status on Postman. However, when we ran a test, we didn’t receive anything in the req.body object or see any data from the POST request. As a team of freshers still learning the ropes of development,
      • Number of Workflow runs

        Is there a way in Zoho desk to see statistics regarding workflows, rules and other automation objects? Would be nice for several reasons: You could ensure that your workflows are actually running. You could determine which ones weren't being used so you
      • Mail is no longer populating CRM contacts

        Hi! For the last few days, my mail hasn't been populating my CRM contacts. Even people I email multiple times per day. In fact, it keeps trying to send mail to myself. Notice, I started typing Amy and only got as far as, "Am" and it suggested myself.
      • Zoho Support is indeed shocking and difficult to get a response with

        All our business emails have an auto-foward set up on them so that they also go to our GMAIL accounts so that we receive them to the relevenat people. The emails are indeed auto forwarding and arriving to our GMAIL accounts but when you log into your
      • Chart with Filtered Data vs Unfiltered Data

        I am looking to create a chart view that displays the full data set vs a subset of the data filtered by user filter. However I do not seem to find any method by which to exclude a plot from the applied filter or any other method by which to display the
      • How to get a list of selected records into a button-function? Here is how!

        So, you might know already how to get a button on a page somewhere and perform actions with a function when pressed, but how about a button that only works with the records you selected in the list view? The button selected is a custom button in the modules
      • How to Add Break line / Return on button click

        I need to return the text concate with difference field from lead with line break i try "\r" ,"\n" "<br>" return "ali \r\n <br> baba"; None of above work.  i expected result something like this  ali baba but got this  ali \r\n <br> baba so, how can i
      • How to get batch number of item by api?

        Hi there, Is there any way to get batch number of item by api? Batch number is the batch reference number in https://www.zoho.com/inventory/help/advanced-inventory-tracking/batch-tracking.html . When I call the https://www.zoho.com/books/api/v3/#Items_Get_an_item
      • Filter embedded report

        How to filter embedded report in a page, below code is not working. dateField => startDate & dateField=< endDate The report should print on page containing records from startDate to endDate. params='zc_Header=true&amp;Service_Date__gte=<%=startDate%>&amp;Service_Date__lte=<%=endDate%>'
      • Serious question: Are there actually "solo-preneurs"/small business owners who made Zoho-one work well for them?

        L.S. After already many years of continued struggle with Zoho-One, I am seriously wondering if there are actually solo-preneurs (one person small business owners - without a large, dedicated IT dept.) who got it (Zoho-One) to work well for their businesses.
      • Announcing new features in Trident for Windows (v.1.18.6.0)

        Hello Community, Trident for Windows is here with some new features to elevate your workplace communication. Let's take a quick look at what's new. Ask and send read receipts for emails You can now request read receipts for specific emails while composing,
      • Increase subscription prices for existing subscriptions

        Hi, Does anyone know how we could achieve the ability to increase the subscription fee for our existing customers based on a % increase. We are not yet using Zoho Billing (Subscriptions) and I'm not sure if it is a good fit for us. But we would need to
      • Next Page