Hi Everyone!
Verifying customer information is critical in business to filter out junk data and spammers. Whether it’s lead generation, appointment booking, or any other operation, ensuring quality data is essential for driving meaningful outcomes. A verified mobile number stands out as a dependable source of high-quality data. When automating processes with chatbots, you can enhance data quality by adding mobile number verification through OTP (One-Time Password)
We’ve developed a
plug script that verifies customer mobile numbers using OTP (One-Time Password) integrated with
Twilio. You can add this to your
Codeless bot builder to make your bot smarter, your processes smoother, and your data more reliable.
Overview of verifying the mobile number with OTP:
We need two Plugs:
- Plug 1 - Generate & send OTP to the mobile number:
- Plug 2 - Verify the OTP
Plug 1- Generate & send OTP to the mobile number:
- Open SalesIQ, navigate to Settings > Developers > Plugs > Add.
- Give a name, description for the plug. Select the Platform as Scripts, and click on Create Plug.
- The first step in building the plug is defining the parameters. Click on the parameters on top and declare the following.
Input Parameter
- Name : phone | Type : Phone
Output Parameter
- Name : status | Type : String
- Name : otp | Type : Number
Copy the code below and paste it into your plug builder. Then, make the following changes
- In line #8, replace your account_sid (Navigate to the Twilio > Select your account > Account info > copy the Account SID)
- In line #12, the auth token (Navigate to the Twilio > Select your account > Account info > copy the Live/Test credential)
- In line #19, replace your Twilio phone number.
- response = Map();
- phone = session.get("phone").get("value").remove(" ");
- //Generate OTP
- otp = randomNumber(1000,9999);
- //Message body
- body = "Your OTP for Zylker is " + otp;
- //Navigate to your Twilio profile > Account > API Keys & Tokens > copy the Account SID
- account_sid = "ACa988e5ee589d4c827439d1";
- url = "https://api.twilio.com/2010-04-01/Accounts/" + account_sid + "/Messages.json";
- //To get auth token, Navigate to your Twilio profile > Account > API Keys & Tokens > copy the Account SID and Auth token.
- //auth = "<Account SID>:<Auth token>"
- auth = account_sid + ":e67e8be6805u8jc717cbd6a6a0";
- auth_encoded = zoho.encryption.base64Encode(auth);
- headers = Map();
- headers.put("Authorization","Basic " + auth_encoded);
- params = Map();
- params.put("To",phone);
- //Replace your Twilio number
- params.put("From","+14173879299");
- params.put("Body",body);
- response = postUrl(url,params,headers);
- status = response.get("status");
- if(status == "delivery_unknown" || status == "undelivered" || status == "failed")
- {
- sms = "failed";
- }
- else
- {
- sms = "success";
- }
- info response;
- response.put("status",sms);
- response.put("otp",otp);
- return response;
Then, click Save, preview the plug, and Publish it.
Plug 2 - Verify the OTP
- Open SalesIQ, navigate to Settings > Developers > Plugs > Add.
- Give a name, description for the plug. Select the Platform as Scripts, and click on Create Plug.
- Click on parameters and declear the following.
Input Parameter
- Name : systemotp | Type : Number
- Name : visitorotp | Type : Number
Output Parameter
- Name : otpstatus | Type : String
Copy the code below and paste it into your plug builder
- response = Map();
- systemotp = session.get("systemotp").get("value");
- visitorotp = session.get("visitorotp").get("value");
- if(systemotp == visitorotp)
- {
- otp_status = "OTP verification successful";
- }
- response = Map();
- response.put("otpstatus",otp_status);
- return response;
Then, click Save, preview the plug and Publish it.
Note : Only published Plugs will be listed in Codeless Bot Builder.
How to add Plugs to the Codeless bot builder?
Collect the Visitor's Phone Number
- Use the Phone Card to get the visitor's phone number.
Generate and Send OTP
- Configure Plug 1 to generate and send a unique OTP to the visitor:
- Under Action Cards, select the Plugs Card and choose Plug 1.
- Choose Phone as the input (context variable).
- Get the OTP and its status as outputs, saving them in the bot context as system_otp and otp_status, respectively.
- Click Save to store the configuration.
Check OTP Delivery Status
- Add a Criteria Router Card to verify if the OTP was successfully sent:
- In the Plug Success Flow, add a Criteria Router Card.
- Create a rule: For a flow OTP sending failed flow by setting the context variable otp_status returning "failed" (OTP failed).
- The Not Matched Flow represents successful OTP delivery to the visitor.
Handle OTP Input from Visitor
- In the Not Matched Flow of the Criteria Router:
- Use a Visitor Fields Card to collect the OTP entered by the visitor.
- Save the visitor's input in a context variable (visitor_otp).
Verify OTP
- Use Plug 2 to compare the generated OTP (system_otp) and the visitor-provided OTP (visitor_otp):
- Provide both OTPs as inputs to Plug 2.
- Assign a variable to save the verification result.
Next Steps Based on OTP Verification
- If OTP verification succeeds: Proceed with the next flow.
- If OTP verification fails: Prompt the visitor to re-enter the OTP and repeat the verification process using the button card.
I hope this was helpful. Please feel free to comment if you have any questions. I'll be happy to help you.
Best regards
Sasidar | Zoho SalesIQ
Recent Topics
Citation Problem
I had an previous ticket (#116148702) on this subject. The basic problem is this; the "Fetch Details" feature works fine on the first attempt but fails on every subsequent attempt, Back in July after having submitted information electronically and was
Failing to generate Access and Refresh Token
Hello. I have two problems: First one when generating Access and Refresh Token I get this response: As per the guide here : https://www.zoho.com/books/api/v3/#oauth (using server based application) I'm following all the steps. I have managed to get
Auto-Forward All Incoming Mail
I have setup the Zoho Business Mail to host my own domain's mail. Is it possible to have all incoming email auto-forwarded to another email account? What I would like to do is have all incoming emails forwarded to my Yahoo or Hotmail accounts until I can complete the migration to Zoho. I can't seem to locate this setting anywhere. I don't care whether the mail is kept on the Zoho server or not at this time.
Zeptomail 136.143.188.150 blocked by SpamCop
Hi - it looks like this IP is being blocked, resulting in hard bounces unfortunately :( "Reason: uncategorized-bounceMessage: 5.7.1 Service unavailable; Client host [136.143.188.150] blocked using bl.spamcop.net; Blocked - see https://www.spamcop.net/bl.shtml?136.143.188.150
Apply transaction rules to multiple banks
Is there any way to make transaction rules for one bank apply to other banks? It seems cumbersome to have to re-enter the same date for every account.
How to bulk update records with Data Enrichment by Zia
Hi, I want to bulk update my records with Data Enrichment by Zia. How can I do this?
How do I split a large CSV file into smaller parts for import into Zoho?
Hi everyone, I’m trying to upload a CSV file into Zoho, but the file is very large (millions of rows), and Zoho keeps giving me errors or takes forever to process. I think the file size is too big for a single import. Manually breaking the CSV into smaller
Client Script Payload Size Bug
var createParams = { "data": [{ "Name": "PS for PR 4050082000024714556", "Price_Request": { "id": "4050082000024714556" }, "Account": { "id": "4050082000021345001" }, "Deal": { "id": "4050082000023972001" }, "Owner": { "id": "4050082000007223004" }, "Approval_Status":
lead convert between modules
Hello, The workflow we set up to automatically transfer leads registered via Zapier into the Patients module to the Leads module started to malfunction unexpectedly on September 25, 2025, at 11:00 AM. Under normal circumstances, all fields filled in the
Flow Task Limits - How to Monitor, Understand Consumption?
So, I got an email last night saying that I've exhausted 70% of my tasks for this month, and encouraging me to buy more tasks. I started to dig into this, and I cannot for the life of me figure out where to find any useful information for understanding,
Cross References Do Not Update Correctly
I am using cross references to reference Figures and current am just using the label and number, i.e. Figure #. As seen here: When I need to update the field, I use the update field button. But it will change the cross reference to no longer only including
How to Track and Manage Schedule Changes in Zoho Projects
Keeping projects on track requires meticulous planning. However, unforeseen circumstances can cause changes to schedules, leading to delays. It becomes important to capture the reason for such changes to avoid them in the future. Zoho Projects acknowledges
Is there a notification API when a new note is addeding
Trying to push to Cliq, or email notification when there's a new note added in module. How to implement this?
Collaborate Feature doesn't work
Hello Team. It seems that the collaborate section is broken? I can post something but it all appears in "Discussions". In there is no way how I would mark something as Draft, Approval, post or any of the other filter categories? Also if I draft a post
Edit Permission during and after approval?
When a record is sent for approval Can a user request for edit permission from the approver? We don't want to give edit permissions for all the records under approval Only on a case-by-case basis How can we achieve this?
Zoho web and mobile application not workingn
Both zoho forms web and mobile application aren't working. I have checked my network connections and they are fine.
Bulk Moving Images into Folders in the Library
I can't seem to select multiple images to move into a folder in order to clean up my image library and organize it. Instead, I have to move each individual image into the folder and sometimes it takes MULTIPLE tries to get it to go in there. Am I missing
Latest updates in Zoho Meeting | Breakout rooms and End to end encryption
Hello everyone, We’re excited to share a few updates for Zoho Meeting. Here's what we've been working on lately: Introducing Breakout Rooms for enhanced collaboration in your online meetings and End-to-end encryption to ensure that the data is encrypted
Accidentally deleted a meeting recording -- can it be recovered?
Hi, I accidentally deleted the recording for a meeting I had today. Is there a way I can recover it?
How to access email templates using Desk API?
Trying to send an email to the customer associated to the ticket for an after hours notification and can't find the API endpoint to grab the email template. Found an example stating it should be: "https://desk.zoho.com/api/v1/emailtemplates/" + templateID;
Update Portal User Name using Deluge?
Hey everyone. I have a basic intake form that gathers some general information. Our team then has a consultation with the person. If the person wants to move forward, the team pushes a CRM button that adds the user to a creator portal. That process is
Unable to retrieve Contact_Name field contents using Web API in javascript function
Hello, I've added a field in the Purchase Order form to select and associate a Sales Order (Orden_de_venta, lookup field). I've also created a client script to complete some fields from the Sales Order (and the Quote), when the user specifies the related
Updating Woocommerce Variation Products Prices Via Zoho CRM
I can update product prices with this flow: But I can't update variant products. I got a code from Zoho for this, but I couldn't get it to work. It needs to find the product in the CRM from the SKU field and update the variation with the price there.
Emails Disappearing From Inbox
I am experiencing the unnerving problem of having some of the messages in my inbox just disappear. It seems to happen to messages that have been in there for longer than a certain amount of time (not sure how long exactly). They are usually messages that I have flagged and know I need to act on, but have not gotten around to doing so yet. I leave them in my inbox so I will see them and be reminded that I still need to do something about them, but at least twice now I have opened my inbox and found
Power of Automation :: Automatic removal of project users once the project status is changed.
A custom function is a software code that can be used to automate a process and this allows you to automate a notification, call a webhook, or perform logic immediately after a workflow rule is triggered. This feature helps to automate complex tasks and
Customizing Form Questions per Recipient Group in Zoho Campaigns/Forms
Hello everyone, I would like to ask if it’s possible in Zoho Campaigns or Zoho Forms to send out a campaign where the form questions can be customized based on the group of recipients. Use case example: I have prepared 20 questionnaire questions. For
Forms - Notification When Response Submitted
How do I set it up to generate an email notification when a response (class request) is submitted?
How to disable user entry on Answer Bot in Zobot
Hi, I have an Answer Bot in my Zobot, here is the configuration: I only want the user to choose 1 of the 4 the options I have provided: When no answer found, user chooses 'I'll rephrase the question' or 'Ask a different question When answer is found,
More admin control over user profiles
It's important for our company, and I'm sure many others, to keep our users inline with our branding and professional appearance. It would be useful for administrators to have more control over profile aspects such as: Profile image User names Email signatures
Please Make Zoho CRM Cadences Flexible: Allow Inserting and Reordering Follow-Up Steps
Sales processes are not static. We test, learn, and adapt as customers respond differently than expected. Right now, Zoho Cadences do not support inserting a new step between existing follow-ups or changing the type of an existing primary step. If I realize
Clear Tag & Linking Between Quotes and Sales Orders
Hi Zoho Team, In Zoho Books, when a quote is converted into a sales order, it would be extremely useful to have: A clear tag/indicator on the quote showing that it has been converted into a sales order. A direct link in the sales order back to the originating
Add Direct Ticket Link to Zoho Help Center Portal in Email Replies
Hi Zoho Support Team, We hope you're doing well. We’d like to request a small but valuable improvement to enhance the usability of the Zoho Help Center portal (https://help.zoho.com/portal/en/myarea). Currently, when someone from Zoho replies to a support
[Webinar] Deluge Learning Series - AI-Powered Automation using Zoho Deluge and Gemini
We’re excited to invite you to an exclusive 1-hour webinar where we’ll demonstrate how to bring the power of Google’s Gemini AI into your Zoho ecosystem using Deluge scripting. Whether you're looking to automate data extraction from PDFs or dynamically
New in Cadences: Option to Resume or Restart follow-ups when re-enrolling records into a Cadence, and specify custom un-enrollment criteria
Managing follow-ups effectively involves understanding the appropriate timing for reaching out, as well as knowing when to take a break and resume later, or deciding if it's necessary to start the follow-up process anew. With two significant enhancements
Im Stuck in an EDIT ONLY WITH WIZARD issue
So I found Wizards to be a really helpful tool in minimizing the exposure of redundant, superfluous fields to staff that would never otherwise have to edit those fields. My issue is, that when the record (in this case a lead) is created with a wizard,
Account upgrade
Good evening, I upgraded my account and paid for it. From standard to professional. Unfortunately after the paiment my account was not upgraded. Please your advise. Best Regards Erik van Staverden
How to set ALL default dates of my organization to DD-MM-YYYY format?
All replies to this question comes from a time where the UI was different. It's extremely frustrating not being able to find how to do this simple setting change. I want everything and everyone in my organizations to have DD-MM-YYYY date format by default.
How can I sync from Zoho Projects into an existing Zoho Sprints project?
Hi I have managed to integrate Zoho Projects with Zoho Sprints and I can see that the integration works as a project was created in Zoho Sprints. But, what I would like to do is to sync into an existing Zoho Sprints project. Is there a way to make that
Can we generate APK and IOS app?
Dears, I want to know the availability to develop the app on zoho and after that .. generate the APK or IOS app and after that I added them to play store or IOS store.. Is it possible to do this .. I want not to use zoho app or let my customers use it. thanks
Zoho Subform Workflows onAdd of Row
Suppose I have a form with attached workflows onLoad. If I use the form as a subform, will it inherit the workflows or do I need to create new ones onAdd of row?
Next Page