{"id":383627,"date":"2026-10-25T14:57:22","date_gmt":"2026-10-25T14:57:22","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/optcatch-lead-capture-campaigns\/"},"modified":"2026-11-01T12:57:25","modified_gmt":"2026-11-01T12:57:25","slug":"optcatch-lead-capture-campaigns","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/optcatch-lead-capture-campaigns\/","author":23582806,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.9.32","stable_tag":"0.9.32","tested":"7.1.4","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"Optcatch \u2013 Lead Capture, Email Campaigns & Newsletter for Any Form","header_author":"Elias Toss","header_description":"Turn any WordPress form \u2013 Contact Form 7, WPForms, Elementor, theme or popup \u2013 into consent-logged email campaigns. Multiple sending accounts with rotation built in.","assets_banners_color":"473f45","last_updated":"2026-11-01 12:57:25","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/optcatch.com\/","header_author_uri":"https:\/\/profiles.wordpress.org\/eliastoss\/","rating":5,"author_block_rating":0,"active_installs":0,"downloads":235,"num_ratings":1,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.9.26":{"tag":"0.9.26","author":"eliastoss","date":"2026-10-25 19:48:37","revision":3765176},"0.9.27":{"tag":"0.9.27","author":"eliastoss","date":"2026-10-25 22:16:26","revision":3765293},"0.9.28":{"tag":"0.9.28","author":"eliastoss","date":"2026-10-25 22:32:44","revision":3765313},"0.9.30":{"tag":"0.9.30","author":"eliastoss","date":"2026-10-30 14:36:30","revision":3775482},"0.9.31":{"tag":"0.9.31","author":"eliastoss","date":"2026-11-01 12:48:24","revision":3778037},"0.9.32":{"tag":"0.9.32","author":"eliastoss","date":"2026-11-01 12:57:25","revision":3778045}},"upgrade_notice":[],"ratings":{"1":0,"2":0,"3":0,"4":0,"5":1},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3764786,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3764786,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3764786,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3764786,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3764786,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.9.26","0.9.27","0.9.28","0.9.30","0.9.31","0.9.32"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3765293,"resolution":"1","location":"assets","locale":"","width":1280,"height":800},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3765293,"resolution":"2","location":"assets","locale":"","width":1280,"height":800},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3765293,"resolution":"3","location":"assets","locale":"","width":1280,"height":800},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3765293,"resolution":"4","location":"assets","locale":"","width":1280,"height":800},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3765293,"resolution":"5","location":"assets","locale":"","width":1280,"height":800},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3765293,"resolution":"6","location":"assets","locale":"","width":1280,"height":800}},"screenshots":{"1":"Dashboard \u2013 campaign activity chart, live sending feed, per-account sending status and recent campaigns.","2":"Settings \u2192 General &amp; Compliance \u2013 universal auto-capture for any form on your site (form plugins, page builders, theme and popup forms), consent policy and the consent wording recorded with every contact.","3":"Settings \u2192 Sending account \u2013 daily limit and sending speed (Pro adds the automated warm-up schedule with today's allowance).","4":"Campaigns \u2013 new campaign: audience segment with its consent-verified recipient count, email template, attachment and delivery timing (scheduled delivery and attachments are Pro).","5":"Contacts \u2013 consent status, consent timestamp, source, emails sent and tags for every contact, with filters by segment, source and consent.","6":"Segments \u2013 live filter by source, tag, signup date and consent status, with a matching-contacts count before you save."}},"plugin_section":[],"plugin_tags":[1152,264,5825,455,6696],"plugin_category":[42],"plugin_contributors":[288476,78154],"plugin_business_model":[],"class_list":["post-383627","plugin","type-plugin","status-publish","hentry","plugin_tags-contact-form-7","plugin_tags-email-marketing","plugin_tags-mailing-list","plugin_tags-newsletter","plugin_tags-smtp","plugin_category-contact-forms","plugin_contributors-eliastoss","plugin_contributors-freemius","plugin_committers-eliastoss"],"banners":{"banner":"https:\/\/ps.w.org\/optcatch-lead-capture-campaigns\/assets\/banner-772x250.png?rev=3764786","banner_2x":"https:\/\/ps.w.org\/optcatch-lead-capture-campaigns\/assets\/banner-1544x500.png?rev=3764786","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/optcatch-lead-capture-campaigns\/assets\/icon.svg?rev=3764786","icon":"https:\/\/ps.w.org\/optcatch-lead-capture-campaigns\/assets\/icon.svg?rev=3764786","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/optcatch-lead-capture-campaigns\/assets\/screenshot-1.png?rev=3765293","caption":"Dashboard \u2013 campaign activity chart, live sending feed, per-account sending status and recent campaigns."},{"src":"https:\/\/ps.w.org\/optcatch-lead-capture-campaigns\/assets\/screenshot-2.png?rev=3765293","caption":"Settings \u2192 General &amp; Compliance \u2013 universal auto-capture for any form on your site (form plugins, page builders, theme and popup forms), consent policy and the consent wording recorded with every contact."},{"src":"https:\/\/ps.w.org\/optcatch-lead-capture-campaigns\/assets\/screenshot-3.png?rev=3765293","caption":"Settings \u2192 Sending account \u2013 daily limit and sending speed (Pro adds the automated warm-up schedule with today's allowance)."},{"src":"https:\/\/ps.w.org\/optcatch-lead-capture-campaigns\/assets\/screenshot-4.png?rev=3765293","caption":"Campaigns \u2013 new campaign: audience segment with its consent-verified recipient count, email template, attachment and delivery timing (scheduled delivery and attachments are Pro)."},{"src":"https:\/\/ps.w.org\/optcatch-lead-capture-campaigns\/assets\/screenshot-5.png?rev=3765293","caption":"Contacts \u2013 consent status, consent timestamp, source, emails sent and tags for every contact, with filters by segment, source and consent."},{"src":"https:\/\/ps.w.org\/optcatch-lead-capture-campaigns\/assets\/screenshot-6.png?rev=3765293","caption":"Segments \u2013 live filter by source, tag, signup date and consent status, with a matching-contacts count before you save."}],"raw_content":"<!--section=description-->\n<p>Optcatch turns the forms you already have into an email list, then lets you send newsletters and campaigns from your own email accounts. No per-subscriber fees, no third-party CRM, no list buying.<\/p>\n\n<p><strong>Why people use it<\/strong><\/p>\n\n<ul>\n<li><strong>Works with any form.<\/strong> Contact Form 7, WPForms, Elementor, Gravity Forms, Fluent Forms, Ninja Forms, WooCommerce, page builders or plain HTML. If it has an email field, it's captured.<\/li>\n<li><strong>Consent record for every contact.<\/strong> The consent basis, wording version and timestamp are stored, and every send is checked against that record.<\/li>\n<li><strong>Send from your own accounts.<\/strong> Gmail, Microsoft 365, SendGrid or any SMTP server, with automatic rotation across accounts.<\/li>\n<li><strong>No limits in the free version.<\/strong> Unlimited contacts, segments and templates.<\/li>\n<li><strong>Built for GDPR.<\/strong> Explicit opt-in by default and one-click unsubscribe in every email.<\/li>\n<\/ul>\n\n<p><strong>Who it's for<\/strong><\/p>\n\n<p>Small businesses, bloggers, shops and agencies who want a mailing list on their own site without paying monthly subscriber fees.<\/p>\n\n<h4>Lead capture<\/h4>\n\n<ul>\n<li><strong>Universal auto-detect<\/strong> \u2013 on by default. Any form with an email field is captured: contact forms, newsletter boxes, popups, theme and page-builder forms (Divi, Bricks, Beaver Builder\u2026) and custom HTML. Login, password, search and payment forms are ignored. No code needed.<\/li>\n<li><strong>Form plugin integrations<\/strong> \u2013 Contact Form 7, WPForms, Elementor Pro Forms, Gravity Forms, Fluent Forms and Ninja Forms are also captured server-side, with their native consent\/acceptance fields recognised and the form name recorded as the contact's source. WooCommerce customers can opt in at checkout or account registration.<\/li>\n<li><strong>Consent checkbox<\/strong> \u2013 by default a consent checkbox is added to captured forms and unticked submissions are not stored. Your form already has a marketing opt-in? Add the class <code>lcc-consent<\/code> to it and it is reused instead. An optional \"Automatic Consent on Submission\" policy captures every submission and records that policy as the consent basis.<\/li>\n<li><strong>Shortcode form<\/strong> \u2013 no form yet? <code>[optcatch_form]<\/code> drops a clean, mobile-friendly signup form anywhere.<\/li>\n<\/ul>\n\n<h4>Email campaigns<\/h4>\n\n<ul>\n<li><strong>Campaign builder<\/strong> \u2013 branded newsletters with header, buttons, social links and simple formatting.<\/li>\n<li><strong>Templates<\/strong> \u2013 six starter designs (welcome, newsletter, product launch, follow-up, re-engagement, personal note) plus a drag-and-drop studio to save as many of your own as you like.<\/li>\n<li><strong>Segments<\/strong> \u2013 filter by source (captured or imported), tag, name, email, phone, signup date or consent status. Contacts from Contact Form 7, WPForms, Elementor Pro Forms and Gravity Forms are tagged with their form plugin automatically.<\/li>\n<li><strong>CSV import and export<\/strong> \u2013 bring existing subscribers in (up to 5,000 rows per file) with tags and a recorded permission statement.<\/li>\n<li><strong>Delivery dashboard<\/strong> \u2013 live sent\/failed\/skipped counts per campaign and per sending account.<\/li>\n<li><strong>Allowlist sending<\/strong> \u2013 every send intersects a positive-consent allowlist and excludes unsubscribed contacts. One-click unsubscribe link and List-Unsubscribe headers in every email.<\/li>\n<\/ul>\n\n<h4>Sending accounts<\/h4>\n\n<ul>\n<li><strong>Multi-SMTP rotation<\/strong> \u2013 connect as many sending accounts as you like; campaigns rotate across them so no single mailbox hits its provider limit.<\/li>\n<li><strong>Daily limits and pacing<\/strong> \u2013 each account has its own daily limit and per-minute sending speed, so a campaign is spread out instead of going in one burst. A circuit breaker pauses an account automatically when its provider starts rejecting mail.<\/li>\n<li><strong>Gmail \/ Google Workspace and Microsoft 365 \/ Outlook via OAuth2<\/strong> \u2013 no raw mailbox password stored. <strong>SendGrid API<\/strong> and <strong>any SMTP server<\/strong> are supported too.<\/li>\n<li><strong>Reliable background delivery<\/strong> \u2013 a heartbeat, a token-protected tick URL for server cron, and a reconciler that unsticks any campaign.<\/li>\n<\/ul>\n\n<h4>Free vs Pro<\/h4>\n\n<p>The free version is complete on its own and has no usage limits: form auto-capture, CSV import, unlimited contacts, saved segments and custom templates, the starter templates, immediate sends, and any number of sending accounts with daily limits, sending speed and rotation.<\/p>\n\n<p>Optcatch Pro adds features, not bigger numbers:<\/p>\n\n<ul>\n<li><strong>Email warm-up<\/strong> \u2013 a new Gmail, Outlook or SMTP account starts at a safe daily volume and ramps up automatically. You set the start, growth and ceiling; the next day's higher limit only unlocks once a day has really used its allowance.<\/li>\n<li><strong>Scheduled sends and drip \/ autoresponder campaigns<\/strong> \u2013 send later, or deliver a welcome message or sequence a set number of days after capture.<\/li>\n<li><strong>Wake-up and re-engagement<\/strong> \u2013 a follow-up shortly after capture, and one win-back email for contacts who have gone quiet, recovering leads you already paid for.<\/li>\n<li><strong>Webhooks &amp; REST API<\/strong> \u2013 send leads from Zapier, Make, Typeform, landing-page builders or your own code to a secure endpoint protected by a secret key.<\/li>\n<li><strong>Pro template library<\/strong> \u2013 six more ready-made designs: event \/ webinar invitation, flash sale with coupon code, lead-magnet delivery, customer story, appointment confirmation &amp; reminder, and a review request with one-click rating buttons.<\/li>\n<li><strong>Attachments and hosted download links<\/strong>.<\/li>\n<\/ul>\n\n<p>Optcatch Pro is a separate plugin, available from <a href=\"https:\/\/optcatch.com\/\">optcatch.com<\/a> and not hosted on WordPress.org. It is installed on its own and keeps your contacts, campaigns and settings. This free plugin contains no Pro code and no license checks: nothing in it is locked or waits for a key, and no license key can unlock anything inside it. The Pro features exist only in Optcatch Pro.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to the following third-party services. None of these connections\nhappen unless you actively opt in or configure the feature described.<\/p>\n\n<ul>\n<li><strong>Freemius<\/strong> \u2014 used for the optional opt-in and for Pro licenses. Nothing is sent to\nFreemius unless you choose to: (1) if you click \"Allow &amp; Continue\" on the plugin's opt-in\nscreen, your name and email, the site URL, WordPress\/PHP\/plugin versions and this plugin's\nactivation\/deactivation events are sent (the list of other plugins and themes too, unless\nyou switch it off on that screen); (2) if you use Optcatch Pro (a separate plugin), its license key\nand site URL are sent to validate it; (3) if you fill in the optional feedback form when\ndeactivating, the reason you choose is sent anonymously. If you skip the opt-in, nothing is\nsent. The free version receives its updates from WordPress.org.\n<a href=\"https:\/\/freemius.com\/terms\/\">Freemius Terms of Service<\/a> |\n<a href=\"https:\/\/freemius.com\/privacy\/\">Freemius Privacy Policy<\/a><\/li>\n<li><strong>SendGrid<\/strong> \u2014 only if you choose SendGrid as your sending provider in Settings. Each\ncampaign\/wake-up email (recipient address, subject, body, and any attachment) is sent via\nSendGrid's Mail Send API instead of your server's own mail transport.\n<a href=\"https:\/\/www.twilio.com\/en-us\/legal\/tos\">SendGrid Terms of Service<\/a> |\n<a href=\"https:\/\/www.twilio.com\/en-us\/legal\/privacy\">SendGrid Privacy Policy<\/a><\/li>\n<li><strong>Google (Gmail)<\/strong> \u2014 only if you connect a Google account for sending. The plugin uses\nGoogle's OAuth2 flow to obtain and refresh a token used solely to authenticate outgoing\nmail via Gmail's SMTP\/API; your Google account email address is read to confirm which\naccount is connected.\n<a href=\"https:\/\/policies.google.com\/terms\">Google Terms of Service<\/a> |\n<a href=\"https:\/\/policies.google.com\/privacy\">Google Privacy Policy<\/a><\/li>\n<li><strong>Microsoft 365 \/ Outlook<\/strong> \u2014 only if you connect a Microsoft account for sending. The\nplugin uses Microsoft's OAuth2 flow and the Microsoft Graph API in the same way as the\nGoogle integration above, solely to authenticate and send outgoing mail.\n<a href=\"https:\/\/www.microsoft.com\/en-us\/servicesagreement\/\">Microsoft Services Agreement<\/a> |\n<a href=\"https:\/\/privacy.microsoft.com\/en-us\/privacystatement\">Microsoft Privacy Statement<\/a><\/li>\n<\/ul>\n\n<h3>Data this plugin collects, and when<\/h3>\n\n<p>Per WordPress.org Plugin Guideline 7, here is exactly what is stored and when.<\/p>\n\n<p><strong>From your visitors (only when they tick the consent box on one of your forms):<\/strong><\/p>\n\n<ul>\n<li>Email address, and any of: phone, first name, last name, company \u2014 read from your form's\nown fields at the moment of submission.<\/li>\n<li>The URL of the page the form was on (<code>source_page<\/code>).<\/li>\n<li>Consent evidence: <code>consent_status = opted_in<\/code>, the exact consent wording shown, a wording\nversion id, and a UTC timestamp.<\/li>\n<\/ul>\n\n<p>If the visitor does <strong>not<\/strong> tick the box, <strong>nothing is sent or stored<\/strong> \u2014 the form submits\nnormally and the plugin ignores it. This is the default.<\/p>\n\n<p><strong>Optional \"Automatic Consent on Submission\" policy:<\/strong> if you switch to it under Settings, every\nform submission is stored as above without a checkbox, and the consent evidence records that the\ncontact was captured under this policy (no checkbox wording is attached). You are responsible for\nhaving a legal basis to email these contacts.<\/p>\n\n<p><strong>From you, the site owner (only when you import):<\/strong><\/p>\n\n<ul>\n<li>The contact fields you provide (email, phone, names, company, tags).<\/li>\n<li>Consent evidence: <code>consent_status = customer_declared<\/code>, the permission statement you affirmed,\nand a UTC timestamp. The plugin also records that you checked the \"I confirm I have permission\nto email these contacts\" box, with a timestamp and your user id.<\/li>\n<\/ul>\n\n<p><strong>Sending \/ operational data:<\/strong><\/p>\n\n<ul>\n<li>Per-recipient send records (which campaign, which contact, sent\/failed\/skipped, timestamp).<\/li>\n<li>Unsubscribe events (status set to <code>unsubscribed<\/code> with a UTC timestamp).<\/li>\n<\/ul>\n\n<p><strong>The plugin does NOT<\/strong> collect passwords, payment\/card data, or other sensitive fields from\nyour forms \u2014 those field types are explicitly excluded from capture. By default, email is\ndelivered through your own site's <code>wp_mail()<\/code> and no lead\/contact data leaves your site. If\nyou choose to configure SendGrid, Gmail, Microsoft 365 or an SMTP server as your sending\nprovider, the recipient address and email content are sent to that provider to deliver the\nmessage \u2014 see \"External services\" above for details.<\/p>\n\n<h3>Sample privacy-policy clause<\/h3>\n\n<p>You are responsible for your own privacy policy. You may adapt the following:<\/p>\n\n<blockquote>\n  <p><strong>Marketing contact data.<\/strong> When you submit a form on this site and tick the marketing\n  consent box, we store the contact details you entered (such as your email address and name),\n  the page you submitted from, and a record of the consent wording you agreed to together with\n  the date and time. We use this to send you marketing emails you have consented to. You can\n  withdraw consent at any time using the unsubscribe link in any email, after which we will not\n  email you again. We do not sell this data or share it with third parties for their own\n  marketing. To request access to, or deletion of, your data, contact us at [your address].<\/p>\n<\/blockquote>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>optcatch-lead-capture-campaigns<\/code> folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate the plugin through the \"Plugins\" screen in WordPress.<\/li>\n<li>Go to \"Optcatch\" in the admin menu. Review the consent wording under Settings.<\/li>\n<li>Forms are detected automatically: any form with an email field (Contact Form 7, WPForms,\nElementor, page-builder, theme or custom HTML forms) is captured. If a form already has its\nown marketing opt-in checkbox, add the class <code>lcc-consent<\/code> to it (or to its field wrapper) and\nthat checkbox becomes the consent gate. Import a list or start a campaign.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"which%20forms%20does%20it%20work%20with%3F\"><h3>Which forms does it work with?<\/h3><\/dt>\n<dd><p>Any form on your site that has an email field: form plugins, theme and page-builder forms (Divi, Bricks, Elementor\u2026), popups and custom HTML. Universal auto-detect is on by default, so there is nothing to set up; in strict mode the plugin adds its consent checkbox to the forms it detects. If a form already has its own marketing opt-in checkbox, add the class <code>lcc-consent<\/code> to that checkbox (or its field wrapper) and the plugin reuses it instead of adding a second one. If you'd rather choose forms yourself, turn auto-detect off: then only forms you have marked with that consent class, plus the form-plugin integrations you switch on, are captured.<\/p><\/dd>\n<dt id=\"how%20do%20i%20build%20an%20email%20list%20from%20my%20existing%20contact%20form%3F\"><h3>How do I build an email list from my existing contact form?<\/h3><\/dt>\n<dd><p>Leave universal auto-capture switched on. Any form with an email field is captured once the visitor ticks the consent box, which the plugin adds for you. You don't need to edit your form.<\/p><\/dd>\n<dt id=\"can%20i%20send%20leads%20from%20zapier%2C%20make%2C%20typeform%20or%20any%20other%20application%20into%20the%20list%3F%20%28pro%29\"><h3>Can I send leads from Zapier, Make, Typeform or any other application into the list? (Pro)<\/h3><\/dt>\n<dd><p>Yes, with Optcatch Pro (separate plugin from optcatch.com). Pro adds a webhook \/ REST API endpoint with a secret key. Any application or third-party service that collects leads and can send an HTTP request can push them here: Zapier, Make, Typeform, Calendly, landing-page builders, a CRM, a chatbot, a lead-generation vendor, a mobile app or your own code. Each lead is created with its consent basis recorded, deduplicated and tagged, exactly like a form submission. Settings \u2192 Advanced Integrations shows the endpoint (<code>\/wp-json\/optcatch\/v1\/lead<\/code>), the key (sent in the <code>X-Optcatch-Key<\/code> header or as <code>Authorization: Bearer<\/code>), a payload reference and ready-to-use Zapier and cURL examples. Forms on your own site never need this.<\/p><\/dd>\n<dt id=\"can%20it%20capture%20contact%20form%207%20leads%20into%20an%20email%20list%3F\"><h3>Can it capture Contact Form 7 leads into an email list?<\/h3><\/dt>\n<dd><p>Yes \u2013 like every other form on your site. Contact Form 7 is also integrated server-side: its native [acceptance] field is recognised as the opt-in, and the contact is created with its consent basis recorded. No webhooks, Zapier or external CRM needed. Switch to \"Automatic Consent on Submission\" if you want every submission captured.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20wpforms%2C%20elementor%20pro%2C%20gravity%20forms%20and%20woocommerce%3F\"><h3>Does it work with WPForms, Elementor Pro, Gravity Forms and WooCommerce?<\/h3><\/dt>\n<dd><p>Yes. These are captured like any other form, and also get built-in server-side integration: WPForms, Elementor Pro Forms, Gravity Forms, Fluent Forms, Ninja Forms and WooCommerce checkout\/registration.<\/p><\/dd>\n<dt id=\"what%20is%20smtp%20warm-up%20%28email%20warm-up%29%2C%20and%20does%20it%20warm%20up%20a%20new%20gmail%20or%20smtp%20account%3F%20%28pro%29\"><h3>What is SMTP warm-up (email warm-up), and does it warm up a new Gmail or SMTP account? (Pro)<\/h3><\/dt>\n<dd><p>Sending hundreds of emails from a fresh account gets it flagged as spam. Warm-up starts each account at a safe daily volume and raises the limit day by day (you set start, growth and ceiling) until it reaches full capacity. It works for Gmail, Microsoft 365, SendGrid and plain SMTP accounts.<\/p><\/dd>\n<dt id=\"how%20does%20multi-smtp%20sender%20rotation%20work%3F\"><h3>How does multi-SMTP sender rotation work?<\/h3><\/dt>\n<dd><p>Connect several sending accounts. Campaigns are distributed across them within each account's daily limit, so no single mailbox hits its provider limit.<\/p><\/dd>\n<dt id=\"is%20this%20a%20mailchimp%20alternative%20for%20wordpress%3F\"><h3>Is this a Mailchimp alternative for WordPress?<\/h3><\/dt>\n<dd><p>Yes, if you want to run your mailing list on your own site. Optcatch stores your contacts in WordPress and sends from your own email accounts. There are no per-subscriber fees and no limits on contacts in the free version.<\/p><\/dd>\n<dt id=\"how%20is%20this%20different%20from%20wp%20mail%20smtp%20or%20fluentsmtp%3F\"><h3>How is this different from WP Mail SMTP or FluentSMTP?<\/h3><\/dt>\n<dd><p>Those plugins route your site's transactional mail through one SMTP connection. Optcatch is an email-marketing tool: it builds the list from your forms, segments it, and sends campaigns through one or several sending accounts with rotation (automated warm-up is an Optcatch Pro feature). You can keep your SMTP plugin for transactional mail.<\/p><\/dd>\n<dt id=\"can%20i%20send%20newsletters%20through%20gmail%20or%20microsoft%20365%20%2F%20outlook%3F\"><h3>Can I send newsletters through Gmail or Microsoft 365 \/ Outlook?<\/h3><\/dt>\n<dd><p>Yes. Both connect with OAuth2, so no raw mailbox password is stored. SendGrid (API key) and generic SMTP are also supported.<\/p><\/dd>\n<dt id=\"how%20do%20i%20send%20a%20newsletter%20from%20wordpress%20with%20gmail%3F\"><h3>How do I send a newsletter from WordPress with Gmail?<\/h3><\/dt>\n<dd><p>Go to Optcatch \u2192 Settings, click \"Add sending account\" and choose Google \/ Gmail. Connect it with OAuth2: create an OAuth client in Google Cloud Console, paste its Client ID and Client Secret, and click \"Sign in with Google \/ Connect\" (the User Guide walks you through each step). Then create a campaign, choose a segment, and send. Set a Daily Sending Limit so you stay within Gmail's sending caps.<\/p><\/dd>\n<dt id=\"is%20it%20gdpr%20compliant%3F\"><h3>Is it GDPR compliant?<\/h3><\/dt>\n<dd><p>It records a consent basis for every contact: the policy in force (inquiry or explicit checkbox), the wording version, a UTC timestamp and the source page, and sending always excludes unsubscribed contacts. In strict mode (the default) nothing is stored unless the visitor ticks the box. Whether your use is compliant depends on your legal basis and privacy policy; see 'Data this plugin collects' and the sample clause.<\/p><\/dd>\n<dt id=\"can%20i%20set%20up%20automated%20drip%20or%20autoresponder%20emails%3F\"><h3>Can I set up automated drip or autoresponder emails?<\/h3><\/dt>\n<dd><p>Yes, in Optcatch Pro (separate plugin from optcatch.com). Automation campaigns deliver a welcome message or sequence a set number of days after capture. The free version sends campaigns when you press send.<\/p><\/dd>\n<dt id=\"what%20is%20the%20wake-up%20%2F%20re-engagement%20feature%3F\"><h3>What is the wake-up \/ re-engagement feature?<\/h3><\/dt>\n<dd><p>Wake-up is available in Optcatch Pro (separate plugin from optcatch.com) and has two emails: a follow-up shortly after capture, and a re-engagement message for contacts that have gone quiet for a window you choose. Both are paced within your account limits.<\/p><\/dd>\n<dt id=\"can%20a%20campaign%20accidentally%20email%20someone%20who%20unsubscribed%3F\"><h3>Can a campaign accidentally email someone who unsubscribed?<\/h3><\/dt>\n<dd><p>No. Every send query intersects a positive-consent allowlist and excludes unsubscribed contacts. Unsubscribe status survives re-imports.<\/p><\/dd>\n<dt id=\"does%20it%20work%20without%20buying%20pro%3F\"><h3>Does it work without buying Pro?<\/h3><\/dt>\n<dd><p>Yes, and there are no usage limits in the free version: unlimited contacts, saved segments and custom templates, CSV import up to 5,000 rows per file, campaigns, and any number of sending accounts with daily limits, sending speed and rotation. Automated warm-up, scheduled\/automation sends, wake-up and re-engagement emails, attachments, the Pro template library (six extra designs) and the webhook \/ REST API endpoint for external tools are available in Optcatch Pro, a separate plugin from <a href=\"https:\/\/optcatch.com\/\">optcatch.com<\/a>.<\/p><\/dd>\n<dt id=\"can%20i%20import%20my%20existing%20subscribers%3F\"><h3>Can I import my existing subscribers?<\/h3><\/dt>\n<dd><p>Yes. Use the CSV import (up to 5,000 rows per file). You will need to confirm you have permission to email those contacts.<\/p><\/dd>\n<dt id=\"will%20it%20slow%20down%20my%20forms%20or%20site%3F\"><h3>Will it slow down my forms or site?<\/h3><\/dt>\n<dd><p>Capture adds one lightweight server-side step per submission, and campaigns go out in paced background batches, so page speed is not affected.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20scrape%20or%20buy%20email%20lists%3F\"><h3>Does this plugin scrape or buy email lists?<\/h3><\/dt>\n<dd><p>No, and it never will. Contacts come only from your own consenting visitors or lists you confirm you have permission to email.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.9.32<\/h4>\n\n<ul>\n<li>Changed: removed the old 0.9.20 upgrade notice that Pro sites kept seeing on every update. No\nfunctional change from 0.9.31.<\/li>\n<\/ul>\n\n<h4>0.9.31<\/h4>\n\n<ul>\n<li>Fixed: the Dashboard counted a campaign that was merely waiting for its next paced slot as\n\"Scheduled\" and listed it under \"Upcoming scheduled sends\". Only campaigns scheduled for a later\ntime that have not started yet are listed there now; on the free plan the count is always 0.<\/li>\n<li>Fixed: the delivery estimate in the campaign builder now counts the emails already waiting in the\nqueue, so it no longer promises \"under an hour\" while an older campaign is still going out.<\/li>\n<li>Changed: the one-time review request says \"Your first campaign is out\" only when it really is the\nfirst; a site that upgraded with campaigns already sent gets neutral wording.<\/li>\n<\/ul>\n\n<h4>0.9.30<\/h4>\n\n<ul>\n<li>Changed: on the Campaigns list, recipients still waiting for their turn now show as \"N queued\"\ninstead of \"N sending\", and the label can be translated.<\/li>\n<\/ul>\n\n<h4>0.9.29<\/h4>\n\n<ul>\n<li>Fixed (Pro): a re-engagement email could go out a few minutes ahead of a new lead's wake-up email\nthat was already due. Wake-up emails now always go first, as documented.<\/li>\n<\/ul>\n\n<h4>0.9.28<\/h4>\n\n<ul>\n<li>Added: after your first campaign has gone out, administrators see a one-time note on an Optcatch\nscreen with a link to leave a review on WordPress.org. It is shown once per administrator and can\nbe dismissed; nothing is offered in return for a review.<\/li>\n<li>Fixed: the User Guide promised open and click tracking on the Dashboard and segments by individual\nform. It now describes what the plugin does: sent, failed and skipped counts, and segments by tag\n(Contact Form 7, WPForms, Elementor Pro Forms and Gravity Forms tag their contacts automatically).<\/li>\n<\/ul>\n\n<h4>0.9.27<\/h4>\n\n<ul>\n<li>Changed: the admin menu is now called \"Optcatch\" (was \"Lead Capture\") and uses the Optcatch logo\nas its icon. Page titles and the User Guide now say \"Optcatch \u2192 \u2026\" to match.<\/li>\n<li>Added: a \"Website\" link to optcatch.com on the Plugins screen; the Plugin URI now points there.<\/li>\n<\/ul>\n\n<h4>0.9.26<\/h4>\n\n<ul>\n<li>Fixed: the unsubscribe link in the plain-text version of an email could open \"This unsubscribe link\nis invalid\". Links were written as \"text (url)\" and some email services and mail apps counted the\nclosing bracket as part of the link. Links are now written as \"text \", and the unsubscribe page\nignores stray characters added to the end of the link, so links in emails already sent work too.<\/li>\n<li>Fixed: the Email Studio's \"Card Corner Radius\" setting was lost when the template was saved, and\nemails always used 6px corners. The chosen radius is now saved and used in the email.<\/li>\n<li>Fixed (Pro): a campaign email could go out before a wake-up email that was already due when two\nsending checks ran within a few seconds of each other (for example \"Send now\" right after the\nbackground check). Due wake-ups now always go first.<\/li>\n<\/ul>\n\n<h4>0.9.25<\/h4>\n\n<ul>\n<li>Fixed: in the Email Studio, typing into a text block's box in the side panel was sometimes lost after\nclicking there from the email preview (and the other way round), so the change was not saved.<\/li>\n<li>Fixed: the Guide and the Sending settings labelled extra sending accounts and sender rotation as Pro.\nThey are included in the free version.<\/li>\n<\/ul>\n\n<h4>0.9.24<\/h4>\n\n<ul>\n<li>Fixed (Pro): when re-engagement emails were waiting, they took every free sending slot and\ncampaigns could sit at \"0 sent\" for hours. Re-engagement emails and campaigns now take turns;\nwake-up follow-ups for new leads still go first.<\/li>\n<li>Changed (Pro): automation emails (sent a set number of days after sign-up) now wait their turn with\ncampaigns, oldest first, instead of always going ahead of every campaign.<\/li>\n<li>Fixed: a campaign deferred because the daily limit was reached waited until midnight even after the\nlimit was raised. Saving a sending account now lets deferred campaigns continue right away when\nthere is room. The same now goes for Pro automation emails held back by the daily limit.<\/li>\n<li>Fixed: an email that could not be sent because of the contact (for example an invalid address) or a\nbroken template counted toward the account's daily, hourly and per-minute sending limits although it\nnever left the site. It no longer does.<\/li>\n<li>Improved: every email the plugin sends (campaigns, test emails and Pro wake-up \/ re-engagement emails)\nnow also carries a plain-text version next to the designed HTML version, made from the final email\nwith links written out and the unsubscribe link included. This helps deliverability and readers whose\nmail app shows plain text only. Other emails on your site are not changed.<\/li>\n<\/ul>\n\n<h4>0.9.23<\/h4>\n\n<ul>\n<li>Fixed: in the Email Studio, clicking a heading or text block on the canvas and typing right\naway lost the typed text (the canvas redrew and dropped the cursor). The cursor now stays where\nyou clicked.<\/li>\n<li>Fixed (Pro): a wake-up or re-engagement email for a just-captured contact could be sent ahead\nof older contacts that were still waiting for theirs while sending was paced. They now go out\noldest first.<\/li>\n<li>Improved: the campaign list now shows how many recipients were skipped because they were no longer\nrecipients when their turn came (unsubscribed, deleted or removed from the segment). A campaign\nwhose contacts were all removed used to read \"0 sent \/ 2 total\" with no explanation.<\/li>\n<\/ul>\n\n<h4>0.9.22<\/h4>\n\n<ul>\n<li>Fixed: after an older version of the plugin had run again on a site that was already updated\n(for example an old zip uploaded once more), the next update stopped with \"could not migrate its\ndata to the new internal names\" and switched the plugin off. The plugin now keeps that older\ndata as backup tables, leaves your current data untouched, shows a one-time notice and keeps\nrunning. \"Delete all plugin data\" on uninstall also removes those backups.<\/li>\n<\/ul>\n\n<h4>0.9.21<\/h4>\n\n<ul>\n<li>Fixed: the Sending Speed (per minute) is now a per-account limit shared by every campaign,\nwake-up and background run. Two campaigns sending at the same time could each use the full\nspeed, sending twice as many emails per minute as configured.<\/li>\n<li>Fixed: when sending is paced, campaigns are now served oldest first. A campaign waiting for\nits turn could be overtaken by newer ones again and again and wait for hours; a paced campaign\nnow resumes exactly when the next slot frees instead of re-checking every 5 minutes.<\/li>\n<li>Changed: sending is now spread evenly across the day. An idle account still sends a small batch\nat once (up to its Sending Speed), then one email every few minutes (daily limit spread over 24\nhours) instead of the whole hourly allowance in the first minutes of each hour followed by a long\npause. Follow-ups and small campaigns no longer wait up to an hour behind a large send; the daily\nand hourly limits are unchanged.<\/li>\n<\/ul>\n\n<h4>0.9.20<\/h4>\n\n<ul>\n<li>Fixed: the background job schedule was never created on a fresh activation (the one-minute\ninterval was not registered before scheduling). Activation now registers it first, and the hourly\nfallback re-creates a missing schedule on its own.<\/li>\n<li>Changed: every inline script and style is now an enqueued file, loaded only on the plugin's own\nscreens.<\/li>\n<li>Changed: the free build contains no license checks and no Pro code. The Pro features (wake-up and\nre-engagement, scheduled and automated delivery, attachments, warm-up, the Pro templates,\nwebhooks) exist only in Optcatch Pro, a separate plugin from optcatch.com.<\/li>\n<li>Fixed: unslashed input and a dead test-email handler flagged by Plugin Check; the REST tick token\nis now checked in the route's permission callback.<\/li>\n<li>Changed: internal names now use the \"optcatch\" prefix (WordPress.org requires prefixes of at least\nfour characters). Settings, contacts, campaigns, tables and scheduled tasks move automatically on\nthe first page load after the update; if they cannot be moved, the plugin stays inactive, shows the\nreason to administrators and retries on every page load.<\/li>\n<li>Breaking: the REST base path is now <code>\/wp-json\/optcatch\/v1\/<\/code> (or <code>\/?rest_route=\/optcatch\/v1\/...<\/code>):\nwebhook endpoints <code>optcatch\/v1\/lead<\/code>, <code>optcatch\/v1\/webhook<\/code> and <code>optcatch\/v1\/capture<\/code>, heartbeat\n  optcatch\/v1\/tick. Update the URL in Zapier, Make and other webhook senders and in any server\ncrontab that calls the tick. The <code>lcc\/v1<\/code> paths no longer exist. The <code>X-LCC-Key<\/code> and\n  X-LCC-Tick-Token header names are still accepted next to <code>X-Optcatch-Key<\/code> \/ <code>X-Optcatch-Tick-Token<\/code>,\nand existing webhook keys stay valid.<\/li>\n<li>Breaking: the Gmail \/ Microsoft OAuth redirect URI is now\n  ...\/wp-admin\/admin.php?page=optcatch-settings&amp;action=optcatch_google_oauth_callback (Google) and\n  ...&amp;action=optcatch_microsoft_oauth_callback (Microsoft). Add the new redirect URI to your OAuth\napp in Google Cloud \/ Azure before you reconnect an account; already connected accounts keep working\nwith their stored refresh tokens.<\/li>\n<li>Breaking: WP-CLI commands are now <code>wp optcatch run-jobs<\/code> and <code>wp optcatch wakeup<\/code>.<\/li>\n<li>Breaking: filters and actions use the <code>optcatch_<\/code> prefix, e.g. <code>optcatch_lead_form_selector<\/code>,\n  optcatch_consent_checkbox_selector, <code>optcatch_capability<\/code> and <code>optcatch_upgrade_url<\/code>. Update\ncustom code that hooks the old <code>lcc_<\/code> names.<\/li>\n<li>Breaking: the shortcode is now <code>[optcatch_form]<\/code>; the older <code>[lead_capture_form]<\/code> and three-letter\nshortcode names were removed. Replace them on pages that embed the form.<\/li>\n<li>Unsubscribe links in emails sent before this update keep working.<\/li>\n<li>Admin pages moved to <code>admin.php?page=optcatch-...<\/code>; old <code>page=lcc-...<\/code> bookmarks redirect.<\/li>\n<li>Purge your page caches after updating: cached pages still carry the old form field names and\nscript data.<\/li>\n<\/ul>\n\n<h4>0.9.19<\/h4>\n\n<ul>\n<li>Fixed: contacts captured from forms on your own site were tagged \"webhook\" even though they did\nnot come from a webhook. They are now tagged \"auto-capture\"; only leads that arrive through the\nPro webhook key (with no tags of their own) get the \"webhook\" tag. Existing contacts keep their\ntags; remove the old \"webhook\" tag from them in Contacts if you like.<\/li>\n<\/ul>\n\n<p>Earlier versions: see changelog.txt in the plugin folder.<\/p>","raw_excerpt":"Lead capture &amp; newsletter plugin. Turn any form into an email list and send campaigns from your own Gmail, Outlook or SMTP.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/383627","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=383627"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/eliastoss"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=383627"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=383627"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=383627"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=383627"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=383627"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=383627"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}