---
title: "Troubleshooting & Common Issues"
description: 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…
url: "https://nelxstudio.com/docs/troubleshooting-common-issues/"
updated: "2026-10-04"
category: Nelx JFB Email Templates
---

# Troubleshooting & Common Issues

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:

1. Make sure **JetFormBuilder** is active.
2. Make sure the correct JetFormBuilder form is selected in the email template.
3. Click **Save Changes** after changing the template or plugin settings.
4. Make sure the template **Status** is on.
5. Submit the actual frontend form again after saving your changes.
6. 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:

1. the field name;
2. the submitted value;
3. the operator;
4. the order of the conditions.

See [**Conditional Recipients & Routing Rules**.](https://nelxstudio.com/docs/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**.](https://nelxstudio.com/docs/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**.](https://nelxstudio.com/docs/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:

1. **Store Rotation User in Post Meta** is enabled.
2. **Post ID** resolves to a real WordPress post.
3. **Post Meta Field** is the correct meta key.
4. If the form creates the post during submission, use `{post_id:inserted}`.
5. 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:

1. The placeholder uses the actual JetFormBuilder field name.
2. Normal form fields use curly braces: `{field_name}`.
3. CCT fields use square brackets: `[field_name]`.
4. Recipient placeholders do not use braces: `recipient:first-name`.
5. Current-user placeholders do not use braces: `currentuser:first-name`.
6. The selected form contains that field.
7. 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**.](https://nelxstudio.com/docs/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**.](https://nelxstudio.com/docs/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:

1. Check the CCT slug.
2. Enter or resolve a valid CCT Item ID.
3. Click **Load Fields** after entering the CCT information.
4. Make sure JetEngine is active and the CCT exists.
5. 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**.](https://nelxstudio.com/docs/cct-recipients-cct-placeholders/)

---

## A Repeater Is Empty or Shows the Wrong Data

Check:

1. You inserted the Repeater Field name, not only one of its sub-fields.
2. The submitted repeater contains rows.
3. Sub-field names in the extended placeholder exactly match the JetFormBuilder sub-field names.
4. Glossary IDs are correct.
5. Use `:options` only for manually entered option values.

Example:

```
{order_items|product_type:glossary|45,shipping_method:options}
```

See [**Repeater Fields in Email Templates**.](https://nelxstudio.com/docs/repeater-fields-in-email-templates/)

---

## An Uploaded File Is Missing From the Email

Check:

1. The correct form is selected in the template.
2. The upload field has been added under **File Attachments**.
3. The form submission actually contains the file.
4. The upload completed before the form submitted.
5. If the Media Field is inside a Repeater, use the **Repeater Field** in the attachment setting.
6. If Nelx Secure Document Storage is active, confirm that the form is configured for secure storage.

See [**File Attachments & Secure Documents**.](https://nelxstudio.com/docs/file-attachments-secure-documents/)

---

## Modern Media Upload Does Not Appear

Go to:

**Nelx JFB Email Templates → Media Upload**

Check:

1. **Enable Modern Media Upload** is on.
2. **Upload Mode** is set to **Live Upload**.
3. The frontend field is a JetFormBuilder Media Field.
4. If the feature is limited by CSS class, the Media Field has the correct class.
5. Enter the target class without a leading dot.
6. 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](https://nelxstudio.com/docs/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.

See [**Modern Media Upload**.](https://nelxstudio.com/docs/modern-media-upload/)

---

## Modern Form Fields Do Not Appear

Go to:

**Nelx JFB Email Templates → Media Upload**

Check:

1. **Enable Modern Form Fields** is on.
2. The field type is supported.
3. If the feature is limited to a CSS class, the class is on the form or a parent container.
4. Enter the class without a leading dot.
5. Save the settings and reload the frontend form.

The feature changes the field presentation. JetFormBuilder still controls validation and submitted values.

See [**Modern Form Fields**.](https://nelxstudio.com/docs/modern-form-fields/)

---

## 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.

See [**Modern Form Fields**.](https://nelxstudio.com/docs/modern-form-fields/)

---

## The Confirmation or Processing Modal Does Not Appear

Go to:

**Nelx JFB Email Templates → On Form Submit**

Check:

1. the relevant global modal is enabled;
2. the form does not have a form-specific configuration overriding the global setting;
3. **Use Global Settings for this form** is set the way you expect;
4. 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.

See [**Form Submission Modals**.](https://nelxstudio.com/docs/form-submission-modals/)

---

## View in Browser Link Is Missing

Check:

1. **Enable View in Browser** is on for that template.
2. The template was saved.
3. 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**.](https://nelxstudio.com/docs/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**.](https://nelxstudio.com/docs/view-in-browser/)

---

## Notification Settings Are Unavailable

The notification option requires **Nelx Notification System**.

Check:

1. Nelx Notification System is installed and active.
2. Its notification CCT and field mappings have been configured.
3. 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**.](https://nelxstudio.com/docs/nelx-notification-system-integration/)

---

## The Email Sends but No In-App Notification Appears

Check:

1. **Create notifications for recipients** is enabled.
2. The Event Type is valid for the Notification System configuration.
3. The notification recipient resolves to a supported WordPress user or role target.
4. If Conditional Recipients are used, notifications are enabled on the condition that matched.
5. If Rotation is used, check which user was selected.
6. Confirm that Nelx Notification System can create and display its own notifications.

See [**Nelx Notification System Integration**.](https://nelxstudio.com/docs/nelx-notification-system-integration/)

---

## CRM Communication Is Unavailable

The CRM Communication switch requires **Nelx CRM Communication**.

If the switch is disabled:

1. install and activate Nelx CRM Communication;
2. reload the Form Templates page;
3. open the template again.

See [**Nelx CRM Communication Integration**.](https://nelxstudio.com/docs/nelx-crm-communication-integration/)

---

## The Email Sends but CRM Communication Is Not Recorded

Check:

1. **Track this template as a CRM lead communication** is enabled on the correct template.
2. The template was saved.
3. You are testing with a new submission.
4. Nelx CRM Communication is active.
5. 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:

1. **Connect Relation** is enabled.
2. The recipient is a WordPress user who has a matching Service Provider post.
3. **Service Providers Post Type Slug** is correct.
4. Custom Meta Storage is enabled for the Service Providers post type.
5. **Service Provider ID Field** contains the recipient's user/provider ID.
6. **Unique Identifier Key** is the correct relationship key.
7. **Services Post ID** resolves to the correct Services post.
8. If you use `{post_id:inserted}`, the form actually creates the Services post.
9. If Connect Relation is inside Conditional Recipients, the relevant condition matched.
10. 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**.](https://nelxstudio.com/docs/connect-relation-for-jetappointments/)

---

## Changes to Email Branding Are Not Showing

Check:

1. Click **Save Changes** after editing Email Branding.
2. Preview the template again.
3. If the message box looks different, check whether the template has **Custom Message Box Styling** enabled.
4. Check the Desktop, Tablet, and Mobile button positioning separately when troubleshooting button alignment.
5. Make sure an **Email Logo** is selected if you expect a logo in the sent email.

See [**Email Branding & Global Styles**.](https://nelxstudio.com/docs/email-branding-global-styles/)

---

## A Styled Section Does Not Render as Expected

Check:

1. **Enable section styling with macros** is on.
2. The section still exists in the template.
3. The opening and closing macros use the generated names exactly.
4. The closing macro is present.
5. Save the template after changing the section.
6. Use Preview to check the rendered email.

See [**Template Styling: Message Boxes, Sections & Buttons**.](https://nelxstudio.com/docs/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**.](https://nelxstudio.com/docs/email-branding-global-styles/)

---

## 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.
