Description
Ynot Leads Publisher sends submissions from supported WordPress forms to your Ynot LMS endpoint.
Supported form plugins:
- Contact Form 7
- Gravity Forms
- WPForms
- Elementor Forms
Key features:
- Embed Ynot Lead Forms with a WordPress block or shortcode, without API credentials.
- Inline forms, popup buttons, and floating widgets with light/dark appearance and accent colors.
-
Automatic iframe resizing and optional site-wide floating widget.
-
AJAX metadata refresh with no page reload.
- Per-form field mapping with hardcoded values where needed.
- Lead source, location, program, and state mapping support.
- Dynamic custom API field mapping rows.
- Recent logs for posted, rejected, error, and skipped submissions.
External services
This plugin connects to the Ynot LMS API to submit lead data and retrieve metadata (locations, programs, lead sources, states, and education levels).
What data is sent and when
- Lead submissions: When a visitor submits a form on your site (Contact Form 7, Gravity Forms, WPForms, or Elementor Forms), the plugin sends the mapped form field values (e.g. name, email, phone, address) to your Ynot LMS leads endpoint via an HTTP POST request.
- Metadata refresh: The plugin fetches reference data (campus locations, programs, lead sources, states, education levels, and custom field definitions) from the Ynot LMS API to populate the mapping dropdowns. This happens when an administrator clicks “Load My Data” in the plugin settings, on an hourly scheduled task, and when an administrator opens the plugin settings screen if the stored data is more than two hours old. The scheduled and automatic requests only run once an Access ID and Access Key have been saved; no request is made before the plugin is configured. These requests send only your Access ID and Access Key — no visitor or form data.
Service details
- Service: Ynot LMS API
- Endpoints used:
https://api-{workspace}.ynotlms.com/leads.json(lead submission), plus/locations.json,/programs.json,/states.json,/lead_sources-basic.json,/level_of_educations.json, and/fields(metadata). - Authentication: Requests include an Access ID and Access Key configured by the site administrator.
- Terms of Use: https://ynotlms.com/terms
- Privacy Policy: https://ynotlms.com/privacy
Hosted Lead Forms load from https://connect.ynotlms.com inside an isolated iframe. Visitor answers are submitted directly to Ynot, not forwarded or logged again by this plugin. Production forms use Cloudflare Turnstile for bot protection; configured address fields may use Google Places. These services are loaded by the hosted form. Popup forms load when opened; inline forms load when the page is viewed.
Embed a Ynot Lead Form
- Create and publish your form in Ynot Admin > Lead Forms.
- Under Publish & integrate, allow your WordPress website origin (including scheme and any nonstandard port). Allow both www and non-www origins if both are used.
- In WordPress, open Ynot Leads > Lead Forms. Paste the published Share link and give the placement a name.
- Choose Inline form, Button opens popup, or Floating widget; choose Light/Dark, accent color, and button text. Save the placement.
- Insert the Ynot Lead Form block and select your placement. In Elementor or another page builder, use its Shortcode widget with the copied shortcode, e.g.
[ynot_lead_form id="admissions"]. - For a floating widget on every page, enable Show on every page instead of adding a block. Only one site-wide widget can be enabled. A page-specific floating placement takes precedence over the site-wide one.
Test embed displays the published form: submitting it creates a lead. Use Ynot Admin’s non-submitting preview for submission practice. Unpublished forms or websites not allowed by the form cannot embed it. The test checks for a response; it does not automatically change the form’s allowed websites.
Placement settings are stored in one WordPress option, with no new database tables. Published form changes appear automatically; renaming a placement preserves its shortcode ID. Removing a placement hides it wherever used. Authors/editors may insert saved placements; only administrators with manage_options can create, edit, or remove placements. Standard WordPress page caches may need purging after placement changes.
Requires a WordPress installation that permits plugins. Keep the existing Forms tab for Gravity Forms, Contact Form 7, WPForms, and Elementor submissions; those continue to use API credentials and mappings.
Blocks
This plugin provides 1 block.
- Ynot Lead Form
Installation
- Upload the
ynot-leads-publisherfolder to/wp-content/plugins/. - Activate the plugin in WordPress.
- Open
Ynot Leadsfrom the WordPress admin sidebar. - Enter your API Endpoint URL, Access ID, and Access Key.
- Click
Refresh Valuesto fetch metadata. - Select active forms and save.
- Map fields per form and submit a test entry.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“Ynot Leads Publisher” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “Ynot Leads Publisher” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.10.0
- Add hosted Lead Forms placements, WordPress block, and shortcode.
- Support inline, popup-button, and floating layouts with isolated styling, dynamic height, and keyboard-accessible dialogs.
- Add local regression checks for URL validation, permissions, shortcode/block rendering, and iframe message handling.
1.9.1
- Fixed: when a field was set to take its value from a form field, a fixed value left on that same field could still override it. Lead Source was the usual casualty — the answer to “How did you first hear about us?” was mapped correctly but never used, with nothing on screen to explain why. The form field now wins, as the setting says it should.
- A fixed value is still used when the form field is missing from a submission, so a skipped question does not leave the field empty.
1.9.0
- Your campuses, programs and lead sources now reload on their own every hour, and again when you open the settings screen if they have gone stale. Anything added in Ynot LMS shows up without having to press Load My Data.
- A load that fails no longer discards the data you already had.
- Uninstalling now removes the stored data and the scheduled reload.
1.8.0
- First public release on WordPress.org.
1.7.3
- Fixed WordPress PHPCS compliance issues flagged by the Plugin Check tool.
1.7.2
- Fixed accepted leads being incorrectly logged as rejected when the API response echoes back submission fields at the root level.
1.7.1
- Bundled Select2 4.0.13 in assets/vendor/ — fixes broken “Add Extra Row” and “Add Custom Field Row” buttons on WordPress 6.9+ where the bundled select2 was removed.
- Removed hard select2 dependency from form detail JS to prevent silent load failures.
1.7.0
- Extracted all inline CSS to enqueued admin-style.css file.
- Extracted all inline JS to enqueued JS files (admin-settings.js, admin-forms-list.js, admin-form-detail.js).
- Added proper input sanitization with sanitize_text_field(), sanitize_key(), absint(), and wp_unslash() on all superglobals.
- Added proper output escaping with esc_html(), esc_attr(), wp_kses(), and wp_kses_post() on all dynamic outputs.
- Added External Services section to readme documenting Ynot LMS API usage, data sent, and privacy/terms links.
- Updated Contributors to match WordPress.org username.
1.6.9
- Added the current admin UI refresh and metadata improvements.
- Added lead source fetching and per-form lead source selection.
- Improved custom field mapping and recent log displays.
1.4.2
- Added layman-friendly custom API field mapping with dropdowns and static values.
1.4.0
- Simplified authentication and aligned mappings with the current API requirements.
1.3.0
- Added Elementor Forms support and metadata refresh improvements.
1.2.0
- Added active-form selection and per-form dropdown mapping.
1.1.1
- Added request payload values to debug logs with sensitive keys redacted.
1.1.0
- Added explicit required-field mapping inputs in plugin settings.
1.0.0
- Initial release.