Use this guide when a template, recipient rule, upload, notification, or form feature is not behaving as expected.
Start with the simplest check first. Many problems come from a setting being enabled in one place but not in the part of the template that actually handles that feature.
Before You Troubleshoot #
Check these first:
- Make sure JetFormBuilder is active.
- Make sure the correct JetFormBuilder form is selected in the email template.
- Click Save Changes after changing the template or plugin settings.
- Make sure the template Status is on.
- Submit the actual frontend form again after saving your changes.
- If several advanced features are enabled, test the basic email first, then add the advanced features back one at a time.
That last step is especially useful with Conditional Recipients, Rotation, notifications, attachments, and Connect Relation.
The Email Is Not Sent #
Check:
- the template is active;
- the selected form is the form being submitted;
- the recipient resolves to a real email address or WordPress user;
- the subject and content are saved;
- the form submission itself completes successfully.
If a simple JetFormBuilder email also fails to send, the problem may be with the site’s WordPress mail setup rather than the template.
When testing, start with one direct email address under Standard recipients. Once that works, add the more advanced recipient logic.
The Email Goes to the Wrong Recipient #
First check which recipient feature is controlling the template.
A template can use:
- Standard recipients;
- User ID Fields;
- User Roles;
- CCT Item recipients;
- Rotation;
- Conditional Recipients;
- Smart Recipient.
Conditional Recipients #
Conditions are checked from top to bottom.
The first matching condition is used.
If no condition matches, the template falls back to the normal recipients configured above the Conditional Recipients section.
Check:
- the field name;
- the submitted value;
- the operator;
- the order of the conditions.
See Conditional Recipients & Routing Rules.
Smart Recipient #
Smart Recipient and Conditional Recipients cannot be active together.
If Smart Recipient is enabled, make sure the workflow has the post and assignee information it needs and that the person submitting the reply is logged in.
See Smart Recipient & Conversation Routing.
Rotation #
If Rotation is enabled, only the user selected for that point in the rotation receives the email.
See Round-Robin Rotation & Assignment Tracking.
Rotation Is Not Behaving as Expected #
Check that the recipient pool contains more than one valid recipient if you expect submissions to move between users.
Also check whether the template is using:
- the main template Rotation;
- Rotation inside a Conditional Recipient group.
If a condition matches, its recipient and Rotation settings are used for that submission.
When the recipient pool changes, the rotation cycle is adjusted to the current pool.
If you are also storing the selected user in post meta, confirm that the Post ID resolves to the post you expect.
The Rotated User Is Not Stored in Post Meta #
Check:
- Store Rotation User in Post Meta is enabled.
- Post ID resolves to a real WordPress post.
- Post Meta Field is the correct meta key.
- If the form creates the post during submission, use
{post_id:inserted}. - If Rotation is inside a Conditional Recipient group, configure the post-meta setting inside that condition.
If you only need the rotated user to become the post author, use Make Rotation User Post Author instead.
A Placeholder Appears as Plain Text #
For example, the email shows:
{company_name}
instead of the submitted value.
Check:
- The placeholder uses the actual JetFormBuilder field name.
- Normal form fields use curly braces:
{field_name}. - CCT fields use square brackets:
[field_name]. - Recipient placeholders do not use braces:
recipient:first-name. - Current-user placeholders do not use braces:
currentuser:first-name. - The selected form contains that field.
- The field contains a value in the submitted data.
Use the template’s insert controls where possible instead of typing long placeholders manually.
See Dynamic Content, Placeholders & Macros.
Glossary or Option Labels Show Raw Values #
If the email shows:
private_limited
instead of:
Private Limited
check the placeholder type.
For JetEngine Glossary options use:
{field_name:glossary|ID}
For manually entered options use:
{field_name:options}
Also check that the glossary ID is correct.
See Dynamic Content, Placeholders & Macros.
Inserted Post Data Is Empty #
Placeholders such as:
{post_id:inserted}{post_title:inserted}{post_url:inserted}{post_meta:key}
depend on a post being created by the form workflow.
If the form does not create a post, there is no inserted post for those placeholders to use.
Also check that the email runs at a point where the inserted post data is available.
Current User Details Are Empty #
Placeholders such as:
currentuser:first-name
depend on a logged-in WordPress user.
A guest submission does not have current-user profile data.
Use normal form fields when the visitor enters their own name or email.
CCT Fields Are Not Loading #
For CCT Item recipients:
- Check the CCT slug.
- Enter or resolve a valid CCT Item ID.
- Click Load Fields after entering the CCT information.
- Make sure JetEngine is active and the CCT exists.
- Use square-bracket placeholders such as
[client_email].
If Custom Recipients is enabled, make sure the selected CCT fields contain a usable email address or WordPress user ID.
See CCT Recipients & CCT Placeholders.
A Repeater Is Empty or Shows the Wrong Data #
Check:
- You inserted the Repeater Field name, not only one of its sub-fields.
- The submitted repeater contains rows.
- Sub-field names in the extended placeholder exactly match the JetFormBuilder sub-field names.
- Glossary IDs are correct.
- Use
:optionsonly for manually entered option values.
Example:
{order_items|product_type:glossary|45,shipping_method:options}
See Repeater Fields in Email Templates.
An Uploaded File Is Missing From the Email #
Check:
- The correct form is selected in the template.
- The upload field has been added under File Attachments.
- The form submission actually contains the file.
- The upload completed before the form submitted.
- If the Media Field is inside a Repeater, use the Repeater Field in the attachment setting.
- If Nelx Secure Document Storage is active, confirm that the form is configured for secure storage.
See File Attachments & Secure Documents.
Modern Media Upload Does Not Appear #
Go to:
Nelx JFB Email Templates → Media Upload
Check:
- Enable Modern Media Upload is on.
- Upload Mode is set to Live Upload.
- The frontend field is a JetFormBuilder Media Field.
- If the feature is limited by CSS class, the Media Field has the correct class.
- Enter the target class without a leading dot.
- Save the settings and reload the form.
If the old standalone Modern Media Upload prototype snippet is still active, disable it. The built-in feature detects that prototype and does not run alongside it.
See Modern Media Upload.
A Live Upload Is Rejected #
Modern Media Upload follows the JetFormBuilder Media Field rules.
Check the field’s:
- allowed file types;
- maximum file size;
- maximum number of files;
- upload permission.
A guest can only upload when the Media Field allows that visitor to upload.
The server validates the file again during the live-upload request.
The Submit Button Is Disabled During an Upload #
This is expected.
While a live upload is still active, the form cannot submit.
Wait for every file to finish uploading or remove/cancel the active file.
The submit button is restored when there are no active uploads left.
An Existing File Is Missing in an Edit Form #
Modern Media Upload can display preset Media Field values loaded by JetFormBuilder.
Check that the original JetFormBuilder Media Field is actually receiving the saved attachment value.
Existing files are not uploaded again. They are read from the form’s preset value and shown in the modern uploader.
Modern Form Fields Do Not Appear #
Go to:
Nelx JFB Email Templates → Media Upload
Check:
- Enable Modern Form Fields is on.
- The field type is supported.
- If the feature is limited to a CSS class, the class is on the form or a parent container.
- Enter the class without a leading dot.
- Save the settings and reload the frontend form.
The feature changes the field presentation. JetFormBuilder still controls validation and submitted values.
A Select Field Does Not Use the Custom Dropdown #
The enhanced dropdown is used for single-choice Select Fields.
A Select Field configured for multiple selections remains a normal multi-select.
The Confirmation or Processing Modal Does Not Appear #
Go to:
Nelx JFB Email Templates → On Form Submit
Check:
- the relevant global modal is enabled;
- the form does not have a form-specific configuration overriding the global setting;
- Use Global Settings for this form is set the way you expect;
- you clicked Save Changes.
Processing Modal Disabled by Nelx Secure Docs #
If Nelx Secure Docs has its own Form Processing Modal enabled, the Processing Modal in Nelx JFB Email Templates is disabled to prevent two processing overlays from appearing together.
Disable the Secure Docs processing modal first if you want to use the one in Nelx JFB Email Templates.
Form Inside a Popup #
If the parent JetPopup or Elementor popup disappears when the Nelx modal opens, disable the parent popup’s close on overlay behavior.
View in Browser Link Is Missing #
Check:
- Enable View in Browser is on for that template.
- The template was saved.
- You are testing with a new email sent after the setting was enabled.
The template Preview can show the link’s placement, but Preview does not create a permanent browser copy.
See View in Browser.
View in Browser Says the Email Is Unavailable or Expired #
The stored browser copy may have passed its retention period.
Check the template’s:
- Retention in days
- Keep indefinitely (no expiry)
Changing the setting affects future sends. It does not recreate an already expired browser copy.
See View in Browser.
Notification Settings Are Unavailable #
The notification option requires Nelx Notification System.
Check:
- Nelx Notification System is installed and active.
- Its notification CCT and field mappings have been configured.
- Reload the Form Templates page after completing that setup.
Nelx JFB Email Templates uses the Notification System’s local notification service. There is no separate connection or authentication setup inside the email template.
See Nelx Notification System Integration.
The Email Sends but No In-App Notification Appears #
Check:
- Create notifications for recipients is enabled.
- The Event Type is valid for the Notification System configuration.
- The notification recipient resolves to a supported WordPress user or role target.
- If Conditional Recipients are used, notifications are enabled on the condition that matched.
- If Rotation is used, check which user was selected.
- Confirm that Nelx Notification System can create and display its own notifications.
See Nelx Notification System Integration.
CRM Communication Is Unavailable #
The CRM Communication switch requires Nelx CRM Communication.
If the switch is disabled:
- install and activate Nelx CRM Communication;
- reload the Form Templates page;
- open the template again.
See Nelx CRM Communication Integration.
The Email Sends but CRM Communication Is Not Recorded #
Check:
- Track this template as a CRM lead communication is enabled on the correct template.
- The template was saved.
- You are testing with a new submission.
- Nelx CRM Communication is active.
- If one form has several email templates, confirm that CRM Communication is enabled on the template you are checking.
Nelx JFB Email Templates provides the send information. Nelx CRM Communication controls how that communication is stored and displayed.
Connect Relation Does Not Create the Relationship #
Check:
- Connect Relation is enabled.
- The recipient is a WordPress user who has a matching Service Provider post.
- Service Providers Post Type Slug is correct.
- Custom Meta Storage is enabled for the Service Providers post type.
- Service Provider ID Field contains the recipient’s user/provider ID.
- Unique Identifier Key is the correct relationship key.
- Services Post ID resolves to the correct Services post.
- If you use
{post_id:inserted}, the form actually creates the Services post. - If Connect Relation is inside Conditional Recipients, the relevant condition matched.
- If Rotation is enabled, check which provider was selected.
A missing provider record is skipped without stopping the form submission.
See Connect Relation for JetAppointments.
Changes to Email Branding Are Not Showing #
Check:
- Click Save Changes after editing Email Branding.
- Preview the template again.
- If the message box looks different, check whether the template has Custom Message Box Styling enabled.
- Check the Desktop, Tablet, and Mobile button positioning separately when troubleshooting button alignment.
- Make sure an Email Logo is selected if you expect a logo in the sent email.
See Email Branding & Global Styles.
A Styled Section Does Not Render as Expected #
Check:
- Enable section styling with macros is on.
- The section still exists in the template.
- The opening and closing macros use the generated names exactly.
- The closing macro is present.
- Save the template after changing the section.
- Use Preview to check the rendered email.
See Template Styling: Message Boxes, Sections & Buttons.
A Button Does Not Render #
Use:
[button:URL]Button Text[/button]
Check:
- the opening macro contains a usable URL;
[/button]is present;- any placeholder inside the URL resolves to a real value.
Button appearance is configured under Email Branding.
When You Need to Ask for Help #
Before contacting support, note:
- Nelx JFB Email Templates version;
- JetFormBuilder version;
- WordPress version;
- the form you are testing;
- the template you are testing;
- the exact feature involved;
- what you expected;
- what happened instead;
- any visible error message.
For a complex workflow, also note whether it uses:
- Conditional Recipients;
- Rotation;
- Smart Recipient;
- CCT Item recipients;
- attachments;
- Nelx Notification System;
- Nelx CRM Communication;
- Connect Relation.
That makes it much easier to isolate the part of the workflow that needs attention.

