{"id":351054,"date":"2026-08-24T09:59:47","date_gmt":"2026-08-24T09:59:47","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/fdn-newsletter-bridge\/"},"modified":"2026-08-24T09:59:26","modified_gmt":"2026-08-24T09:59:26","slug":"fdn-newsletter-bridge","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/fdn-newsletter-bridge\/","author":23545259,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.4","stable_tag":"1.0.4","tested":"7.1","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"FDN Newsletter Bridge","header_author":"FDN GROUP","header_description":"Syncs newsletter signups (CF7, MC4WP, WPForms, Elementor) and WordPress users to the FDN tools CRM, with a queue, retries and test mode.","assets_banners_color":"","last_updated":"2026-08-24 09:59:26","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/www.fedenet.gr\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":49,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.4":{"tag":"1.0.4","author":"fdngroup","date":"2026-08-24 09:59:26"}},"upgrade_notice":{"1.0.4":"<p>Admin scripts are now properly enqueued instead of printed inline.<\/p>","1.0.3":"<p>Collapsible activity log on the settings screen.<\/p>","1.0.2":"<p>Adds subscriber resync from the local archive and a permanent sync log.<\/p>","1.0.1":"<p>Initial public release.<\/p>"},"ratings":[],"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3663269,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.4"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[2736,1150,455,1016,1558],"plugin_category":[41,42,58],"plugin_contributors":[277204],"plugin_business_model":[],"class_list":["post-351054","plugin","type-plugin","status-publish","hentry","plugin_tags-contacts","plugin_tags-crm","plugin_tags-newsletter","plugin_tags-subscribers","plugin_tags-sync","plugin_category-communication","plugin_category-contact-forms","plugin_category-user-management","plugin_contributors-fdngroup","plugin_committers-fdngroup"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/fdn-newsletter-bridge\/assets\/icon-256x256.png?rev=3663269","icon_2x":"https:\/\/ps.w.org\/fdn-newsletter-bridge\/assets\/icon-256x256.png?rev=3663269","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>FDN Newsletter Bridge connects a WordPress site to the FDN tools CRM (tools API v2). It collects newsletter signups from popular form plugins and keeps WordPress user accounts in sync with CRM contacts.<\/p>\n\n<p><strong>Newsletter signups<\/strong><\/p>\n\n<ul>\n<li>Contact Form 7 \u2014 only the form IDs you explicitly whitelist<\/li>\n<li>Mailchimp for WordPress (MC4WP) \u2014 forms and sign-up checkboxes<\/li>\n<li>WPForms \u2014 only the form IDs you explicitly whitelist<\/li>\n<li>Elementor Pro Forms \u2014 only the form names you explicitly whitelist<\/li>\n<li>Any other source via the <code>fdn_nb_subscribe()<\/code> helper function<\/li>\n<\/ul>\n\n<p><strong>WordPress user sync (optional)<\/strong><\/p>\n\n<ul>\n<li>User registration creates a CRM contact (name, surname, email, billing phone)<\/li>\n<li>Profile updates keep the contact up to date<\/li>\n<li>User deletion permanently removes the contact from the CRM (GDPR right to erasure)<\/li>\n<li>GDPR consent is recorded only when the visitor actively ticks a consent checkbox \u2014 never automatically<\/li>\n<li>One-click initial sync for existing users, processed in batches<\/li>\n<\/ul>\n\n<p><strong>Reliability<\/strong><\/p>\n\n<ul>\n<li>All operations go through a database queue with automatic retries and exponential backoff \u2014 nothing is lost during API downtime<\/li>\n<li>A database-level lock guarantees a single queue processor at a time (no duplicate contacts)<\/li>\n<li>Self-chaining background processing that also works on hosts where WP-Cron never fires<\/li>\n<li>Test mode: everything is logged, nothing is sent<\/li>\n<li>A permanent local subscriber archive that survives plugin uninstallation<\/li>\n<\/ul>\n\n<p><strong>REST API<\/strong><\/p>\n\n<p>The plugin also exposes a read endpoint for your own tooling: <code>GET \/wp-json\/fdn-nb\/v1\/subscribers<\/code> (protected by an API key header) with pagination and incremental sync support.<\/p>\n\n<p>This plugin communicates with the external service tools.fedenet.gr (FDN tools CRM) to synchronise contacts. Data sent includes the subscriber e-mail address and, for user sync, name, surname and phone number. An API key issued by the FDN tools administrator is required.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin through Plugins \u2192 Add New \u2192 Upload Plugin, or copy the folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate it.<\/li>\n<li>Go to Settings \u2192 Newsletter Bridge, enter the API key issued from FDN tools and press \"Check\".<\/li>\n<li>Pick the CRM categories for each flow, whitelist your newsletter forms, and disable test mode when ready.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20it%20send%20data%20to%20an%20external%20service%3F\"><h3>Does it send data to an external service?<\/h3><\/dt>\n<dd><p>Yes. Contacts are synchronised with the FDN tools CRM (tools.fedenet.gr) using the API key you configure. Nothing is sent while test mode is enabled or while no API key is set.<\/p><\/dd>\n<dt id=\"which%20forms%20are%20captured%3F\"><h3>Which forms are captured?<\/h3><\/dt>\n<dd><p>Only the forms you explicitly whitelist in the settings (CF7\/WPForms IDs, Elementor form names). Contact forms are deliberately ignored unless whitelisted, to avoid processing personal data without consent.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20a%20user%20is%20deleted%3F\"><h3>What happens when a user is deleted?<\/h3><\/dt>\n<dd><p>The linked CRM contact is permanently deleted together with all its contact items (GDPR right to erasure).<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Admin JavaScript is now loaded from a separate file with wp_enqueue_script() instead of being printed inline on the settings screen.<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>The activity log on the settings screen is now collapsible and closed by default.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Added a one-click resync that pushes every subscriber from the permanent local archive back to the CRM \u2014 useful after a reinstall or if contacts were removed on the CRM side.<\/li>\n<li>Permanent sync log file (survives uninstallation), downloadable from the settings screen.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Initial public release: CF7 \/ MC4WP \/ WPForms \/ Elementor Pro form capture, WordPress user sync, background queue with retries and locking, GDPR consent handling, REST read endpoint.<\/li>\n<\/ul>","raw_excerpt":"Syncs newsletter signups and WordPress users to the FDN tools CRM, with a background queue, automatic retries and a test mode.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/351054","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=351054"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/fdngroup"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=351054"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=351054"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=351054"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=351054"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=351054"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=351054"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}