# Authyo OTP for Forminator Form

> Stop spam and fake leads on your Forminator forms. Add an Authyo shortcode to an HTML field and verify visitors by Email, SMS, WhatsApp or Voice Call before they can submit.

Source: https://authyo.io/authyo-docs/authyo-otp-for-forminator-form/

> Note: Voice Call OTP is currently available only in India.

## At a glance

- **What it does:** Adds one-time-password (OTP) verification for email addresses and phone numbers to Forminator forms, and saves verified submissions in a Leads screen.
- **OTP channels:** Email, SMS, WhatsApp and Voice Call (Voice Call is available in India only).
- **How you add it:** Paste a shortcode into an **HTML** field placed below an Email or Phone field in your Forminator form.
- **Shortcodes:** `[authyo_forminator_email field="email-1"]` and `[authyo_forminator_phone field="phone-1"]`.
- **You need:** Forminator, WordPress 6.1+, PHP 7.4+, and an Authyo account with a Client ID and Client Secret.
- **Settings location:** WordPress admin, under **Authyo OTP for Forminator**.
- **Safety net:** If your Authyo wallet balance runs out or the API is unavailable, forms keep working without OTP so no leads are lost.
- **Get the plugin:** [WordPress.org: Authyo OTP for Forminator Form](https://wordpress.org/plugins/authyo-otp-for-forminator-form/)

## Overview

**Authyo OTP for Forminator Form** adds a one-time-password check to your Forminator forms. Visitors verify their email address or phone number before the form can be submitted, so only genuine contacts reach your leads list.

You set your Authyo connection and channels once under **Authyo OTP for Forminator**. Then you switch OTP on for any form by adding an Authyo shortcode to an HTML field. OTP is active automatically on every form that contains one.

_This plugin is an independent add-on for Forminator, developed by Konceptwise Digital Media Pvt. Ltd. It is not affiliated with, endorsed by or supported by Forminator._

- **Four OTP channels:** Email, SMS, WhatsApp and Voice Call. Voice Call is currently available in India only.
- **Shortcode setup:** Add OTP to any form with a shortcode in an HTML field. It works with Forminator forms of every kind.
- **Per-form control:** OTP is on only for the forms that contain a shortcode, and you can set a redirect URL for each form.
- **Visitor channel choice:** Let visitors pick SMS, WhatsApp or Voice Call right away, or fall back to another channel after a short wait.
- **Leads Manager:** See every OTP-verified submission in your admin, filter by form, and export to CSV.
- **Country selector:** Show all countries, a selected few, or a single country for region-specific forms.
- **Setup wizard and connection test:** Create a form with OTP ready-made, and test your credentials by sending yourself a real OTP.
- **Fail-safe protection:** If your balance runs out or the API is unavailable, the field is marked verified so real visitors are never blocked.

## Requirements

- WordPress **6.1** or later and PHP **7.4** or later.
- **Forminator** installed and activated.
- An **Authyo account** with an application. You will need its **Client ID** and **Client Secret**.
- Balance in your Authyo wallet to send OTPs.

## Installation

Install Forminator first, then the Authyo add-on.

### Step 1: Install and activate Forminator
Go to **Plugins → Add New**, search for **Forminator**, then click **Install Now** and **Activate**. Skip this step if it is already active.

### Step 2: Install Authyo OTP for Forminator Form
Go to **Plugins → Add New**, search for **Authyo OTP for Forminator Form**, then click **Install Now** and **Activate**. You can also upload the plugin ZIP using **Plugins → Add New → Upload Plugin**.

### Step 3: Open the plugin settings
A new **Authyo OTP for Forminator** item appears in the WordPress admin menu. The settings page has six tabs: **General**, **Verification Methods**, **Form Integration**, **Leads**, **How to Use** and **Support**.

## Setup

Connect the plugin to your Authyo account and choose how OTPs are sent.

### Step 1: Create your Authyo account
Go to [app.authyo.io](https://app.authyo.io/account/welcome) and create a free account.

### Step 2: Copy your credentials
Open [your applications](https://app.authyo.io/application/userapplication) in the Authyo dashboard and copy the **Client ID** and **Client Secret**. Create an application first if you do not have one.

### Step 3: Paste them into the General tab
In WordPress go to **Authyo OTP for Forminator → General**. Under **API Credentials**, enter the **Client ID** and **Client Secret** and save. After saving, each field shows **Saved**. Leave a field blank to keep the saved value.

### Step 4: Test your connection
Once your keys are saved, use the connection test on the General tab. Enter your own email address, click **Send OTP**, and type the code you receive. A message confirms that your Authyo credentials are working.

### Step 5: Choose your channels
Open the **Verification Methods** tab. Under **Enable OTP Channels**, switch on **Email**, **SMS**, **WhatsApp** and **Voice Call** as needed. Choose a **Primary Method** for phone numbers. Voice Call is available only in India.

_You can also use the **Form Setup Wizard** in the **Form Integration** tab. It creates a new form with OTP already set up, or adds the OTP fields to an existing Forminator form._

## How to use

OTP is added to a form with a shortcode in an HTML field. The plugin hides the linked Email or Phone field automatically and shows its own verification field.

### Step 1: Edit your Forminator form
Go to **Forminator → Forms** and open the form. Add a standard **Email** or **Phone** field if it does not already have one. Note its field ID, for example `email-1` or `phone-1`.

### Step 2: Add an HTML field
Add an **HTML** field directly below the Email or Phone field.

### Step 3: Paste the shortcode for email
To verify an email address, paste this into the HTML field. Replace `email-1` with your real field ID.

```
[authyo_forminator_email field="email-1"]
```

### Step 4: Paste the shortcode for phone
To verify a phone number by SMS, WhatsApp or Voice Call, paste this instead. Replace `phone-1` with your real field ID.

```
[authyo_forminator_phone field="phone-1"]
```

### Step 5: Customize the label and placeholder (optional)
You can override the default label and placeholder for one form with shortcode attributes.

```
[authyo_forminator_email field="email-1" label="Work Email" placeholder="you@company.com"]
```

_Attributes: `field` (the Forminator field ID to sync the value into), `label`, `placeholder`, and `required` (`yes` or `no`, default `no`). Default labels and placeholders are set in the Verification Methods tab._

### Step 6: Save and test
Save and publish the form. OTP is now live on it. Open the form on your site, enter an email address or phone number, request the code, enter it and submit.

_Using Google Sheets with Forminator? In your connected sheet, add column headers that match your field IDs (for example `email-1`). Forminator formats the header on the first submission._

## Settings reference

Every setting in the plugin, grouped by the tab where you find it under **Authyo OTP for Forminator**.

### General

- **Client ID**: The Client ID of your Authyo application.
- **Client Secret**: The Client Secret of your Authyo application. After saving it shows **Saved**. Leave it blank to keep the saved value.
- **Test connection**: Sends a real OTP to an email address you enter, to confirm your credentials work.

### Verification Methods: channels

- **Enable OTP Channels**: Switch on **Email**, **SMS**, **WhatsApp** and **Voice Call**. Voice Call is available only in India.
- **Primary Method** (Default: SMS): The method used first for phone OTPs: SMS, WhatsApp or Voice Call.
- **Allow visitor to choose method immediately**: When on, visitors pick their delivery method straight after entering their number.
- **Fallback Timer (sec)** (Default: 30): How long to wait before offering other delivery methods. Allowed range: 15 to 120.

### Verification Methods: OTP defaults

- **OTP Length** (Default: 6): Number of digits in the code. Allowed range: 4 to 8.
- **Expiry (min)** (Default: 5): How long a code stays valid. Allowed range: 1 to 10.
- **Resend Cooldown (sec)** (Default: 30): How long visitors must wait before requesting another code. Allowed range: 10 to 120.
- **Max Resends** (Default: 3): How many times a visitor can request a new code. Allowed range: 1 to 5.

### Verification Methods: skip verification

Use with caution. These let visitors bypass OTP.

- **Allow skip for Email verification**: Visitors can submit without verifying their email address.
- **Allow skip for Phone verification**: Visitors can submit without verifying their phone number.

### Verification Methods: field labels and placeholders

Default text for the Authyo shortcode fields. You can override it per form with shortcode attributes.

- **Email Label / Email Placeholder**: The default label and placeholder for the email verification field.
- **Phone Label / Phone Placeholder**: The default label and placeholder for the phone verification field.

### Verification Methods: country dropdown

- **All Countries**: Show the complete country list, with search.
- **Selected Only**: Show only the countries you choose.
- **Single Country**: Select one country automatically and hide the dropdown.
- **Default Country**: A country preselected when the form loads. Visitors can still change it (not available in Single Country mode).
- **Country list**: The list comes from Authyo and is cached. The page shows how many countries are loaded. Use **Refresh** or **Load Countries** to update it.

### Form Integration

- **Form Setup Wizard**: Create a new form with OTP already configured, or attach the OTP fields to an existing Forminator form.
- **Redirect URL (optional)**: For each form, a page to send visitors to after a successful submission. OTP itself is active automatically on any form that contains an Authyo shortcode.

### Leads

Every OTP-verified submission, in one place.

- **Columns**: Form, Data, Status, Channel, Date and Actions.
- **Filter by form**: Show leads from one form or from all forms.
- **Entries per page**: Choose how many leads are shown at a time.
- **Export**: Use **Export Selected** or **Export All CSV** to download leads.
- **Delete**: Delete one lead, or select several and use **Delete Selected**.

### Shortcode attributes

- **field**: The Forminator field ID to sync the verified value into, for example `email-1`.
- **label**: The label shown above the field. Defaults to the value in the Verification Methods tab.
- **placeholder**: The hint inside the field. Defaults to the value in the Verification Methods tab.
- **required** (Default: no): Make the field required: `yes` or `no`.

## Moving from version 1.0.4 or earlier

Older versions used drag-and-drop Authyo fields in the Forminator builder. These have been replaced by shortcodes.

### Step 1: Remove the old Authyo fields
Open the form and delete the old Authyo fields.

### Step 2: Add a standard field and an HTML field
Add a standard **Email** or **Phone** field, then an **HTML** field below it.

### Step 3: Paste the shortcode and save
Paste the matching Authyo shortcode into the HTML field with your field ID, then save the form.

## Troubleshooting

### The shortcode shows as plain text, or nothing appears
Place the shortcode in an **HTML** field, not in a text or label field. Make sure the plugin is active and that the `field` value matches the ID of your Email or Phone field exactly (for example `email-1`).

### I see a “Wallet Balance Low” notice in the admin
Your Authyo wallet is low or empty, so OTP verification is currently bypassed and visitors can submit without verifying. Top up your Authyo account, then dismiss the notice using **Dismiss (I’ve topped up)**.

### I see a “Credentials Unreadable” notice
Your WordPress authentication keys (the salts in `wp-config.php`) changed after your credentials were saved, so they can no longer be decrypted. Re-enter your **Client ID** and **Client Secret** in the General tab and save.

### The OTP does not arrive
Use the connection test on the General tab to confirm your credentials. Check that the channel is switched on in **Verification Methods**, that your Authyo wallet has balance, and that the email address or phone number is valid. Voice Call works only in India.

### Forms submit without asking for an OTP
If your Authyo wallet is empty or the API is unavailable, the plugin lets submissions through so no leads are lost. Check for the wallet notice. Also check whether **Allow skip** is on for the channel.

### Visitors see “Invalid phone number”
The number does not match the selected country. Choose the right country and check the digits.

### Visitors see “Session expired. Please resend OTP”
The code timed out. By default a code is valid for 5 minutes. Ask the visitor to resend it, or raise **Expiry (min)** (up to 10).

### Visitors see “Invalid OTP”
The code was wrong. Check the digits and try again, or resend the code.

### Visitors see “Too many attempts” or “Too many verification attempts”
The visitor reached the limit for codes. They should wait a few minutes and try again. You can allow more resends with **Max Resends** (up to 5).

### The country list is empty
Open **Verification Methods → Country Dropdown Configuration** and click **Load Countries** or **Refresh**. Check your credentials if it still fails.

### Verified entries do not appear in Leads
Leads are saved for forms that contain an Authyo shortcode. Check that the form has the shortcode and that OTP was completed.

### My old drag-and-drop Authyo fields stopped working
Newer versions replaced them with shortcodes. Follow “Moving from version 1.0.4 or earlier” above.

## Frequently asked questions

### Do I need an Authyo account?
Yes. You need an Authyo account to get a Client ID and Client Secret for the plugin settings.

### Does it work with all Forminator forms?
Yes. Once Forminator is active, you can add OTP to any form, such as contact, registration, lead capture or booking forms.

### Which OTP channels are supported?
Email, SMS, WhatsApp and Voice Call. Voice Call is currently available only in India. You can switch each channel on or off in the Verification Methods tab.

### How do I turn OTP on for a form?
Add an Authyo shortcode to an HTML field in the form. OTP is active automatically on any form that contains one.

### What happens if my Authyo wallet runs out?
The plugin lets submissions through and marks the field as verified, so genuine visitors are not blocked. This is a deliberate safety feature to prevent lost leads. The admin shows a notice so you can top up.

### Can visitors choose how they receive the code?
Yes. Switch on **Allow visitor to choose method immediately** and visitors can pick SMS, WhatsApp or Voice Call. Otherwise the primary method is used first and other options appear after the fallback timer.

### Can I limit the countries?
Yes. Choose **Selected Only** to show only the countries you pick, or **Single Country** to preselect one and hide the dropdown.

### Where can I see verified submissions?
In the **Leads** tab. You can filter by form and export to CSV.

### Is any user data stored?
OTP data is processed in real time through the Authyo API and is not stored permanently by the plugin. Verified submissions you capture appear in the Leads screen. Your API credentials are stored encrypted.

### Is this plugin made by the Forminator team?
No. It is developed by Konceptwise Digital Media Pvt. Ltd. and is not affiliated with, endorsed by or supported by Forminator.

## Support

If this guide does not answer your question, submit the support form: https://authyo.io/support/
